Сообщество Mozilla анонсировало два новых проекта: Minion и Peach. Minion представляет собой модульную платформу для организации проведения автоматизированного тестирования продуктов на предмет наличия потенциальных проблем с безопасностью. Проект Peach, развиваемый совместно с компанией BlackBerry, является фреймворком для организации fuzzing-тестирования браузеров. Код компонентов Minion написан на языке Python и распространяется под лицензией MPL. Исходные тексты Peach написаны на языке C# и доступны под лицензией MIT.
В процессе своей работы Peach выполняет серию подготовленных тестировщиками fuzzing-тестов, рассчитанных на проверку web-браузеров и симулирующих различные случайные комбинации входных данных. Например, проверяется обработка HTML-страниц со случайной комбинацией тегов и их параметров, в основной массе с некорректным применением аргументов. Сбой или крах при выполнении тестирования с высокой долей вероятности может свидетельствовать об ошибке или уязвимости. Peach уже активно используется для выявления в Firefox проблем с обработкой различных типов изображений, аудио и видео форматов, шрифтов, обращения к мультимедийным API, таким как WebGL и WebAudio, взаимодействия по протоколу WebRTC.
Minion является не привязанной к конкретным тестам универсальной платформой для автоматизации выполнения тестирования и упрощения деятельности разработчиков по проверке безопасности разрабатываемого кода. Идея проекта в предоставлении разработчикам приложений простых и понятных средств для тестирования, не требующих привлечения экспертов по безопасности. Различные сценарии тестирования оформляются в виде плагинов. Для управления процессом тестирования предлагается использовать специальный web-интерфейс на базе Flask и Angular.js.
Для начала тестирования своего web-приложения (уже размещённого на сервере) разработчику достаточно подключиться к сервису и инициировать процесс сканирования возможных проблем, выбрав уже подготовленные сценарии проведения тестирования. В настоящее время доступны такие методы проверки, как fuzzing-тестирование с использованием Skipfish, сканирование портов через nmap, использование Zed Attack Proxy для проверки на стойкость к типовым атакам, таким как подстановка SQL-кода или HTML-тегов. Каждый плагин выполняет определённую проверку, обращаясь по сети к целевому серверу или web-приложению, после чего возвращает результат в менеджер выполнения заданий, который координирует запуск плагинов. Кроме web-интерфейса тестирование может быть инициировано через специальный API, что позволяет интегрировать поддержку Minion в интегрированные среды разработки и различные сторонние инструментарии.
|