Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Vulnerability Findings Database -- VulnBook-deletion_scheduled-85395299 — Офлайн-ориентированный трекер найденных уязвимостей, который выполняет параллельный поиск по 11 базам данных CVE, добавляет обогащение EPSS/KEV и управляет сроками скоординированного раскрытия уязвимостей. | Kitploit
Инструменты/GitLabGitLab/t-beckett/vulnbook-deletion_scheduled-85395299
Оборонительные ИнструментыФиды и агрегаторы угрозАнализ уязвимостейСбор информацииРазведка угроз
GitLabt-beckett/vulnbook-deletion_scheduled-85395299

Vulnerability Findings Database -- VulnBook-deletion_scheduled-85395299

Офлайн-ориентированный трекер найденных уязвимостей, который выполняет параллельный поиск по 11 базам данных CVE, добавляет обогащение EPSS/KEV и управляет сроками скоординированного раскрытия уязвимостей.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
4 дней назадЕщё не проверено

База данных уязвимостей

Статический клиентский трекер уязвимостей на Astro + React — также упакован как нативное десктопное приложение для Linux (Tauri v2). Фиксируйте находки безопасности, отслеживайте процесс скоординированного раскрытия, выполняйте поиск по 11 живым базам уязвимостей параллельно и просматривайте свежие CVE — в браузере или как десктопное приложение, без бэкенда.


Содержание

  • Возможности
  • Пять представлений
  • Модель данных
  • Базы уязвимостей
  • Технологический стек
  • Начало работы
  • Нативное десктопное приложение
  • Необязательные API-ключи
  • Конфигурация баз данных
  • Как устроен конвейер поиска
  • Хранение данных
  • Экспорт
  • AI-чат
  • Тестирование
  • Структура проекта
  • Заметки об исследовании
  • Процесс проектирования и планирования
  • Лицензия

Возможности

  • Управление находками — создание, редактирование, просмотр и удаление находок с указанием серьёзности, CVSS, CWE, CVE, статуса, дат, тегов и ссылок
  • Дашборд — карточки со статистикой, круговая диаграмма серьёзности, столбчатая диаграмма статусов и оповещения о дедлайнах раскрытия
  • Список и сетка — полнотекстовый поиск, фильтры (серьёзность/статус/проект/тег), сортировка и экспорт в CSV или Markdown в один клик
  • Поиск по базам — одновременный запрос к 11 источникам с живыми индикаторами статуса каждого источника, обогащение EPSS и бейджи CISA KEV
  • Обзор — просмотр свежих CVE из 4 источников без ввода запроса, с фильтром по серьёзности, переключателем «Только известные эксплуатируемые» и пагинацией «загрузить ещё» с дедупликацией
  • Хранение — находки сохраняются в localStorage (без сервера и аккаунта)
  • Офлайн-режим — загрузка обзорных лент (NVD, GitHub Advisories, CIRCL, CISA KEV) в локальное хранилище и поиск/просмотр по снапшоту без сети
  • Пользовательские базы — подключение любого дополнительного CVE API из вкладки «Настройки» (URL + необязательный bearer-ключ), запросы выполняются наряду со встроенными источниками
  • Настраиваемые источники — включение и отключение любой базы и управление API-ключами из встроенной вкладки «Настройки» (без пересборки)
  • AI-чат — встроенный AI-ассистент в виде боковой панели-оверлея (контент не перестраивается): OpenAI, Claude, Google Gemini, Ollama и OpenCode Zen; специализация под проект через встроенный пакет знаний; слэш-команды; AI Marketplace для подключений MCP/Skills; а также встроенный в браузер MCP-рантайм, позволяющий ассистенту вызывать реальные инструменты (живой поиск CVE, находки, экспорт) в любом провайдере

Пять представлений

Трекер (/tracker) — это одностраничное приложение с пятью вкладками:

1. Дашборд

  • Карточки статистики: всего находок, активные (не Fixed/Disclosed), критический уровень серьёзности и количество находок с приближающимся/просроченным дедлайном раскрытия
  • Распределение по серьёзности — кольцевая диаграмма (Critical / High / Medium / Low)
  • Находки по статусам — столбчатая диаграмма (New / Reported / Acknowledged / Fixed / Disclosed)
  • Ближайшие и просроченные дедлайны — находки с дедлайном раскрытия в пределах 7 дней, отсортированные по срочности, с пометками «осталось X дней» / «просрочено на X дней»

2. Находки

Представление управления вашими находками:

  • Полнотекстовый поиск по названию, описанию, проекту, CVE ID, CWE ID, заметкам и тегам
  • Фильтры — выпадающие списки серьёзности, статуса, проекта и тегов (варианты формируются из ваших данных)
  • Сортировка — по серьёзности, статусу или дате обнаружения, по возрастанию или убыванию
  • Переключение таблица/сетка — таблица на десктопе, карточки на мобильных; или сетка карточек
  • Экспорт — CSV или Markdown текущего отфильтрованного представления
  • Модальное окно записи — полная запись с действиями редактирования и удаления
  • Пустые состояния — разные сообщения для «находок пока нет» и «находки не соответствуют вашим фильтрам»

3. Поиск

Одновременный запрос ко всем включённым базам параллельно по одной строке запроса:

  • 11 источников опрашиваются одновременно (см. Базы уязвимостей)
  • Живые индикаторы статуса — каждый источник показывает idle / loading / ok (с количеством результатов) / error (с причиной)
  • Карточки результатов — раскрывающиеся, с CVE ID, бейджем серьёзности, CVSS, оценкой EPSS, бейджем CISA KEV, CWE, ссылками и кнопкой «View on NVD»
  • Дедупликация — результаты из нескольких источников объединяются в одну карточку на каждый CVE
  • Graceful degradation — сбойный источник показывает индикатор ошибки; остальная часть поиска всё равно завершается

4. Обзор

Просмотр свежих уязвимостей без ввода запроса:

  • 4 источника: NVD (окно публикации 30 дней), GitHub Advisories, CIRCL, CISA KEV
  • Фильтры-чипы по серьёзности — All / Critical / High / Medium / Low
  • Переключатель «Только известные эксплуатируемые» — показывает только записи CISA KEV
  • Загрузить ещё — добавляет следующую страницу с дедупликацией и повторной сортировкой по дате публикации
  • Строка сводки — «N CVE из X из 4 источников за Y мс»

5. Настройки

Панель управления подключениями к базам:

  • Переключатели по источникам — каждую базу (и обогащение EPSS) можно включить или отключить; изменения применяются сразу после сохранения, без пересборки
  • Метки способа подключения — каждый источник показывает, подключается ли он напрямую или требует API-ключ
  • Поля для API-ключей — ввод ключей для Vulners, MEND, VulDB и OpenCVE прямо в приложении (поле пароля с показом/скрытием); ключи переопределяют значения из .env на этапе сборки
  • Офлайн-режим — главный переключатель, а также кнопки Download / Remove для каждого источника обзорных лент (NVD, GitHub Advisories, CIRCL, CISA KEV); загруженные снапшоты хранятся локально и используются поиском/обзором в офлайне
  • Пользовательские базы — добавление любого дополнительного CVE API (имя, URL с необязательным плейсхолдером {query}, необязательный bearer-ключ), его проверка или удаление; подключённые пользовательские базы появляются дополнительными чипами в представлении поиска
  • Save / Reset — сохранение изменений или восстановление значений по умолчанию
  • Ключи хранятся локально в приложении и отправляются только соответствующему провайдеру

Модель данных

Finding — основная запись. Поля:

Валидация выполняется в форме: обязательные поля, формат URL, длина описания и диапазон оценки CVSS.


Базы уязвимостей

Интегрировано 11 баз, плюс обогащение EPSS. Семь подключаются напрямую без ключа; для четырёх нужен учётные данные из .env.

Не интегрировано (с причинами): Snyk (ограничено организацией, нет публичного поискового API), JFrog Xray (self-hosted, возвращает артефакты, а не записи CVE), Trivy (CLI-сканер, нет REST API), MSRC (ежемесячные документы CVRF, не поддерживают поиск по ключевым словам), VulnCheck (только массовая резервная конечная точка), Debian/Ubuntu (дампами по несколько ГБ, не подходят для клиентского поиска), Exploit-DB/Sploitus (нет публичного API), CNVD/CNNVD (ручная загрузка XML), Sonatype OSS Index (на основе purl/компонентов, не по ключевым словам).


Технологический стек

Дизайн-система: тема «Dark Sunset Boulevard» — тёмные поверхности с фиолетовым оттенком (ink-950 #1A2226, ink-900 #223036, ink-800 #264653), тёплый песочный текст (ink-100 #F2EAE0, ink-400 #A49A8C) и оранжевый акцент цвета жжёного апельсина (#E76F51). Все цвета — токены Tailwind 4, определённые в src/styles/global.css — без жёстко прописанных hex в компонентах.


Начало работы

Требуется Node.js >= 20.```bash

Install dependencies

npm install

Start the dev server (http://localhost:4321)

npm run dev

Type-check (Astro + TypeScript)

npm run check

Production build (outputs to dist/)

npm run build

Preview the production build

npm run preview

root@kitploit:~
Сборка создаёт полностью статический сайт (`dist/`) — его можно развернуть на любом статическом хостинге (GitLab Pages, Netlify, Cloudflare Pages, GitHub Pages, nginx…). Эта же сборка также упаковывается в нативное десктопное приложение — см. [Нативное десктопное приложение](#native-desktop-app).

---

## Нативное десктопное приложение

**Одна кодовая база — любой формат поставки.** Один и тот же исходный код собирает веб-сайт, десктопные приложения и Android-приложение — нет отдельных веток для веба и приложений. Приложения представляют собой статическую сборку, обёрнутую в небольшую **Tauri v2** оболочку на Rust, которая отображает её в системном webview (WebKitGTK на Linux, WKWebView на macOS, WebView2 на Windows, Android WebView). Никакого сервера и вкладки браузера; настройки и результаты сохраняются в собственном каталоге данных приложения.

### Linux (по умолчанию)

Поставляемые десктопные сборки ориентированы на Linux (`.deb`, `.rpm`, AppImage).

**Системные зависимости (Debian/Ubuntu):**```bash
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev

Разработка (горячая перезагрузка: dev-сервер Astro + окно Tauri):```bash npm run tauri:dev

root@kitploit:~
**Создание устанавливаемых пакетов** (`.deb`, `.rpm`, AppImage — вывод в `src-tauri/target/release/bundle/`):```bash
npm run tauri:build

Оболочка Rust намеренно минималистична — в v1 нет ни одной IPC-команды; вся логика остаётся в веб-слое, поэтому браузерная сборка и десктопное приложение ведут себя одинаково.

macOS

Поддержка macOS не включена в конфигурации по умолчанию — поставляемые сборки предназначены только для Linux. Сама кодовая база полностью кроссплатформенна (веб-слой работает в любом браузере, а оболочка Rust не содержит ни одной IPC-команды), поэтому включение macOS — это небольшое изменение конфигурации плюс сборка на Mac. Полное руководство см. в docs/macos-development.md: предварительные требования, включение цели dmg, иконки, подпись и нотаризация, а также пример CI для GitLab.

Windows 11

Поддержка Windows не включена в конфигурации по умолчанию — поставляемые сборки предназначены только для Linux. Кодовая база полностью кроссплатформенна, а сборки для Windows выполняются на машине с Windows 11 и инструментарием MSVC (WebView2 предустановлен). Полное руководство см. в docs/windows-development.md: предварительные требования, включение целей nsis / msi, иконки, подпись кода и SmartScreen, а также пример CI для GitLab.

Android

Цель Android не инициализирована в репозитории — одна команда создаёт её каркас (npm run tauri android init). Кодовая база полностью кроссплатформенна (веб-слой работает в Android WebView, а интерфейс трекера уже адаптирован для телефонов). Полное руководство см. в docs/android-development.md: предварительные требования (Android Studio, SDK, NDK, JDK 17), инициализация цели, сборка APK/AAB, а также пример CI для GitLab.


Необязательные API-ключи

Четыре источника поиска требуют учётных данных. Скопируйте .env.example в .env, заполните ключи и пересоберите:

Примечание по безопасности: это статический сайт — переменные PUBLIC_* на этапе сборки встраиваются в клиентский бандл и видны в исходном коде страницы. Используйте ключи с минимальными правами или серверный прокси для настоящей секретности. Источники без ключа просто показывают чип с ошибкой; остальной поиск продолжает работать.

Совет: эти ключи также можно ввести на вкладке Настройки приложения — ключи времени выполнения переопределяют значения из .env на этапе сборки, пересборка не нужна.

Файлы .env игнорируются git; коммитится только .env.example.


Конфигурация баз данных

Включение/выключение баз данных и API-ключи управляются на вкладке Настройки во время выполнения — не нужно редактировать файлы или пересобирать. Значения по умолчанию находятся в src/tracker/lib/dbConfig.ts, а переопределения времени выполнения хранятся в приложении (localStorage, ключ settings:all).

Приоритет: настройки времени выполнения (вкладка «Настройки») > значения .env на этапе сборки > значения по умолчанию из dbConfig.ts.

Каждая запись конфигурации содержит:

  • enabled — состояние по умолчанию; вкладка «Настройки» может переопределить его для каждого сеанса
  • search / browse — в каких представлениях участвует источник
  • needsKey + keyVar — помечает источники, которые используют учётные данные (из .env или вкладки «Настройки»)

Интерфейс полностью строится на основе действующей конфигурации: getSearchSources() (чипы поиска) и getBrowseSources() (чипы обзора) фильтруются по включённым источникам, а адаптеры фильтруются во время запроса — отключение источника в настройках немедленно убирает его из интерфейса и из запросов.

Пользовательские базы данных хранятся в тех же настройках времени выполнения (customDbs). Каждая запись имеет имя, URL (опционально содержащий плейсхолдер {query} — в противном случае запрос добавляется как ?q=) и опциональный bearer-ключ. Они работают только в режиме поиска: появляются как дополнительные чипы в представлении поиска и запрашиваются параллельно со встроенными источниками. Ответы принимаются в формате CVE JSON 5.0 ({ "vulnerabilities": [{ "cve": ... }] }) или как простой массив записей с гибкими именами полей.


Как работает конвейер поиска

Весь доступ к базам данных находится в src/tracker/lib/ и разделён по зонам ответственности (dbSearch.ts — это barrel-файл, реэкспортирующий прежнюю публичную поверхность):

  • dbFetch.ts — хелпер fetch с таймаутом + общие константы
  • dbAdapters.ts — 11 встроенных адаптеров поиска + парсеры записей
  • dbBrowse.ts — 4 адаптера обзора + конвейер browseDatabases
  • dbCustom.ts — адаптер пользовательской базы данных
  • dbPipeline.ts — механизмы merge / KEV / EPSS + `searchDatabases```` query ──► Promise.all over enabled adapters ──► normalizeDbItem ──► mergeDbItems (dedup by CVE / ID / title, cross-merge) ──► attachKevBadges (CISA KEV catalog, cached) ──► enrichWithEpss (FIRST EPSS API, batched by CVE) ──► sorted results + per-source statuses + timing
root@kitploit:~
- **Адаптеры** — по одному на источник, каждый возвращает нормализованные `RawDbItem`s. Адаптеры с ключами выбрасывают понятную ошибку «no API key configured», когда ключ отсутствует.
- **Объединение** — один и тот же CVE, найденный в нескольких источниках, становится одной карточкой; поля (summary, severity, CVSS, CWEs, refs, sources) объединяются из всех источников-участников.
- **Значки KEV** — каталог CISA загружается один раз и кэшируется; элементы из него получают значок «Known Exploited».
- **EPSS** — пакетный запрос к `api.first.org`; на каждой карточке показывается оценка EPSS и перцентиль.
- **Изоляция сбоев** — каждый адаптер перехватывает собственные ошибки и сообщает о них через колбэк статуса; один недоступный источник никогда не блокирует остальные.

Конвейер **Browse** — это тот же механизм merge/KEV/EPSS для четырёх источников Browse, с пагинацией (`hasMore`, когда любой из источников вернул полную страницу).

**Автономный режим** заменяет живой конвейер загруженным снимком: Search и Browse читают кэш IndexedDB (`src/tracker/lib/offline.ts`), пропускают обогащение EPSS и добавляют значки KEV только в том случае, если фид CISA KEV также был загружен. Источники без загруженного снимка показывают чип «error / not downloaded» вместо зависания. **Пользовательские базы данных** запрашиваются через тот же интерфейс адаптеров — плейсхолдер `{query}` в URL подставляется (или добавляется `?q=`), при необходимости bearer-ключ отправляется в заголовке `Authorization`, а ответы нормализуются из CVE JSON 5.0 или простого массива.

---

## Хранение данных

Находки хранятся в `localStorage` под ключом `findings:all` — без сервера, без аккаунта, работает офлайн.

- Записи дебаунсятся при каждом изменении и сохраняются автоматически
- Если API хранилища браузера недоступен (или присутствует API хост-хранилища артефактов), приложение корректно переключается на запасной вариант
- Повреждённый payload считается пустым, а не приводит к падению
- При сбое сохранения показывается баннер с кнопкой **Повторить**

> Данные хранятся в профиле браузера. Очистка данных сайта удалит ваши находки — если нужна резервная копия, сначала экспортируйте их в CSV/Markdown.

**Автономные снимки** хранятся в IndexedDB (база данных `vulnbook-offline`, хранилища `items` + `meta`) — загружаются по каждому источнику со вкладки «Настройки» и используются в Search/Browse, пока включён автономный режим. Они переживают перезагрузки и удаляются только по клику на **Удалить** для этого источника или при очистке данных сайта.

---

## Экспорт

Из представления «Находки» экспортируйте **текущий отфильтрованный и отсортированный** список:

- **CSV** — 15 столбцов (title, project, repo URL, severity, CVSS, status, CWE, CVE, affected versions, discovery/reported/disclosure dates, references, notes, tags). Корректное экранирование/заключение в кавычки для запятых, кавычек и переводов строк.
- **Markdown** — таблица в стиле GitHub с теми же столбцами.

Файлы называются `findings-YYYY-MM-DD.csv` / `.md` и загружаются автоматически.

---

## AI ChatBox

Встроенный ИИ-ассистент внутри трекера — **оверлейная боковая панель**, которая выезжает поверх контента, не перестраивая его. Полное руководство (настройка провайдеров, рекомендации по безопасности, устранение неполадок) — в **[docs/ai-chatbox.md](https://gitlab.com/t-beckett/vulnbook-deletion_scheduled-85395299/-/blob/main/docs/ai-chatbox.md)**.

- **Пять провайдеров** — OpenAI, Claude (Anthropic), Google Gemini, **Ollama** (локальный, офлайн) и **OpenCode Zen** (включая бесплатные модели). Настройка (ключ + модель) выполняется в приложении, сохраняется в `localStorage` (`chat:config`) и отправляется только на endpoint самого провайдера
- **Специализация по проекту** — каждый разговор основан на встроенном **пакете знаний** о vulnbook (архитектура, модель данных, источники БД, соглашения); переключается через **Контекст проекта** в панели конфигурации
- **Потоковые ответы** — вывод markdown в реальном времени с кнопкой **Остановить**; при необходимости автоматически срабатывает запасной режим без стриминга
- **Слэш-команды** — введите `/` в поле ввода: `/mcp` и `/skill` открывают AI Marketplace, `/new` начинает разговор, `/clear` очищает его, `/help` показывает список команд
- **Вызов инструментов (in-browser MCP runtime)** — подключённые MCP-серверы предоставляют реальные инструменты, которые ассистент может вызывать во время разговора: живой поиск по CVE/базам данных, запросы KEV, находки пользователя и экспорт. Инструменты выполняются локально в браузере (без бэкенда) и работают во **всех трёх семействах протоколов** — в стиле OpenAI (OpenAI, Ollama, OpenCode Zen), Anthropic и Gemini
- **AI Marketplace** — вкладка боковой панели со списком доступных **MCP** и **Skill** в виде сетки; на карточках MCP отображается чип **«N tools»** и переключатель **Включить** (сохраняется), на карточках навыков — **Подключить** / **Скачать**
- **История чатов** — разговоры сохраняются (`chat:history`, с ограничением, при котором самые старые записи удаляются первыми)

> **Безопасность:** ключи остаются локальными и отправляются только провайдеру; markdown ассистента рендерится через строгий санитайзер (без сырого HTML). MCP-инструменты выполняются **в браузере** только с данными самого приложения и публичными API — каждый инструмент проверяет свои аргументы, выполняется с таймаутом 12 секунд и обрезает вывод до 4 000 символов; произвольный код не выполняется.

---

## Тестирование

У проекта нет фреймворка для модульных тестов (устоявшееся решение) — проверка представляет собой трёхэтапный шлюз:```bash
# 1. Type-check
npm run check

# 2. Build
npm run build

# 3. E2E smoke test (Playwright, 16 checks)
npx http-server dist -p 8899 -a 127.0.0.1 &
NODE_PATH=<path-to-playwright-node_modules> node scripts/smoke.cjs

Смоук-тест (scripts/smoke.cjs) покрывает: рендер и гидратацию целевой страницы, гидратацию островка трекера, CRUD для находок, сохранение localStorage при перезагрузке, список и элементы управления экспортом, модальное окно деталей (открытие/Escape), удаление, поиск по базе данных, создающий карточки результатов, режим просмотра (browse view), создающий карточки результатов, вкладку настроек (отключение источника убирает его чип, повторное включение возвращает его), офлайн-режим (переключатель показывает офлайн-баннер в разделе «Поиск» и восстанавливает живой режим) и проверку формы пользовательской базы данных (недопустимый URL отклоняется).

  • Двоичный файл Chromium определяется через PLAYWRIGHT_CHROMIUM_PATH или путь к кэшу по умолчанию
  • Проверки 9–11 обращаются к живым API (NVD, GHSA, CIRCL, KEV, EPSS) и требуют доступа в интернет
  • Сбои источников по замыслу деградируют до состояния ошибки на каждом чипе — проверки ожидают, что хотя бы один источник ответит

Для изменений в нативном приложении дополнительно запустите npm run tauri:build (см. Нативное десктоп-приложение).


Структура проекта```

├── src/ │ ├── components/ # Shared Astro components + animation primitives │ │ └── anim/ # Skeleton, Spinner, FadeInUp, CountUp │ ├── layouts/ # SiteLayout (fonts, meta, theme) │ ├── pages/ # index.astro (landing), tracker.astro, 404.astro │ ├── styles/ # global.css — Tailwind 4 design tokens │ └── tracker/ │ ├── components/ # Tracker UI │ │ ├── TrackerApp.tsx # Shell: tabs, modals, state │ │ ├── Dashboard.tsx # Stats + charts + deadlines │ │ ├── FindingsList.tsx / FilterBar.tsx │ │ ├── DbSearchView.tsx / BrowseView.tsx / SettingsView.tsx │ │ ├── FindingFormModal.tsx / FindingDetailModal.tsx │ │ ├── ConfirmDeleteDialog.tsx / EmptyState.tsx / ErrorBanner.tsx │ │ ├── SourceChip.tsx / SearchResultCard.tsx / StatCard.tsx / badges.tsx │ │ ├── AiMarketplace.tsx # AI Marketplace grid (MCP/Skill cards, tool counts, enable toggles) │ │ └── chat/ # AI ChatBox UI │ │ ├── AiChatSidebar.tsx # Overlay sidebar + the tool-calling agent loop │ │ ├── ChatMessageList.tsx # Renders messages incl. inline tool calls │ │ ├── ChatComposer.tsx / ChatConfigPanel.tsx / ChatHistoryList.tsx │ └── lib/ # Logic │ ├── types.ts # Finding, DbItem, KevEntry, View, … │ ├── constants.ts # Severity/status order + styles, button classes │ ├── dbConfig.ts # ← per-source defaults (on/off, key vars) │ ├── settings.ts # ← runtime settings store (Settings tab overrides) │ ├── offline.ts # IndexedDB offline snapshot store (download/remove/query) │ ├── dbSearch.ts # barrel: re-exports the db layer (see "How the Search Pipeline Works") │ ├── dbFetch.ts # fetch-with-timeout helper + shared constants │ ├── dbAdapters.ts # 11 built-in search adapters + record parsers │ ├── dbBrowse.ts # browse adapters + browseDatabases pipeline │ ├── dbCustom.ts # user-configured custom database adapter │ ├── dbPipeline.ts # merge/KEV/EPSS pipeline + searchDatabases │ ├── findings.ts # CRUD + validation │ ├── storage.ts # localStorage + artifact-API fallback │ ├── export.ts # CSV / Markdown export │ ├── format.ts # date/URL/id helpers, cvssToSeverity │ └── chat*.ts # AI ChatBox logic (see "AI ChatBox"): chatStore (config/history), │ # chatProvider (3 wire families + tool calling), chatTools (tool │ # registry + in-browser MCP runtime), chatMcp (enabled-state), │ # chatCatalog / chatKnowledge / chatFindings / chatCommands / chatMarkdown ├── scripts/smoke.cjs # Playwright E2E smoke test (16 checks) ├── docs/ # Developer guides (macOS, Windows 11, Android development) ├── src-tauri/ # Tauri v2 native shell (Rust, minimal) ├── research/ # Vulnerability database & tooling research notes ├── .env.example # Documented API-key template └── astro.config.mjs

root@kitploit:~
---

## Исследовательские заметки

Каталог `research/` содержит фоновые исследования, которые легли в основу интеграций баз данных:

- **`vulnerability-databases.md`** — каталогизировано ~60 баз данных (модель доступа, доступность API, предостережения), включая изменения обогащения NVD от апреля 2026 г., детали API EUVD/OpenCVE/VulDB и список «почему нет»
- **`vulnerability-finding-tools.md`** — более широкий ландшафт инструментов поиска уязвимостей (SAST/SCA/fuzzing/pentest) и конвейер для индивидуального специалиста

---

## Процесс проектирования и планирования

Этот проект следует рабочему процессу «проектирование → план → выполнение».

Новые возможности начинаются с документа проектирования, проходят проверку, затем планируются и выполняются в виде микро-задач. Полные правила (ветвление, контроль верификации, стиль коммитов, правила доступности) описаны в `CONTRIBUTING.md`.

---

## Лицензия

[MIT](https://gitlab.com/t-beckett/vulnbook-deletion_scheduled-85395299/-/blob/main/LICENSE) © 2026 T. Beckett
Скачать инструмент
ПолеОписание
idУникальный идентификатор
projectNameПроект, к которому относится находка (обязательно)
repoUrlURL репозитория (обязательно, должен быть корректным URL)
titleКороткое название (обязательно)
descriptionПодробное описание (обязательно, ≥ 10 символов)
severityCritical / High / Medium / Low
cvssScoreОценка CVSS 0–10 (необязательно)
cweIdИдентификатор CWE, например CWE-79
cveIdИдентификатор CVE, например CVE-2021-44228
affectedVersionsЗатронутые диапазоны версий
statusNew / Reported / Acknowledged / Fixed / Disclosed
discoveryDateКогда вы обнаружили находку
reportedDateКогда вы сообщили о ней вендору
disclosureDeadlineДедлайн скоординированного раскрытия (управляет оповещениями на дашборде)
referenceLinksСписок ссылок на источники
notesПроизвольные заметки
tagsСписок тегов (используется для фильтрации)
createdAt / updatedAtМетки времени
№ИсточникДоступПоискОбзорПримечания
1NVD (NIST)Прямой✅✅NVD API 2.0; окно 30 дней в обзоре
2CIRCLПрямой✅✅Поиск CVE + лента «last» (форматы OSV/CSAF)
3GitHub AdvisoriesПрямой✅✅GHSA API
4OSV (Google)Прямой✅—Уязвимости экосистем с открытым исходным кодом
5CISA KEVПрямой✅✅Каталог известных эксплуатируемых уязвимостей
6Red HatПрямой✅—База CVE Red Hat
7EUVD (ENISA)Прямой✅—Европейская база уязвимостей
8Vulnersключ из .env✅—PUBLIC_VULNERS_API_KEY
9MENDтокен из .env✅—PUBLIC_MEND_API_TOKEN (поиск по CVE ID)
10VulDBключ из .env✅—PUBLIC_VULDB_API_KEY (на основе кредитов)
11OpenCVEтокен из .env✅—PUBLIC_OPENCVE_API_TOKEN
—EPSS (FIRST)Прямой——Только обогащение: оценка CVE 0–1 + процентиль
СлойВыбор
ФреймворкAstro 6 (статическая генерация)
UIОстровки React 19
СтилизацияTailwind CSS 4 (классы на основе токенов)
ГрафикиRecharts
Иконкиlucide-react
Анимацияframer-motion
ДесктопTauri v2 (Linux: deb / rpm / AppImage; Windows: см. Разработка под Windows 11; macOS: см. Разработка под macOS)
МобильныеAndroid через Tauri v2 — см. Разработка под Android
AI-чатВстроенный чат — OpenAI / Claude / Gemini / Ollama / OpenCode Zen (см. AI-чат)
ЯзыкTypeScript (строгий режим)
SourceVariableWhere to get it
VulnersPUBLIC_VULNERS_API_KEYАккаунт Vulners → API-ключи
MENDPUBLIC_MEND_API_TOKENMEND SCA API 2.0 (JWT bearer-токен)
VulDBPUBLIC_VULDB_API_KEYАккаунт VulDB → API-ключ (на основе кредитов)
OpenCVEPUBLIC_OPENCVE_API_TOKENОрганизация OpenCVE → API-токены