SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Применение fuzz тестирования
         Очир Абушинов
        WWPass Corporation
План
•
    Что такое фаззинг (fuzzing) и зачем он нужен
•
    Обзор инструментов для фазз тестирования
•
    Фаззинг файлов
•
    Фаззинг протоколов
•
    Фаззинг драйверов
•
    Фаззинг веб-приложений
•
    Пример фаззинга веб-приложения
•
    Пример фаззинга сетевого приложения
•
    Какие баги можно найти при помощи фаззинга
•
    Фаззинг в процессе тестирования
•
    Полезные ссылки и литература
Что такое фаззинг
            (fuzzing)

Фаззинг (fuzzing) – методика тестирования,
при которой на вход программы подаются
невалидные, непредусмотренные или
случайные данные
Что такое фаззинг
     (fuzzing)
Зачем он нужен?
Что можно фаззить?

•
 Файлы
•
 Драйверы
•
 Приложения
•
 Веб-приложения
•
 Протоколы
•
 API
Как можно фаззить?

1) Генерация
- случайные данные (dumb)
-
   входные данные,
   сформированные по моделям
   (smart)

2) Мутация
- изменение существующих входных
данных
Фаззинг файлов

1) Выбираем входные данные
2) Фаззер искажает эти данные
3) Фаззер запускает приложение с
передачей ему искаженных данных
4) Фаззер перебирает входные
данные
5) В случае возникновения ошибки,
записываем данные и анализируем
результаты
Фаззинг файлов
Фаззинг файлов

•
 MiniFuzz (Windows)
•
 FileFuzz (Windows)
•
 FileP (Python)
•
 Zzuf (Linux, Mac)
Фаззинг протоколов

1) Выбираем фаззер (свой или
сторонний)
2) Создаем модели данных
3) Описываем параметры модели в
входном файле
4) Запускаем фаззер
5) В случае возникновения ошибки,
записываем данные и анализируем
результаты
Фаззинг протоколов
Фаззинг протоколов
Фаззинг протоколов

•
 PROTOS (WAP, HTTP-reply, LDAP,
SNMP, SIP, ISAKMP) (Java)
•
 Peach и HotFuzz
•
 SPIKE (Linux, C)
Фаззинг драйверов
IOCTL fuzzer
Фаззинг веб-приложений


1) Выбираем какими запросами
будем фазить
2) Подбираем фаззер
3) Создаем скрипт для фаззинга
4) Запускаем фаззер
5) В случае возникновения ошибки,
записываем данные и анализируем
результаты
Фаззинг веб-приложений
Фаззинг веб-приложений

•
 Skyfish
•
 SPIKE Proxy
•
 OWASP WSFuzzer (SOAP)
•
 Rfuzz
•
 Fuzzops
•
 PowerFuzzer
•
 итд.
Фаззинг исходного кода
•
 Jsfuzzer – фаззер JavaScript
  http://code.google.com/p/jsfuzzer/
•
 JavaFuzz – фаззер Ява классов
http://code.google.com/p/javafuzz/
•
 PFF – фаззер PHP
http://www.setec.org/~calcite/code/pff/
Прочие фаззеры

•
 Sulley — фреймворк для создания
сложных структур данных
•
 Fusil — библиотека на Python для
написания фаззеров
•
 Bunny The Fuzzer – фаззер для
протоколов на языке С
•
  Много фаззеров на http://code.google.com
Пример фаззинга веб-
    приложения
Пример фаззинга сетевого
      приложения
Какие баги можно найти при
    помощи фаззинга

•
  Утечки памяти
•
  Переполнение буфера
•
  Неверные коды ошибок
•
  Ошибки обработки входных данных
•
  Отказ в обслуживании
Фаззинг в процессе
      тестирования

•
  Часть процесса тестирования
безопасности
•
  Стоит попробовать с другими
видами тестирования
•
  Необходимо знание протоколов и
форматов данных
•
  Документирование
•
  Это не очень сложно 
Полезные ссылки и
        литература
•
 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 г.
Спасибо за внимание!
         Вопросы?
E-mail: ochir.abushinov@gmail.com
Skype: ochir_abushinov

Más contenido relacionado

La actualidad más candente

Пример fuzzy testing для поиска URL в тексте
Пример fuzzy testing для поиска URL в текстеПример fuzzy testing для поиска URL в тексте
Пример fuzzy testing для поиска URL в текстеMoscowDjango
 
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6Nikolay Samokhvalov
 
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.Омские ИТ-субботники
 
5 особенностей при вводе в эксплуатацию веб приложения
5 особенностей при вводе в эксплуатацию веб приложения5 особенностей при вводе в эксплуатацию веб приложения
5 особенностей при вводе в эксплуатацию веб приложенияВячеслав Сычев
 
Database First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДDatabase First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДNikolay Samokhvalov
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...it-people
 
#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентовNikolay Samokhvalov
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовYandex
 
Полный цикл разработки на Python + Django
Полный цикл разработки на Python + DjangoПолный цикл разработки на Python + Django
Полный цикл разработки на Python + DjangoAzamat Tokhtaev
 
Заблуждения и стереотипы относительно анализа кода
Заблуждения и стереотипы относительно анализа кодаЗаблуждения и стереотипы относительно анализа кода
Заблуждения и стереотипы относительно анализа кодаRISSPA_SPb
 
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без болиБекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без болиdefcon_kz
 
SEO на этапе создания сайта. Сергей Гирин, Burbon.ru
SEO на этапе создания сайта. Сергей Гирин, Burbon.ruSEO на этапе создания сайта. Сергей Гирин, Burbon.ru
SEO на этапе создания сайта. Сергей Гирин, Burbon.ruNikolay Kochnev
 
Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и DjangoTaras Lyapun
 
My talk on administering PostgreSQL
My talk on administering PostgreSQLMy talk on administering PostgreSQL
My talk on administering PostgreSQLAlex Chistyakov
 
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplantit-people
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testingbeched
 
Егор Гришечко «Async/Await и всё, что вы боялись спросить»
Егор Гришечко «Async/Await и всё, что вы боялись спросить»Егор Гришечко «Async/Await и всё, что вы боялись спросить»
Егор Гришечко «Async/Await и всё, что вы боялись спросить»SpbDotNet Community
 

La actualidad más candente (19)

Пример fuzzy testing для поиска URL в тексте
Пример fuzzy testing для поиска URL в текстеПример fuzzy testing для поиска URL в тексте
Пример fuzzy testing для поиска URL в тексте
 
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
 
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
 
5 особенностей при вводе в эксплуатацию веб приложения
5 особенностей при вводе в эксплуатацию веб приложения5 особенностей при вводе в эксплуатацию веб приложения
5 особенностей при вводе в эксплуатацию веб приложения
 
Database First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБДDatabase First! О распространённых ошибках использования РСУБД
Database First! О распространённых ошибках использования РСУБД
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
 
#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
 
Полный цикл разработки на Python + Django
Полный цикл разработки на Python + DjangoПолный цикл разработки на Python + Django
Полный цикл разработки на Python + Django
 
Заблуждения и стереотипы относительно анализа кода
Заблуждения и стереотипы относительно анализа кодаЗаблуждения и стереотипы относительно анализа кода
Заблуждения и стереотипы относительно анализа кода
 
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без болиБекдоры в пхп. Остаться незамеченным или проникновение без боли
Бекдоры в пхп. Остаться незамеченным или проникновение без боли
 
Защита
ЗащитаЗащита
Защита
 
SEO на этапе создания сайта. Сергей Гирин, Burbon.ru
SEO на этапе создания сайта. Сергей Гирин, Burbon.ruSEO на этапе создания сайта. Сергей Гирин, Burbon.ru
SEO на этапе создания сайта. Сергей Гирин, Burbon.ru
 
Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и Django
 
My talk on administering PostgreSQL
My talk on administering PostgreSQLMy talk on administering PostgreSQL
My talk on administering PostgreSQL
 
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
50 оттенков кеширования: обзор актуальных батареек - Григорий Петров, VoxImplant
 
мир без Jsp. thymeleaf 2.0
мир без Jsp. thymeleaf 2.0мир без Jsp. thymeleaf 2.0
мир без Jsp. thymeleaf 2.0
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testing
 
Егор Гришечко «Async/Await и всё, что вы боялись спросить»
Егор Гришечко «Async/Await и всё, что вы боялись спросить»Егор Гришечко «Async/Await и всё, что вы боялись спросить»
Егор Гришечко «Async/Await и всё, что вы боялись спросить»
 

Destacado

Payday Loans No Debit Card - Assist To Defeat Your Unanticipated Fiscal Compl...
Payday Loans No Debit Card - Assist To Defeat Your Unanticipated Fiscal Compl...Payday Loans No Debit Card - Assist To Defeat Your Unanticipated Fiscal Compl...
Payday Loans No Debit Card - Assist To Defeat Your Unanticipated Fiscal Compl...Hendry Mansoor
 
elearning courses and webinars
elearning courses and webinarselearning courses and webinars
elearning courses and webinarsSQLearn
 
Метод тестирования Fuzzing
Метод тестирования FuzzingМетод тестирования Fuzzing
Метод тестирования FuzzingISsoft
 
Автоматический поиск уязвимостей в программах без исходных текстов
Автоматический поиск уязвимостей в программах без исходных текстовАвтоматический поиск уязвимостей в программах без исходных текстов
Автоматический поиск уязвимостей в программах без исходных текстовd_olex
 
Очир Абушинов - Применение fuzz-тестирования
Очир Абушинов - Применение fuzz-тестированияОчир Абушинов - Применение fuzz-тестирования
Очир Абушинов - Применение fuzz-тестированияSQALab
 
Fuzzing - автоматическое тестирование безопасности
Fuzzing - автоматическое тестирование безопасностиFuzzing - автоматическое тестирование безопасности
Fuzzing - автоматическое тестирование безопасностиSQALab
 

Destacado (8)

nullcon 2010 - Software Fuzzing with Wireplay
nullcon 2010 - Software Fuzzing with Wireplaynullcon 2010 - Software Fuzzing with Wireplay
nullcon 2010 - Software Fuzzing with Wireplay
 
May you be blessed
May you be blessedMay you be blessed
May you be blessed
 
Payday Loans No Debit Card - Assist To Defeat Your Unanticipated Fiscal Compl...
Payday Loans No Debit Card - Assist To Defeat Your Unanticipated Fiscal Compl...Payday Loans No Debit Card - Assist To Defeat Your Unanticipated Fiscal Compl...
Payday Loans No Debit Card - Assist To Defeat Your Unanticipated Fiscal Compl...
 
elearning courses and webinars
elearning courses and webinarselearning courses and webinars
elearning courses and webinars
 
Метод тестирования Fuzzing
Метод тестирования FuzzingМетод тестирования Fuzzing
Метод тестирования Fuzzing
 
Автоматический поиск уязвимостей в программах без исходных текстов
Автоматический поиск уязвимостей в программах без исходных текстовАвтоматический поиск уязвимостей в программах без исходных текстов
Автоматический поиск уязвимостей в программах без исходных текстов
 
Очир Абушинов - Применение fuzz-тестирования
Очир Абушинов - Применение fuzz-тестированияОчир Абушинов - Применение fuzz-тестирования
Очир Абушинов - Применение fuzz-тестирования
 
Fuzzing - автоматическое тестирование безопасности
Fuzzing - автоматическое тестирование безопасностиFuzzing - автоматическое тестирование безопасности
Fuzzing - автоматическое тестирование безопасности
 

Similar a Use of fuzz testing

Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Ontico
 
presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_confMax Glekov
 
Тестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesТестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesSQALab
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Development User Group
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...SQALab
 
Автоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыАвтоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыSQALab
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...QA Club Minsk
 
Java/Scala Lab: Юрий Литвиненко - Living in Heroku
Java/Scala Lab: Юрий Литвиненко - Living in Heroku Java/Scala Lab: Юрий Литвиненко - Living in Heroku
Java/Scala Lab: Юрий Литвиненко - Living in Heroku GeeksLab Odessa
 
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Yandex
 
Автостопом по багтрекингам
Автостопом по багтрекингамАвтостопом по багтрекингам
Автостопом по багтрекингамTatiana Borolyuk
 
автостопом по багтрекингам
автостопом по багтрекингамавтостопом по багтрекингам
автостопом по багтрекингамSergey Oreshkov
 
Go для веба глазами PHP-разработчика
Go для веба глазами PHP-разработчикаGo для веба глазами PHP-разработчика
Go для веба глазами PHP-разработчикаUP2IT
 
Эффективное управление ПО под *nix
Эффективное управление ПО под *nixЭффективное управление ПО под *nix
Эффективное управление ПО под *nixAndrew Pantyukhin
 
Вирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестированииВирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестированииSQALab
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиLiloSEA
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты7bits
 

Similar a Use of fuzz testing (20)

Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
Релиз инжиниринг Mail.ru, взгляд изнутри / Максим Глеков (Mail.Ru Group)
 
presentation_r00t_conf
presentation_r00t_confpresentation_r00t_conf
presentation_r00t_conf
 
Тестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesТестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The Scenes
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
 
Автоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыАвтоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктуры
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
 
Java/Scala Lab: Юрий Литвиненко - Living in Heroku
Java/Scala Lab: Юрий Литвиненко - Living in Heroku Java/Scala Lab: Юрий Литвиненко - Living in Heroku
Java/Scala Lab: Юрий Литвиненко - Living in Heroku
 
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
 
Автостопом по багтрекингам
Автостопом по багтрекингамАвтостопом по багтрекингам
Автостопом по багтрекингам
 
автостопом по багтрекингам
автостопом по багтрекингамавтостопом по багтрекингам
автостопом по багтрекингам
 
Fuzz.txt
Fuzz.txtFuzz.txt
Fuzz.txt
 
Sivko
SivkoSivko
Sivko
 
Go для веба глазами PHP-разработчика
Go для веба глазами PHP-разработчикаGo для веба глазами PHP-разработчика
Go для веба глазами PHP-разработчика
 
Эффективное управление ПО под *nix
Эффективное управление ПО под *nixЭффективное управление ПО под *nix
Эффективное управление ПО под *nix
 
Вирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестированииВирусное тестирование. Что-то новое в конфигурационном тестировании
Вирусное тестирование. Что-то новое в конфигурационном тестировании
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировки
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
 

Use of fuzz testing

  • 1. Применение fuzz тестирования Очир Абушинов WWPass Corporation
  • 2. План • Что такое фаззинг (fuzzing) и зачем он нужен • Обзор инструментов для фазз тестирования • Фаззинг файлов • Фаззинг протоколов • Фаззинг драйверов • Фаззинг веб-приложений • Пример фаззинга веб-приложения • Пример фаззинга сетевого приложения • Какие баги можно найти при помощи фаззинга • Фаззинг в процессе тестирования • Полезные ссылки и литература
  • 3. Что такое фаззинг (fuzzing) Фаззинг (fuzzing) – методика тестирования, при которой на вход программы подаются невалидные, непредусмотренные или случайные данные
  • 6. Что можно фаззить? • Файлы • Драйверы • Приложения • Веб-приложения • Протоколы • API
  • 7. Как можно фаззить? 1) Генерация - случайные данные (dumb) - входные данные, сформированные по моделям (smart) 2) Мутация - изменение существующих входных данных
  • 8. Фаззинг файлов 1) Выбираем входные данные 2) Фаззер искажает эти данные 3) Фаззер запускает приложение с передачей ему искаженных данных 4) Фаззер перебирает входные данные 5) В случае возникновения ошибки, записываем данные и анализируем результаты
  • 10. Фаззинг файлов • MiniFuzz (Windows) • FileFuzz (Windows) • FileP (Python) • Zzuf (Linux, Mac)
  • 11. Фаззинг протоколов 1) Выбираем фаззер (свой или сторонний) 2) Создаем модели данных 3) Описываем параметры модели в входном файле 4) Запускаем фаззер 5) В случае возникновения ошибки, записываем данные и анализируем результаты
  • 14. Фаззинг протоколов • PROTOS (WAP, HTTP-reply, LDAP, SNMP, SIP, ISAKMP) (Java) • Peach и HotFuzz • SPIKE (Linux, C)
  • 16. Фаззинг веб-приложений 1) Выбираем какими запросами будем фазить 2) Подбираем фаззер 3) Создаем скрипт для фаззинга 4) Запускаем фаззер 5) В случае возникновения ошибки, записываем данные и анализируем результаты
  • 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 – фаззер PHP http://www.setec.org/~calcite/code/pff/
  • 20. Прочие фаззеры • Sulley — фреймворк для создания сложных структур данных • Fusil — библиотека на Python для написания фаззеров • Bunny The Fuzzer – фаззер для протоколов на языке С • Много фаззеров на http://code.google.com
  • 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.com Skype: ochir_abushinov