В данном репозитории представленно решение кейса от компании Bi.ZONE: CVE-cravler бот для телеграмма, данный кейс был представлен в рамках хакатона КибХак. Решение подготовила команда Ballow.net
P.S. Бот работает под ником @b1zone_bot
Специалистам, работающим в области кибербезопасности необходимо всегда быть в курсе самых актуальных киберугроз, чтобы своевременно противостоять им. На текущий момент существует большее количество источников информации об уязвимостях и новых кибератаках - новостные веб-сайты, форумы, Telegram каналы, Jabber каналы и т.д. Однако, далеко не вся информация с источников бывает актуальной и применимой к конкретной компании. Для того чтобы найти актуальную для себя информацию, приходится тратить слишком много времени вычитывая различные ресурсы.
Существует множество решений, которые автоматизируют процесс поиска, например: https://t.me/pocfather_bot, https://nvd.nist.gov, https://github.com/carlospolop/BotPEASS/ или https://cvetrends.com с открытым API. Однако, такие решения показывают малое количество информации и не имеют возможности расширенной конфигурации отображаемых параметров. У нас в компании информацию по новым уязвимостям хотят получать разные подразделения, в частности:
- Аналитики центра мониторинга киберугроз (SOC), чтобы своевременно уведомлять Клиентов о потенциальных уязвимостях и просить "пропатчиться";
- Аналитики Web Application Firewall, чтобы своевременно разработать правила детектирования и реагирования;
- Специалисты по тестированию (Pentest), для понимания новых возможных векторов кибератак;
- Разработчики продуктов и сервисов кибербезопасности, для оптимизации механизмов противодействия киберугрозам.
⚙️ Программное решение должно быть реализовано в виде Telegram бота;
⚙️ На программное решение должна быть разработана минимально необходимая документация, описывающая архитектуру, принципы использования и конфигурации программного обеспечения;
⚙️ В программном решении не должно быть "захардкожено" каких-либо параметров/секретов/ключей, которые не позволят переиспользовать его;
⚙️ Программное решение должно иметь функционал поиска CVE по номеру с выводом информации по найденой уязвимости;
⚙️ Должен быть реализован функционал отображения новых CVE за выбранный период времени 1 день/неделю/месяц (в идеале гибкий настраиваемый период) и возможностью преднастроить критерии вывода по максимальному количеству критериев (уровень критичности, оценка CVSS, наличие PoC, версия программного обеспечения, вендор и т.д). Пример логики работы: покажи мне все CVE, которые вышли за последний месяц под nginx версии 1.18.0, с CVSS больше 6, по которым есть PoC;
⚙️ Должен быть реализован функционал автоматического уведомления о новых зарегистрированных в мире CVE по заранее заданным критериям уведомления. Пример логики работы: присылай мне уведомление в Telegram, как только обнаружишь новую CVE под CentOS 7 с CVSS больше 6;
⚙️ Программное решение должно поддерживать конфигурацию отображаемых данных по любой CVE и при любом из трех выше описанных сценариев, из следующих полей (их добавление/изменение на усмотрение команды разработчиков на Хакатоне, если у изменения будет обоснованная причина)
- Номер CVE (С кликабельной ссылкой на источник)
- CVSS (2/3) рейтинг
- Уровень критичности
- Метрики CVSS (Вектор, сложность и т.д.)
- EPSS рейтинг
- Дата/время регистрации CVE
- Продукт/вендор для которого характерна CVE
- Уязвимые версии продукта
- PoC/CVE WriteUp (С кликабельными ссылками, если есть)
- Описание CVE Информация о количестве упоминаний о CVE в Twitter/Facebook/Telegram/Reddit/GitHub/Habr/Xaker
- Необходимые действия по устранению уязвимости
В данном решении представлен бот, выполняющий следующие действия:
- Поиск подробной информации о cve по ее уникальному идентификатору (id).
- Поиск подробной информации о cve по определенным параметрам: вендору, продукту, дате, cvss (v2 и v3), вектору и сложности.
- Вывод информации о популярных cve по количетву просмотров, твитов, ре твитов в твиторе, количеству постов в редите за последние время: день, неделю.
- Поиск poс-ов с помощью searchsploit.
- TrendsCve
- nist
- searchsploit
- first.org/epss/api
- Лавренов В.И.
- Аничков А.М
- Сухов М.А.
- Колосова С.В.
Для удобного развертования приложения был испольльвон docker-compose
Для более удобного запуска приложение был сделан специальный shell скрипт.
- Запустить скрипт start_bot.prod.sh
- Создать файл logs/importer.log
- Установить корневую (bisone-crm) рабочую директорию
- Запустить