Сравнение инструментов сканирования локальной сети


    Когда я работал в нескольких государственных организациях кавычкодавом, овощем пентестером, суровые бородатые дяди в свитерах учили меня использовать только 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), из них:
    Репорт
    Результаты срабатывания IDS

    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

    Результаты работы Nmap и IDS
    Результаты работы Nmap с использованием скрипта «vuln» и IDS

    Выводы


    Для формирования выводов я применил количественный метод оценки по суммарному количеству найденных уязвимостей. В результате выяснилось, что наибольшую глубину сканирования проводит Nexpose. Довольно слабо отработал Nessus, так как в режиме сканирования сети выдал много служебных данных о системах и сервисах, которые только дают информацию для аналитики. С очень слабой стороны показал себя сканнер OpenVAS 9 с последними обновлениями. Отдельного слова требует Nmap – очень хороший инструмент для проведения аналитического тестирования с возможностью расширения с помощью NSE-скриптов.

    Во время тестирования IDS Suricata обнаружила сканнеры NMap и OpenVAS.

    Данное тестирование не является каноничным, как например, тесты Gartner или NSS Labs. Но не смотря на это, думаю, статья будет актуальна для специалистов в сфере администрирования систем и технического аудита.

    P.S. А для чего это всё делалось?

    Необходимо было принять на вооружение выбрать сканер для компании Hacken. Кроме того, проведение сканирования внутренней сети регламентировано стандартами управления информационной безопасности в коммерчиских организациях, банковской, энергетической и прочих сферах деятельности. Сканирование сети необходимо проводить не только для получения сертификации для организации, но и для управления уязвимостями в информационно-телекоммуникационной системе, контроля обновления операционных систем и другие не менее важные задачи по управлению информационной безопасностью. [8, 11]

    • +18
    • 17,3k
    • 4
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 4
    • +1
      Отличная статья. А образ со стендом не планируете выложить?
      • 0
        Постараюсь организовать в близжайшее время.
      • 0
        iptables -I FORWARD -j ACCEPT

        Зачем тогда добавлять что-то в конец с reject'ом?


        И все-таки, сколько реальных уязвимостей было обнаружено из хотя бы 167 critical строчек в Nexpose? Количественный анализ это хорошо, но где гарантия, что ПО считает уязвимостью что-то, что ей не является?

        • –1

          Абсолютно бессмысленные выводы. У каждой системы свои методы классификации и группировки уязвимостей.
          Количественно сравнивать можно только после ручной обработки всех срабатываний по общим для всех систем категориям.
          А так это сравнивание тёплого с мягким.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое
          Интересные публикации