fuzzing qa a.komlev

10
Fuzzing: ключевая концепция обеспечения безопасности проекта. Комлев Александр, Rambler QA Тематический блог -

Upload: guest4e4c91

Post on 16-Nov-2014

1.146 views

Category:

Education


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Fuzzing Qa A.Komlev

Fuzzing: ключевая концепция обеспечения безопасности

проекта.

Комлев Александр, Rambler QA

Тематический блог - fuzzing.ru

Page 2: Fuzzing Qa A.Komlev

Что такое Fuzzing?• Определение термина

Fuzzing (Фаззинг) – методология обнаружения ошибок в программном обеспечении путем передачи непредвиденных входных данных и мониторинга исключительных ситуаций их обработки.

• Происхождение терминаПервое упоминание – исследовательские проекты Университета Висконсина (University of Wisconsin-Madison).Математический термин (теория граничных значений) адаптированный для описания методологии тестирования.

Page 3: Fuzzing Qa A.Komlev

Краткая история• Первые разработки

Бартон Миллер (Barton Miller) – «отец» фаззинга. Простейшие фаззинг-тесты

UNIX-приложений - 1989 г.

• Второе рождениеPROTOS test suite – Университет Оулу (Финляндия) – 1999 г.

• ВосхождениеК проекту PROTOS в 2002 году присоединяется Microsoft, в 2003 члены команды проекта основали Codenomicon.Появляются первые универсальные и специфические модули (FileFuzz, SPIKE, COMRaider и т.п.)Процесс постепенно встает на коммерческие рельсы.

Page 4: Fuzzing Qa A.Komlev

Типы предметной области.• Сетевые протоколы• Переменные окружения• Аргументы командной строки• Манипуляции с файлами и форматами файлов• Web-браузеры• Web-приложения и web-сервера.• Операции с памятью

Page 5: Fuzzing Qa A.Komlev

Категории моделей.• Мутация

Изменение существующих образцов данных (корректных) для создания тестовых случаев.

• Генерация Создание случайных данных на основе целевой модели, по разработанным критериям.

Page 6: Fuzzing Qa A.Komlev

Классификация проблем.• 6 групп уязвимостей• 26 типов уязвимостей

По данным Web Application Security Consortium. Данная классификация считается нормой, но она далека от идеала и вопрос классификации не закрывает.

Page 7: Fuzzing Qa A.Komlev

Как охватить все?

• Необходимо выявить источники угрозы.

• Необходимо логически разделить источники.

Page 8: Fuzzing Qa A.Komlev

Объекты угрозы.• Серверное ПО и системное обеспечение

- Web-cервера- Настройки ОС- Настройки серверного комплекса

• ПО реализующее функциональность- Поддерживаемые HTTP-методы- Web-формы (GET, POST)- HTTP-заголовки- Cookies (является частью предыдущего, но требует отдельного выделения)

Page 9: Fuzzing Qa A.Komlev

Как подойти к процессу?• Анализ и определение ожидаемых типов

Многие типы уязвимостей являются зависимыми от используемых технологий и модулей.

• Сбор и анализ источников входных данных проектаНеобходимо выделить источники входных данных, которые могут реально повлиять на безопасность проекта.

• Творческий поиск (только он дает результат)

• Чтение логов (надо пользоваться преимуществами)

• Автоматизация базовых проверок.Прекрасно помогает при контроле ПО > 500 серверов, проверки настроек ОС и web-серверов легко и эффективно автоматизируются.

Page 10: Fuzzing Qa A.Komlev

Кто?• QA!

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

• Где взять специалистов? Кому поручить?Специалистов в России фактически нет! Их надо искать и воспитывать. Кадровые агентства не помогут.