Desinfektionsmittel

Bei den Sanitizern handelt es sich um eine Gruppe dynamischer Analysetools, die durch zusätzliche Instrumentierung, die vom Compiler eingefügt wurde, zur Laufzeit Fehler in Programmen finden. Dazu gehört auch die Erkennung von Speichersicherheitsproblemen . Android unterstützt und empfiehlt dringend die Verwendung der folgenden Desinfektionsmittel:

HWAddress Sanitizer (HWASan)

HWASan ist das wichtigste Desinfektionsmittel zur Erkennung von Speichersicherheitsproblemen. Es erfordert ARM64 und kann Folgendes erkennen:

  • Stapel- und Heap-Pufferüberlauf oder -unterlauf
  • Heap-Nutzung nach dem kostenlosen
  • Stapelverwendung nach Umfang
  • Stapelnutzung nach Rückgabe
  • Double Free oder Wild Free

Adressdesinfektionsmittel (ASan)

ASan ist ein ähnliches Tool wie HWASan. Es funktioniert auf mehr Plattformen, wird jedoch auf Android nicht unterstützt.

KernelAddress Sanitizer

KASan ist das Kernel-Gegenstück zu den oben genannten Userspace-Tools. Es verwendet dieselbe Compiler-Implementierung. KASAN und ASan/HWASan ergänzen sich, da ein Tool für den Kernel und ein anderes für den Userspace gilt. Wir empfehlen, beide gleichzeitig zu aktivieren, um die Anzahl der Build-Konfigurationen und die Testmatrix zu reduzieren.

UndefinedBehavior Sanitizer (UBSan)

UBSan führt eine Instrumentierung zur Kompilierungszeit durch, um verschiedene Arten von (nicht speichersicherem) undefiniertem Verhalten zu prüfen. Dazu gehören vorzeichenbehaftete und vorzeichenlose Ganzzahlüberlaufprüfungen (IntSan), Grenzprüfungen für Arrays statischer Größe (BoundsSan) und viele andere Arten undefinierten Verhaltens. IntSan und BoundsSan eignen sich auch zur Aktivierung in der Produktion als Sicherheitsminderung.