GWP-ASan i KFENCE

GWP-ASan i KFENCE to probabilistyczne narzędzia do wykrywania pamięci, odpowiednio dla przestrzeni użytkownika i jądra. Po włączeniu niewielka liczba alokacji jest chroniona dodatkowymi stronami pamięci otaczającymi przydzieloną pamięć. Umożliwia to wykrywanie przepełnień bufora i zwolnień przy znikomym narzucie wydajności. Nawet przy małej częstotliwości próbkowania dla strzeżonych alokacji, wdrożone na dużą skalę, mogą skutecznie wykrywać błędy związane z bezpieczeństwem pamięci. Od czasu ich wprowadzenia narzędzia te pomogły zidentyfikować wiele błędów platformy i okazały się cennym narzędziem poprawiającym stabilność i bezpieczeństwo. Zachęcamy dostawców do ich włączenia i dokładnego monitorowania błędów wykrytych na urządzeniach użytkowników końcowych.

Programiści powinni sprawdzić obecność awarii, sprawdzając /data/tombstones , logcat lub monitorując potok DropboxManager dostawcy pod kątem błędów użytkownika końcowego.

Aby uzyskać więcej informacji, zobacz nasze dokumenty dotyczące debugowania natywnego kodu systemu Android.

Debugowanie natywnego kodu platformy Android

GWP-ASan do wykrywania błędów związanych z bezpieczeństwem pamięci użytkownika

GWP-ASan został wprowadzony w Androidzie 11 na potrzeby alokacji sterty w przestrzeni użytkownika. Gdy GWP-ASan wykryje błąd, rejestruje raport o awarii z Cause: [GWP-ASan]: i kończy proces. Raporty o błędach zawierają dodatkowe informacje o alokacji i dezalokacji, które ułatwiają identyfikację pierwotnej przyczyny.

GWP-ASan jest losowo włączany podczas uruchamiania dla 1% procesów systemowych lub aplikacji oraz dla aplikacji, które ustawiają android:gwpAsanMode w swoim pliku AndroidManifest.xml .

GWP-ASan

KFENCE do wykrywania błędów związanych z bezpieczeństwem pamięci jądra

W systemie Android 12 wprowadzono KFENCE do alokacji sterty jądra. Kiedy KFENCE wykryje błąd, rejestruje raport o awarii zaczynający się od BUG: KFENCE, wyłącza strony ochronne i kontynuuje wykonywanie. Umożliwia to mechanizm wykrywania błędów jądra, który minimalnie wpływa na wygodę użytkownika.

Aby dowiedzieć się więcej o KFENCE, zobacz dokumentację dostępną na stronie https://www.kernel.org