
Загружает и агрегирует данные о CVSS, EPSS и CISA известных эксплуатируемых уязвимостях в унифицированные файлы JSON/CSV и базу данных SQLite. Обогащает отчеты сканеров уязвимостей (например, OpenVAS) для приоритетного устранения. Включает опциональный конвейер Logstash и шаблон панели управления PowerBI.
Common Vulnerability Scoring System (CVSS) — это бесплатный и открытый отраслевой стандарт для оценки серьезности уязвимостей компьютерных систем безопасности.
Exploit Prediction Scoring System (EPSS) оценивает вероятность того, что уязвимость программного обеспечения будет использована в реальных условиях.
CISA публикует список известных используемых уязвимостей.
Этот проект загружает информацию из трех источников и объединяет их в один список.
Сканеры показывают вам номер CVE и оценку CVSS, но часто не экспортируют все детали, такие как «exploitabilityScore» или «userInteractionRequired». Добавив оценку EPSS, вы получаете больше возможностей для выбора того, что делать в первую очередь, и фильтрации по пороговым значениям, которые имеют смысл для вашей среды.
Вы можете использовать эту информацию для обогащения данных, предоставляемых вашим сканером уязвимостей, таким как OpenVAS, чтобы расставить приоритеты по устранению.
Вы можете использовать такие инструменты, как PowerBI, для объединения результатов сканера уязвимостей с информацией, загруженной скриптом из репозитория.
После загрузки необходимая информация будет извлечена, отформатирована и созданы выходные файлы.
Будут доступны CVSS, EPSS и объединенный файл со всей информацией о CVE. Выходные данные доступны в форматах json и csv.
Кроме того, информация импортируется в базу данных sqlite.
Целью не была производительность или эффективность.
Вместо этого скрипт написан простым способом. Выполняется несколько шагов, чтобы сделать его более понятным и отслеживаемым. Файлы промежуточных шагов записываются на диск, чтобы вам было проще настроить команды под свои нужды.
Он использует только bash, jq и sqlite3, чтобы быть очень дружелюбным к новичкам и демонстрировать использование jq.
Этот репозиторий содержит папку demo с файлом шаблона PowerBI. Он генерирует панель мониторинга, которую вы можете настроить под свои нужды.

Отчет OpenVAS должен быть в формате csv для импорта.

PowerBI будет использовать созданный файл CVE.json и создаст отношение:

Вы можете бесплатно скачать PowerBI по ссылке https://aka.ms/pbiSingleInstaller, и для его использования не требуется учетная запись Microsoft.
Вы можете либо дождаться выполнения скрипта загрузки по расписанию cron.
Либо вы можете выполнить скрипт загрузки вручную, выполнив:
docker exec -it vulnerability-tables-cron bash /opt/scripts/download.sh
Есть три docker-контейнера.
Контейнер cron загружает информацию раз в неделю (понедельник 06:00) и сохраняет файлы в выходной каталог.
Он использует curl и wget для загрузки файлов. jq используется для работы с json.
Контейнер filebeat читает json-файлы и пересылает их в контейнер logstash.
Контейнер logstash можно использовать для отправки в экземпляр OpenSearch, загрузки в Azure Log Analytics или другие поддерживаемые выходы.
Filebeat и logstash являются опциональными и включены только для удобства.
Будет создано несколько выходных файлов. Вот примерная оценка:
316K CISA_known_exploited.csv
452K CISA_known_exploited.json
50M CVSS.csv
179M CVSS.json
206M CVE.json
56M CVE.csv
6.7M EPSS.csv
12M EPSS.json
49M database.sqlite
Вы можете ожидать эту информацию для каждого CVE:
grep -i 'CVE-2021-44228' CVE.json | jq
{
"CVE": "CVE-2021-44228",
"CVSS2_accessComplexity": "AV:N/AC:M/Au:N/C:C/I:C/A:C",
"CVSS2_accessVector": "NETWORK",
"CVSS2_authentication": "MEDIUM",
"CVSS2_availabilityImpact": "NONE",
"CVSS2_baseScore": "COMPLETE",
"CVSS2_baseSeverity": "COMPLETE",
"CVSS2_confidentialityImpact": "COMPLETE",
"CVSS2_exploitabilityScore": "9.3",
"CVSS2_impactScore": "null",
"CVSS2_integrityImpact": "8.6",
"CVSS2_vectorString": "10",
"CVSS3_attackComplexity": "null",
"CVSS3_attackVector": "null",
"CVSS3_availabilityImpact": "null",
"CVSS3_baseScore": "null",
"CVSS3_baseSeverity": "null",
"CVSS3_confidentialityImpact": "null",
"CVSS3_exploitabilityScore": "null",
"CVSS3_impactScore": "null",
"CVSS3_integrityImpact": "null",
"CVSS3_privilegesRequired": "null",
"CVSS3_scope": "null",
"CVSS3_userInteraction": "null",
"CVSS3_vectorString": "null",
"CVSS3_acInsufInfo": "null",
"CVSS3_obtainAllPrivilege": "null",
"CVSS3_obtainUserPrivilege": "null",
"CVSS3_obtainOtherPrivilege": "null",
"CVSS3_userInteractionRequired": "null",
"EPSS": "0.97095",
"EPSS_Percentile": "0.99998",
"CISA_dateAdded": "2021-12-10",
"CISA_RequiredAction": "For all affected software assets for which updates exist, the only acceptable remediation actions are: 1) Apply updates; OR 2) remove affected assets from agency networks. Temporary mitigations using one of the measures provided at https://www.cisa.gov/uscert/ed-22-02-apache-log4j-recommended-mitigation-measures are only acceptable until updates are available."
}