
Платформа управления уязвимостями, которая импортирует отчеты сканеров, обогащает их данными из CISA KEV и Exploit-DB, и предоставляет контекстную оценку рисков для приоритетного устранения уязвимостей.
Комплексная платформа управления уязвимостями, которая анализирует отчеты сканеров безопасности, обогащает данные об уязвимостях информацией об эксплойтах и предоставляет практическую оценку рисков для приоритетного устранения.
*** Использование процесса обогащения CVE при первой загрузке замедляет процесс загрузки; он будет пытаться обогатить только те загруженные уязвимости, которые отмечены как эксплуатируемые в ваших сканах, но время может значительно варьироваться в зависимости от размера загружаемого файла.***

Панель управления предоставляет обзор состояния вашей безопасности с первого взгляда:
Просмотр, фильтрация и сортировка уязвимостей по:

Подробное представление, включающее:

Вариант A: Использование установщика
node --version
npm --version
Вариант B: Использование стабильной версии Node (рекомендуется)
nvm install 22.12.0
nvm use 22.12.0
Вариант C: Использование winget (Менеджер пакетов Windows)
winget install OpenJS.NodeJS.LTS
winget install Git.Git
Вариант D: Использование Chocolatey
choco install nodejs-lts
choco install git
Использование Homebrew:
brew install node
brew install git
Или загрузите установщик с https://nodejs.org
Проверьте установку:
node --version
npm --version
# Использование репозитория NodeSource для последней LTS
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs git
# Проверка
node --version
npm --version
macOS / Linux:
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
Windows (Командная строка):
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
Windows (PowerShell):
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
Все платформы:
npm run install:all
Или установите вручную:
macOS / Linux:
npm install
cd server && npm install
cd ../client && npm install
cd ..
Windows (Командная строка):
npm install
cd server && npm install
cd ..\client && npm install
cd ..
Windows (PowerShell):
npm install
cd server; npm install
cd ..\client; npm install
cd ..
Примечание (Windows): Если возникнут ошибки с
better-sqlite3, возможно, потребуется установить инструменты сборки Windows:npm install --global windows-build-toolsИли установите Visual Studio Build Tools с рабочей нагрузкой "Разработка классических приложений на C++" с https://visualstudio.microsoft.com/visual-cpp-build-tools/
Режим разработки (с горячей перезагрузкой) — все платформы:
npm run dev
Это запускает как серверную часть (порт 3000), так и клиентский сервер разработки (порт 5173).
Производственный режим — все платформы:
# Сборка клиента
npm run build
# Запуск сервера
npm start
Откройте браузер и перейдите по адресу:
http://localhost:5173http://localhost:3000При первом запуске создается учетная запись администратора по умолчанию:
adminAdmin123!При первом входе в систему вам будет предложено изменить этот пароль.
exploit-mapper/
├── client/ # React фронтенд
│ ├── src/
│ │ ├── components/ # Переиспользуемые UI-компоненты
│ │ ├── pages/ # Компоненты страниц
│ │ └── App.jsx # Главный компонент приложения
│ ├── package.json
│ └── vite.config.js
├── server/ # Express бэкенд
│ ├── src/
│ │ ├── db/ # Схема базы данных и подключение
│ │ ├── middleware/ # Промежуточное ПО аутентификации
│ │ ├── routes/ # Маршруты API
│ │ └── services/ # Бизнес-логика
│ ├── data/ # База данных SQLite (в gitignore)
│ ├── uploads/ # Временное хранилище загрузок (в gitignore)
│ └── package.json
├── package.json # Корневой package.json со скриптами
├── .gitignore
├── LICENSE
├── CONTRIBUTING.md
└── README.md
| Метод | Конечная точка | Описание |
|---|---|---|
GET | /api/reports | Список загруженных отчетов |
GET | /api/reports/:id/export | Экспорт отчета |
Exploit Mapper автоматически определяет и сопоставляет столбцы из различных сканеров уязвимостей:
Парсер автоматически сопоставляет распространенные названия столбцов:
Оценка риска = Оценка CVSS + Корректировки
Корректировки:
+0,5 если в CISA KEV (активно эксплуатируется)
+0,3 если доступен публичный эксплойт
Общий = (Макс. риск x 30%) + (Средн. риск x 40%) + (Средн. эксплуат. x 20%) + (Плотность x 10%)
При наличии CISA KEV: умножение на 1,05
Создайте файл .env в каталоге server/ (опционально — см. server/.env.example):
PORT=3000
NODE_ENV=production
SESSION_SECRET=your-secret-key
Exploit Mapper использует SQLite для хранения без необходимости настройки. База данных автоматически создается в server/data/exploit-mapper.db при первом запуске.
Windows:
netstat -ano | findstr :3000
taskkill /PID <pid> /F
macOS / Linux:
lsof -i :3000
kill -9 <pid>
Для этого нативного модуля требуются инструменты сборки C++:
:: Вариант 1: Установка через npm
npm install --global windows-build-tools
:: Вариант 2: Установка Visual Studio Build Tools
:: Загрузите с https://visualstudio.microsoft.com/visual-cpp-build-tools/
:: Выберите рабочую нагрузку "Разработка классических приложений на C++"
После установки удалите node_modules и переустановите:
cd server
rmdir /s /q node_modules
npm install
Убедитесь, что запущен только один экземпляр сервера. В Windows:
tasklist | findstr node
taskkill /IM node.exe /F
В macOS / Linux:
pkill -f "node.*index.js"
.csv, .xlsx или .xlsЕсли `concurrently» не работает, попробуйте запустить сервер и клиент отдельно в двух окнах терминала:
Терминал 1 (Сервер):
cd server
npm run dev
Терминал 2 (Клиент):
cd client
npm run dev
Подробные рекомендации см. в CONTRIBUTING.md.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Этот проект лицензирован под лицензией MIT — подробности см. в файле LICENSE.
| Метод | Конечная точка | Описание |
|---|
POST | /api/auth/login | Вход пользователя |
POST | /api/auth/logout | Выход пользователя |
GET | /api/auth/me | Получить текущего пользователя |
POST | /api/auth/change-password | Сменить пароль |
| Метод | Конечная точка | Описание |
|---|
GET | /api/dashboard/summary | Метрики панели управления |
GET | /api/dashboard/risk | Разбивка по рискам |
GET | /api/dashboard/trends | Исторические тенденции |
GET | /api/dashboard/executive-summary | Сводка для руководства |
| Метод | Конечная точка | Описание |
|---|
GET | /api/vulnerabilities | Список (с фильтрацией/пагинацией) |
GET | /api/vulnerabilities/:id | Детали уязвимости |
GET | /api/vulnerabilities/exploitable | Только эксплуатируемые |
GET | /api/vulnerabilities/stats/summary | Статистика |
PATCH | /api/vulnerabilities/:id | Обновить статус |
PATCH | /api/vulnerabilities | Массовое обновление |
POST | /api/vulnerabilities/manual | Добавить ручную запись |
DELETE | /api/vulnerabilities/:id | Удалить ручную запись |
| Метод | Конечная точка | Описание |
|---|
GET | /api/devices | Список устройств |
GET | /api/devices/:id | Детали устройства |
PATCH | /api/devices/:id | Обновить информацию об устройстве |
| Метод | Конечная точка | Описание |
|---|
POST | /api/upload | Загрузить отчет об уязвимостях |
GET | /api/upload/info | Статистика загрузок |
DELETE | /api/upload/clear | Очистить все данные |
| Сканер | Метод обнаружения |
|---|
| Arctic Wolf | столбцы risk_id, asset_category |
| Nessus/Tenable | столбец plugin_id |
| Qualys | столбец qid |
| OpenVAS | столбец nvt |
| Nexpose/Rapid7 | идентификатор nexpose |
| Generic CSV/Excel | интеллектуальное сопоставление названий столбцов |
| Поле | Распознаваемые названия столбцов |
|---|
| CVE | cve, cves, cve_id, vulnerability_id |
| Название | name, title, vulnerability, plugin_name |
| Описание | description, synopsis, summary |
| Решение | solution, remediation, fix, recommendation |
| Серьезность | severity, risk_severity, risk_level |
| Оценка CVSS | cvss, cvss_score, cvssv3_score |
| Хост | hostname, asset_name, host_name, fqdn |
| IP-адрес | ip_address, host_ip, asset_ip |
| Компонент | Вес | Описание |
|---|
| Максимальная оценка риска | 30% | Наивысший риск отдельной уязвимости |
| Средняя оценка риска | 40% | Среднее по всем уязвимостям |
| Средний риск эксплуатируемых | 20% | Среднее только по эксплуатируемым уязвимостям |
| Фактор плотности | 10% | log10(общее_количество_уязвимостей + 1) x 3 (макс. 10) |