sanitizer-status
Динамический анализ и поиск ошибок
Тип файла: служба
Комментарии
Санитайзер (дезинфицирующие средства) — это группа инструментов динамического анализа, которые находят ошибки в программах во время выполнения с помощью дополнительных инструментов, вставленных компилятором.
Это включает в себя обнаружение проблем с безопасностью памяти.
Android поддерживает и настоятельно рекомендует использовать следующие дезинфицирующие средства:
1. Дезинфицирующее средство HWAAddress (HWASan)
HWASan является основным дезинфицирующим средством для обнаружения проблем с безопасностью памяти.
Он требует ARM64 и может обнаруживать:
Переполнение или недополнение буфера стека и кучи
Использование кучи после освобождения
Использование стека после области действия
Использование стека после возврата
Двойной свободный или дикий свободный
Дезинфицирующее средство для адресов (ASan)
ASan — это инструмент, похожий на HWAsan.
Он работает на других платформах, но не поддерживается на Android.
2. Дезинфицирующее средство KernelAddress
KASan — это аналог ядра инструментов пользовательского пространства, описанных выше.
Он использует ту же реализацию компилятора. KASAN и ASan/HWASan дополняют друг друга, поскольку один инструмент применяется к ядру, а другой — к пользовательскому пространству.
Мы рекомендуем включить оба одновременно, чтобы уменьшить количество конфигураций сборки и уменьшить матрицу тестирования.
3. Дезинфицирующее средство UndefinedBehavior (UBSan)
UBSan выполняет инструментирование во время компиляции для проверки различных типов неопределенного поведения (не связанного с безопасностью памяти).
Это включает в себя проверку переполнения целых чисел со знаком и без знака (IntSan), проверку границ для массивов статического размера (BoundsSan) и множество других типов неопределенного поведения.
IntSan и BoundsSan также подходят для включения в производство в качестве меры безопасности.