กรณีการใช้งาน

หน้านี้มีกรณีการใช้งานทั่วไปสำหรับ AVF

การคอมไพล์แบบแยก

เครื่องเสมือน (VM) ที่ได้รับการปกป้องเป็นพื้นที่ปลอดภัยของซอฟต์แวร์ ซึ่งมี สภาพแวดล้อมที่ปลอดภัยในการคอมไพล์โค้ดที่ละเอียดอ่อนด้านความปลอดภัย สภาพแวดล้อมนี้ช่วยให้ย้ายการคอมไพล์ bootclasspath และ JAR ของเซิร์ฟเวอร์ระบบ (ที่ทริกเกอร์โดยการอัปเดต APEX) จากการบูตช่วงแรกไปเป็นการบูตก่อนรีบูตได้ และช่วยลดเวลาในการบูตหลังการอัปเดต APEX ได้อย่างมาก

การใช้งานอยู่ใน com.android.compos APEX คอมโพเนนต์นี้ไม่บังคับและสามารถรวมได้โดยใช้ makefile

การคอมไพล์แบบแยก

รูปที่ 1 การคอมไพล์ JAR ในการอัปเดตเมนไลน์ การคอมไพล์ JAR ในการอัปเดตเมนไลน์

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

บริการคอมไพเลชันใน VM จะสร้างลายเซ็นก็ต่อเมื่อไม่มีข้อผิดพลาดในระหว่างการคอมไพล์ทั้งหมดเท่านั้น Android สามารถเรียกข้อมูลคีย์สาธารณะจาก VM เพื่อยืนยันลายเซ็นได้

ระบบจะสร้างคีย์ของ VM จากโปรไฟล์ DICE ของ VM ซึ่งกำหนดโดย APEX และ APK ที่ติดตั้งใน VM นอกเหนือจากพารามิเตอร์อื่นๆ ของ VM เช่น ความสามารถในการแก้ไขข้อบกพร่อง

Android จะบูต VM เพื่อตรวจสอบว่าคีย์ถูกต้องหรือไม่ เพื่อพิจารณาว่าคีย์สาธารณะไม่ได้มาจาก VM ที่ไม่คาดคิด ระบบจะบูต VM ในช่วงต้นของการบูต หลังจากอัปเดต APEX แต่ละครั้ง

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

API ที่เปิดเผยจาก VM เป็นพื้นที่การโจมตี ระบบจะถือว่าไฟล์อินพุตและพารามิเตอร์ทั้งหมดมาจากไคลเอ็นต์ที่ไม่น่าเชื่อถือ และต้องได้รับการยืนยันและตรวจสอบก่อนประมวลผล

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

  • เนื้อหาของไฟล์อินพุตต้องได้รับการยืนยันก่อนใช้งานโดยใช้อัลกอริทึม fs-verity หากต้องการให้ไฟล์อินพุตพร้อมใช้งานใน VM คุณต้องระบุแฮชรูทในคอนเทนเนอร์ (APK) ที่มีส่วนร่วมในโปรไฟล์ DICE ของ VM แฮชรูทที่เชื่อถือได้ช่วยป้องกันไม่ให้ผู้โจมตีดัดแปลง อินพุตโดยไม่ถูกตรวจพบ
  • ต้องรักษาความสมบูรณ์ของไฟล์เอาต์พุตใน VM แม้ว่าระบบจะจัดเก็บไฟล์เอาต์พุตไว้ใน Android แต่ในระหว่างการสร้าง ระบบจะรักษาความสมบูรณ์ด้วยfs-verityรูปแบบทรีเดียวกัน แต่สามารถอัปเดตแบบไดนามิกได้ คุณระบุไฟล์เอาต์พุตสุดท้ายได้ด้วยแฮชรูท ซึ่งแยกอยู่ใน VM บริการใน VM จะปกป้องไฟล์เอาต์พุต ด้วยลายเซ็น

สภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Linux

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

สภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Linux พร้อมใช้งานในอุปกรณ์บางรุ่นและทำงาน ในเครื่องเสมือนที่ไม่มีการป้องกัน

กรณีการใช้งานสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Linux

รูปที่ 2 กรณีการใช้งานสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Linux

ขั้นตอนการทำงานระดับสูงมีดังนี้

  1. หากต้องการใช้สภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Linux ให้เปิดใช้ตัวเลือกสำหรับนักพัฒนาแอป
  2. หลังจากเปิดใช้ตัวเลือกนักพัฒนาซอฟต์แวร์แล้ว แอปเทอร์มินัลจะปรากฏในโปรแกรมเรียกใช้หน้าแรก
  3. เปิดแอปเทอร์มินัลจากตัวเรียกใช้หน้าแรก
  4. หากจำเป็น แอป Terminal จะดาวน์โหลดอิมเมจระบบปฏิบัติการจาก Play
  5. แอปเทอร์มินัลใช้เฟรมเวิร์กการจำลองการทำงานแบบเสมือนของ Android (AVF) เพื่อ สร้างเครื่องเสมือน (VM)
  6. จากนั้น AVF จะเรียกใช้ VM ด้วยอิมเมจระบบปฏิบัติการ
  7. เครื่องเสมือนจะบูตระบบปฏิบัติการจากอิมเมจ
  8. หลังจาก VM บูตแล้ว WebView ในแอปเทอร์มินัลจะเชื่อมต่อกับบริการเว็บ ในเครื่องเสมือน บริการนี้ให้สิทธิ์เข้าถึงเทอร์มินัลผ่าน HTTP
  9. คุณโต้ตอบกับเทอร์มินัลได้โดยป้อนคำสั่งและดูเอาต์พุตในแอป

คอมโพเนนต์ระดับสูงของ VM ของ Linux มีดังนี้

  • แอป Terminal: แอปพลิเคชัน Android ที่มีอินเทอร์เฟซเทอร์มินัล โดยจะใช้ WebView เพื่อเชื่อมต่อกับบริการเว็บที่ทำงานใน VM สำหรับการโต้ตอบ แอปนี้จะปิดใช้อยู่โดยค่าเริ่มต้น เปิดใช้งานในการตั้งค่าสำหรับนักพัฒนาแอป
  • เฟรมเวิร์กการจำลองการทำงานแบบเสมือนของ Android (AVF): ระบบย่อยที่มีอยู่ของ Android สำหรับการสร้างและจัดการ VM โดยต้องมีการแก้ไขเล็กน้อยเพื่อรองรับ อิมเมจระบบปฏิบัติการที่กำหนดเองสำหรับฟีเจอร์นี้
  • เครื่องเสมือน: VM ที่ AVF สร้างขึ้น โดยจะโฮสต์บริการเทอร์มินัล และ AVF จะสร้างขึ้นเพื่อฟังก์ชันการทำงานของแอป Terminal โดยเฉพาะ
  • อิมเมจระบบปฏิบัติการ: อิมเมจระบบปฏิบัติการที่อิงตาม Debian ซึ่งได้รับการแก้ไขเล็กน้อยจากต้นทาง Debian แอปเทอร์มินัลจะดาวน์โหลดรูปภาพนี้จากเซิร์ฟเวอร์ภายนอกของ Google ซึ่งเป็นรากฐานสำหรับการทำงานของ VM
  • Guest Agent: ซอฟต์แวร์ใหม่ใน VM โดยจะรายงานสถานะของระบบปฏิบัติการไปยัง AVF และให้การควบคุมเครื่องเสมือน
  • ttyd: ซอฟต์แวร์โอเพนซอร์สที่ทำงานใน VM ซึ่งใช้การจำลองเทอร์มินัลผ่าน HTTP WebView ของแอปเทอร์มินัลจะเชื่อมต่อกับเซิร์ฟเวอร์
  • Tethering Manager: ระบบย่อยของ Android ที่มีอยู่ โดยจะให้สิทธิ์เข้าถึงเครือข่าย แก่เครื่องเสมือนด้วยการเชื่อมต่อ VM กับอุปกรณ์ที่ใช้ Android

ความปลอดภัยของเนื้อหาในอุปกรณ์

Content Safety On-device เป็นโซลูชันด้านความปลอดภัยของเนื้อหาที่รักษาความเป็นส่วนตัวซึ่งสร้างขึ้น โดยทีม Content Safety On-device โดยจะทำการจัดประเภทความปลอดภัยของเนื้อหา สำหรับผลิตภัณฑ์ต่างๆ ของ Google ในอุปกรณ์ 1P/3P และปกป้องผู้ใช้กว่า 1 พันล้านคนจาก เนื้อหาที่เป็นการละเมิด โดยไม่ต้องส่งข้อมูลผู้ใช้กลับไปยังเซิร์ฟเวอร์ของ Google โดยออกแบบมาให้เป็นไปตามหลักการของ Private Compute Core (PCC) เพื่อยืนยันการสื่อสารที่โปร่งใสและรักษาความเป็นส่วนตัวระหว่าง ไคลเอ็นต์ เครื่องเสมือน (VM) และป้องกันการลักลอบนำข้อมูลของผู้ใช้ ออกไป โดยสามารถใช้สำหรับสิ่งต่างๆ เช่น การเปิดใช้การตรวจหาการละเมิดในอุปกรณ์ เช่น การตรวจหาภัยคุกคามแบบเรียลไทม์ของ Play Protect

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

ขั้นตอนการทำงานระดับสูงมีดังนี้

  1. การตรวจจับภัยคุกคามแบบเรียลไทม์จะส่งการแจ้งเตือนไปยัง Private Compute Services เพื่อเริ่ม VM Private Compute Services เป็นตัวกลางที่เน้นความเป็นส่วนตัวระหว่าง PCC กับ เซิร์ฟเวอร์ระบบคลาวด์
  2. Private Compute Services จะเริ่ม VM และรับคีย์สาธารณะจาก VM
  3. Private Compute Services จะโอนความเป็นเจ้าของ VM ให้กับการตรวจหาภัยคุกคามแบบเรียลไทม์ของ Play Protect
  4. Private Compute Services จะส่งการรับรองและคีย์สาธารณะไปยังเซิร์ฟเวอร์
  5. เซิร์ฟเวอร์จะยืนยันการรับรองและเข้ารหัสการป้องกันด้วยคีย์สาธารณะของ VM
  6. จากนั้นเซิร์ฟเวอร์จะส่งการปกป้องที่เข้ารหัสกลับไปยังอุปกรณ์
  7. จากนั้นการตรวจจับภัยคุกคามแบบเรียลไทม์ในอุปกรณ์จะใช้การป้องกันที่เข้ารหัส ภายใน VM ได้ VM เป็นเอนทิตีเดียวที่มีคีย์ส่วนตัวซึ่ง ถอดรหัสการป้องกันได้

คอมโพเนนต์ระดับสูงมีดังนี้

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

OEM

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