À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les outils de nettoyage sont un groupe d'outils d'analyse dynamique qui détectent les erreurs dans les programmes au moment de l'exécution via une instrumentation supplémentaire insérée par le compilateur. Cela inclut la détection des problèmes de sécurité de la mémoire. Android est compatible avec les nettoyeurs suivants et vous recommande vivement de les utiliser:
AddressSanitizer (HWASan) assisté par le matériel
HWASan est le principal outil de nettoyage qui permet de détecter les problèmes de sécurité de la mémoire. Il nécessite ARM64 et peut détecter:
Débordement positif/négatif de la pile ou du tampon de tas de mémoire
Bugs "use-after-free" au niveau des tas de mémoire
Utilisation de la pile après le champ d'application
Utilisation de la pile après le retour
Bugs de type "double free" ou "wild free"
Address Sanitizer (ASan)
ASan est un outil semblable à HWASan. Il fonctionne sur davantage de plates-formes, mais n'est pas compatible avec Android.
KernelAddress Sanitizer (KASan)
KASan est le pendant du kernel des outils de l'espace utilisateur ci-dessus. Il partage la même implémentation de compilateur. KASan et ASan/HWASan sont complémentaires, car l'un s'applique au noyau et l'autre à l'espace utilisateur.
Nous vous recommandons d'activer les deux en même temps pour réduire le nombre de configurations de compilation et la matrice de test.
UndefinedBehavior Sanitizer (UBSan)
UBSan effectue une instrumentation au moment de la compilation pour rechercher différents types de comportements non définis (non sécurisés en termes de mémoire). Cela inclut la vérification des débordements d'entiers signés et non signés (IntSan), les vérifications des limites pour les tableaux de taille statique (BoundsSan) et de nombreux autres types de comportements non définis. IntSan et BoundsSan peuvent également être activés en production pour atténuer les risques de sécurité.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Sanitizers\n\n| **Note:** This page talks about sanitizers for Android platform development. For sanitizers for app development, refer to the [NDK documentation](https://developer.android.com/ndk/guides/memory-debug).\n\nThe sanitizers are a group of dynamic analysis tools that find mistakes in\nprograms at runtime through additional instrumentation that was inserted by the\ncompiler. This includes detecting\n[memory safety](/docs/security/test/memory-safety) issues. Android supports\nand strongly recommends usage of the following sanitizers:\n\nHardware-assisted AddressSanitizer (HWASan)\n-------------------------------------------\n\n[HWASan](/docs/security/test/hwasan) is the main sanitizer to provide detection\nfor memory safety problems. It requires ARM64 and can detect:\n\n- Stack and heap buffer overflow or underflow\n- Heap use after free\n- Stack use after scope\n- Stack use after return\n- Double free or wild free\n\nAddress sanitizer (ASan)\n------------------------\n\n[ASan](/docs/security/test/asan) is a tool similar to HWASan. It works on more\nplatforms, but is unsupported on Android.\n\nKernelAddress sanitizer (KASan)\n-------------------------------\n\n[KASan](/docs/security/test/kasan) is the kernel counterpart of the userspace\ntools above. It shares the same compiler implementation. KASan and ASan/HWASan\nare complementary as one tool applies to the kernel and another to userspace.\nWe recommend enabling both at the same time to reduce the number of build\nconfigurations and to reduce the testing matrix.\n\nUndefinedBehavior sanitizer (UBSan)\n-----------------------------------\n\n[UBSan](/docs/security/test/ubsan) performs compile-time instrumentation to\ncheck for various types of (non memory-safety) undefined behavior. This includes\nsigned and unsigned integer overflow checking (IntSan), bounds checks for\nstatically-sized arrays (BoundsSan), and lots of other types of undefined\nbehavior. IntSan and BoundsSan are also suitable for enabling in production as a\nsecurity mitigation."]]