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

playProtectVerdict อาจมีค่าใดค่าหนึ่งต่อไปนี้
| คำตัดสิน | คำอธิบาย | การดำเนินการที่แนะนำ |
|---|---|---|
|
Play Protect เปิดอยู่และไม่พบปัญหาเกี่ยวกับแอปใน อุปกรณ์ |
Play Protect เปิดอยู่และไม่พบปัญหาใดๆ ผู้ใช้จึงไม่ต้องดำเนินการใดๆ |
|
Play Protect เปิดอยู่ แต่ยังไม่มีการสแกน อุปกรณ์หรือแอป Play Store อาจได้รับการรีเซ็ตเมื่อเร็วๆ นี้ |
Play Protect เปิดอยู่และไม่พบปัญหาใดๆ ผู้ใช้จึงไม่ต้องดำเนินการใดๆ |
|
Play Protect ปิดอยู่ |
Play Protect เปิดอยู่และไม่พบปัญหาใดๆ ผู้ใช้จึงไม่ต้องดำเนินการใดๆ |
|
Play Protect เปิดอยู่และพบแอปที่อาจเป็นอันตราย ซึ่งติดตั้งในอุปกรณ์ |
คุณขอให้ผู้ใช้เปิด Play Protect และดำเนินการตามคำเตือนของ Play Protect ได้ ทั้งนี้ขึ้นอยู่กับความเสี่ยงที่คุณยอมรับได้ หากผู้ใช้ไม่สามารถปฏิบัติตามข้อกำหนดเหล่านี้ คุณอาจบล็อกไม่ให้ผู้ใช้ดำเนินการในเซิร์ฟเวอร์ |
|
Play Protect เปิดอยู่และพบแอปที่เป็นอันตรายที่ติดตั้ง ในอุปกรณ์ |
คุณขอให้ผู้ใช้เปิด Play Protect และดำเนินการตามคำเตือนของ Play Protect ได้ ทั้งนี้ขึ้นอยู่กับความเสี่ยงที่คุณยอมรับได้ หากผู้ใช้ไม่สามารถปฏิบัติตามข้อกำหนดเหล่านี้ คุณอาจบล็อกไม่ให้ผู้ใช้ดำเนินการในเซิร์ฟเวอร์ |
|
ระบบไม่ได้ประเมินคำตัดสินของ 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 ใน Google Play Console และลิงก์กับโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google
- ผสานรวม Play Integrity API ในแอป
- ตัดสินใจว่าจะจัดการผลการตัดสินอย่างไร
โดยค่าเริ่มต้น Play Integrity API อนุญาตคำขอสูงสุด 10, 000 รายการต่อแอปต่อวัน หากต้องการ แสดงความสนใจในการเพิ่มจำนวนคำขอสูงสุดต่อวัน โปรดทำตาม วิธีการเหล่านี้ หากต้องการมีสิทธิ์เพิ่มจำนวนคำขอสูงสุดต่อวัน แอปของคุณต้องใช้ Play Integrity API อย่างถูกต้องและพร้อมให้บริการใน Google Play นอกเหนือจากช่องทางการเผยแพร่อื่นๆ
สิ่งที่ควรทราบเกี่ยวกับ Play Integrity API
- คุณต้องจัดการข้อผิดพลาดในการตอบกลับจาก Play Integrity API อย่างเหมาะสม โปรดดูคำแนะนำเกี่ยวกับกลยุทธ์การลองใหม่และการบังคับใช้ที่นี่ ตามรหัสข้อผิดพลาด
- Play Integrity API มีเครื่องมือทดสอบสำหรับการตอบกลับ
- หากต้องการดูผลลัพธ์ความสมบูรณ์จากอุปกรณ์ ให้ทำตามขั้นตอนต่อไปนี้
- อ่านข้อควรพิจารณาด้านความปลอดภัยเหล่านี้เพื่อดูแนวทางปฏิบัติที่แนะนำในการใช้ Play Integrity API
การปกป้องความสมบูรณ์โดยอัตโนมัติ (API >= 23)
การปกป้องความสมบูรณ์โดยอัตโนมัติเป็นบริการป้องกันโค้ดการปลอมแปลงที่ ปกป้องแอปของคุณจากการละเมิดความสมบูรณ์ในรูปแบบของการ ปรับเปลี่ยนและการจัดจำหน่ายซ้ำโดยไม่ได้รับอนุญาต บริการนี้ทำงานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต และนักพัฒนาแอปไม่จำเป็นต้องดำเนินการใดๆ ก่อนการทดสอบและไม่ต้องผสานรวมเซิร์ฟเวอร์แบ็กเอนด์
วิธีนี้ช่วยลดการประพฤติมิชอบได้อย่างไร
เมื่อเปิดการปกป้องความสมบูรณ์โดยอัตโนมัติ Google Play จะเพิ่มการตรวจสอบลงในโค้ดของแอปและทำให้การตรวจสอบดังกล่าวนำออกได้ยากด้วยการปรับให้ยากต่อการอ่าน (Obfuscation) ขั้นสูงและเทคนิคต่อต้านวิศวกรรมย้อนกลับ ในรันไทม์ การป้องกันจะตรวจสอบว่าแอปของคุณถูกดัดแปลงหรือนำไปจัดจำหน่ายซ้ำหรือไม่
- หากตรวจสอบโปรแกรมติดตั้งไม่สำเร็จ ระบบจะแสดงข้อความเตือนให้ผู้ใช้ดาวน์โหลดแอปของคุณจาก Google Play
- หากตรวจสอบการปรับเปลี่ยนไม่สำเร็จ แอปจะไม่ทำงาน
วิธีนี้ช่วยให้ผู้ใช้ปลอดภัยจากเวอร์ชันที่มีการปรับเปลี่ยนของแอปคุณ
การใช้งาน
การปกป้องความสมบูรณ์โดยอัตโนมัติพร้อมให้บริการแก่พาร์ทเนอร์ Play บางรายเท่านั้นในขณะนี้ โปรดติดต่อทีมสนับสนุนนักพัฒนาแอป Google Play หากฟีเจอร์นี้ไม่พร้อมให้บริการใน Google Play Console และคุณต้องการแสดงความสนใจในการรับสิทธิ์เข้าถึง
คุณสามารถเปิดการปกป้องเมื่อสร้างรุ่นหรือในหน้าได้รับการปกป้องด้วย Google Play การปกป้องความสมบูรณ์โดยอัตโนมัติ กำหนดให้แอปของคุณต้องใช้ Play App Signing
โปรดทดสอบแอปที่มีการป้องกันก่อนที่จะโปรโมตการเผยแพร่ไปยังเวอร์ชันที่ใช้งานจริง
ข้อควรจำ
- อย่าเผยแพร่แอปเวอร์ชันที่ไม่มีการปกป้อง
- โปรดระมัดระวังเวลาใช้โซลูชันการป้องกันการปลอมแปลงหลายอย่างร่วมกัน
- ทดสอบแอปที่มีการปกป้องก่อนเผยแพร่เป็นเวอร์ชันที่ใช้งานจริง
- ตรวจสอบสถิติตามปกติเพื่อดูว่ามีข้อขัดข้องเพิ่มขึ้นหรือไม่
- คุณรายงานแอปเวอร์ชันที่ถูกแคร็กให้ Google Play ทราบได้