GWP-ASan i KFENCE

GWP-ASan i KFENCE to probabilistyczne narzędzia do wykrywania problemów z pamięcią odpowiednio w przestrzeni użytkownika i jądrze. Gdy ta opcja jest włączona, niewielka liczba przydziałów jest chroniona za pomocą dodatkowych stron dotyczących pamięci, które otaczają przydzieloną pamięć. Dzięki temu można wykrywać przepełnienie bufora i użycie po zwolnieniu z niewielkim obciążeniem wydajności. Nawet przy niewielkiej próbie próbek chronionych alokacji, po wdrożeniu na dużą skalę można skutecznie wykrywać błędy w zabezpieczeniach pamięci. Od czasu ich wprowadzenia narzędzia te pomogły wykryć wiele błędów platformy i okazało się, że są one cennym narzędziem do poprawy stabilności i bezpieczeństwa. Zachęcamy dostawców do włączenia tych funkcji i dokładnego monitorowania błędów wykrytych na urządzeniach użytkowników końcowych.

Deweloperzy powinni sprawdzać obecność awarii za pomocą narzędzi /data/tombstones, logcat lub monitorowania potoku DropboxManager dostawcy pod kątem błędów użytkowników.

Więcej informacji znajdziesz w dokumentacji dotyczącej debugowania kodu natywnego na Androida.

Debugowanie natywnego kodu platformy Androida

GWP-ASan do wykrywania błędów bezpieczeństwa pamięci w przestrzeni użytkownika

W Androidzie 11 dla przestrzeni użytkownika wprowadziliśmy mechanizm GWP-ASan do obsługi alokacji stosu. Gdy GWP-ASan wykryje błąd, rejestruje raport o awarii z użyciem Cause: [GWP-ASan]: i kończy proces. Raporty o błędach zawierają dodatkowe informacje o przypisaniu i odpisaniu, które ułatwiają znalezienie przyczyny.

GWP-ASan jest losowo włączany podczas uruchamiania w przypadku 1% procesów systemowych lub aplikacji oraz aplikacji, które w pliku AndroidManifest.xml mają ustawioną wartość android:gwpAsanMode.

GWP-ASan

KFENCE do wykrywania błędów dotyczących bezpieczeństwa pamięci jądra

Android 12 wprowadził KFENCE do alokacji stosu jądra. Gdy KFENCE wykryje błąd, zarejestruje raport o awarii, zaczynając od BUG: KFENCE,, wyłącza strony zabezpieczające i kontynuuje wykonywanie. Umożliwia to włączenie mechanizmu wykrywania błędów jądra, który minimalnie wpływa na wrażenia użytkownika.

Więcej informacji o KFENCE znajdziesz w dokumentacji dostępnej na stronie https://www.kernel.org.