Skip to content

Latest commit

 

History

History
58 lines (34 loc) · 2.64 KB

README.md

File metadata and controls

58 lines (34 loc) · 2.64 KB

Фаззинг с помощью American Fuzzy Lop

https://github.com/google/AFL https://habr.com/ru/post/259671/ https://habr.com/ru/post/332076/ https://habr.com/ru/company/dsec/blog/435644/

Установка AFL

sudo apt install libclang-dev clang git clone https://github.com/google/AFL.git cd AFL make sudo make install

Уже известная программа с переполнением буфера

Инструментирование кода: выполнить build.sh

Запустить фаззинг с помощью следующей командной строки и подождать, пока не будет найдено хотя бы два варианта входных данных, вызывающих сбой.

afl-fuzz -i testcase_dir -o findings_dir -- ./auth_overflow2_afl

Возможно, будут выдаваться сообщения о том, что в системе надо что-то переконфигурировать для успешного выполнения afl-fuzz.

Входные данные, вызывающие сбои, сохраняются в findings_dir/crashes.

Проанализируйте сбои с помощью отладчика и опишите, что именно пошло не так в каждом из случаев.

Ошибки в программе-калькуляторе

https://github.com/Dovgalyuk/calc

В этом репозитории находится исходный код программы-калькулятора. С помощью AFL найдите входные данные, которые приводят к аварийному завершению калькулятора.

Собрать проект можно командой:

make CC=afl-gcc

Фаззинг запускается так:

mkdir testcase_dir echo 123+345 > testcase_dir/test afl-fuzz -i testcase_dir -o findings_dir -- ./calc

Сделайте форк репозитория и исправьте ошибки. Повторяйте фаззинг, пока все ошибки не будут исправлены.

Опишите причины сбоев и сделанные исправления. Приложите ссылку на репозиторий, чтобы исправления можно было проверить.

Покрытие кода с помощью DynamoRIO

Здесь задания нет, но можно почитать про исследование покрытия кода.

[[https://habr.com/ru/company/otus/blog/562012/]]

Ссылки

Фаззинг: https://www.youtube.com/watch?v=ig5NTJfb0ls&t=3710s