MTE można włączyć niezależnie w jądrze Androida i w dowolnym w systemie Android. Google nie narzuca żadnych konkretnych i zapewnia urządzeniu maksymalną elastyczność budowniczych.
W tym dokumencie opisujemy ustawienia i zakres MTE, które naszym zdaniem zapewnia odpowiedni kompromis między bezpieczeństwem a kosztami w przypadku Androida. dla użytkowników z włączonym usuwaniem luk w zabezpieczeniach.
Jądro
Rozszerzenie MTE w jądrze jest konfigurowane za pomocą wiersza poleceń. domyślnie jest włączone w trybie synchronizacji. Może to ulec zmianie w przypadku: kilka powodów:
- Wykazano, że w znacznym stopniu wpływa on na skuteczność i potrzeby i optymalizacji.
- Powszechnie uważa się, że jakość kodu jądra jest niewystarczająca, MTE w trybie egzekwowania (tj. „panic-w-failure”).
Obecnie zalecamy wyłączenie MTE jądra
na urządzeniach produkcyjnych. Aby to zrobić, dodaj kasan=off
do
wiersza poleceń jądra systemu operacyjnego.
Obszar użytkownika
Google udostępnia domyślną listę plików binarnych przestrzeni użytkownika, które mają być chronione z MTE. Lista została przygotowana na podstawie danych wejściowych z Androida Security oraz zawiera komponenty, które są objęte podwyższonymi uprawnieniami lub obsługują niezaufane danych wejściowych. Bieżąca lista zalecanych natywnych plików binarnych z MTE można znaleźć w memtag-common.mk w kompilacji Androida. systemu. Dodatkowo: kilka aplikacje systemowe są również uwzględnione: obecnie, Nfc, Bluetooth i SecureElement. Pliki binarne i aplikacje są włączone domyślnie w trybie asynchronicznym.
Obecnie zalecamy użycie domyślnej listy celów. (zmiany nie są wymagane). Zalecamy też ocenę Dodatki BSP i OEM do podstawowego systemu oraz włączenie MTE w wybranych które zwracają szczególną uwagę na bezpieczeństwo.
Aplikacje
Wymienione powyżej 3 aplikacje systemowe są jedynymi, w których
Aktualnie dla MTE. Aby aplikacja innej firmy mogła
MTE, w polu AndroidManifest.xml
należy określić
android:memtagMode
z inną wartością
niż off
. Dlatego też typowe zestawy testów porównawczych, takie jak
Geekbench i AnTuTu nie obsługują MTE. Jeśli MTE jądra
wyłączone (patrz: kasan=off
powyżej), wartości porównawcze będą
może wykazywać bardzo ograniczony wpływ na skuteczność.
W przypadku pozostałych aplikacji cały czas pracujemy nad obsługą MTE
Chrome. Obecna wersja Chrome w Sklepie Play zawiera
memtagMode=async
w pliku manifestu. Niezbędne jest też
że wiele aplikacji dbających o bezpieczeństwo w ekosystemie Androida
(np. aplikacje bankowe) zrobią to samo. Dzień
z drugiej strony spodziewamy się, że niektóre aplikacje wymagające
takie jak gry, nie wyłączają MTE.
Inne środki transportu
Powyższe instrukcje używają tylko asynchronicznego trybu MTE z całego świata. W zależności od wyposażenia inne tryby mogą być prawie lub równie szybko. Zapewniają też lepszą diagnostykę i częściowo do wykrywania luk w zabezpieczeniach.
Zalecamy przetestowanie jeszcze jednej lub dwóch innych konfiguracji
spełniają wymagania dotyczące wydajności/mocy urządzenia. Tryby MTE
można ustawić dla każdego rdzenia procesora w systemie, wpisując
/sys/devices/system/cpu/cpu*/mte_tcf_preferred
Na przykład, pisanie
Działanie sync
(lub asymm
) spowodowałoby powodzenie procesu w przestrzeni użytkownika, który zażądał
Tryb asynchroniczny jest automatycznie uaktualniany do trybu synchronizacji (lub Asymm) w trybie dyskretnym.
działającego na tym rdzeniu. Tę konfigurację możesz przeprowadzić na urządzeniu w pliku .rc
podczas uruchamiania.
Zalecamy pomiar jednej lub dwóch innych konfiguracji, aby sprawdzić, czy spełniają wymagania w zakresie wydajności i mocy obliczeniowej. Niektóre ciekawe konfiguracje do zbadania:
- Asymm we wszystkich rdzeniach.
- Asymm w dużych rdzeniach, synchronizacja w innych rdzeniach.
Aby sprawdzić, czy proces żąda trybu asynchronicznego (z możliwym automatycznego uaktualniania), sprawdź, czy poniższy wiersz zawiera zarówno PR_MTE_TCF_SYNC i PR_MTE_TCF_ASYNC:
debuggerd <PID> | head -30 | grep tagged_addr
Niestety nie ma łatwego sposobu na sprawdzenie, jaki jest skuteczny tryb proces; ale każdy proces, który wyświetla obie wartości wymienione powyżej, jest zależy od sposobu automatycznego uaktualnienia.