Your SlideShare is downloading. ×
  • Like
Use of  fuzz testing
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Use of fuzz testing

  • 1,554 views
Published

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

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

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,554
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
15
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Применение fuzz тестирования Очир Абушинов WWPass Corporation
  • 2. План• Что такое фаззинг (fuzzing) и зачем он нужен• Обзор инструментов для фазз тестирования• Фаззинг файлов• Фаззинг протоколов• Фаззинг драйверов• Фаззинг веб-приложений• Пример фаззинга веб-приложения• Пример фаззинга сетевого приложения• Какие баги можно найти при помощи фаззинга• Фаззинг в процессе тестирования• Полезные ссылки и литература
  • 3. Что такое фаззинг (fuzzing)Фаззинг (fuzzing) – методика тестирования,при которой на вход программы подаютсяневалидные, непредусмотренные илислучайные данные
  • 4. Что такое фаззинг (fuzzing)
  • 5. Зачем он нужен?
  • 6. Что можно фаззить?• Файлы• Драйверы• Приложения• Веб-приложения• Протоколы• API
  • 7. Как можно фаззить?1) Генерация- случайные данные (dumb)- входные данные, сформированные по моделям (smart)2) Мутация- изменение существующих входныхданных
  • 8. Фаззинг файлов1) Выбираем входные данные2) Фаззер искажает эти данные3) Фаззер запускает приложение спередачей ему искаженных данных4) Фаззер перебирает входныеданные5) В случае возникновения ошибки,записываем данные и анализируемрезультаты
  • 9. Фаззинг файлов
  • 10. Фаззинг файлов• MiniFuzz (Windows)• FileFuzz (Windows)• FileP (Python)• Zzuf (Linux, Mac)
  • 11. Фаззинг протоколов1) Выбираем фаззер (свой илисторонний)2) Создаем модели данных3) Описываем параметры модели ввходном файле4) Запускаем фаззер5) В случае возникновения ошибки,записываем данные и анализируемрезультаты
  • 12. Фаззинг протоколов
  • 13. Фаззинг протоколов
  • 14. Фаззинг протоколов• PROTOS (WAP, HTTP-reply, LDAP,SNMP, SIP, ISAKMP) (Java)• Peach и HotFuzz• SPIKE (Linux, C)
  • 15. Фаззинг драйверовIOCTL fuzzer
  • 16. Фаззинг веб-приложений1) Выбираем какими запросамибудем фазить2) Подбираем фаззер3) Создаем скрипт для фаззинга4) Запускаем фаззер5) В случае возникновения ошибки,записываем данные и анализируемрезультаты
  • 17. Фаззинг веб-приложений
  • 18. Фаззинг веб-приложений• Skyfish• SPIKE Proxy• OWASP WSFuzzer (SOAP)• Rfuzz• Fuzzops• PowerFuzzer• итд.
  • 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. Прочие фаззеры• Sulley — фреймворк для созданиясложных структур данных• Fusil — библиотека на Python длянаписания фаззеров• Bunny The Fuzzer – фаззер дляпротоколов на языке С• Много фаззеров на http://code.google.com
  • 21. Пример фаззинга веб- приложения
  • 22. Пример фаззинга сетевого приложения
  • 23. Какие баги можно найти при помощи фаззинга• Утечки памяти• Переполнение буфера• Неверные коды ошибок• Ошибки обработки входных данных• Отказ в обслуживании
  • 24. Фаззинг в процессе тестирования• Часть процесса тестированиябезопасности• Стоит попробовать с другимивидами тестирования• Необходимо знание протоколов иформатов данных• Документирование• Это не очень сложно 
  • 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. Спасибо за внимание! Вопросы?E-mail: ochir.abushinov@gmail.comSkype: ochir_abushinov