Preparaty do dezynfekcji

Środki dezynfekujące to grupa narzędzi do analizy dynamicznej, które wyszukują błędy w programach w czasie wykonywania za pomocą dodatkowego instrumentarium wstawionego przez kompilator. Obejmuje to wykrywanie problemów związanych z bezpieczeństwem pamięci . Android obsługuje i zdecydowanie zaleca stosowanie następujących środków dezynfekujących:

Środek dezynfekujący HWAddress (HWASan)

HWASan to główny środek dezynfekujący umożliwiający wykrywanie problemów związanych z bezpieczeństwem pamięci. Wymaga ARM64 i może wykryć:

  • Przepełnienie lub niedopełnienie bufora stosu i sterty
  • Użyj sterty po darmowym
  • Użycie stosu po zakresie
  • Wykorzystanie stosu po powrocie
  • Podwójnie darmowy lub dziki

Adres Sanitizer (ASan)

ASan jest narzędziem podobnym do HWASan. Działa na większej liczbie platform, ale nie jest obsługiwana na Androidzie.

Środek dezynfekujący KernelAddress

KASan jest odpowiednikiem jądra powyższych narzędzi przestrzeni użytkownika. Ma tę samą implementację kompilatora. KASAN i ASan/HWASan uzupełniają się, ponieważ jedno narzędzie ma zastosowanie do jądra, a drugie do przestrzeni użytkownika. Zalecamy jednoczesne włączenie obu, aby zmniejszyć liczbę konfiguracji kompilacji i zmniejszyć matrycę testową.

Nieokreślony środek dezynfekujący zachowanie (UBSan)

UBSan wykonuje oprzyrządowanie w czasie kompilacji, aby sprawdzić różne typy niezdefiniowanych zachowań (nie związanych z bezpieczeństwem pamięci). Obejmuje to sprawdzanie przepełnienia liczb całkowitych ze znakiem i bez znaku (IntSan), sprawdzanie granic tablic o rozmiarze statycznym (BoundsSan) i wiele innych typów niezdefiniowanych zachowań. IntSan i BoundsSan nadają się również do wykorzystania w środowisku produkcyjnym w celu ograniczenia bezpieczeństwa.