git clone https://github.com/Kezhich/genesis; cd genesis
node app.js
http://localhost:3000/form - Форма загрузки аналитических отчетов (.txt)
http://localhost:3000/get_json - Результат анализа отчетов в json
CVE парсим по регулярке CVE-\d{4}-\d{4,7}
CWE парсим по регулярке CWE-\d{1,4}
APT парсим по регулярке APT\d{1,4}
CVSS парсим по регулярке CVSS \d{1,2}.\d{1}
Техники MITRE парсим заранее и собираем пересечения с аналитическими отчетами об угрозах, как и список стран.
Список названий ПО: парсим все существующие CVE за всё время с https://github.com/CVEProject/cvelist, собираем "product_name", т.е. продукт к которым они относятся, и собираем всё это без повторений во множество SOFTWARE. Теперь у нас есть названия программ/сервисов/etc и мы можем из отчётов парсить названия продуктов, которых эти отчёты касаются.
Создание тикетов. Админ может создать тикет по конкретной угрозе в дашборде, если считает её актуальной и необходимой к исправлению.
parse.py - программа на питоне, на вход - отчет в input.txt, на выход - собранная из него информация (CVE/CWE, страны активности угрозы, техники MITRE, даты, причастные APT группировки).
app.js - сам сервер на nodejs, связывающий сайт с питоном
packages - фронт
node_modules - модули ноды
input_for_test_upload - тестовые аналитические отчеты для загрузки
etroynov_genesis - связь бэка с фронтом
codeql-analysis.yml - тестирование безопасности проекта на SAST CodeQL