Blackbox-сканеры в процессе оценки безопасности приложения
Рассматриваем несколько Blackbox-сканеров для поиска дыр в безопасности ваших проектов.
1К открытий1К показов
Олег Халаджиев
руководитель группы обеспечения качества Positive Technologies
Профиль задач quality engineer (QE) достаточно широк. Он занимается как классическим функциональным тестированием и баг-менеджментом, так и проверкой нефункциональных требований и продуктовых метрик. Сегодня к нефункциональным требованиям добавляется и безопасность приложений. При этом решение вопросов безопасности все чаще связывается с DevSecOps. Такой тандем команд тестирования и DevSec должен ответить на вопросы о том, насколько безопасно приложение, все ли с ним хорошо.
К сожалению, в DevSecOps проверка безопасности отодвигается на более поздний срок, ближе к релизу приложения. Наиболее частое решение в части «Sec» сводится к стандартному администрированию, а именно — к использованию бесплатных файрволов, например ModSecurity, либо использованию средств облачных провайдеров (Amazon, Microsoft, DigitalOcean) и покупке готовых решений.
Такой подход является достаточным для раннего запуска приложения и может обеспечить защиту от стандартных атак. Например, от подбора пароля или DDoS. Но как quality/security engineer могу отметить, что данные средства не решают вопросы безопасности самого приложения. Они не помогут найти уязвимости и проблемы приложения, например XSS или SQL-инъекции.
Что в данной ситуации можно сделать, будучи QE? Первое и самое важное — это заострить внимание на проблеме. И это не разовое действие. Безопасность — это процесс, в котором нужно двигаться поступательно, начиная с периодического обнаружения уязвимостей и заканчивая контролем их исправления. Первым логичным шагом построения такого процесса является поиск и подбор средств обнаружения проблем безопасности. И с точки зрения тестирования самым простым решением здесь будет использование blackbox-сканеров (DAST).
Сейчас на рынке существует несколько разных вариантов как платных, так и бесплатных сканеров безопасности. Наиболее популярным из бесплатных является ZAP, а из платных — Burp Suite Professional. Отдельно стоит остановиться на Acunetix, Netsparker и PT BBS.
Сканеры
ZAP
Бесплатный простой сканер с большим набором подготовленных проверок, которые довольно просто интегрируется в CI/CD.
Плюсы:
- Просто скачать и настроить через Docker-контейнер.
- Набор необходимых проверок для наиболее популярных уязвимостей.
- Большое комьюнити и достаточно сопроводительной информации.
Минусы:
- Неудобный отчет.
- Большое количество дубликатов и false-positive срабатываний.
- Долгое время работы при полном сканировании.
Здесь, как и со многими бесплатными приложениями, приходится платить своим рабочим временем и необходимостью повторных проверок. С другой стороны, именно за счет простого встраивания и быстрого получения результатов этот сканер может стать самым простым способом понять текущий статус приложения.
PT BBS
Бесплатный сканер, работающий как веб-сервис (без возможности локального запуска).
Плюсы:
- Сравнимый, а местами и превосходящий ZAP набор проверок.
- Меньшее количество false-positive результатов в сравнении с ZAP.
- Более удобный отчет о результатах.
- Запуск сервиса не требует никакой предварительной работы для уже опубликованных в интернете сайтов.
- Для сайтов внутри локальной сети достаточно скачать простой агент с командной строкой и запустить его на компьютере с выходом в интернет.
Минусы:
- Меньший по сравнению с платными аналогами набор проверок.
- Отсутствие возможности сохранить полученный результат локально.
- Нет локальной версии и интеграции с CI/CD.
Этот сканер менее популярен, чем ZAP, но, по моему мнению, является самым простым и быстрым инструментом для оценки состояния приложения.
Burp Suite Professional
Самый популярный из платных сканеров. Есть возможность запустить поиск уязвимостей, но решается это в несколько шагов. Нет того удобства, которое есть у конкурентов. Но сканер — не главная особенность Burp. Полюбили его и пользуются им за обширную функциональность по поиску и подтверждению любых проблем и уязвимостей на бэкенде.
Плюсы:
- Популярность и широкий набор инструментов, помогающих искать и воспроизводить уязвимости в приложении.
- Сравнительно невысокая цена.
- Меньшее количество false-positives в сравнении с ZAP.
- В целом большее количество найденных уязвимостей относительно ZAP.
- Удобная работа с отчетом. Данные по уязвимостям удобно сгруппированы, есть описание и ссылки на CWE, что помогает в процессе исправления.
Минусы:
- Очень низкая скорость работы.
- Невозможность использовать его как one-click приложение — в отличие от ZAP и PT BBS.
- Набор уязвимостей меньше, чем у платных конкурентов и чем у PT BBS.
Acunetix
Один из самых популярных платных сканеров, который довольно просто настраивается, легко запускается, имеет приятный веб-интерфейс и удобные отчеты.
Плюсы:
- Простота запуска и добавления новых целей.
- Красивый дашборд.
- Небольшое количество false-positives.
- В обновленной 13-й версии ускорено общее время работы сканера. Но по моему опыту, быстрота сканирования достигается за счет его остановки из-за ошибки, что не является ожидаемым результатом.
Минусы:
- Стоимость: 5000 $ за пять целей не кажутся приемлемой ценой.
- Не всегда понятный и часто пугающий отчет. Может выдать набор уязвимостей, который предполагается из-за вашей версии приложения, — как имеющуюся уязвимость высокой степени опасности. (Наличие номера CVE для вашей версии софта не означает, что данная уязвимость может быть проэксплуатирована именно на вашем сайте.)
- Большое количество дубликатов.
Наверное, один из самых «раскрученных» платных сканеров безопасности, но на мой взгляд, он далеко не идеален. Да, он удобен в плане сервиса: его легко купить и установить, есть поддержка. Наличие скачиваемого отчета, которым можно поделиться со своим руководством, также является огромным его преимуществам. Но для многих компаний, особенно небольших, цена будет неприемлемой. Тот факт, что отчет перегружен и нагнетает нервозность, может оттолкнуть от продления лицензии.
Netsparker
Менее популярный платный сканер безопасности — но, наверное, самый точный в плане представления результатов.
Плюсы:
- Самый удобный и приятный отчет из всех рассмотренных сканеров: хорошая группировка по уязвимостям, самая удобная работа с дубликатами и, в общем, меньшее их количество относительно всех других сканеров.
- Наименьшее количество ложных срабатываний и хорошее представление уязвимостей.
- Поставляется в виде запускаемого приложения, поэтому нет проблем с установкой.
Минусы:
- Те же 5000 $ за пять лицензий.
- Стабильно приложение работает только на Windows, будьте готовы к проблемам при запуске на Linux.
- Перегруженный дизайн интерфейса.
Наверное, один из лучших сканеров безопасности.
Single-page app
Отдельно у всех представленных выше сканеров стоит оценить работу с SPA. К сожалению, практически ни один из них не может должным образом работать с современными веб-приложениями. Разработчики каждого из сканеров периодически публикуют информацию о том, что продвигаются в этом направлении, но хороших результатов показать никто из них не может.
О тестировании single-page приложений читайте в нашем следующем материале.
Вывод
Что делать после того, как вы выбрали сканер:
- Проводите сканирование периодически. Возьмите себе за правило проводить его после каждого релиза. В идеале в какой-то момент эти проверки должны стать частью релизного цикла или должны быть интегрированы в CI/CD.
- Помогайте разработке с воспроизведением проблемы и локализацией уязвимостей. Для начала можно почитать рекомендации OWASP, статьи на Хабре или на Security.ru.
- Попробуйте организовать внутренний bug bounty. Дальше — как договоритесь со своим руководством. Если опыт внедрения пройдет успешно, то можно bug bounty сделать публичным.
- Подумайте о whitebox-сканерах и анализаторах кода. Совместное использование whitebox и blackbox поможет обеспечить безопасность и общую стабильность вашего приложения.
Дальнейшее развитие этого направления может привести вас как QA к новой неожиданной должности — руководителю security-подразделения в компании. В любом случае вы получите опыт и ощутите свою ценность как специалиста. Вашей же компании это может помочь избежать утечки данных и репутационных потерь. А над письмами с угрозами типа «мы вам все сломаем» вы сможете дружно посмеяться. Прийти к этому результату можно только через налаженный процесс периодической проверки безопасности ваших приложений.
1К открытий1К показов