GWP-ASan et KFENCE

GWP-ASan et KFENCE sont des outils de détection probabiliste de mémoire pour l'espace utilisateur et le noyau, respectivement. Lorsqu'elle est activée, un petit nombre d'allocations sont protégées par des pages de mémoire supplémentaires qui entourent la mémoire allouée. Cela permet de détecter les dépassements de tampon et les utilisations après libération avec une surcharge de performances négligeable. Même avec un faible taux d'échantillonnage pour les allocations protégées, lorsqu'ils sont déployés à grande échelle, ils peuvent détecter efficacement les bogues de sécurité de la mémoire. Depuis leur introduction, ces outils ont permis d'identifier de nombreux bugs de la plateforme et se sont révélés être un outil précieux pour améliorer la stabilité et la sécurité. Nous encourageons les fournisseurs à les activer et à surveiller de près les bogues détectés sur les appareils des utilisateurs finaux.

Les développeurs doivent vérifier la présence de plantages en vérifiant /data/tombstones , logcat ou en surveillant le pipeline DropboxManager du fournisseur pour détecter les bogues des utilisateurs finaux.

Pour plus d'informations, consultez nos documents sur le débogage du code natif Android.

Débogage du code natif de la plateforme Android

GWP-ASan pour détecter les bugs de sécurité de la mémoire de l'espace utilisateur

GWP-ASan a été introduit dans Android 11 pour les allocations de tas d'espace utilisateur. Lorsque GWP-ASan détecte un bug, il enregistre un rapport de crash avec Cause: [GWP-ASan]: et met fin au processus. Les rapports de bogues contiennent des informations supplémentaires sur l'allocation et la désallocation qui facilitent l'identification de la cause première.

GWP-ASan est activé de manière aléatoire, au démarrage, pour 1 % des processus ou applications système et pour les applications qui définissent le android:gwpAsanMode dans leur fichier AndroidManifest.xml .

GWP-ASan

KFENCE pour détecter les bogues de sécurité de la mémoire du noyau

Android 12 a introduit KFENCE pour les allocations de tas du noyau. Lorsque KFENCE détecte un bug, il enregistre un rapport de crash commençant par BUG: KFENCE, désactive les pages de garde et poursuit l'exécution. Cela active un mécanisme de détection des bogues du noyau qui a un impact minimal sur l'expérience utilisateur.

Pour en savoir plus sur KFENCE, consultez la documentation disponible sur https://www.kernel.org