Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Trường hợp sử dụng

Tài liệu này chứa các trường hợp sử dụng phổ biến cho AVF.

Biên dịch cô lập

Là một vùng bảo mật phần mềm an toàn, một máy ảo được bảo vệ cung cấp một môi trường an toàn để biên dịch mã nhạy cảm với bảo mật. Môi trường này cho phép di chuyển quá trình biên dịch của bootclasspath và JAR của máy chủ hệ thống (được kích hoạt bởi bản cập nhật APEX) từ khởi động sớm đến trước khi khởi động lại và giảm đáng kể thời gian khởi động sau cập nhật APEX.

Việc triển khai là trong APEX com.android.compos . Thành phần này là tùy chọn và có thể được đưa vào bằng makefile .

Biên dịch cô lập

Hình 1. Biên dịch các JAR trên các bản cập nhật Mainline

Mục tiêu bảo mật là biên dịch trung thực đầu vào đã được xác minh và tạo ra đầu ra một cách riêng biệt; Android với tư cách là một ứng dụng khách không đáng tin cậy không thể thay đổi kết quả biên dịch theo bất kỳ cách nào khác ngoài việc khiến nó bị lỗi (khi Android quay trở lại quá trình biên dịch thời gian khởi động).

Dịch vụ biên dịch trong máy ảo chỉ tạo chữ ký nếu không có lỗi trong toàn bộ quá trình biên dịch. Android có thể truy xuất khóa công khai từ máy ảo để xác minh chữ ký.

Khóa của máy ảo được tạo từ cấu hình DICE của máy ảo, được xác định bởi các APEX và APK được gắn vào máy ảo, ngoài các thông số VM khác, chẳng hạn như khả năng gỡ lỗi.

Để xác định xem khóa công khai có phải từ một máy ảo không mong muốn hay không, Android sẽ khởi động máy ảo để xác định xem khóa có chính xác hay không. Máy ảo được khởi động lúc khởi động sớm sau mỗi lần cập nhật APEX.

Với Khởi động được Xác minh của Máy ảo được Bảo vệ, dịch vụ biên dịch chỉ chạy mã đã được xác minh. Do đó, mã có thể xác định chỉ chấp nhận các đầu vào thỏa mãn các điều kiện nhất định, ví dụ: chỉ chấp nhận một tệp đầu vào trong đó tên của nó và thông báo fs-verity được xác định trong danh sách cho phép.

Bất kỳ API nào bị lộ ra từ máy ảo đều là bề mặt tấn công. Tất cả các tệp đầu vào và tham số được giả định là từ một ứng dụng khách không đáng tin cậy và phải được xác minh và kiểm tra trước khi xử lý.

Tính toàn vẹn của tệp đầu vào / đầu ra được VM xác minh, với các tệp được lưu trữ trên Android dưới dạng máy chủ tệp không đáng tin cậy, như sau:

  • Nội dung của tệp đầu vào phải được xác minh trước khi sử dụng bằng thuật toán fs-verity . Để tệp đầu vào có sẵn trong máy ảo, mã băm gốc của tệp đó phải được cung cấp trong vùng chứa (APK) đóng góp vào cấu hình DICE của máy ảo. Với băm gốc đáng tin cậy, kẻ tấn công không thể giả mạo đầu vào mà không bị phát hiện.
  • Tính toàn vẹn của tệp đầu ra phải được duy trì trong máy ảo. Ngay cả khi tệp đầu ra được lưu trữ trên Android, trong quá trình tạo, tính toàn vẹn vẫn được duy trì với cùng một định dạng cây fs-verity nhưng có thể được cập nhật động. Tệp đầu ra cuối cùng có thể được xác định bằng mã băm gốc, được tách biệt trong máy ảo. Dịch vụ trong máy ảo bảo vệ các tệp đầu ra bằng chữ ký.