Обложка: Blackbox-сканеры в процессе оценки безопасности приложения

Blackbox-сканеры в процессе оценки безопасности приложения

Олег Халаджиев

Олег Халаджиев

руководитель группы обеспечения качества 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 приложений читайте в нашем следующем материале.

Вывод

Что делать после того, как вы выбрали сканер:

  1. Проводите сканирование периодически. Возьмите себе за правило проводить его после каждого релиза. В идеале в какой-то момент эти проверки должны стать частью релизного цикла или должны быть интегрированы в CI/CD.
  2. Помогайте разработке с воспроизведением проблемы и локализацией уязвимостей. Для начала можно почитать рекомендации OWASP, статьи на Хабре или на Security.ru.
  3. Попробуйте организовать внутренний bug bounty. Дальше — как договоритесь со своим руководством. Если опыт внедрения пройдет успешно, то можно bug bounty сделать публичным.
  4. Подумайте о whitebox-сканерах и анализаторах кода. Совместное использование whitebox и blackbox поможет обеспечить безопасность и общую стабильность вашего приложения.

Дальнейшее развитие этого направления может привести вас как QA к новой неожиданной должности — руководителю security-подразделения в компании. В любом случае вы получите опыт и ощутите свою ценность как специалиста. Вашей же компании это может помочь избежать утечки данных и репутационных потерь. А над письмами с угрозами типа «мы вам все сломаем» вы сможете дружно посмеяться. Прийти к этому результату можно только через налаженный процесс периодической проверки безопасности ваших приложений.