Cấu hình MTE

MTE có thể được bật một cách độc lập trong nhân hệ điều hành Android và trong bất kỳ trong hệ thống Android. Google không bắt buộc bất kỳ và nhằm mục đích mang lại sự linh hoạt tối đa cho thiết bị trình tạo bản dựng.

Tài liệu này mô tả phạm vi và các chế độ cài đặt MTE mà theo chúng tôi, cung cấp sự cân bằng tốt giữa bảo mật và chi phí cho Android người dùng luôn là giải pháp giảm thiểu lỗ hổng bảo mật.

Kernel

MTE trong nhân được định cấu hình thông qua dòng lệnh. Chiến lược phát hành đĩa đơn mặc định là BẬT ở chế độ Đồng bộ hoá. Điều này có thể thay đổi trong tương lai đối với một số lý do:

  • Thực tế cho thấy chế độ này ảnh hưởng đáng kể đến hiệu suất và nhu cầu tối ưu hoá.
  • Chất lượng mã hạt nhân thường được coi là không đủ để vận chuyển MTE ở chế độ thực thi (tức là hoảng loạn khi không thành công).

Bạn nên tắt MTE cho nhân trên thiết bị sản xuất. Để thực hiện việc này, hãy thêm kasan=off vào dòng lệnh kernel.

Không gian người dùng

Google cung cấp danh sách mặc định các tệp nhị phân không gian người dùng để được bảo vệ cùng MTE. Danh sách này được tạo với thông tin đầu vào từ Android Security và bao gồm các thành phần có đặc quyền và/hoặc xử lý các thành phần không đáng tin cậy đầu vào. Danh sách mới nhất về các tệp nhị phân gốc được đề xuất có MTE trong thời gian memtag-common.mk tệp trong bản dựng Android hệ thống. Ngoài ra, một vài ứng dụng hệ thống cũng được bao gồm: hiện tại, Nfc, Bluetooth và SecureElement. Các tệp nhị phân và ứng dụng này được bật ở chế độ Không đồng bộ theo mặc định.

Bạn nên sử dụng danh sách mục tiêu mặc định (không cần thay đổi). Ngoài ra, bạn nên đánh giá Bổ sung CPF và OEM vào hệ thống cốt lõi, đồng thời bật MTE trên các hệ thống nhạy cảm với tính bảo mật.

Ứng dụng

Ba ứng dụng hệ thống nêu trên là những ứng dụng duy nhất sử dụng MTE hiện tại. Để một ứng dụng bên thứ ba có thể bật MTE, AndroidManifest.xml của MTE sẽ cần chỉ định android:memtagMode với một giá trị khác hơn off. Do đó, các bộ đo điểm chuẩn phổ biến như Geekbench hoặc AnTuTu không chạy với MTE. Nếu MTE hạt nhân cũng là tắt (xem kasan=off ở trên), thì điểm chuẩn sẽ dự kiến sẽ cho thấy tác động rất hạn chế về hiệu suất, nếu có.

Đối với các ứng dụng khác, dịch vụ hỗ trợ MTE đang tích cực phát triển ở Chrome. Phiên bản Cửa hàng Play hiện tại của Chrome bao gồm Chế độ cài đặt memtagMode=async trong tệp kê khai. Đây cũng là kỳ vọng của chúng tôi số lượng ứng dụng có ý thức bảo mật trong hệ sinh thái Android (ví dụ: ứng dụng ngân hàng) cuối cùng cũng sẽ hoạt động tương tự. Trên mặt khác, chúng tôi kỳ vọng rằng một số ứng dụng đòi hỏi CPU cao nhất hiệu suất, chẳng hạn như trò chơi, sẽ chọn luôn tắt MTE.

Chế độ khác

Các hướng dẫn ở trên chỉ sử dụng chế độ MTE không đồng bộ mọi nơi. Tuỳ thuộc vào phần cứng, các chế độ khác có thể gần như, hoặc nhanh nhất có thể. Chúng cũng cung cấp chẩn đoán tốt hơn và phần nào các thuộc tính giảm thiểu lỗ hổng bảo mật mạnh mẽ hơn.

Bạn nên thử nghiệm một hoặc hai cấu hình khác để xem liệu đều đủ tốt cho yêu cầu về hiệu suất/nguồn điện của bạn. Các chế độ MTE có thể được đặt cho mỗi lõi CPU trong hệ thống bằng cách ghi vào /sys/devices/system/cpu/cpu*/mte_tcf_preferred. Ví dụ: viết sync (hoặc asymm) sẽ gây ra bất kỳ quá trình không gian người dùng nào đã yêu cầu Chế độ không đồng bộ hoá sẽ được tự động nâng cấp tự động một cách tự động lên thành Sync (hoặc Asymm) trong khi chạy trên lõi đó. Bạn có thể thiết lập bằng tệp .rc trên thiết bị thời gian khởi động.

Bạn nên đo lường một hoặc hai cấu hình khác để kiểm tra xem chúng đáp ứng các yêu cầu về hiệu suất và sức mạnh của bạn. Hơi nhiều các cấu hình thú vị để khám phá:

  • Không đồng đều trên tất cả các lõi.
  • Không đồng bộ trên(các) lõi lớn, Đồng bộ hoá trên các lõi khác.

Để xác minh một quy trình đang yêu cầu Chế độ không đồng bộ (có thể tự động nâng cấp), hãy kiểm tra để đảm bảo dòng sau bao gồm cả PR_MTE_TCF_SYNCPR_MTE_TCF_ASYNC:

  debuggerd <PID> | head -30 | grep tagged_addr

Rất tiếc, không có cách nào dễ dàng để xem chế độ hiệu quả cho quá trình; nhưng bất kỳ quá trình nào cho thấy cả hai giá trị được liệt kê ở trên đều tuỳ thuộc vào hành vi tự động nâng cấp.