У компании cloudflare в их github репозитории есть небольшой продукт на основе nmap и скрипта vulners.nse - Flan. Он ничего особенного не делает, кроме небольшой автоматизации по передачи списка ip адресов для сканирования. Плюс, поддерживает разные форматы вывода результатов: html, json, xml, markdown. Также он умеет складывать результаты тестов в GCS Bucket или AWS S3 Bucket.

Описание Flan есть в блоге cloudflare. Проект старый и особо не развивается, но там и развивать нечего. Та функциональность, что в него заложена, нормально работает и не требует обновления. Покажу сразу на примере, как он работает и что делает.

Клонируем к себе репозиторий:

# git clone https://github.com/cloudflare/flan

Для того, чтобы понять, что тут будет происходить, достаточно посмотреть файлы Dockerfile и Makefile. Первый содержит простую инструкцию по сборке своего контейнера с nmap и скриптом nmap-vulners на борту. Дополнительно он копирует в контейнер python скрипты для поддержи различных форматов вывода.

Так что запуск сканирования выглядит следующим образом. Готовим список IP адресов в файле shared/ips.txt. Одиночные IP адреса нужно указывать без маски /32. Потом собираем контейнер. Все команды уже прописаны в Makefile, поэтому запускаем через него:

# make build

Чтобы всё получилось, Docker и make у вас должны стоять в системе. Если нет, то поставьте:

# curl -o - https://get.docker.com | bash -
# apt install make

Когда соберётся образ, можно запускать сканирование:

# make start

Результат будет выведен в консоль. Чтобы вывести его в html файл для удобного просмотра, запускаем так:

# make html

Результат будет в директории shared/reports. Можно запустить веб сервер, чтобы быстро посмотреть html файлы:

# cd ~/flan/shared/reports
# python3 -m http.server 80

Смотрим результат сканирования в удобочитаемом виде с активными ссылками на все CVE. Очень удобно. Можно этот процесс автоматизировать, поднять постоянный веб сервер и хранить результаты некоторое время.

Если не уважаете Docker, можете запускать без него. В Dockerfile всё показано, что надо сделать, для локального запуска. Надо поставить несколько пакетов, python модулей, забрать скрипты pthon и запускать run.sh.

Отдельно в репозитории рассказано, как всё это сканирование запускать в Kubernetes для проверки контейнеров.



*

Отправить комментарий (0)
Новые Старые