Импортозамещение сканеров web-уязвимостей: обзор актуальных DAST-решений
Привет, Хабр!
Поговорим о проблеме выбора DAST, который бы смог удовлетворить потребности регулярного поиска уязвимостей в web-инфраструктуре компании. Опытные пентестеры, специализирующиеся на web-приложениях, наверняка возразят: какой тут может быть выбор? Burp Suite PRO наше все! И будут правы, но на прошлом PHD мне в руки попала Позитивная карта импортозамещения (https://www.ptsecurity.com/upload/corporate/ru-ru/analytics/positive-research-2023-poster.pdf), где Positive Technologies предложили заместить иностранные DAST: Burp Suite Pro, Acunetix, Inviciti — своим решением PT BlackBox. Но чтобы коммерческим продуктам не быть едиными, заодно добавим в сравнение продукты open source.
Разберемся, импортозамещаться или приобретать через серые схемы иностранный Burp Suite Pro. Или вообще оставаться на бесплатном open source.
Что есть?
Бегло расскажу про сканеры, которые лично использовал. Чтобы не делать из статьи книгу, детально изучить функционал предлагаю по ссылкам, а здесь расскажу о каждом в двух словах.
Бесплатные open source
Wapiti — подробное описание на гите https://github.com/wapiti-scanner/wapiti.
Работает из-под Linux и командной строки, может подключать модули и базы. Выбрали таргет — и сканируйте. Звезд не хватает, то есть из коробки показывает базовые проблемы, из тех же заголовков web-сервера. Зато генерирует структурированный отчет:
Спартанский дизайн, но ничего лишнего. Все находки по типам уязвимостей, есть описание.
Nuclei — также имеет свою страничку на гите https://github.com/projectdiscovery/nuclei.
Консольный сканер web-уязвимостей, собирает инфо о версиях компонентов и ищет по ним CVE, проверяет собранные эндпоинты на базовые уязвимости. Работает из-под Linux, отчет генерирует в виде текстового файла. Многие команды AppSec активно используют этот сканер, так как он позволяет, подобно Nmap, писать свои модули. Это дешево и сердито и позволяет автоматизировать проверку приложений исходя из их особенностей. Регулярно получает обновления модулей со стороны сообщества https://blog.projectdiscovery.io/nuclei-templates-monthly-october-2023-edition/.
Не подходит новичкам, из коробки не эффективен, хотя иногда и показывает интересные находки.
В Nuclei нет GUI, но в отчете все понятно. Уязвимость, уровень, ссылка на объект.
Arachni — https://github.com/Arachni/arachni.
Мультиплатформенный автоматизированный сканер. Работает через web-интерфейс. Еще в начале 2023 года был бесплатным, но хороший движок решили коммерциализировать и в настоящий момент за свежие версии нужно платить https://ecsypno.com/pages/arachni-web-application-security-scanner-framework#Linux. Формирует удобные отчеты, но в бесплатной версии что-то интересное не показывал, только типичные проблемы.
Arachni до его «монетизации» выглядел хорошим решением для автоматизации поиска WEB уязвимостей. Можно было контролировать исправления, создавать задачи, удобный отчет. Все работало быстро. Сейчас можно довольствоваться только старыми бесплатными версиями.
VEGA — https://subgraph.com/vega/.
Мультиплатформенный сканер, работающий на Java. Некогда очень эффективный, поскольку находил реальные уязвимости, демонстрировал Proof of concept и имел на борту фазер. С 2017-го не поддерживается. Недавнее обновление Java убило его, так что использовать можно только на старых версиях Java. Тот случай, когда качественный продукт умер, потому что не приносил прибыль.
Один из самых сильных движков среди представленных инструментов, жаль что в 2017 году продукт перестал обновляться, но даже сейчас может обнаружить то, что другие не обнаружили.
Owasp ZAP — https://www.zaproxy.org.
Самая популярная альтернатива DAST коммерческому Burp Suite. Активно поддерживается, имеет тот же функционал, что и Burp, подходит как для ручного, так и автоматического поиска web-уязвимостей, кроссплатформенный. Есть множество дополнительных модулей, написанных сообществом, хотя в этом плане до Burp далеко. Есть русский язык, перевод местами кривоват. Казалось бы, вот бесплатное всемогущее решение класса DAST, однако минус у него есть, и существенный: ZAP не оптимизирован. Подтормаживает, зависает, очень прожорлив по ресурсам, да и интерфейс не очень удачный, если использовать как ручной инструмент. В режиме автоматического сканирования довольно много фолзпозитивов, но благо, ничего не мешает отметить их таковыми и не дать попасть в итоговый отчет.
Отличная альтернатива Burp Suite да еще и с Русским языком. Если нет возможности приобрести «Бурп», но нужен подобный функционал, то это решение без альтернативно.
Коммерческие иностранные решения
Да, сейчас есть проблемы с их покупкой, но кого это останавливает? Российские магазины ПО могут запросто с этим помочь.
Acunetix web vulnerability scanner — https://www.acceron.net/index.php/products/acunetix.
Можно купить в РФ через посредников. Стоит около 250 тыс. ₽ в год в минимальной комплектации. Мало пользовался им ввиду цены и не особо сильного функционала, хотя иногда находит довольно экзотические XSS.
Netsparker Desktop WebApplication Security Scanner (ныне invicti) — https://www.invicti.com.
Раньше хорошо находил уязвимости, что произошло сейчас с ребрендингом — трудно сказать. Опять же, недешевое решение. Около 1 млн ₽ в год точно стоит.
Мощный инструмент автоматизированного динамического анализа WEB приложений. Обширный набор сигнатур для анализа и «не сдается» даже при наличии WAF.
Metasploit pro — https://www.rapid7.com/products/metasploit/.
Не то чтобы это прям сканер web-уязвимостей. Это сканер всех уязвимостей / аналог open source Metasploit Framework с той лишь разницей, что автоматизирован и подбирает эксплойты на лету, делая Пентест в том числе web-приложений легким как никогда. В свое время пилотировал, однако стоит ли платить только за удобство более 1 млн ₽ в год, когда есть Metasploit Framework? Позже ответим на этот вопрос.
Все тот же Metasploit, но с хорошим GUI, позволяющий формировать задачи и применять свой арсенал сразу на инфраструктуру.
Burp Suite Pro — https://portswigger.net/burp.
Эталон в мире DAST стоимостью 45 000 ₽ в год. Мультиплатформенный. Ручные и автоматизированные проверки web-приложений. Свой магазин модулей + возможность сделать кастомные. Если это идеал, то почему он не затмил другие сканеры? Увидим дальше;)
В Burp Suite PRO в отличии от версии для комьюнити встроен автоматизированный сканер уязвимостей, который можно «тюнить» модулями сообщества или даже своими.
Отечественные сканеры web-уязвимостей
PT BlackBox — https://www.ptsecurity.com/ru-ru/products/blackbox/.
Удивительно, но продукт Positive Technologies работает только на Linux, причем для него обязательно нужен Docker Compose. Есть web-интерфейс. Работает только в автоматизированном режиме. То есть выбрал сайт, добавил учетные данные от него для авторизации (если нужно) и ждешь. Все на русском, есть рекомендации к устранению. Стоит соразмерно западным аналогам.
Отечественный продукт Positive Technologies отличает простота интерфейса и лаконичный дизайн, но тюнингу и модернизации этот продукт не подвластен, поэтому, придется довольствоваться тем, что есть.
PT Black Box понятно описывает проблему безопасности и как ее решить. Справится с анализом уязвимостей даже стажер ИБ
Irbby — https://irbby.ru.
Работает под Linux и Windows. На момент написания статьи охарактеризовал бы его как сканер, который только начал свой путь. Есть проблемы с оптимизацией — на достаточно современном сервере запустил сканирование одного ресурса, но когда решил посмотреть отчет по другому, то все зависло.
Долго открывает отчеты. Находки сравнимы с модулями web-уязвимости сканеров уязвимостей типа Xspider, Max Patrol 8, Nessus, то есть при сканировании двух боевых и бенчмарка я увидел лишь поверхностные (баннерные) уязвимости. Конечно, в будущем сканер прокачают, а пока его стоимость на 1 хост оценивается в 40 000 ₽ в год.
Интерфейс в стиле навигатора Windows. Количество находок в текущем его состоянии разочаровало.
Описание проблем общее, не хватает форматирования. Чувствуется, что продукт еще дорабатывают.
Больше на нашем рынке сканеров нет.
Тестирование
Тестирования производились из коробки, то есть со стандартными правилами и базами. Объектом тестирования стал 1 сайт собственной инфраструктуры, афишировать его не буду по понятным причинам. Вторым объектом стал web-сервис, созданный для тестирования возможностей сканеров, — https://github.com/OWASP-Benchmark.
Почему выбрана такая методология? Дело в том, что сканеры на бою и на уязвимых приложениях для тестирований работают совершенно по-разному. Так, сканеры на бою показывали скудный результат, на бенчмарке могли по количеству уязвимостей уйти в рекордсмены, что наводит на мысль, что, возможно, некоторые разработчики могли оптимизировать свои алгоритмы под тестовые площадки. По крайней мере с OWASP Benchmark и Owasp Zap эта гипотеза уж очень подтверждается ;)
В результате получилось вот что:
Сканер уязвимостей | Наличие описаний уязвимостей | Демонстрация Prof of Concept и соответствующее поведение сайта | Обнаружение реальных web-уязвимостей на бою у одного из ресурсов компании | Обнаружение реальных уязвимостей на OWASP Bechmark |
---|---|---|---|---|
Arachni (open source) | Есть | Нет | Нет | 47 |
Nuclei (open source) | Нет | Нет | Нет | 3 |
OwaspZap (open source) | Есть | Есть | Нет | 9 496 |
Wapiti (open source) | Есть | Нет | Нет | 711 |
Burp Suite PRO ($449) | Есть | Есть | Подтвержденная Reflected XSS | 364 |
VEGA (open source) | Есть | Есть | Верно указано место, неверно — полезная нагрузка (ответ сервера Bad Gateway) | Сканер зависает. Тесты провести не удалось |
PT Black Box (цена по запросу) | Есть | Есть | Нет | 500 |
IRBBY (195 000 ₽ за неограниченную версию) | Есть | Есть | Нет | 2 |
Коммерческие иностранные продукты Acunetix, Inviciti, Metasploit Pro не тестировал, они были неинтересны из-за стоимости и только автоматизированного функционала тестирования.
Что смогли импортозамещаемые сканеры
Как видим, в общем забеге PT BlackBox показал средние результаты, но нельзя сказать, что у автоматизированного Burp Suite Pro результаты весомые. Да, на бою он нашел уязвимость, но только на конкретном сайте.
Скажу по опыту регулярного поиска уязвимостей, что автоматизированным методом Burp Site Pro иногда не находит то, что находит Vega или Owasp Zap, и наоборот. А вот PT Black Box пока что похвалить такими уникальными находками не могу, но так ли все плохо с отечественным продуктом? Вовсе нет, приведем реальные его преимущества по сравнению с Burp Suite:
Удобная запись авторизации, поддерживается множество вариантов.
Возможность создавать различных пользователей и разные организации. Эти функции есть в Burp Enterprise, в Pro-версии отсутствуют.
Русская локализация, понятные рекомендации (весомый аргумент, если отдел ИБ молодой).
Возможность выбора формы итогового отчета.
Версионное сканирование используемых компонентов на предмет CVE.
User-friendly интерфейс.
Очень простая настройка.
Минимум false-positive результатов.
Оперативная техподдержка.
Недостатки:
Отсутствуют дополнительные инструменты, такие как фазер (для web-сканера очень полезная фича), логгер запросов.
Плохо работает или вовсе не работает с внеполосными уязвимостями.
Не проверяет конфигурацию CORS.
Отсутствует вариант расширения возможностей сканера за счет подключения дополнительных модулей (плагинов), который есть во многих популярных сканерах.
Иногда прогресс сканирования полностью останавливается, а из-за отсутствия логгера нет возможности посмотреть, идет ли вообще сканирование, или он завис.
Нет ручного управления уровнем критичности результатов. Нельзя вручную отметить результат как фолз-позитивный или снизить критичность уязвимости в отчете.
Слишком общие формулировки при возникновении ошибок, которые никак не помогают решить проблему. «Что-то пошло не так» — что пошло не так? «Поле заполнено некорректно» — какое именно?
Чувствуется, что продукт незаконченный, поскольку иногда возникают технические проблемы (виснет сканер, нельзя отменить операцию, докеры пару раз отваливались и приходилось вручную их поднимать).
А вот второй российский продукт — Irbby — похвалить, к сожалению, не за что. Никаких преимуществ, кроме лицензии ФСТЭК, по сравнению c тестируемыми сканерами, у него нет. Так что пока записываем в аутсайдеры.
Но почему при наличии преимуществ у других сканерах, том же PT Black Box, Burp Suite стал легендой в области пентеста web-приложений?
Мы рассмотрели максимально большой перечень сканеров уязвимостей (по крайней мере, те, до которых добрались мои руки). Все они, кроме ZAP и Burp, работают по принципу «ввел таргет — получил результат». Если бы только по такому принципу работали Bug Hunters, то зачем нужно Bug Bounty? Не дешевле ли компании приобрести сканер web-уязвимостей? Даже два?
Вот причины:
— Возможность самостоятельно анализировать логику работы приложения, кодировать/декодировать команды, встраиваться в любые HTTP-запросы и с помощью интрудера массово изменять их с возможностью произвести цепочку преобразований полезной нагрузки перед отправкой, просматривая на лету изменения поведения сервера.
— Возможность вручную поиграть с обнаруженными уязвимостями, на месте раскрутив какой-нибудь простой file inclusion до RCE.
— И самое главное: ни один полностью автоматический сканер без возможности ручного исследования не найдет уязвимости бизнес-логики (которые также несут убытки компании в случае эксплуатации), да и в целом возможность облегчить тестирование уязвимостей, которые можно проверить только вручную.
Вот чем такие профессиональные инструменты, как ZAP и Burp Suite, отличаются от всего остального. Ну и не стоит забывать, что Owasp ZAP — это бесплатный инструмент, а Burp Suite из моего списка — один из самых дешевых сканеров web-уязвимости.
Так какой сканер уязвимостей web-приложений выбрать?
Нельзя ответить на этот вопрос, не зная ваших потребностей, поэтому приведу таблицу с вероятными критериями этих самых потребностей:
Название сканера | Наличие в реестре отечественного ПО (важно для КИИ) | Автоматизированное сканирование web- уязвимостей | Ручной поиск web- уязвимостей | Наличие интерфейса | Подходит ли для начинающих специалистов ИБ |
---|---|---|---|---|---|
Nuclei | Нет | Есть | Нет | Нет | Нет |
Owasp Zap | Нет | Есть | Есть | Есть | Нет |
Burp Suite Pro | Нет | Есть | Есть | Есть | Нет |
Vega | Нет | Есть | Нет | Есть | Да |
Wapiti | Нет | Есть | Нет | Нет | Да |
Arachi | Нет | Есть | Нет | Есть | Да |
PT Black Box | Есть | Есть | Нет | Есть | Да |
Metasploit pro | Нет | Есть | Есть | Есть | Нет |
Inviciti | Нет | Есть | Нет | Есть | Да |
Acunetix | Нет | Есть | Нет | Есть | Да |
Irbby | Есть | Есть | Нет | Есть | Да |
Выводы
Eсли компания имеет ограничения в использовании иностранного ПО и в ее штате нет специалистов ИБ, специализирующихся на web (уровня middle, senior), то PT Black Box — ваш выбор. Irbby посоветовать пока не могу, разве что ради отчетности перед регулятором, что отечественный продукт для поиска web-уязвимостей есть, ведь он очевидно дешевле сканера от Positive Technologies.
Если в компании нет ограничений по иностранному ПО, при наличии неквалифицированных специалистов можно взять open source-решения типа Owasp Zap (только для автоматизированного сканирования), VEGA. Wapiti — аутсайдер, который не буду советовать. Arachni стал коммерческим продуктом, а старая версия и так была слабой, и, соответственно, не получит больше бесплатного обновления.
Если в компании нет ограничений по иностранному ПО и есть высококомпетентные специалисты ИБ в области web, то Burp Suite Pro — маст хэв. Burp раскрывается в гибридном режиме (автоматический скан + разбор находок в ручном режиме). В общем-то, нет более многофункционального инструмента DAST в настоящее время, но им нужно уметь пользоваться — благо, есть бесплатные курсы для его освоения https://portswigger.net/web-security.
Если не хочется платить и есть желание кодить, то Nuclei+ custom template + личные наработки покроют потребности в автоматизированных поисках уязвимостей. Кроме того, этот сканер благодаря своей гибкости популярен в РФ как среди пентестеров, так и среди команд AppSeс.
Если компания международная и не попала под санкции, то Acunetix, Metasploit pro, Inviciti — вполне годные продукты. У каждого из этих сканеров разработчик с многолетним опытом, продукты по-настоящему зрелые.
Как-то так. Было бы интересно почитать в комментариях опыт коллег и здоровую критику, поскольку эта статья — полностью плод личных исследований и наблюдений. Спасибо!