ดูแลสิ่งแวดล้อมให้ปลอดภัย

Google มีชุด API และบริการที่จะช่วยตรวจหาว่าแอปของคุณ ทํางานในสภาพแวดล้อมที่ปลอดภัยและเชื่อถือได้หรือไม่ หัวใจสำคัญคือ Play Integrity API ซึ่งช่วยตรวจสอบว่าการโต้ตอบนั้นเป็นของแท้โดยการตรวจจับการโต้ตอบที่มีความเสี่ยงและเป็นการฉ้อโกงที่อาจเกิดขึ้น นอกจากความสมบูรณ์ของแอปและอุปกรณ์แล้ว ตอนนี้ Play Integrity API ยังมีข้อมูลเกี่ยวกับความเสี่ยงในการเข้าถึงและความเสี่ยงด้านการช่วยเหลือพิเศษ Google Play Protect และกิจกรรมล่าสุดในอุปกรณ์ด้วย แพลตฟอร์ม Android มี API สำหรับสถานการณ์ที่เฉพาะเจาะจง ซึ่งอาจเกี่ยวข้องกับแอปของคุณ เพื่อเสริมความแข็งแกร่งให้กับกลยุทธ์การป้องกันการฉ้อโกงของคุณ

Play Integrity API

ฟีเจอร์ของ Play Integrity API

Play Integrity API ช่วยให้คุณทราบสถานะความปลอดภัยของ อุปกรณ์ที่แอปทำงานอยู่ ซึ่งจะช่วยให้คุณมั่นใจได้ว่าผู้ใช้ที่เหมาะสม กำลังเข้าถึงข้อมูลที่ละเอียดอ่อน

ซึ่งจะช่วยคุณตรวจสอบว่าการโต้ตอบและคำขอของเซิร์ฟเวอร์มาจากไบนารีของแอปจริงในสภาพแวดล้อมที่เชื่อถือได้

  • ไบนารีของแอปจริง: ระบุว่าคุณกำลังโต้ตอบกับไบนารีที่ไม่มีการแก้ไขที่ Google Play รู้จักหรือไม่
  • การติดตั้งของ Play จริง: ระบุว่าบัญชีผู้ใช้ปัจจุบันมีใบอนุญาตหรือไม่ ซึ่งหมายความว่าผู้ใช้ได้ติดตั้งหรือชำระเงินสำหรับแอปหรือเกมใน Google Play แล้ว
  • อุปกรณ์ Android จริง: ระบุว่าแอปกำลังทำงานในอุปกรณ์ Android จริง ที่ขับเคลื่อนด้วยบริการ Google Play หรือไม่
  • ไม่มีมัลแวร์ที่รู้จัก: ตรวจสอบว่า Google Play Protect เปิดอยู่หรือไม่ และพบแอปที่มีความเสี่ยงหรือเป็นอันตรายติดตั้งอยู่ในอุปกรณ์หรือไม่
  • ความเสี่ยงต่ำในการเข้าถึงโดยแอปอื่นๆ: ตรวจสอบว่ามีแอปอื่นๆ ทำงานอยู่ ซึ่งอาจจับภาพหน้าจอหรือควบคุมอุปกรณ์และอินพุตในแอปของคุณหรือไม่

วิธีนี้ช่วยลดการประพฤติมิชอบได้อย่างไร

เมื่อผู้ใช้ดำเนินการที่สำคัญในแอป คุณสามารถเรียกใช้ Play Integrity API ได้ หากไม่เป็นเช่นนั้น เซิร์ฟเวอร์แบ็กเอนด์ของแอปจะเลือกได้ว่าจะทำอะไรเพื่อป้องกันการโจมตีและการฉ้อโกง เช่น คุณอาจกำหนดให้ มีการยืนยันผู้ใช้เพิ่มเติมหรือปฏิเสธการเข้าถึงฟังก์ชันการทำงานที่ละเอียดอ่อน

ขั้นตอนการตัดสินใจของ Play Integrity API

ความเสี่ยงในการเข้าถึงแอป

เราได้เปิดตัวสัญญาณความเสี่ยงในการเข้าถึงแอปเพื่อช่วยคุณประเมินว่าแอปอื่นๆ ในอุปกรณ์อาจดูและจับภาพหน้าจอได้หรือไม่เมื่อแอปของคุณ กำลังทำงานหรือเข้าถึงแอปของคุณโดยใช้สิทธิ์การช่วยเหลือพิเศษ ระบบจะยกเว้นแอปเพื่อการช่วยเหลือพิเศษที่ผ่านการยืนยันจากคำตัดสินเหล่านี้โดยอัตโนมัติ ความเสี่ยงในการเข้าถึงแอปช่วยให้นักพัฒนาแอปปกป้องแอปของตนได้ในขณะที่ยังคงรักษาความเป็นส่วนตัวของผู้ใช้ไว้ เนื่องจากแอปที่ขอจะไม่ได้รับข้อมูลระบุตัวตนของแอปที่ติดตั้ง และผลการตัดสินจะไม่ลิงก์กับตัวระบุผู้ใช้หรืออุปกรณ์

ภาพหน้าจอของโทรศัพท์ที่กำหนดให้ผู้ใช้ปิดแอปบางแอป

ความพยายามร่วมกันนี้ช่วยให้เราได้รับสัญญาณที่จำเป็นต่อการ ให้ข้อมูลเชิงลึกที่ละเอียดยิ่งขึ้นเพื่อปกป้องลูกค้าได้อย่างมีประสิทธิภาพมากขึ้น
—Nubank พาร์ทเนอร์ในช่วงทดลองใช้ก่อนเปิดตัว

ความเสี่ยงในการเข้าถึงแอปมีระดับความเสี่ยงต่างๆ ดังนี้

  • การตอบสนองการจับภาพหมายความว่ามีแอปอื่นๆ ทำงานอยู่ซึ่งสามารถจับภาพหน้าจอได้
  • การตอบกลับที่ควบคุมได้หมายความว่ามีแอปอื่นๆ ทำงานอยู่ซึ่งควบคุมอุปกรณ์ได้ ดังนั้นแอปเหล่านั้นจึงทั้งจับภาพหน้าจอและควบคุมอินพุตในแอปของคุณได้

การบังคับใช้ความเสี่ยงในการเข้าถึงแอป

ระบุการดำเนินการที่มีมูลค่าสูงหรือมีความละเอียดอ่อนในแอปหรือเกมเพื่อปกป้องด้วย Play Integrity API แทนที่จะปฏิเสธการเข้าถึงโดยตรง หากเป็นไปได้ ให้ท้าทายการเข้าชมที่มีความเสี่ยงก่อนที่จะอนุญาตให้ดำเนินการที่มีมูลค่าสูงต่อไป ตัวอย่างเช่น เมื่อความเสี่ยงในการเข้าถึงแอปบ่งชี้ว่ามีแอปที่อาจจับภาพหน้าจอกำลังทำงานอยู่ ให้ขอให้ผู้ใช้ปิดใช้หรือถอนการติดตั้งแอปที่จับภาพหน้าจอได้ก่อนที่จะอนุญาตให้ผู้ใช้ไปยังฟังก์ชันการทำงานที่คุณต้องการปกป้อง

ตารางนี้มีผลการตัดสินตัวอย่างบางส่วน

ตัวอย่างการตอบกลับคำตัดสินความเสี่ยงในการเข้าถึงแอป การตีความ
appsDetected:
["KNOWN_INSTALLED"]
มีเพียงแอปที่ติดตั้งซึ่ง Google Play รู้จัก หรือแอปที่ผู้ผลิตอุปกรณ์โหลดไว้ล่วงหน้าในพาร์ติชันระบบเท่านั้น ไม่มีแอปที่ทำงานอยู่ซึ่งจะส่งผลให้เกิดการจับภาพ การควบคุม หรือการซ้อนทับ
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
มีแอปที่ Google Play ติดตั้งไว้หรือผู้ผลิตอุปกรณ์โหลดไว้ล่วงหน้าใน พาร์ติชันระบบ มีแอปอื่นๆ ที่กำลังทำงานอยู่และเปิดใช้สิทธิ์ซึ่งอาจใช้เพื่อดูหน้าจอหรือจับภาพอินพุตและเอาต์พุตอื่นๆ ได้
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
มีแอป Play หรือระบบที่กำลังทำงานซึ่งเปิดใช้สิทธิ์ที่ อาจใช้เพื่อดูหน้าจอหรือบันทึกอินพุตและเอาต์พุตอื่นๆ ได้ นอกจากนี้ ยังมีแอปอื่นๆ ที่ทำงานอยู่ซึ่งเปิดใช้สิทธิ์ที่ อาจใช้เพื่อควบคุมอุปกรณ์และควบคุมอินพุตในแอปของคุณโดยตรง ได้
appAccessRiskVerdict: {} ระบบไม่ได้ประเมินความเสี่ยงในการเข้าถึงแอป เนื่องจากไม่เป็นไปตามข้อกําหนดที่จําเป็น เช่น อุปกรณ์ไม่น่าเชื่อถือพอ

สัญญาณ Play Protect

สัญญาณ Play Protect จะบอกแอปว่า Play Protect เปิดอยู่หรือไม่ และ พบแอปที่เป็นอันตรายที่รู้จักซึ่งติดตั้งอยู่ในอุปกรณ์หรือไม่

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

หากคุณกังวลเกี่ยวกับมัลแวร์ในแอปหรือข้อมูลของผู้ใช้ คุณสามารถ ตรวจสอบผลการตัดสินนี้และขอให้ผู้ใช้เปิด Play Protect หรือนำแอปที่เป็นอันตรายออก ก่อนดำเนินการต่อ

กล่องโต้ตอบเปิด Play Protect

playProtectVerdict อาจมีค่าใดค่าหนึ่งต่อไปนี้

คำตัดสิน คำอธิบาย การดำเนินการที่แนะนำ

NO_ISSUES

Play Protect เปิดอยู่และไม่พบปัญหาเกี่ยวกับแอปใน อุปกรณ์

Play Protect เปิดอยู่และไม่พบปัญหาใดๆ ผู้ใช้จึงไม่ต้องดำเนินการใดๆ

NO_DATA

Play Protect เปิดอยู่ แต่ยังไม่มีการสแกน อุปกรณ์หรือแอป Play Store อาจได้รับการรีเซ็ตเมื่อเร็วๆ นี้

Play Protect เปิดอยู่และไม่พบปัญหาใดๆ ผู้ใช้จึงไม่ต้องดำเนินการใดๆ

POSSIBLE_RISK

Play Protect ปิดอยู่

Play Protect เปิดอยู่และไม่พบปัญหาใดๆ ผู้ใช้จึงไม่ต้องดำเนินการใดๆ

MEDIUM_RISK

Play Protect เปิดอยู่และพบแอปที่อาจเป็นอันตราย ซึ่งติดตั้งในอุปกรณ์

คุณขอให้ผู้ใช้เปิด Play Protect และดำเนินการตามคำเตือนของ Play Protect ได้ ทั้งนี้ขึ้นอยู่กับความเสี่ยงที่คุณยอมรับได้ หากผู้ใช้ไม่สามารถปฏิบัติตามข้อกำหนดเหล่านี้ คุณอาจบล็อกไม่ให้ผู้ใช้ดำเนินการในเซิร์ฟเวอร์

HIGH_RISK

Play Protect เปิดอยู่และพบแอปที่เป็นอันตรายที่ติดตั้ง ในอุปกรณ์

คุณขอให้ผู้ใช้เปิด Play Protect และดำเนินการตามคำเตือนของ Play Protect ได้ ทั้งนี้ขึ้นอยู่กับความเสี่ยงที่คุณยอมรับได้ หากผู้ใช้ไม่สามารถปฏิบัติตามข้อกำหนดเหล่านี้ คุณอาจบล็อกไม่ให้ผู้ใช้ดำเนินการในเซิร์ฟเวอร์

UNEVALUATED

ระบบไม่ได้ประเมินคำตัดสินของ Play Protect

ปัญหานี้อาจเกิดขึ้นได้จากหลายสาเหตุ เช่น

  • อุปกรณ์ไม่น่าเชื่อถือพอ
  • เกมเท่านั้น: บัญชีผู้ใช้ไม่มีใบอนุญาต

กิจกรรมล่าสุดในอุปกรณ์

นอกจากนี้ คุณยังเลือกใช้กิจกรรมล่าสุดในอุปกรณ์ได้ด้วย ซึ่งจะบอกจำนวนครั้งที่แอปของคุณร้องขอโทเค็นความสมบูรณ์ในอุปกรณ์ที่ระบุในชั่วโมงที่ผ่านมา คุณสามารถใช้กิจกรรมล่าสุดในอุปกรณ์เพื่อปกป้องแอปจากอุปกรณ์ที่ไม่คาดคิด ซึ่งมีการใช้งานมากเกินไป ซึ่งอาจเป็นสัญญาณของการโจมตีที่กำลังเกิดขึ้น คุณสามารถตัดสินใจว่าจะเชื่อมั่นระดับกิจกรรมในอุปกรณ์ล่าสุดแต่ละระดับมากน้อยเพียงใด โดยพิจารณาจากจำนวนครั้งที่คุณคาดหวังว่าแอปที่ติดตั้งในอุปกรณ์ทั่วไปจะร้องขอโทเค็นความสมบูรณ์ในแต่ละชั่วโมง

หากเลือกรับ recentDeviceActivity ฟิลด์ deviceIntegrity จะมีค่า 2 ค่าดังนี้

deviceIntegrity: {
  deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
  recentDeviceActivity: {
    // "LEVEL_2" is one of several possible values.
    deviceActivityLevel: "LEVEL_2"
  }
}

ก่อนอื่น คุณควรตรวจสอบข้อมูลเพื่อดูระดับกิจกรรมในอุปกรณ์ทั่วไปสำหรับแอปในอุปกรณ์ทั้งหมด จากนั้นคุณจะเลือกได้ว่าแอปควรตอบสนองอย่างไรเมื่ออุปกรณ์ส่งคำขอมากเกินไป หากกิจกรรมสูงเล็กน้อย คุณอาจขอให้ผู้ใช้ลองอีกครั้งในภายหลัง หากกิจกรรม สูงมาก คุณอาจต้องดำเนินการบังคับใช้ที่เข้มงวดขึ้น

คำขอมาตรฐานเทียบกับคำขอแบบคลาสสิก

ในส่วนของการติดตั้งใช้งาน Play Integrity คุณควรพิจารณาคำขอ 2 ประเภทต่อไปนี้ คุณควรใช้คำขอมาตรฐานในกรณีส่วนใหญ่ เพื่อให้ได้รับการตอบกลับที่รวดเร็วที่สุด และควรใช้คำขอแบบคลาสสิกในกรณีที่ จำเป็นต้องมีคำขอที่สร้างขึ้นใหม่เทียบกับบันทึกการรับรองอุปกรณ์

คำขอแบบคลาสสิก

คำขอมาตรฐาน

คำขอจะใช้เวลานานขึ้นและควรส่งคำขอน้อยลง

เช่น เป็นการตรวจสอบแบบครั้งเดียวเป็นครั้งคราวเพื่อดูว่าการดำเนินการที่มีความละเอียดอ่อนเป็นของจริงหรือไม่

ใช้นานๆ ครั้ง

คำขอมีเวลาในการตอบสนองต่ำและใช้ได้ตามต้องการ

คำขอมาตรฐานประกอบด้วย 2 ส่วน ดังนี้

  • เตรียมผู้ให้บริการโทเค็นความสมบูรณ์ (ทำครั้งเดียว)
  • ขอโทเค็นความสมบูรณ์ (ตามต้องการ)

ใช้ตามต้องการ

อ่านข้อมูลเพิ่มเติมเกี่ยวกับคำขอมาตรฐานและคลาสสิกได้ในเอกสารประกอบของ Play Integrity

การใช้งาน

วิธีเริ่มต้นใช้งาน Play Integrity API

โดยค่าเริ่มต้น Play Integrity API อนุญาตคำขอสูงสุด 10, 000 รายการต่อแอปต่อวัน หากต้องการ แสดงความสนใจในการเพิ่มจำนวนคำขอสูงสุดต่อวัน โปรดทำตาม วิธีการเหล่านี้ หากต้องการมีสิทธิ์เพิ่มจำนวนคำขอสูงสุดต่อวัน แอปของคุณต้องใช้ Play Integrity API อย่างถูกต้องและพร้อมให้บริการใน Google Play นอกเหนือจากช่องทางการเผยแพร่อื่นๆ

สิ่งที่ควรทราบเกี่ยวกับ Play Integrity API

การปกป้องความสมบูรณ์โดยอัตโนมัติ (API >= 23)

การปกป้องความสมบูรณ์โดยอัตโนมัติเป็นบริการป้องกันโค้ดการปลอมแปลงที่ ปกป้องแอปของคุณจากการละเมิดความสมบูรณ์ในรูปแบบของการ ปรับเปลี่ยนและการจัดจำหน่ายซ้ำโดยไม่ได้รับอนุญาต บริการนี้ทำงานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต และนักพัฒนาแอปไม่จำเป็นต้องดำเนินการใดๆ ก่อนการทดสอบและไม่ต้องผสานรวมเซิร์ฟเวอร์แบ็กเอนด์

วิธีนี้ช่วยลดการประพฤติมิชอบได้อย่างไร

เมื่อเปิดการปกป้องความสมบูรณ์โดยอัตโนมัติ Google Play จะเพิ่มการตรวจสอบลงในโค้ดของแอปและทำให้การตรวจสอบดังกล่าวนำออกได้ยากด้วยการปรับให้ยากต่อการอ่าน (Obfuscation) ขั้นสูงและเทคนิคต่อต้านวิศวกรรมย้อนกลับ ในรันไทม์ การป้องกันจะตรวจสอบว่าแอปของคุณถูกดัดแปลงหรือนำไปจัดจำหน่ายซ้ำหรือไม่

  • หากตรวจสอบโปรแกรมติดตั้งไม่สำเร็จ ระบบจะแสดงข้อความเตือนให้ผู้ใช้ดาวน์โหลดแอปของคุณจาก Google Play
  • หากตรวจสอบการปรับเปลี่ยนไม่สำเร็จ แอปจะไม่ทำงาน

วิธีนี้ช่วยให้ผู้ใช้ปลอดภัยจากเวอร์ชันที่มีการปรับเปลี่ยนของแอปคุณ

การใช้งาน

การปกป้องความสมบูรณ์โดยอัตโนมัติพร้อมให้บริการแก่พาร์ทเนอร์ Play บางรายเท่านั้นในขณะนี้ โปรดติดต่อทีมสนับสนุนนักพัฒนาแอป Google Play หากฟีเจอร์นี้ไม่พร้อมให้บริการใน Google Play Console และคุณต้องการแสดงความสนใจในการรับสิทธิ์เข้าถึง

คุณสามารถเปิดการปกป้องเมื่อสร้างรุ่นหรือในหน้าได้รับการปกป้องด้วย Google Play การปกป้องความสมบูรณ์โดยอัตโนมัติ กำหนดให้แอปของคุณต้องใช้ Play App Signing

โปรดทดสอบแอปที่มีการป้องกันก่อนที่จะโปรโมตการเผยแพร่ไปยังเวอร์ชันที่ใช้งานจริง

ข้อควรจำ

  • อย่าเผยแพร่แอปเวอร์ชันที่ไม่มีการปกป้อง
  • โปรดระมัดระวังเวลาใช้โซลูชันการป้องกันการปลอมแปลงหลายอย่างร่วมกัน
  • ทดสอบแอปที่มีการปกป้องก่อนเผยแพร่เป็นเวอร์ชันที่ใช้งานจริง
  • ตรวจสอบสถิติตามปกติเพื่อดูว่ามีข้อขัดข้องเพิ่มขึ้นหรือไม่
  • คุณรายงานแอปเวอร์ชันที่ถูกแคร็กให้ Google Play ทราบได้