Автоматическое выявление уязвимостей: описание и статистика

4a4d10127d2546ffadb6fd292c4ab260.jpg

Пришло время подвести результаты автоматического сканирования, которое было анонсировано 3 недели назад. Было прислано несколько заявок на автоматический аудит, большинство сайтов представляли коммерческий сектор — интернет-магазины и корпоративные сайты.

Выбор инструмента


Для автоматического тестирования был выбран один из самых популярных opensource сканеров уязвимостей — w3af.

feb753b3e1a74e4e9b94bdadf4a199a8.png

w3af или Web Application Attack and Audit Framework — это гибкая платформа для поиска и эксплуатации уязвимостей в веб-приложениях, работает на большинстве современных систем, написан на Python. Этот фреймворк иногда называют «Metasploit для веб».

Для упрощения процесса автоматизированного тестирования была взята консольная версия w3af_console. Как и в GUI версии, где всем управляют профили (состоящие из плагинов), в консольной версии все управление и настройки тоже зависит от подключенных плагинов в так называемом script файле.

Как это работает


Формат запуска настроенного скрипт-файла довольно прост:

./w3af_console ­-s MyScript.w3af


Скрипт файл состоит из последовательности подключаемых видов плагинов и их параметров:

plugins

output console,text_file
output

output config text_file

set output_file report.txt
set verbose True
back

output config console
set verbose False
back

crawl all
crawl

grep all
grep

audit all
audit

bruteforce all
bruteforce

back

target
set target http://targethost
back

start


В представленном примере будут собраны все ссылки с сайта targethost, проанализированы запросы и ответы, комментарии, вывод ошибок, проверятся по базе знаний/признаков на наличие распространенных веб-уязвимостей, обнаруженные формы ввода будут подвергнуты bruteforce-атаке (подбор паролей) и результат будет сохранен в файл report.txt с полным выводом работы плагинов.

3bee7abb1352485c94e25dbb881d5db8.PNG
вывод подключаемых плагинов в ручном режиме в консоли w3af_console

Из чего состоит


В зависимости от типа воздействия существует несколько видов подключаемых плагинов:

  • attack — для реализации атаки, эксплойтинг. В автоматическом аудите не использовались.
  • audit — выявление уязвимостей веб-приложения, содержит плагины для поиска XSS, SQLi, CSRF, LFI, RFI, open redirects и многие другие. Часть плагинов использовалось в автоматическом аудите.
  • auth — плагины для задания параметров авторизации на исследуемом ресурсе. В автоматическом аудите не использовались.
  • bruteforce — плагины для проведения атаки «подбор по словарю» (bruteforce). В автоматическом аудите не использовались.
  • crawl — плагины для поиска и сбора информации, перебора имен файлов и директорий, использования поисковых систем, определения типа CMS, анализа форм для передачи в отделы audit/bruteforce/attack. Часть плагинов использовалось в автоматическом аудите.
  • evasion — плагины для обхода IDS, политик безопасности и WAF. В автоматическом аудите не использовались.
  • grep — плагины для анализа запросов/ответов веб-сервера, поиска критичной информации, вывода ошибок, комментариев в исходном коде и т.д. Часть плагинов использовалось в автоматическом аудите.
  • infrastructure — плагины для анализа настроек сервера, мисконфигураций, виртуальных хостов и т.д. Часть плагинов использовалось в автоматическом аудите.
  • mangle плагины для модификации запросов «на лету». В автоматическом аудите не использовались.
  • output — плагины для вывода и сохранения результатов работы. Часть плагинов использовалось в автоматическом аудите.


Готовые примеры скрипт-файлов под разные вектора атаки и тип воздействия вы можете найти здесь. Их работоспособность можно протестировать в специализированной уязвимой среде moth.

Статистика


Для проведения автоматического аудита был скомпонован script файл для поиска и выявления полной карты сайта, типа CMS, веб-сервера и поиск уязвимостей OWASP TOP-10, настроена система проверки легитимности и компоновки отчетности (резюмирующие рекомендации по найденным уязвимостям добавлялись сотрудниками нашей компании вручную, машина не может проанализировать вектора атаки и составить точный сценарий атаки).

e27de5f1d37047238657ed896a17062f.png
скриншот системы добавления задания на автоскан

Из общего количества сайтов топ-5 по общему объему выявленных уязвимостей выглядит так:

  1. Утечка чувствительных данных — OWASP A6 (sensitive data exposure) — неверные конфигурации сертификатов, сюда же отнесены неправильно настроенные политики HSTS.
  2. Небезопасная конфигурация — OWASP A5 (security misconfiguration) — листинг директорий, настройки по-умолчанию, устаревшие версии ПО.
  3. Использование компонентов с известными уязвимостями — OWASP A9 (using components with known vulnerabilities) — было найдено несколько незакрытых уязвимостей, с доступными публичными эксплоитами.
  4. Межсайтовый скриптинг — OWASP A3 XSS (cross-site scripting) — было найдено несколько пассивных XSS.
  5. Внедрение кода — OWASP A1 (injection) — уязвимости типа SQL-injection все еще достаточно распространены.


Время сканирования ресурсов занимало от 10 минут до 2 суток. Несколько сайтов не выдержали нагрузки и автоматическое тестирование было остановлено до восстановления работоспособности. По всем выявленным уязвимостям были составлены отчеты, содержащие перечисление выявленных уязвимостей, вероятность компрометации веб-приложения и возможный сценарий атаки.

© Habrahabr.ru