Безопасность приложений
Фаззинг с обратной связью по покрытию
Также известно как: Greybox-фаззинг, Фаззинг по обратной связи
Определение
Техника фаззинга, при которой целевой код инструментируется для измерения покрытия, а входы эволюционируют так, чтобы достигать новых веток, что резко повышает эффективность.
Примеры
- Скомпилировать C-парсер с инструментацией AFL++ и расширять корпус через afl-fuzz.
- libFuzzer с SanitizerCoverage эволюционирует входы для Rust-крейта.
Связанные термины
Фаззинг
Автоматизированная техника тестирования, при которой программу обстреливают большим числом некорректных, случайных или неожиданных входов для выявления крэшей, повреждений памяти и уязвимостей.
Мутационный фаззинг
Стратегия фаззинга, при которой новые тестовые входы получаются случайной мутацией существующих корректных образцов — инверсия битов, вставка байтов, splice файлов.
Символьное выполнение
Метод анализа программ, при котором код выполняется с символьными входами, а ограничения на путях решаются SMT-решателем для поиска ошибок.
Переполнение буфера
Ошибка безопасности памяти, при которой программа пишет за концом выделенного буфера, повреждая соседнюю память и часто открывая возможность выполнения кода.
Повреждение памяти
Обобщающий термин для уязвимостей, при которых программа пишет за пределы предполагаемой памяти, нарушая типовую безопасность, поток управления или целостность данных.
Secure Coding
Secure Coding — definition coming soon.