Когда я работал в нескольких государственных организациях кавычкодавом, овощем пентестером, суровые бородатые дяди в свитерах учили меня использовать только Nmap для сканирования сети. Сменив место работы, Добби стал свободен от предрассудков и решил выбрать сканер самостоятельно на основании псевдо-объективных данных сравнения реального функционала популярных сканеров, которые смог найти в сети самостоятельно, или, спросив у коллег, какой их любимый сканер. Собственно, о результатах внутреннего холливара сравнения сетевых сканеров и решил написать статью. Объективность не гарантирую, но постарался сделать колличественный анализ. Кому интересно, что из этого вышло, добро пожаловать под кат.
Старый и опытный волк безопасник предложил свой любимый и привычный консольный Nmap. Ещё один наш выходец из «госухи», combonik, говорил, что разницы нету, опенсорсный или вендорский, главное — веб-интерфейс для работы. Ещё наш погонщик менеджер сказал, что вендорские сканеры — самые лучшие, аргументируя свои слова тем, что такие сканеры имеют постоянную поддержку, удобный интерфейс для работы и постоянные обновления.
Дабы сгладить наши противоречия, было решено провести блиц-тестирование сетевых сканеров уязвимостей. Холивар среди пентестеров Hacken привел нас к новой задаче — проведению сравнительной характеристики по результатам сканирования. Для проведения сравнения эффективности сканирования было выбрано четыре сканера: Rapid7 Nexpose, Tenable Nessus, OpenVAS 9 и Nmap. Их выбрали на основании аналитики интернет-публикаций и личного опыта. Лично я делал ставку на Nessus, но увы, не угадал.
Rapid7 Nexpose – это сканер уязвимостей, который выполняет активное сканирование IT-инфраструктуры на наличие ошибочных конфигураций, дыр, вредоносных кодов, и предоставляет рекомендации по их устранению. Под анализ попадают все компоненты инфраструктуры, включая сети, операционные системы, базы данных и web-приложения. По результатам проверки Rapid7 Nexpose в режиме приоритетов классифицирует обнаруженные угрозы и генерирует отчеты по их устранению. [2]
Tenable Nessus Scanner – это сканер, предназначенный для оценки текущего состояния защищённости традиционной ИТ-инфраструктуры, мобильных и облачных сред, контейнеров и т.д. По результатам сканирования выдаёт отчёт о найденных уязвимостях. Рекомендуется использовать, как составную часть Nessus Security Center. [3]
OpenVAS — это сканер уязвимостей с открытым исходным кодом. OpenVAS предназначен для активного мониторинга узлов вычислительной сети на предмет наличия проблем, связанных с безопасностью, оценки серьезности этих проблем и для контроля их устранения. Активный мониторинг означает, что OpenVAS выполняет какие-то действия с узлом сети: сканирует открытые порты, посылает специальным образом сформированные пакеты для имитации атаки или даже авторизуется на узле, получает доступ к консоли управления, и выполняет на нем команды. Затем OpenVAS анализирует собранные данные и делает выводы о наличии каких-либо проблем с безопасностью. Эти проблемы, в большинстве случаев касаются установленного на узле необновленного ПО, в котором имеются известные и описанные уязвимости, или же небезопасно настроенного ПО. [1,6]
Nmap — свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети (портов и соответствующих им служб). Изначально программа была реализована для систем UNIX, но сейчас доступны версии для множества операционных систем.[4,5]
Тестовая среда
Для проведения тестирования я собрал тестовую сеть на VMware Workstation 12 Pro в схему, которая представлена на рис. 1.
Рис. 1. Схема сети
Поднятые виртуалки:
- Windows 7 со всеми установленными обновлениями, запущенным приложением XAMPP, развёрнутыми сервисами MySQL и Apache. Также развёрнута тестовая система DVWA.
- Metasploitable 2 – операционная система с предустановленными уязвимыми сервисами и приложениями, которая используется для тестирования.
- Ubuntu 16.04 c установленным IDS Suricata [10] и сконфигурированным iptables [9].
- Kali Linux — дистрибутив Linux, который используется для тестирования на проникновения.
- Перечень уязвимых сервисов в Metasploitable 2 приведены в таблице 1.
Таблица 1
Service | Port | Status |
Vsftpd 2..four | 21 | Open |
OpenSSH four.7p1 Debian 8ubuntu 1 (protocol 2.zero) | 22 | Open |
Linux telnetd service | 23 | Open |
Postfix smtpd | 25 | Open |
ISC BIND 9.four.2 | 53 | Open |
Apache httpd 2.2.eight Ubuntu DAV/2 | 80 | Open |
A RPCbind service | 111 | Open |
Samba smbd .X | 139, 445 | Open |
r companies | 512, 513, 514 | Open |
GNU Classpath grmiregistry | 1099 | Open |
Metasploitable root shell | 1524 | Open |
A NFS service | 2048 | Open |
ProFTPD 1..1 | 2121 | Open |
MySQL 5.zero.51a-3ubuntu5 | 3306 | Open |
PostgreSQL DB eight..zero — eight..7 | 5432 | Open |
VNC protocol v1. | 5900 | Open |
X11 service | 6000 | Open |
Unreal ircd | 6667 | Open |
Apache Jserv protocol 1. | 8009 | Open |
Apache Tomcat/Coyote JSP engine 1.1 | 8180 | Open |
На практике, когда проводится сканирование внутренних сетей на межсетевом экране и IPS, создаются правила, исключающие блокировку сканирования. Поэтому Suricata использовалась в режиме детектирования, и были написаны разрешающие правила на межсетевом экране.
Конфигурация iptables[9]:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -I FORWARD -j ACCEPT
iptables -A FORWARD -i ens34 -o ens33 -j ACCEPT
iptables -t nat -A POSTROUTING -o ens33 -s 192.168.234.0/24 -j MASQUERADE
iptables -A FORWARD -i ens33 -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A FORWARD -i ens33 -o ens34 -j REJECT
Nessus Scanner запускался в режиме «Basic Network Scanning». [3]
Rapid 7 Nexpose запускался в режиме «Full audit without Web Spider». [2]
OpenVAS 9 запускался в режиме «default». [1,6]
Nmap запускался двумя командами: [4,5]
- nmap -sV -T4 -O -F --version-light 192.168.234.130-131
- nmap -Pn --script vuln 192.168.234.130-131
Результаты тестирования
Nexpose обнаружил 527 уязвимости (см. Диаграмма 1), из них:
167 – получили статус “critical” — уязвимости необходимо закрывать в первую очередь.
349 – получили статус “severe” — уязвимости сложны в эксплуатации, но могут привести к тяжёлым последствиям.
46 – получили статус “moderate” — найденные уязвимости могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки.
Найдены уязвимости не только тестированных систем, но и потенциальные уязвимости в системе виртуализации.
Tenable Nessus обнаружил 168 уязвимостей (см. Диаграмма 2), из них:
3 – получили статус “critical”
9 – получили статус “high”
33 – получили статус “medium”
5 – получили статус “low”
118 получили статус “info”
Уязвимости уровня “critical” и “high” необходимо закрывать в первую очередь.
Уязвимости уровня “medium” — сложны в эксплуатации, но при должной проработке могут нанести ущерб.
Уязвимости уровня “low” и “info” — могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки через другие векторы.
OpenVAS 9 обнаружил 53 уязвимости (см. Диаграмма 3), из них:
16 – получили статус “high”
33 – получили статус “medium”
4 – получили статус “low”
Уязвимости уровня “high” необходимо закрывать в первую очередь.
Уязвимости уровня “medium” — сложны в эксплуатации, но при должной проработке могут нанести ущерб.
Уязвимости уровня “low” могут предоставить атакующему информацию о системе, которую он может применить при проведении атаки через другие векторы.
Отдельно следует отметить полученные результаты с помощью сканера Nmap. Сканирование проводилось двумя командами, которые описывались выше. Результатом выполнения стал вывод информации об операционной системе, открытых сервисах и найденные возможные уязвимые сервисы и ссылки.
Использование скрипта “vuln” определило следующие типы уязвимостей:
- открытый telnet
- http-csrf
- http-enum
- http-sql-injection
- http-vuln-cve2017-1001000
- rmi-vuln-classloader
- mysql-vuln-cve2012-2122
- ssl-ccs-injection
- ssl-dh-params
- ssl-poodle
- irc-botnet-channels
- http-cookie-flags
Выводы
Для формирования выводов я применил количественный метод оценки по суммарному количеству найденных уязвимостей. В результате выяснилось, что наибольшую глубину сканирования проводит Nexpose. Довольно слабо отработал Nessus, так как в режиме сканирования сети выдал много служебных данных о системах и сервисах, которые только дают информацию для аналитики. С очень слабой стороны показал себя сканнер OpenVAS 9 с последними обновлениями. Отдельного слова требует Nmap – очень хороший инструмент для проведения аналитического тестирования с возможностью расширения с помощью NSE-скриптов.
Во время тестирования IDS Suricata обнаружила все сканнеры.
Данное тестирование не является каноничным, как например, тесты Gartner или NSS Labs. Но не смотря на это, думаю, статья будет актуальна для специалистов в сфере администрирования систем и технического аудита.
P.S. А для чего это всё делалось?
Необходимо было принять на вооружение выбрать сканер для компании Hacken. Кроме того, проведение сканирования внутренней сети регламентировано стандартами управления информационной безопасности в коммерчиских организациях, банковской, энергетической и прочих сферах деятельности. Сканирование сети необходимо проводить не только для получения сертификации для организации, но и для управления уязвимостями в информационно-телекоммуникационной системе, контроля обновления операционных систем и другие не менее важные задачи по управлению информационной безопасностью. [8, 11]
- habrahabr.ru/post/203766
- www.rapid7.com
- www.tenable.com/products/nessus/nessus-professional
- nmap.org
- habrahabr.ru/post/131433
- www.openvas.org
- metasploit.help.rapid7.com/docs/metasploitable-2-exploitability-guide
- blog.securitymetrics.com/2016/03/vulnerability-scanners-101-what-why-and-how.html eax.me/iptables
- suricata-ids.org
- www.resolver.com/trust/policies/threat-vulnerability-management-standard
- osxdaily.com/2014/05/20/port-scanner-mac-network-utility
Автор: Skif_1993