Применение fuzz тестирования         Очир Абушинов        WWPass Corporation
План•    Что такое фаззинг (fuzzing) и зачем он нужен•    Обзор инструментов для фазз тестирования•    Фаззинг файлов•    ...
Что такое фаззинг            (fuzzing)Фаззинг (fuzzing) – методика тестирования,при которой на вход программы подаютсянева...
Что такое фаззинг     (fuzzing)
Зачем он нужен?
Что можно фаззить?• Файлы• Драйверы• Приложения• Веб-приложения• Протоколы• API
Как можно фаззить?1) Генерация- случайные данные (dumb)-   входные данные,   сформированные по моделям   (smart)2) Мутация...
Фаззинг файлов1) Выбираем входные данные2) Фаззер искажает эти данные3) Фаззер запускает приложение спередачей ему искажен...
Фаззинг файлов
Фаззинг файлов• MiniFuzz (Windows)• FileFuzz (Windows)• FileP (Python)• Zzuf (Linux, Mac)
Фаззинг протоколов1) Выбираем фаззер (свой илисторонний)2) Создаем модели данных3) Описываем параметры модели ввходном фай...
Фаззинг протоколов
Фаззинг протоколов
Фаззинг протоколов• PROTOS (WAP, HTTP-reply, LDAP,SNMP, SIP, ISAKMP) (Java)• Peach и HotFuzz• SPIKE (Linux, C)
Фаззинг драйверовIOCTL fuzzer
Фаззинг веб-приложений1) Выбираем какими запросамибудем фазить2) Подбираем фаззер3) Создаем скрипт для фаззинга4) Запускае...
Фаззинг веб-приложений
Фаззинг веб-приложений• Skyfish• SPIKE Proxy• OWASP WSFuzzer (SOAP)• Rfuzz• Fuzzops• PowerFuzzer• итд.
Фаззинг исходного кода• Jsfuzzer – фаззер JavaScript  http://code.google.com/p/jsfuzzer/• JavaFuzz – фаззер Ява классовhtt...
Прочие фаззеры• Sulley — фреймворк для созданиясложных структур данных• Fusil — библиотека на Python длянаписания фаззеров...
Пример фаззинга веб-    приложения
Пример фаззинга сетевого      приложения
Какие баги можно найти при    помощи фаззинга•  Утечки памяти•  Переполнение буфера•  Неверные коды ошибок•  Ошибки обрабо...
Фаззинг в процессе      тестирования•  Часть процесса тестированиябезопасности•  Стоит попробовать с другимивидами тестиро...
Полезные ссылки и        литература• http://en.wikipedia.org/wiki/Fuzz_testing• http://www.xakep.ru/post/52726/• http://ww...
Спасибо за внимание!         Вопросы?E-mail: ochir.abushinov@gmail.comSkype: ochir_abushinov
Upcoming SlideShare
Loading in...5
×

Use of fuzz testing

1,682

Published on

презентация доклада на SQA Days 9 в Казани

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,682
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Use of fuzz testing

  1. 1. Применение fuzz тестирования Очир Абушинов WWPass Corporation
  2. 2. План• Что такое фаззинг (fuzzing) и зачем он нужен• Обзор инструментов для фазз тестирования• Фаззинг файлов• Фаззинг протоколов• Фаззинг драйверов• Фаззинг веб-приложений• Пример фаззинга веб-приложения• Пример фаззинга сетевого приложения• Какие баги можно найти при помощи фаззинга• Фаззинг в процессе тестирования• Полезные ссылки и литература
  3. 3. Что такое фаззинг (fuzzing)Фаззинг (fuzzing) – методика тестирования,при которой на вход программы подаютсяневалидные, непредусмотренные илислучайные данные
  4. 4. Что такое фаззинг (fuzzing)
  5. 5. Зачем он нужен?
  6. 6. Что можно фаззить?• Файлы• Драйверы• Приложения• Веб-приложения• Протоколы• API
  7. 7. Как можно фаззить?1) Генерация- случайные данные (dumb)- входные данные, сформированные по моделям (smart)2) Мутация- изменение существующих входныхданных
  8. 8. Фаззинг файлов1) Выбираем входные данные2) Фаззер искажает эти данные3) Фаззер запускает приложение спередачей ему искаженных данных4) Фаззер перебирает входныеданные5) В случае возникновения ошибки,записываем данные и анализируемрезультаты
  9. 9. Фаззинг файлов
  10. 10. Фаззинг файлов• MiniFuzz (Windows)• FileFuzz (Windows)• FileP (Python)• Zzuf (Linux, Mac)
  11. 11. Фаззинг протоколов1) Выбираем фаззер (свой илисторонний)2) Создаем модели данных3) Описываем параметры модели ввходном файле4) Запускаем фаззер5) В случае возникновения ошибки,записываем данные и анализируемрезультаты
  12. 12. Фаззинг протоколов
  13. 13. Фаззинг протоколов
  14. 14. Фаззинг протоколов• PROTOS (WAP, HTTP-reply, LDAP,SNMP, SIP, ISAKMP) (Java)• Peach и HotFuzz• SPIKE (Linux, C)
  15. 15. Фаззинг драйверовIOCTL fuzzer
  16. 16. Фаззинг веб-приложений1) Выбираем какими запросамибудем фазить2) Подбираем фаззер3) Создаем скрипт для фаззинга4) Запускаем фаззер5) В случае возникновения ошибки,записываем данные и анализируемрезультаты
  17. 17. Фаззинг веб-приложений
  18. 18. Фаззинг веб-приложений• Skyfish• SPIKE Proxy• OWASP WSFuzzer (SOAP)• Rfuzz• Fuzzops• PowerFuzzer• итд.
  19. 19. Фаззинг исходного кода• Jsfuzzer – фаззер JavaScript http://code.google.com/p/jsfuzzer/• JavaFuzz – фаззер Ява классовhttp://code.google.com/p/javafuzz/• PFF – фаззер PHPhttp://www.setec.org/~calcite/code/pff/
  20. 20. Прочие фаззеры• Sulley — фреймворк для созданиясложных структур данных• Fusil — библиотека на Python длянаписания фаззеров• Bunny The Fuzzer – фаззер дляпротоколов на языке С• Много фаззеров на http://code.google.com
  21. 21. Пример фаззинга веб- приложения
  22. 22. Пример фаззинга сетевого приложения
  23. 23. Какие баги можно найти при помощи фаззинга• Утечки памяти• Переполнение буфера• Неверные коды ошибок• Ошибки обработки входных данных• Отказ в обслуживании
  24. 24. Фаззинг в процессе тестирования• Часть процесса тестированиябезопасности• Стоит попробовать с другимивидами тестирования• Необходимо знание протоколов иформатов данных• Документирование• Это не очень сложно 
  25. 25. Полезные ссылки и литература• http://en.wikipedia.org/wiki/Fuzz_testing• http://www.xakep.ru/post/52726/• http://www.fuzzing.org/• http://msdn.microsoft.com/en-us/library/cc162782.aspx• Педрам Амини, «Fuzzing.Исследование уязвимостей методомгрубой силы», Символ-Плюс, 2009 г.
  26. 26. Спасибо за внимание! Вопросы?E-mail: ochir.abushinov@gmail.comSkype: ochir_abushinov
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×