Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Fuzzing - автоматическое тестирование безопасности

Доклад Катерины Овеченко на конференции SQA Days-17,
29-30 мая 2015 г., Минск
www.sqadays.com

Related Books

Free with a 30 day trial from Scribd

See all
  • Login to see the comments

Fuzzing - автоматическое тестирование безопасности

  1. 1. Software quality assurance days 17 Международная конференция по вопросам качества ПО sqadays.com Минск. 29–30 мая 2015 Катерина Овеченко Itera. Киев, Украина Fuzzing – автоматическое тестирование безопасности
  2. 2. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera О себе 5+ лет в тестировании. Специалист по ручному тестированию и построению процесса тестирования на проектах. 2+ года в тестировании безопасности: от построения компетенции до координации проектов для внешних заказчиков. Сейчас занимаю должность QA coordinator в компании Itera. Докладчик конференций, один из основателей сообщества OWASP Украина, организатор конференции QA Fest.
  3. 3. Fuzz тестирование (aka Fuzzing) – это подход к поиску уязвимостей, обычно полу- или полностью автоматизированный, при котором невалидные, непредвиденные или случайные данные подаются на вход в приложение. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Fuzzing – что это?
  4. 4. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Поиск уязвимостей White-box подход
  5. 5. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Поиск уязвимостей Black-box подход
  6. 6. Приложение Файлы Протоколы Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Уровни fuzzing Память Драйвера URL адреса Импорт-экспорт UI и Формы Запросы
  7. 7. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Какие баги находит fuzzing? Ошибки в обработке входных данных Переполнение буфера Отказ в обслуживании (DoS) Атаки по обходу директорий (directory traversal) XSS и SQL инъекцииУтечки памяти
  8. 8. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Fuzzing: Основные шаги Определяем цель Задаем интерфейсы ввода данных Генерируем тестовые данные Посылаем данные в приложение Проверяем на исключения Определяем уязвимость
  9. 9. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Шаг 1: Определяем цель Что будем фаззить? На каком уровне? Есть ли известные уязвимости? Функциональность с особым риском?
  10. 10. Шаг 2: Определяем интерфейсы ввода данных Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera На уровне кода приложения На уровне интерфейса приложения
  11. 11. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Шаг 3: Генерируем тестовые данные
  12. 12. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Пример модели TFTP PACKET STRUCTURE ---------------------------------------------- | x00x01 | Filename | 0 | Mode | 0 | ---------------------------------------------- FUZZ TEMPLATE <DataModel name="tftprrx"> <Blob name="opcode" valueType="hex" value="00 01" token="true"/> <String name ="filename" value="filename.txt" nullTerminated="true" /> <String name="mode" value="NETASCII" token="true" nullTerminated="true"/> </DataModel> <StateModel name="State1" initialState="Initial"> <State name="Initial"> <Action type="output"> <DataModel ref="tftprrx" /> </Action> </State> </StateModel> …
  13. 13. Автоматизация Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Генерация данных используя model-based или попарное тестирование Выбрать набор данных из продуктовой среды, учитывая code coverage Использование существующей автоматизации
  14. 14. Шаг 4: Посылаем данные в приложение Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera
  15. 15. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Шаг 5: Проверяем на исключения Проверяем: - Логи фаззера - Процессы - HTML ответы (response) - Регистр - Сообщения об ошибках - Статус коды - Память - Системные логи и т.д.
  16. 16. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Шаг 6: Определяем уязвимость
  17. 17. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Fuzzers vs
  18. 18. Демо Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera
  19. 19. Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Pros: •Легко автоматизируется •Выполняет много проверок •Множество вариаций входящих данных Cons: •Простые ошибки •Тяжело оценить покрытие тестами •Технические знания для фаззинга (API, протоколы и драйвера)
  20. 20. Контакты Fuzzing – автоматическое тестирование безопасности Катерина Овеченко, Itera Mail kateryna.ovechenko@iteraconsulting.com Skype kateryna.ovechenko Kateryna Ovechenko

×