Сканирование на уязвимости: обзор продуктов, которые есть на рынке

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Aloha всем хабравчанам! Я Влад, системный администратор Cloud4Y. В этой статье расскажу, как мы выбирали продукт сканирования на уязвимости, почему важно контролировать, какие сервисы доступны извне и зачем необходимо проводить постоянный аудит состояния сети. Чай, кофе, па-а-а-аехали!

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

Разберёмся с понятием сканера уязвимостей. Сканер уязвимостей (Vulnerability scanner) позволяет проверить различные системы, приложения и сети на возможное наличие уязвимостей, которыми может воспользоваться злоумышленник для компрометации ваших данных и систем, проверить открытые порты, оценивать и предлагать способ устранения уязвимости.

Работу сканера я разбил на следующие этапы:

  1. Проверка открытых портов, обнаружение запущенных сервисов и ОС

  2. Выявление уязвимости

  3. Оценка безопасности

  4. Составление отчёта

  5. Эксплуатация уязвимости (выполняется исключительно с разрешения администратора проверяемой системы, так как может повлечь нарушение работы)

Виды сканирования

Сканирование на уязвимости — это один из начальных этапов задачи тестирования на проникновение (пентест). Сканирование на уязвимости, как пентест или любое тестирование делится на несколько видов. Рассмотрим каждый через призму сканера на уязвимости:

WhiteBox. Сканер запускается внутри исследуемой сети, что позволяет более полно и комплексно изучать уязвимости, отпадает необходимость «угадывания» типа сервиса или ОС. Плюс метода в полном и комплексном подходе к исследованию, а минус в том, что это менее приближено к ситуации реальной атаки злоумышленника.

BlackBox. «Чёрный ящик». Сканер запускается извне исследуемой сети, что приводит к необходимости работы через общедоступные интерфейсы. Приложению необходимо провести анализ открытых портов, «угадать» службы и сервисы, и провести выявление уязвимостей на основании полученной информации. Такой вариант максимально приближен к реальной ситуации: в качестве первоначальных данных у сканера есть только IP или доменное имя для проверки. Из минусов можно упомянуть, что уязвимости приложений, используемых в DMZ, так и останутся не найденными.

Разумеется, можно долго спорить о плюсах и минусах разных видов сканирования, но вряд ли кто-то будет оспаривать необходимость проведения тестирования. А практика показывает, что совмещение обоих методов позволяет получить наилучшие результаты. Мне кажется, разумнее сначала провести BlackBox сканирование, а затем WhiteBox. Кстати, сейчас мы работаем над созданием сервиса для клиентов, который позволит с помощью BlackBox-сканирования проверять инфраструктуру, расположенную в ЦОД Cloud4Y. Сервис убережёт от неприятных случайностей, когда из-за человеческого фактора не были закрыты порты или оставлены другие потенциально опасные «дыры».

Выбор продукта — основа сервиса

Для грамотного выбора продукта необходимо задать критерии, которым он должен отвечать:

Обязательные:

  1. Бесплатный или ограничения платной версии, подходящие по параметрам

  2. Качественный поиск открытых портов

  3. Работает с IP адресами

  4. Ищет уязвимости – ссылки на CVE базы, уровень угроз по метрике CVSS или аналогичной

  5. Гибкость настроек

  6. Вывод отчёта

Опциональные:

  1. Наличие технической документации, технических форумов

  2. GUI

  3. Вывод отчета в удобном формате

  4. Отправка результатов на почту

  5. API

Не каждый продукт на рынке соответствует такому набору критериев, особенно в сегменте бесплатного ПО, однако задача есть, а решение найдём. Проанализируем, что нынче модно в ИБ-кругах в качестве бесплатных решений. После поиска и анализа решений было выбрано несколько продуктов для изучения:

  1. OpenVas

  2. Tenable Nessus

  3. Gobysec / Goby

  4. Tsunami-security-scanner

  5. Flan Scan

  6. D9scan

  7. Rustscan

  8. Owasp ZAP

  9. W9Scan

  10. Nmap

Пойдём по порядку и посмотрим поближе на каждый из них

1. Greenbone Vulnerability Management (https://www.greenbone.net/) – бывший OpenVas – провёл реорганизацию, сменил название и модель распространения своего ПО. Бесплатно распространяется только продукт Greenbone Security Manager TRIAL, который содержит поддержку Greenbone Community Feed. После инсталляции и настройки продукта я запустил сканирование IP адреса, за которым был OpenSSH server vers 7.2p2. Время работы ПО для сканирования 1 IP-адреса — 28 минут. 28, Карл…

CVE уязвимости продукт нашёл. Только вот для OpenSSH server vers 7.2p2 как минимум есть CVE-2016-8858 с CVSS рейтингом 7,8.

Открытые порты: их действительно открыто 8, но, видимо в силу ограничений триал-версии, я увидел только 2 из 8. Эх, идём дальше.

2. Tenable Nessus (https://www.tenable.com/products/nessus)— известный инструмент. Существует бесплатная версия продукта, кхм, с ограничением на сканирование 16 IP адресов, для нас это маловато, двигаемся дальше.

3. Gobysec/Goby – очень перспективный бесплатный продукт. Живёт здесь: https://gobies.org/. На момент написания статьи доступна beta-версия 1.9.320. Очень дружелюбный интерфейс, интуитивное понятное меню, есть расширения, API, выгружает отчёты и все работает из коробки (Windows 10). Работать одно удовольствие с таким продуктом. Есть недочёты, но это ж beta. После запуска сканер работал 15 минут (ну почему тааааак долго!&), нашёл все 8 открытых портов (ура!), правильно определил версии продуктов, но уязвимостей, к сожалению, я не увидел.

А так хорошо всё начиналось, да? Впрочем, я буду следить за развитием продукта. Следующий кандидат.

4. Tsunami-security-scanner – неофициальный продукт от Google. Репозиторий: https://github.com/google/tsunami-security-scanner. В основе решения связка nmap + плагин vulners + ncrack и все завернуто в docker. Что мешает использовать нам тот же nmap в связке с плагином? Вот и я также решил, что ничего. Исследуем следующего кандидата.

5. Flan Scan – решение от CloudFlare, репозиторий по адресу: https://github.com/cloudflare/flan. Продукт также использует связку nmap + vulners (что всё больше убеждает в необходимости использования nmap для решения задачи), однако есть пара особенностей:

  • Возможность создания прекрасных отчётов в форматах LaTeX (по умолчанию), md, html и json.

  • Возможность отправлять данные отчета сразу в AWS/GCP S3. Подробнее почитать о продукте.

Однозначно, такой продукт подходит по всем обязательным критериям и проходит в следующий этап отбора. Но вы ведь тоже видите, что это nmap плюс несколько нетривиальных фишек? Следующий!

6. D9Scan – на просторах github.com был найден «Python Network Scanner with Backdoor Detection on Network». Под капотом у скрипта – питон и что бы вы думали… опять nmap! Download, run, test, repeat. Результаты как у протестированных ранее цунами и флана, только без CVE отчётов, однако моя консоль стала приятного зелёного цвета.

Next one
Next one

7. Не смог пройти мимо решения Rustscan (https://github.com/RustScan/RustScan). Да, здесь опять в качестве сканера используется nmap, но интерес к продукту подстегивает заявление «Scans all 65k ports in 3 seconds.» Впечатляет? Меня тоже. Скорость сканирования сумасшедшая. Проверьте и убедитесь сами:

docker run -it --rm --name rustscan rustscan/rustscan:1.10.0 <rustscan arguments here> <ip address to scan>

Для наших целей продукт не очень подходит, так как открытые порты Edge можно собрать с помощью использования API vCloud Director’a. Узнать, как пользоваться API vCloud Director’a, можно тут.

8. Owasp Zed Attack Proxy (ZAP) – «самый популярный сканер веб-приложений в мире, бесплатный и с открытым исходным кодом», указано на главной странице продукта. Без сомнения, прекрасный продукт от команды OWASP, (если не знакомы, обязательно почитайте о них), классный сайт, обучающие ролики, море документации, отличное коммьюнити. Download => install JRE => Install ZAP => Test. К сожалению, продукт отказался сканировать исключительно IP адреса и попросил ввести корректный URL.

Следует отметить, как только в поле URL появился «valid url»: http://scanme.nmap.org/ сканер тут же запустил сканирование и быстро нашёл проблемы:

Итог: софт простой, классный, но не проверяет по IP-адресам, что является обязательным критерием.

9. Такая же ситуация случилась и с W9Scan (https://github.com/w-digital-scanner/w9scan). При попытке подать на вход IP адрес для проведения сканирования софт преобразует его в http://<ip адрес>, что явно не соответствует нашим критериям.

10. Итак, последний пункт в списке — nmap (https://nmap.org/). Nmap («Network Mapper») — это инструмент с открытым исходным кодом для исследования сети, аудита безопасности, определения версий ОС, различных сервисов и многого другого. Не стоит забывать и о скриптовом движке NSE. NSE (Nmap Scripting Engine) является компонентом Nmap, который позволяет писать скрипты и автоматизировать часть задач, например, обнаружения и/или эксплуатации уязвимостей. Основой является интерпретатор скриптового язык Lua. Проверим nmap в деле. Я запустил сканирование подопытного IP адреса с опциями –p- -sV --script=vulners, а увидев консоли вывод, сразу понял какой продукт нам нужен.

Проверим походит ли по обязательному списку критериев:

  1. Бесплатный? Полностью бесплатен.

  2. Качественный поиск открытых портов? Есть.

  3. Работает с IP адресами? Без проблем!

  4. Ищет уязвимости (ссылки на CVE базы, уровень угроз по метрике CVSS или аналогичной)? Подключай плагины, например, vulners или vulscan.

  5. Гибкость настроек? Огромное количество настроек, позволяющих регулировать тип сканирования.

  6. Вывод отчета? Поддерживается: txt, grep, xml.

  7. Удобный вывод отчета? Я нашел https://github.com/honze-net/nmap-bootstrap-xsl, потрясающий по удобству использования и красоте отчет.

  8. GUI? Zenmap (https://nmap.org/zenmap/)

  9. Коммьюнити? Огромное!

  10. Эх, жаль, на почту отчеты не шлёт…

Итоги я свёл в таблицу:

В финал отбора прошли 3 продукта: FlanScan, Rustscan, nmap.

Rustscan неплох, однако скорость поиска открытых портов нивелируется списком, собранным через API. Другими словами, API позволяет вытащить открытые порты, а мне не нужен просто быстрый скан портов, мне нужен качественный. FlanScan = nmap + красивые отчеты и выгрузка в облако. Красивые отчёты я и сам сварганить могу. А уж про облако и говорить нечего. Nmap — это продукт, на котором основаны все сервисы, вышедшие в финал, а кастомизация поможет нам решить задачу реализации сканера на уязвимости.

Понятно, что всё субъективно, но из того, что я просмотрел, nmap — эталон инструмента для проведения разведки (любого вида) перед началом пентеста. Посмотрите выше, сколько продуктов известных брендов содержат в основе nmap – flan (cloudflare), tsunami(google), rustscan и это, не говоря о 1.8к форков на github и почти 6к звезд. Исходя из вышесказанного, мы пришли к выводу, что nmap будет отличной основой нашего сервиса сканирования на уязвимости.

Конечно, выбор «лучшего» инструмента всегда остается за вами, но если вы уже задумались о проведении аудита безопасности вашей сети, то вы уже на верном пути. Знайте: любое сканирование вашей инфраструктуры позволит вам быть уверенным, что у вас нет «дыр» — забытых открытых портов, необновлённого ПО или ошибочно сконфигурованных сервисов – которыми могут воспользоваться скрипт-кидди для эксплуатации уязвимости. Предупреждён — значит вооружён!

P. S. Во время поиска наткнулся на https://github.com/infobyte/faraday. Авторы infobyte утверждают, что создали IDE для работы с данными, полученными в ходе аудита безопасности. Продукт Faraday имеет не только консольное исполнение, но и приятный GUI. К проблеме выбора сканера на уязвимости данный продукт относится лишь частично, однако может заинтересовать отдел ИБ в вашей компании.

Спасибо за внимание!


Что ещё интересного есть в блоге Cloud4Y

→ История Game Genie — чит-устройства, которое всколыхнуло мир

→ Как я случайно заблокировал 10 000 телефонов в Южной Америке

→ Странные продукты Apple

→ WD-40: средство, которое может почти всё

→ 30 лучших Python-проектов на GitHub на начало 2022 года

Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

Источник: https://habr.com/ru/company/cloud4y/blog/651831/


Интересные статьи

Интересные статьи

Когда гуглишь «что спросить у работодателя на собеседовании», поисковые системы выдают ресурсы с однотипными рекомендациями:Чего вы ждете от нового сотрудника в первые полгода?Расскажите о вашей корпо...
Мы в Dropbox считаем, что управление инцидентами — это центральный элемент нашей системы по обеспечению надёжности. И хотя мы также используем проактивные методы, такие к...
В начале августа Линус Торвальдс представил новую версии ядра Linux. Согласно давней традиции сам релизы крупнейшего проекта с открытым исходным кодом происходит вполне буднично, со...
InfiniBox – модерновая система хранения, сразу попавшая в правую часть магического квадрата. В чем ее уникальность? Краткая предыстория Что такое InfiniBox? Это система хранения компании In...
Время от времени читатели наших статей о проверке открытых проектов обращают внимание, что статический анализатор кода PVS-Studio выявляет большой процент ошибок, которые незначительны или вообще...