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

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 ของคุณและคุณต้องการแสดงความสนใจในการรับสิทธิ์เข้าถึง

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

โปรดทดสอบแอปที่มีการป้องกันก่อนโปรโมตรุ่นเป็นเวอร์ชันที่ใช้งานจริง

ข้อควรจำ

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