Безопасность приложений
Мутационный фаззинг
Также известно как: Мутационный фаззинг, Sample-based фаззинг
Определение
Стратегия фаззинга, при которой новые тестовые входы получаются случайной мутацией существующих корректных образцов — инверсия битов, вставка байтов, splice файлов.
Примеры
- AFL++ мутирует валидные PNG-файлы, обнаруживая heap-overflow в libpng.
- libFuzzer мутирует корректные HTTP-запросы и крашит самописный HTTP-парсер.
Связанные термины
Фаззинг
Автоматизированная техника тестирования, при которой программу обстреливают большим числом некорректных, случайных или неожиданных входов для выявления крэшей, повреждений памяти и уязвимостей.
Фаззинг с обратной связью по покрытию
Техника фаззинга, при которой целевой код инструментируется для измерения покрытия, а входы эволюционируют так, чтобы достигать новых веток, что резко повышает эффективность.
Символьное выполнение
Метод анализа программ, при котором код выполняется с символьными входами, а ограничения на путях решаются SMT-решателем для поиска ошибок.
Переполнение буфера
Ошибка безопасности памяти, при которой программа пишет за концом выделенного буфера, повреждая соседнюю память и часто открывая возможность выполнения кода.
Использование после освобождения
Ошибка безопасности памяти, при которой программа продолжает использовать память после её освобождения, часто позволяя атакующему управлять состоянием объектов и перехватывать выполнение.
Secure Coding
Secure Coding — definition coming soon.