сканер уязвимостей что это
Чем искать уязвимости веб-приложений: сравниваем восемь популярных сканеров
Сканеры веб-приложений — довольно популярная сегодня категория софта. Есть платные сканеры, есть бесплатные. У каждого из них свой набор параметров и уязвимостей, возможных для обнаружения. Некоторые ограничиваются только теми, что публикуются в OWASP Top Ten (Open Web Application Security Project), некоторые идут в своем black-box тестировании гораздо дальше.
В этом посте мы собрали восемь популярных сканеров, рассмотрели их подробнее и попробовали в деле. В качестве тренировочных мишеней выбрали независимые точки на двух платформах (.NET и php): premium.pgabank.com и php.testsparker.com.
OWASP ZAP
Как можно догадаться по названию, за выпуск OWASP ZAP отвечает та самая организация OWASP, что мы упомянули во вступлении. Это бесплатный инструмент для тестирования на проникновение и для поиска уязвимостей в веб-приложениях.
Основные возможности OWASP ZAP:
Интерфейс программы переведен на русский, что будет удобно для некоторых пользователей. Рабочая область OWASP ZAP складывается из нескольких окон. Внизу — вкладки с текущими заданиями и процесс их выполнения, слева — дерево сайтов, дополнительно можно вывести в правую часть окна запросов и ответов.
С помощью маркетплейса можно немного расширить функциональность сканера.
У каждого компонента программы есть много настраиваемых параметров. Например, мы можем настроить входящие векторы для активного сканирования, сгенерировать динамические SSL-сертификаты, добавить идентификаторы HTTP-сессий и т.д.
Перейдем к тестам. При сканировании сайта php.testsparker.com была найдена Blind SQL Injection. На этом критичные уязвимости заканчиваются.
На premium.bgabank.com мы видим более интересные результаты: найдена возможность Server Side Include (SSI) и Reflected Cross Site Scripting.
Все результаты сканирования можно экспортировать в отчет (поддерживается *.pdf, *.html, *.xml, *.json). В отчете подробно описываются уязвимости, найденные векторы, а также методы «закрытия» уязвимостей.
В целом работать с OWASP ZAP нам понравилось. Есть все необходимые инструменты для пентеста веб-приложения, простой и понятный интерфейс, быстрое сканирование в один клик. И при этом гибкие, глубокие настройки для более детального сканирования, что может послужить отправной точкой для дальнейшего ручного поиска уязвимостей. Ниже мы еще расскажем о сканере Burp Suite Pro, который имеет с OWASP ZAP много общего. По количеству и качеству найденных уязвимостей первый рассмотренный нами сканер показал очень неплохой результат. Рекомендован к использованию в работе.
W9scan
W9scan — это бесплатный консольный сканер уязвимостей сайта с более чем 1200 встроенными плагинами, которые могут определять отпечатки веб-страниц, портов, проводить анализ структуры веб-сайта, находить различные популярные уязвимости, сканировать на SQL Injection, XSS и т. д.
W9scan автоматически генерирует отчеты о результатах сканирования в формате HTML. Для запуска сканирования требуется только указать URL сайта и плагины, которые будут использоваться. Можно выбрать сразу все, дописав «all».
При сканировании php.testsparker.com W9scan нашел svn и возможные пути загрузки payload. Из менее критичного — определил версии используемых сервисов, возможные векторы проведения XXE, XXS-атак, нашел конфигурационные файлы сервера и провел поиск субдоменов.
На сайте premium.bgabank.com ничего критичного найдено не было. Но сканер определил возможные векторы проведения атак, определены версии сервисов, директории и субдомены.
По результатам сканирования W9scan автоматически генерирует файл отчета в формате HTML.
W9scan сканер подойдет для быстрого запуска в одну команду и мы рекомендуем использовать его как вспомогательный инструмент для определения версий сервисов, а также потенциальных векторов атак.
Wapiti
Ещё один неплохой консольный сканер. Так же, как и W9scan, готов к старту в одну команду, при этом имеет больше разных настроек сканирования.
Wapiti производит поиск следующих уязвимостей:
При сканировании сайта php.testsparker.com были найдены уязвимости Blind SQL Injection, Cross Site Scripting, Commands execution. На premium.bgabank.com Wapiti в сравнении с другими сканерами показывает не такие выдающиеся результаты: был обнаружен только Cross Site Scripting.
По результатам работы сканера также формируется отчет в формате HTML, в котором содержатся категории и число найденных уязвимостей, их описание, запросы, команды для curl и советы о том, как закрыть найденные дыры в безопасности.
Как и следовало ожидать, Wapiti до уровня OWASP ZAP, конечно, не дотягивает. Но все же он отработал качественнее W9scan, хотя не был произведен поиск директорий, субдоменов и определение версий сервисов.
Arachni
Мощный бесплатный комбайн для теста защищенности веб-приложений и поиска уязвимостей. Имеет графический интерфейс и огромную функциональность, о которой более подробно можно почитать на официальном сайте.
Внушительно, не правда ли? Но и это не все. В «паутину» завернута ещё куча плагинов, например Passive Proxy, Dictionary attacker for HTTP Auth, Cookie collector, WAF Detector и др.
Сканер имеет приятный и лаконичный веб-интерфейс:
И вот что нашел Arachni на наших тестовых сайтах. Php.testsparker.com:
На premium.bgabank.com из критичного была обнаружена только возможность межсайтовой подделки запросов (CSRF).
Отдельно отметим, какие симпатичные отчеты выдает нам Arachni. Поддерживается немало форматов — HTML, XML, text, JSON, Marshal, YAML, AFR.
В общем, Arachni оставляет после работы только положительные впечатления. Наше мнение: это «маст хэв» в арсенале любого уважающего себя спеца.
Paros
Еще один сканер веб-уязвимостей с графическим интерфейсом. По умолчанию включен в дистрибутив Kali Linux и установлен там локально. Имеет встроенный прокси, через который добавляются сайты для анализа, встроенный веб-паук, способный анализировать сайт и строить карту запросов.
Для сканирования личного кабинета пользователя необходимо авторизоваться в браузере с включенным перенаправлением трафика через прокси Paros. Сканер будет использовать авторизованные куки в процессе сканирования. Отчет о работе можно экспортировать в HTML. Он сохраняется в файл root/paros/session/LatestScannedReport.htm и в дальнейшем перезаписывается. Если вы хотите сохранить результат предыдущего сканирования, то перед началом следующего сканирования необходимо создать копию имеющегося файла.
Основные возможности (с оглядкой на OWASP TOP 10 2017):
В финальном отчете к каждому типу уязвимостей есть более подробная информация и некоторые рекомендации о способе устранения.
В нашем тестировании Paros показал довольно слабые результаты. На php.testsparker.com были найдены:
H: SQL injection
M: XSS
M: Устаревшие файлы с исходным кодом
M: Использование автозаполнения в формах с важной информацией (пароли и прочее).
L: Раскрытие внутренних IP
На premium.bgabank.com и того меньше:
M: Directory browsing
M: Использование автозаполнения в формах с важной информацией (пароли и прочее).
В итоге, хотя сканер Paros прост и достаточно удобен в использовании, слабые результаты сканирования заставляют отказаться от его использования.
Tenable.io
Платный многофункциональный облачный сканер, который умеет находить большое число веб-уязвимостей и почти полностью покрывает OWASP TOP 10 2017.
Сервис имеет встроенного веб-паука. Если в настройках сканирования указать данные авторизации (запрос авторизации, логин и пароль, авторизованные куки), то сканер проверит и личный кабинет (зону авторизованного пользователя).
Кроме сканирования веб-приложений, Tenable.io умеет сканировать сеть — как на предмет известных уязвимостей, так и для поиска хостов. Возможно подключение агентов для сканирования внутренней сети. Есть возможность экспортирования отчета в различные форматы: *.nessus, *.csv, *.db, *.pdf.
На скриншоте все домены «тестовые»
Дополнительные профили сканирования. В данной статье не затрагиваются
После сканирования становится доступна статистика и приоритизация найденных уязвимостей — critical, high, middle, low, information
В карточке уязвимости представлена дополнительная информация о ней и некоторые рекомендации по ее устранению.
Сканируем php.testsparker.com. Уязвимости с приоритетом high:
H: Уязвимости компонентов
— вышедшая из поддержки версия PHP
— вышедшая из поддержки версия Apache
H: Code injection
H: SQLinj
H: XSS
H: LFI
H: Path Traversal
Теперь premium.bgabank.com. Уязвимости с приоритетом high:
H: Уязвимости компонентов
Сканер Tenable.io показал себя хорошо, нашел множество уязвимостей. Работу с ним упрощает удобный графический интерфейс и представление данных. Еще один плюс — наличие дополнительных профилей сканирования, в которые мы пока решили не зарываться. Важной особенностью является облачная структура сервиса. С одной стороны, сервис не использует локальные вычислительные ресурсы рабочего компьютера. С другой — не сможет просканировать веб-приложения в локальной сети.
Burp Suite Pro
Burp Suite — это комплексное решение для проверок веб-приложений. Оно включает в себя разнообразные утилиты, позволяющие улучшить и ускорить поиск уязвимостей веб-приложений.
В составе Burp Suite есть следующие утилиты:
На вкладке Issue Definition представлен полный список всех уязвимостей, которые способен выявить данный сканер. Следует отметить, что список весьма внушительный.
Все уязвимости разделены на 3 категории: high, medium, low. Также есть категория information, к которой относятся механизмы сбора различной полезной информации о сканируемом ресурсе.
При запуске сканирования в окне Scan queue мы можем наблюдать за прогрессом по этапам. «Цветовая дифференциация штанов» присутствует.
На вкладке Options выполняется основная настройка параметров сканирования.
Для удобства опции разбиты по категориям. При необходимости можно получить справку по каждой категории прямо из окна настройки.
В целом Burp Suite Pro показал неплохой результат. При сканировании php.testsparker.com было найдено и классифицировано достаточно уязвимостей чтобы получить полный контроль над веб приложением и его данными — это и OS command injection, и SSTI, и File path traversal.
На сайте premium.bgabank.com были найдены:
H: Cross-site scripting (reflected)
M: SSL cookie without secure flag set
M: SSL certificate (not trusted or expired)
L: Cookie without HttpOnly flag set
L: Password field with autocomplete enabled
L: Strict transport security not enforced
Если для веб-пентеста вы часто используете Burp Suite, вам нравится его экосистема, но хотелось бы как-то автоматизировать процесс поиска уязвимостей, то эта утилита отлично впишется в ваш арсенал.
Acunetix
В заключение — еще один весьма неплохой коммерческий сканер. Его очень активно продвигают с помощью рекламы, но Acutenix не добился бы успеха без своей обширной функциональности. Среди доступных ему для обнаружения уязвимостей — все виды SQL injection, Cross site scripting, CRLF injection и прочие радости пентестера веб-приложений. Стоит отметить, что для качественного сканирования требуется выбрать правильный профиль.
Интерфейс дашборда приятный:
Все выявленные уязвимости по традиции раскладываются на четыре категории: High, Medium, Low. Ну и куда же без категории Information, в которую включаются все интересные, по мнению сканера, данные.
На вкладке Scans мы можем наблюдать прогресс сканирования и прочую диагностическую информацию.
После завершения сканирования на вкладке Vulnerabilities мы можем ознакомиться с тем, что и в каком количестве было найдено. Цветовая дифференциация на месте.
В тесте на php.testsparker.com сканер показал неплохой результат, а вот с premium.bgabank.com откровенно подкачал.
php.testsparker.com:
H: Apache 2.2.14 mod_isapi Dangling Pointer
H: Blind SQL Injection
H: Cross site scripting
H: Cross site scripting (verified)
H: Directory traversal
H: File inclusion
H: PHP code injection
H: Server-side template injection
H: SVN repository found
H: User controllable script source
M: Access database found
M: Apache 2.x version older than 2.2.9
M: Apache httpd remote denial of service
M: Apache httpOnly cookie disclosure
M: Application error message
M: Backup files
M: Directory listing
M: HTML form without CSRF protection
M: Insecure clientaccesspolicy.xml file
M: Partial user controllable script source
M: PHP hangs on parsing particular strings as floating point number
M: PHP preg_replace used on user input
M: Source code disclosure
M: User credentials are sent in clear text
L: Apache 2.x version older than 2.2.10
L: Apache mod_negotiation filename bruteforcing
L: Clickjacking: X-Frame-Options header missing
L: Login page password-guessing attack
L: Possible relative path overwrite
L: Possible sensitive directories
L: Possible sensitive files
L: TRACE method is enabled
premium.bgabank.com:
L: Clickjacking: X-Frame-Options header missing
Acunetix имеет большие возможности и подойдет, если вы ищете stand-alone решение. Веб-интерфейс прост и понятен, инфографика и отчеты выглядят вполне удобоваримо. Возможны осечки при сканировании, но, как говорил Тони Старк: «С мужиками такое случается. Не часто. Один разок из пяти».
Общие итоги
А теперь выводы по всем протестированным сканерам.
Использование сканера уязвимостей OpenVAS
Сканеры уязвимостей — это программные или аппаратные средства, служащие для осуществления диагностики и мониторинга сетевых компьютеров, позволяющее сканировать сети, компьютеры и приложения на предмет обнаружения возможных проблем в системе безопасности, оценивать и устранять уязвимости. (Википедия).
Известными коммерческими сканерами являются Nessus, GFI LANguard, XSpider.
В отличии от прочих, OpenVAS бесплатен, работает без каких либо ограничений и может пригодится как сетевым администраторам, так и специалистам ИБ для выявления актуальных проблем своей инфраструктуры.
В основе работы OpenVAS-а лежит постоянно пополняемая коллекция NVT тестов безопасности (которых уже больше 30000), а также подключение к базе CVE, описывающей известные уязвимости. Исполнение NVT тестов позволяет выявить уязвимость, а CVE обеспечивает описание проблемы и способы её решения.
1. Выбор железа.
Тут все просто, если предстоит сканировать часто и большие диапазоны адресов, то чем мощнее железо, тем лучше. Можно увеличивать число параллельных потоков обработки сетевых адресов, да и само сканирование по каждому хосту будет проходить быстрее.
2. Установка.
Тут я выбираю наименее проблемный для меня способ установки из пакетов.
Заходим на адрес.
www.openvas.org/install-packages.html
Выбираем нужный дистрибутив и устанавливаем.
В моем случае это CentOS и репозитарий atomicorp. Скрипт сам скачает все зависимости, проведет первоначальное обновление базы уязвимостей и пропишет нужные настройки. В процессе попросит придумать логин и пароль для доступа в Openvas.
3. Использование.
Переходим по адресу localhost:9392 вводим логин и пароль и мы в консоли управления Greenbone Security Assistant.
Далее пример работы с Openvas для сканирования диапазона внутренней сети. Основные настройки заточены под оптимальную скорость проверки каждого хоста.
3.1 Выбираем конфигурацию сканирования.
Идем в раздел Configuration – Scan Configs.
Видим 4 стандартных политики и 1 пустую.
Политики делятся на 2 группы – fast и deep.
Принципиальное различие — в deep не учитывается работа каждого предыдущего скрипта проверки и сбор информации начинается заново.
По моим тестам, это существенно увеличило время сканирования каждого хоста, при отсутствии значимого результата. Поэтому поэтому для большей скорости выбираем политику Full and fast ultimate и клонируем ее нажав на значок овечки .
Теперь, для клона, нам доступны опции редактирования и нажав на значок гаечного ключа , заглянем внутрь.
Опций великое множество, несколько сотен, на скрине, только самое начало. Все опции сгруппированы по подразделам NVT тестов по различным типам операционных систем и сетевого оборудования, по настройкам различных подключаемых утилиты типа nmap, nikto и др.
Называем нашу новую политику Office_scan_config.
Обращаю внимание на следующие пункты.
safe_check–отключение позволит запускаться потенциально опасным NVT тестам, выполнение которых может вызвать падение тестируемого хоста. Использовать аккуратно.
optimize_test– переключатель который задает использовать fast или deep сканирование.
Далее спускаемся до пунктов PingHost и выставляем переключатели, как на скриншоте.
Это позволит сразу исключать пустые адреса и не тратить на них время сканера. Остальные пункты не трогаем.
Не забываем сохранить принятые изменения.
3.2 Прописываем учетную запись для проведения локальных проверок.
Если данный пункт сконфигурирован, то Openvas будет заходить на каждую машину, сканировать установленный софт, локальные настройки безопасности и выкидывать алерты, в случае обнаружения проблем.
Естественно это увеличит время сканирования.
Если не конфигурировать, Openvas ограничится удаленными проверками.
Идем в раздел Configuration –Credentials.
Создаем новую запись, нажав на значок звездочки .
Допустим у нас windows сеть в домене, есть пользователь sec_check, с правами локального администратора на нужных машинах, тогда это будет выглядеть так.
Сохраняем и идем дальше.
3.3 Устанавливаем цели сканирования.
Далее нам нужно забить диапазон адресов для сканирования и определится с набором портов, которые будет проверять Openvas.
Идем в раздел Configuration –Target. Создаем новую цель, нажав на значок звездочки. Задаем ей имя office.
Тут в принципе все понятно, в разделе SMB, мы подключили ранее созданного пользователя для проведения локальных проверок.
В разделе PortList, подключается нужный диапазон портов, в данном случае предлагаемый Nmap-ом набор популярных портов. Выбор в пользу такого диапазона, сделан опять же в пользу оптимизации, дабы не лопатить все 65 тысяч.
В разделе Hosts указываем диапазон ip.
3.4 Запуск!
Идем в раздел ScanManagement — Task. Создаем новую задачу, нажав на значок звездочки.
Последовательно выбираем ранее созданные конфигурации и нажимаем на кнопку CreateTask.
Стартуем.
Идем пить чай.В зависимости от насыщенности сети и мощности сервера, процесс может занять до нескольких часов.
По окончанию процесса мы можем нажать на значок лупы и просмотреть все найденные проблемы.
4. Обновления.
Периодически необходимо подкачивать актуальные сведения об уязвимостях и тесты их выявляющие.
Делается это либо из браузера в разделе Administration. (поочередно во всех 3-х разделах: nvt,scap,cert)
Либо из командной строки, последовательными командами.
Обладатели мощного железа, могут заглянуть в раздел Settings и выставить большее кол-во параллельных потоков.
Полезные приемы работы в Greenbone Security Assistant. можно найти тут
Сканеры уязвимостей
В предыдущей статье Виды компьютерных уязвимостей я подробно познакомил вас с различными видами уязвимостей, но а теперь пришло время познакомится со сканерами этих уязвимостей.
Сканеры уязвимостей — это программные или аппаратные средства, служащие для осуществления диагностики и мониторинга сетевых компьютеров, позволяющие сканировать сети, компьютеры и приложения на предмет обнаружения возможных проблем в системе безопасности, оценивать и устранять уязвимости.
Сканеры уязвимостей позволяют проверить различные приложения в системе на предмет наличия «дыр», которыми могут воспользоваться злоумышленники. Также могут быть использованы низкоуровневые средства, такие как сканер портов, для выявления и анализа возможных приложений и протоколов, выполняющихся в системе.
Таким образом, сканеры направлены на решение следующих задач:
Как это работает?
Сканеры уязвимостей при своей работе используют два основных механизма.
Первый — зондирование — не слишком оперативен, но точен. Это механизм активного анализа, который запускает имитации атак, тем самым проверяя уязвимость.
При зондировании применяются методы реализации атак, которые помогают подтвердить наличие уязвимости и обнаружить ранее не выявленные «провалы».
Второй механизм — сканирование — более быстрый, но дает менее точные результаты. Это пассивный анализ, при котором сканер ищет уязвимость без подтверждения ее наличия, используя косвенные признаки. С помощью сканирования определяются открытые порты и собираются связанные с ними заголовки.
Они в дальнейшем сравниваются с таблицей правил определения сетевых устройств, операционной системы и возможных «дыр». После сравнения сетевой сканер безопасности сообщает о наличии или отсутствии уязвимости.
Большинство современных сканеров безопасности сети работает по принципам:
Лучшие сканеры уязвимостей
Теперь давайте разберем самые актуальные сканеры, возглавляющих экспертные рейтинги.
Nessus
Проект был запущен еще в 1998 году, а в 2003 разработчик Tenable Network Security сделал сетевой сканер безопасности коммерческим. Регулярно обновляемая база уязвимостей, простота в установке и использовании, высокий уровень точности — его преимущества перед конкурентами. А ключевой особенностью является использование плагинов. То есть любой тест на проникновение не зашивается наглухо внутрь программы, а оформляется в виде подключаемого плагина.
Аддоны распределяются на 42 различных типа: чтобы провести пентест, можно активировать как отдельные плагины, так и все плагины определенного типа — например, для выполнения всех локальных проверок на Ubuntu-системе. Интересный момент — пользователи смогут написать собственные тесты с помощью специального скриптового языка.
Symantec Security Check
Бесплатный сканер одноименного производителя. Основные функции — обнаружение вирусов и троянов, интернет-червей, вредоносных программ, поиск уязвимостей в локальной сети.
Это онлайн-продукт, состоящий из двух частей: Security Scan, которая проверяет безопасность системы, и Virus Detection, выполняющей полную проверку компьютера на вирусы. Устанавливается быстро и просто, работает через браузер. Согласно последним отзывам, этот сканер сети лучше использовать для дополнительной проверки.
XSpider
Программа XSpider, которая, по заявлению разработчика, может выявить треть уязвимостей завтрашнего дня. Ключевой особенностью этого сканера является возможность обнаружения максимального количества «провалов» в сети еще до того, как их увидят хакеры.
При этом сканер работает удаленно, не требуя установки дополнительного ПО. Отработав, сканер отправляет специалисту по безопасности полный отчет и советы по устранению «дыр». Стоимость лицензии на этот сканер начинается от 11 тысяч рублей на четыре хоста в год.
QualysGuard
Многофункциональный сканер уязвимостей. Он предоставляет обширные отчеты, которые включают:
Облачная платформа QualysGuard и встроенный набор приложений позволяют предприятиям упростить процесс обеспечения безопасности и снизить затраты на соответствие различным требованиям, при этом предоставляя важную информацию о безопасности и автоматизируя весь спектр задач аудита, комплекс-контроля и защиту ИТ-систем и веб-приложений.
С помощью данного программного обеспечения можно сканировать корпоративные веб-сайты и получать автоматизированное оповещение и отчеты для своевременного выявления и устранения угроз.
Rapid 7 NeXpose
Схема работы достаточно хитрая: сначала запускается NeXpose, далее Metasploit Console (msfconsole), после чего можно запускать процесс сканирования и настраивать его с помощью ряда команд (nexpose_connect, nexpose_scan, nexpose_discover, nexpose_dos и другие). Можно совмещать функциональность NeXpose и других модулей Metasploit’а.
X-Scan
Внешне X-Scan больше напоминает самоделку, созданную кем-то для собственных нужд и пущенную в “паблик” на свободное плавание. Возможно, он бы и не получил такой популярности, если не поддержка скриптов Nessus, которые активируются с помощью модуля Nessus-Attack-Scripts.
С другой стороны, стоит посмотреть отчет о сканировании, и все сомнения в полезности сканера отходят на второй план. Он не будет оформлен по одному из официальных стандартов ИБ, но точно расскажет много нового о сети.