В данном обзоре рассматриваются бесплатные сканеры защищенности веб-сайтов — дается их определение, описывается принцип работы, приводятся краткие обзоры продуктов.
2. Что такое сканеры защищенности веб-сайтов
3. Принцип работы сканеров защищенности веб-сайтов
4. Категории сканеров защищенности веб-сайтов
5. Краткий обзор бесплатных сканеров защищенности веб-сайтов
5.2. Сканеры поиска уязвимостей в веб-скриптах
5.3. Средства поиска эксплойтов
5.4. Средства автоматизации инъекций
5.6.1. Web Application Attack and Audit Framework (w3af)
5.6.2. N-Stalker Web Application Security Scanner X Free Edition
Введение
В современном бизнесе веб-технологии приобрели огромную популярность. Большинство сайтов крупных компаний представляют собой набор приложений, обладающих интерактивностью, средствами персонализации, средствами взаимодействия с клиентами (интернет-магазины, дистанционное банковское обслуживание), а нередко — и средствами интеграции с внутренними корпоративными приложениями компании.
Однако как только веб-сайт становится доступным в интернете, он превращается в мишень для кибератак. Наиболее простым способом атак на веб-сайт сегодня является использование уязвимостей его компонентов. И основная проблема заключается в том, что уязвимости стали вполне обычным явлением для современных сайтов.
Уязвимости представляют собой неизбежную и растущую угрозу. Они, по большей части, являются результатами дефектов безопасности в коде веб-приложения и неправильной конфигурации компонентов веб-сайта.
Приведем немного статистики. По данным из отчета о киберугрозах за первое полугодие 2016 года High-Tech Bridge releases web security trends of the first half of 2016, подготовленного компанией High-Tech Bridge:
- свыше 60% веб-сервисов или API для мобильных приложений содержат по крайней мере одну опасную уязвимость, позволяющую скомпрометировать базу данных;
- 35% уязвимых к XSS-атакам сайтов также уязвимы к SQL-инъекциям и XXE-атакам;
- 23% сайтов содержат уязвимость POODLE, и только 0,43% — Heartbleed;
- в 5 раз участились случаи эксплуатации опасных уязвимостей (например, позволяющих осуществить SQL-инъекцию) в ходе атак RansomWeb;
- 79,9% веб-серверов имеют неправильно сконфигурированные или небезопасные заголовки http;
- актуальные на сегодняшний день необходимые обновления и исправления установлены только на 27,8% веб-серверов.
Для защиты веб-ресурсов специалисты по информационной безопасности используют различный набор средств. Например, для шифрования трафика применяют SSL-сертификаты, а на периметре веб-серверов устанавливают Web Application Firewall (WAF), которые требуют серьезной настройки и долгого самообучения. Не менее эффективным средством обеспечения безопасности веб-сайтов является и периодическая проверка состояния защищенности (поиск уязвимостей), а инструментами для проведения таких проверок служат сканеры защищенности веб-сайтов, о которых и пойдет речь в этом обзоре.
На нашем сайте уже был обзор, посвященный сканерам защищенности веб-приложений — «Сканеры защищенности веб-приложений (WASS) – обзор рынка в России и в мире», в котором рассматривались продукты лидеров рынка. В настоящем обзоре мы уже не будем затрагивать эти темы, а сфокусируем внимание на обзоре бесплатных сканеров защищенности веб-сайтов.
Тема бесплатного программного обеспечения сегодня особенно актуальна. Из-за нестабильной экономической ситуации в России сейчас во многих организациях (как и в коммерческих, так и в госсекторе) идет оптимизация ИТ-бюджета, и средств на покупку дорогих коммерческих продуктов для анализа защищенности систем зачастую не хватает. При этом существует множество бесплатных (free, open source) утилит для поиска уязвимостей, о которых люди просто не знают. Причем некоторые из них не уступают по функциональным возможностям своим платным конкурентам. Поэтому в этой статьей расскажем о наиболее интересных бесплатных сканерах защищенности веб-сайтов.
Что такое сканеры защищенности веб-сайтов
Сканеры защищенности веб-сайтов — это программные (программно-аппаратные) средства, осуществляющие поиск дефектов веб-приложений (уязвимостей), которые приводят к нарушению целостности системных или пользовательских данных, их краже или получению контроля над системой в целом.
С помощью сканеров защищенности веб-сайтов можно обнаружить уязвимости следующих категорий:
- уязвимости этапа кодирования;
- уязвимости этапа внедрения и конфигурирования веб-приложения;
- уязвимости этапа эксплуатации веб-сайта.
К уязвимостям этапа кодирования относятся уязвимости, связанные с некорректной обработкой входных и выходных данных (SQL-инъекции, XSS).
К уязвимостям этапа внедрения веб-сайта относятся уязвимости, связанные с некорректными настройками окружения веб-приложения (веб-сервера, сервера приложений, SSL/TLS, фреймворк, сторонние компоненты, наличие DEBUG-режима и т. п.).
К уязвимостям этапа эксплуатации веб-сайта относятся уязвимости, связанные с использованием устаревшего ПО, простых паролей, хранением архивных копий на веб-сервере в общем доступе, наличием в общем доступе служебных модулей (phpinfo) и т.п.
Принцип работы сканеров защищенности веб-сайтов
В общем случае принцип работы сканера защищенности веб-сайтов заключается в следующем:
- Сбор информации об исследуемом объекте.
- Аудит программного обеспечения веб-сайта на предмет уязвимостей по базам уязвимостей.
- Выявление слабых мест системы.
- Формирование рекомендаций по их устранению.
Категории сканеров защищенности веб-сайтов
Сканеры защищенности веб-сайтов, в зависимости от их предназначения, можно разделить на следующие категории (типы):
- Сетевые сканеры — данный тип сканеров раскрывает доступные сетевые сервисы, устанавливает их версии, определяет ОС и т. д.
- Сканеры поиска уязвимостей в веб-скриптах — данный тип сканеров осуществляет поиск уязвимостей, таких как SQL inj, XSS, LFI/RFI и т. д., или ошибок (не удаленные временные файлы, индексация директорий и т. п.).
- Средства поиска эксплойтов — данный тип сканеров предназначен для автоматизированного поиска эксплойтов в программном обеспечении и скриптах.
- Средства автоматизации инъекций — утилиты, которые конкретно занимаются поиском и эксплуатацией инъекций.
- Дебаггеры — средства для исправления ошибок и оптимизации кода в веб-приложении.
Существуют также и универсальные утилиты, которые включают в себя возможности сразу нескольких категорий сканеров.
Далее будет приведен краткий обзор бесплатных сканеров защищенности веб-сайтов. Поскольку бесплатных утилит очень много, в обзор включены только самые популярные бесплатные инструменты для анализа защищенности веб-технологий. При включении в обзор той или иной утилиты анализировались специализированные ресурсы по тематике безопасности веб-технологий:
- Top 10 Web Vulnerability Scanners;
- Web Application Security Scanner Evaluation Criteria;
- OWASP Web Application Scanner Specification Project.
Краткий обзор бесплатных сканеров защищенности веб-сайтов
Сетевые сканеры
Nmap
Тип сканера: сетевой сканер.
Nmap (Network Mapper) — это бесплатная утилита с открытым исходным кодом. Она предназначена для сканирования сетей с любым количеством объектов, определения состояния объектов сканируемой сети, а также портов и соответствующих им служб. Для этого Nmap использует много различных методов сканирования, таких как UDP, TCP connect, TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, Xmas tree, SYN и NULL-сканирование.
Nmap также поддерживает большой набор дополнительных возможностей, а именно: определение операционной системы удаленного хоста с использованием отпечатков стека TCP/IP, «невидимое» сканирование, динамическое вычисление времени задержки и повтор передачи пакетов, параллельное сканирование, определение неактивных хостов методом параллельного ping-опроса, сканирование с использованием ложных хостов, определение наличия пакетных фильтров, прямое (без использования portmapper) RPC-сканирование, сканирование с использованием IP-фрагментации, а также произвольное указание IP-адресов и номеров портов сканируемых сетей.
Nmap получил статус Security Product of the Year от таких журналов и сообществ, как Linux Journal, Info World, LinuxQuestions.Org и Codetalker Digest.
Платформа: утилита кросс-платформенна.
Подробнее со сканером Nmap можно ознакомиться здесь.
IP Tools
Тип сканера: сетевой сканер.
IP Tools — это анализатор протоколов, поддерживающий правила фильтрации, адаптер отбора, декодирование пакетов, описание протокола и многое другое. Подробная информацию о каждом пакете содержится в дереве стиля, меню по щелчку правой кнопкой мыши позволяет сканировать выбранный IP-адрес.
В дополнение к пакетному снифферу, IP Tools предлагает полный набор сетевых инструментов, включая адаптер статистики, мониторинг IP-трафика и многое другое.
Подробнее со сканером IP-Tools можно ознакомиться здесь.
Платформа: Windows.
Сканеры поиска уязвимостей в веб-скриптах
Nikto
Тип сканера: сканер поиска уязвимостей в веб-скриптах.
Nikto — бесплатный сканер, который осуществляет всеобъемлющее тестирование веб-серверов на уязвимости, в том числе проверяет наличие более 6500 потенциально опасных файлов и CGI, определяет устаревшие версии более 1250 различных веб-серверов, а также отображает специфические проблемы для более чем 270 версий серверов. Сканер также определяет типичные ошибки в конфигурации веб-сервера, в том числе наличие нескольких индексных файлов, опции HTTP-сервера, после чего пытается составить максимально полный список версий программ и модулей на сервере. Список сканируемых объектов в Nikto реализован в виде подключаемых плагинов и часто обновляется (эти плагины не являются open source).
Сканер Nikto спроектирован для работы в скрытном режиме: он осуществляет сканирование максимально быстро, записывая результаты в лог. Версия 2.1.5 содержит исправления нескольких багов, а также новые функции и новые виды проверок. Среди самого важного — распознавание IP в HTTP-заголовках, автоматическая проверка доступных файлов после парсинга robots.txt, проверка иконок в <link>, проверка уязвимостей с crossdomain.xml и clientaccesspolicy.xml. Среди новых опций программы — установка максимального времени сканирования хоста (в секундах) для маскировки сканирования, повтор сохраненных JSON-запросов с помощью replay.pl, поддержка SSL-сертификатов на стороне клиента, более продвинутое тестирование за счет автоматического добавления переменных в db_variables после парсинга robots.txt или других страниц.
Стоит также отметить, что свободный движок Nikto используется в коммерческих сканерах уязвимостей Edgeos и HackerTarget.com.
Платформа: MacOS, Linux, Windows.
Подробнее со сканером Nikto можно ознакомиться здесь.
Skipfish
Тип сканера: сканер поиска уязвимостей в веб-скриптах.
Кросс-платформенный сканер веб-уязвимостей Skipfish от программиста Michal Zalewski выполняет рекурсивный анализ веб-приложения и его проверку на базе словаря, после чего составляет карту сайта, снабженную комментариями об обнаруженных уязвимостях.
Разработка инструмента ведется внутри компании Google.
Сканер осуществляет детальный анализ web-приложения. Также существует возможность создания словаря для последующего тестирования этого же приложения. Подробный отчет Skipfish содержит информацию об обнаруженных уязвимостях, URL ресурса, содержащего уязвимость, а также переданный запрос. В отчете полученные данные отсортированы по уровню опасности и по типу уязвимости. Отчет формируется в html-формате.
Стоит отметить, что сканер веб-уязвимостей Skipfish генерирует очень большой объем трафика, а сканирование происходит очень долго.
Платформы: MacOS, Linux, Windows.
Подробнее со сканером Skipfish можно ознакомиться здесь.
Wapiti
Тип сканера: сканер поиска уязвимостей в веб-скриптах.
Wapiti — это консольная утилита для аудита веб-приложений. Работает по принципу «черного ящика» (blackbox).
Wapiti функционирует следующим образом: сначала WASS-сканер анализирует структуру сайта, ищет доступные сценарии, анализирует параметры. После Wapiti включает фаззер и продолжает сканирование до тех пор, пока все уязвимые скрипты не будут найдены.
WASS-сканер Wapiti работает со следующими типами уязвимостей:
- File disclosure (Local and remote include/require, fopen, readfile).
- Database Injection (PHP/JSP/ASP SQL Injections and XPath Injections).
- XSS (Cross Site Scripting) injection (reflected and permanent).
- Command Execution detection (eval(), system(), passtru()…).
- CRLF Injection (HTTP Response Splitting, session fixation…).
- XXE (XmleXternal Entity) injection.
- Use of know potentially dangerous files.
- Weak .htaccess configurations that can be bypassed.
- Presence of backup files giving sensitive information (source code disclosure).
Wapiti входит в состав утилит дистрибутива Kali Linux. Можно скачать исходники с SourceForge и использовать на любом дистрибутиве, основанном на ядре Linux. Wapiti поддерживает GET и POST HTTP методы запросов.
Платформы: Windows, Unix, MacOS.
Подробнее со сканером Wapiti можно ознакомиться здесь.
Средства поиска эксплойтов
Metasploit Framework
Тип сканера: средства поиска эксплойтов.
Простая в использовании платформа проникновения, содержащая описание новейших угроз, дополненная функциями автоматического обновления и расширяемая с помощью известного языка Perl. Metasploit Framework очень пригодится специалистам по сетевой безопасности для эмуляции угроз.
Metasploit — механизм на базе сценариев Perl, с помощью которого можно применять множество методов проникновения для различных платформ и приложений. Помимо набора методов проникновения через известные лазейки, Metasploit позволяет переслать в обнаруженную брешь конкретную программу.
Metasploit Framework расширяется с использованием модулей Perl, поэтому можно подготовить собственные средства проникновения, включить их в инфраструктуру и воспользоваться готовой подходящей программой использования.
Подробнее со сканером Metasploit Framework можно ознакомиться здесь.
Nessus
Категория сканера: сетевой сканер и средство поиска эксплойтов.
Сканер Nessus является мощным и надежным средством, которое относится к семейству сетевых сканеров, позволяющих осуществлять поиск уязвимостей в сетевых сервисах, предлагаемых операционными системами, межсетевыми экранами, фильтрующими маршрутизаторами и другими сетевыми компонентами. Для поиска уязвимостей используются как стандартные средства тестирования и сбора информации о конфигурации и функционировании сети, так и специальные средства, эмулирующие действия злоумышленника по проникновению в системы, подключенные к сети.
Платформы: кросс-платформенное программное обеспечение.
Подробнее со сканером Nessus можно ознакомиться здесь.
Средства автоматизации инъекций
SQLMap
Тип сканера: средство автоматизации инъекций.
Бесплатный сканер с открытым исходным кодом, главная задача которого — автоматизированный поиск SQL-уязвимостей. SQLMap позволяет не только обнаруживать уязвимости, но и при возможности эксплуатировать их. SQLMap поддерживает большое количество СУБД.
К функциональным возможностям SQLMap относятся:
- Поиск инъекций: boolean-based blind, time-based blind, error-based, UNION query и stacked queries.
- Возможность работы с конкретным URL либо со списком.
- Проверка параметров, передаваемых методами GET и POST.
- Работа в многопотоковом режиме.
- Интеграция с другими инструментами для анализа веб-приложений — Metasploit и w3af.
- Возможность получения полезной информации о приложении и сервере (fingerprint).
Платформы: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB и HSQLDB.
Подробнее со сканером SQLMap можно ознакомиться здесь.
bsqlbf-v2
Тип сканера: средство автоматизации инъекций.
bsqlbf-v2 — скрипт, написанный на языке Perl. Брутфорсер «слепых» SQL-инъекций. Сканер работает как с integer-значениями в url, так и со строковыми (string).
Платформы: MS-SQL, MySQL, PostgreSQL, Oracle.
Подробнее со сканером bsqlbf-v2 можно ознакомиться здесь.
Дебаггеры
Burp Suite
Тип сканера: дебаггер.
Burp Suite — это набор относительно независимых кросс-платформенных приложений, написанных на Java.
Ядром комплекса является модуль Burp Proxy, выполняющий функции локального прокси-сервера; остальные компоненты набора — это Spider, Intruder, Repeater, Sequencer, Decoder и Comparer. Все составляющие связаны между собой в единое целое таким образом, что данные могут быть отправлены в любую часть приложения, например, из Proxy в Intruder для проведения различных проверок над веб-приложением, из Intruder в Repeater — для более тщательного ручного анализа HTTP-заголовков.
Платформы: кросс-платформенное программное обеспечение.
Подробнее со сканером Burp Suite можно ознакомиться здесь.
Fiddler
Тип сканера: дебаггер.
Fiddler — это отладочный прокси, логирующий весь HTTP(S)-трафик. Инструмент позволяет исследовать этот трафик, устанавливать breakpoint и «играться» с входящими или исходящими данными.
Функциональные особенности Fiddler:
- Возможность контроля всех запросов, файлов cookie, передаваемых параметров интернет-браузерами.
- Функция изменения ответов сервера «на лету».
- Возможность манипулировать заголовками и запросами.
- Функция изменения ширины канала.
Платформы: кросс-платформенное программное обеспечение.
Подробнее со сканером Fiddler можно ознакомиться здесь.
Универсальные сканеры
Web Application Attack and Audit Framework (w3af)
Тип сканера: сканер поиска уязвимостей в веб-скриптах, средство поиска эксплойтов.
Web Application Attack and Audit Framework (w3af) — это WASS-сканер (фреймворк) с открытым исходным кодом. WASS-сканер написан на Python, поэтому с успехом запускается и под Windows, и под *NIX, и под MacOS. Для инсталляции необходим установленный интерпретатор Python. В распоряжении пользователя как графический (с использованием GTK), так и консольный интерфейсы.
Подавляющую часть функциональности платформы составляют плагины (на данный момент уже более 100). Они делятся на группы:
- audit — плагины, которые непосредственно ищут уязвимости на веб-сервере;
- bruteforce — плагины для перебора логинов и паролей веб-форм и BasicAuth;
- discovery — плагины для сбора информации: версия веб-сервера, версия ОС, ссылки, пользователи, почтовые ящики;
- evasion — плагины, которые изменяют запросы к веб-серверу для преодоления фильтрации, типа кавычек и прочего;
- grep — плагины для анализа запросов и ответов веб-сервера;
- mangle — плагины для изменения запросов к веб-серверу «на лету».
Плагины, имеющиеся в w3af, делятся на 3 типа: для исследований, для аудита и для проведения атак.
Платформы: Windows, Unix, MacOS.
Подробнее со сканером Web Application Attack and Audit Framework (w3af) можно ознакомиться здесь.
N-Stalker Web Application Security Scanner X Free Edition
Тип сканера: сканер поиска уязвимостей в веб-скриптах, средство поиска эксплойтов.
Эффективный инструмент для веб-служб — N-Stealth Security Scanner компании N-Stalker. Компания продает более полнофункциональную версию N-Stealth, но бесплатная пробная версия вполне пригодна для простой оценки. Платный продукт располагает более чем 30 тыс. тестов системы безопасности веб-серверов, но и бесплатная версия обнаруживает более 16 тыс. конкретных пробелов, в том числе уязвимые места в таких широко распространенных веб-серверах, как Microsoft IIS и Apache. Например, N-Stealth отыскивает уязвимые сценарии Common Gateway Interface (CGI) и Hypertext Preprocessor (PHP), использует атаки с проникновением в SQL Server, типовые кросс-сайтовые сценарии и другие пробелы в популярных веб-серверах.
N-Stealth поддерживает как HTTP, так и HTTP Secure (HTTPS — с использованием SSL), сопоставляет уязвимые места со словарем Common Vulnerabilities and Exposures (CVE) и базой данных Bugtraq, а также генерирует неплохие отчеты. N-Stealth используется для поиска наиболее распространенных уязвимых мест в веб-серверах и помогает определять самые вероятные направления атак.
Конечно, для более достоверной оценки безопасности веб-узла или приложений рекомендуется приобрести платную версию.
Подробнее со сканером N-Stealth можно ознакомиться здесь.
Выводы
Тестирование веб-сайтов на предмет выявления уязвимых мест — это хорошая превентивная мера. В настоящее время существует множество как коммерческих, так и свободно распространяемых сканеров защищенности веб-сайтов. При этом сканеры могут быть как универсальные (комплексные решения), так и специализированные, предназначенные только для выявления определенных типов уязвимостей.
Некоторые бесплатные сканеры являются довольно мощными инструментами и показывают большую глубину и хорошее качество проверки веб-сайтов. Но перед тем как использовать бесплатные утилиты для анализа защищенности веб-сайтов, необходимо удостовериться в их качестве. Сегодня для этого уже есть множество методик (например, Web Application Security Scanner Evaluation Criteria, OWASP Web Application Scanner Specification Project).
Наиболее полную картину о защищенности той или иной инфраструктуры позволяют получить только комплексные решения. В некоторых случаях лучше применять несколько сканеров защищенности.