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 Cloud
- ผสานรวม 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 ของคุณและคุณต้องการแสดงความสนใจในการรับสิทธิ์เข้าถึง
คุณสามารถเปิดการปกป้องเมื่อสร้างรุ่นหรือในหน้าความสมบูรณ์ของแอป (รุ่น > ความสมบูรณ์ของแอป) ก็ได้ การปกป้องความสมบูรณ์โดยอัตโนมัติกำหนดให้แอปของคุณใช้ Play App Signing
โปรดทดสอบแอปที่มีการป้องกันก่อนโปรโมตรุ่นเป็นเวอร์ชันที่ใช้งานจริง
ข้อควรจำ
- อย่าเผยแพร่แอปเวอร์ชันที่ไม่มีการปกป้อง
- โปรดระมัดระวังเวลาใช้โซลูชันการป้องกันการปลอมแปลงหลายอย่างร่วมกัน
- ทดสอบแอปที่ได้รับการปกป้องก่อนเผยแพร่เป็นเวอร์ชันที่ใช้งานจริง
- ตรวจสอบสถิติตามปกติเพื่อดูว่าจำนวนข้อขัดข้องเพิ่มขึ้นหรือไม่
- คุณรายงานแอปเวอร์ชันที่ถูกแคร็กให้ Google Play ทราบได้