fuzzing qa a.komlev
DESCRIPTION
TRANSCRIPT
![Page 1: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/1.jpg)
Fuzzing: ключевая концепция обеспечения безопасности
проекта.
Комлев Александр, Rambler QA
Тематический блог - fuzzing.ru
![Page 2: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/2.jpg)
Что такое Fuzzing?• Определение термина
Fuzzing (Фаззинг) – методология обнаружения ошибок в программном обеспечении путем передачи непредвиденных входных данных и мониторинга исключительных ситуаций их обработки.
• Происхождение терминаПервое упоминание – исследовательские проекты Университета Висконсина (University of Wisconsin-Madison).Математический термин (теория граничных значений) адаптированный для описания методологии тестирования.
![Page 3: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/3.jpg)
Краткая история• Первые разработки
Бартон Миллер (Barton Miller) – «отец» фаззинга. Простейшие фаззинг-тесты
UNIX-приложений - 1989 г.
• Второе рождениеPROTOS test suite – Университет Оулу (Финляндия) – 1999 г.
• ВосхождениеК проекту PROTOS в 2002 году присоединяется Microsoft, в 2003 члены команды проекта основали Codenomicon.Появляются первые универсальные и специфические модули (FileFuzz, SPIKE, COMRaider и т.п.)Процесс постепенно встает на коммерческие рельсы.
![Page 4: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/4.jpg)
Типы предметной области.• Сетевые протоколы• Переменные окружения• Аргументы командной строки• Манипуляции с файлами и форматами файлов• Web-браузеры• Web-приложения и web-сервера.• Операции с памятью
![Page 5: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/5.jpg)
Категории моделей.• Мутация
Изменение существующих образцов данных (корректных) для создания тестовых случаев.
• Генерация Создание случайных данных на основе целевой модели, по разработанным критериям.
![Page 6: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/6.jpg)
Классификация проблем.• 6 групп уязвимостей• 26 типов уязвимостей
По данным Web Application Security Consortium. Данная классификация считается нормой, но она далека от идеала и вопрос классификации не закрывает.
![Page 7: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/7.jpg)
Как охватить все?
• Необходимо выявить источники угрозы.
• Необходимо логически разделить источники.
![Page 8: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/8.jpg)
Объекты угрозы.• Серверное ПО и системное обеспечение
- Web-cервера- Настройки ОС- Настройки серверного комплекса
• ПО реализующее функциональность- Поддерживаемые HTTP-методы- Web-формы (GET, POST)- HTTP-заголовки- Cookies (является частью предыдущего, но требует отдельного выделения)
![Page 9: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/9.jpg)
Как подойти к процессу?• Анализ и определение ожидаемых типов
Многие типы уязвимостей являются зависимыми от используемых технологий и модулей.
• Сбор и анализ источников входных данных проектаНеобходимо выделить источники входных данных, которые могут реально повлиять на безопасность проекта.
• Творческий поиск (только он дает результат)
• Чтение логов (надо пользоваться преимуществами)
• Автоматизация базовых проверок.Прекрасно помогает при контроле ПО > 500 серверов, проверки настроек ОС и web-серверов легко и эффективно автоматизируются.
![Page 10: Fuzzing Qa A.Komlev](https://reader036.vdocuments.site/reader036/viewer/2022081413/5468c3deaf795997108b523c/html5/thumbnails/10.jpg)
Кто?• QA!
Задачи, которые встают перед нами, обязаны решать сотрудники QA (по крайней мере при текущем положении дел), но в рамках данного подразделения требуется выделить отдельную группу, которая будет обладать соответствующими полномочиями.
• Где взять специалистов? Кому поручить?Специалистов в России фактически нет! Их надо искать и воспитывать. Кадровые агентства не помогут.