Skip to content

Repository files navigation

rubezh

rubezh («Рубеж») — сканер уязвимостей на базе форка Trivy с поддержкой Банка данных угроз безопасности информации (БДУ) ФСТЭК России как источника данных об уязвимостях.

Этот репозиторий (dato-dev/rubezh) — дом проекта: утилита bdu-import (импортёр выгрузки БДУ) и документация. Сам бинарник сканера rubezh собирается из форка dato-dev/trivy (+ dato-dev/trivy-db). «Trivy» — торговая марка Aqua Security; форк использует upstream-код под Apache-2.0, но поставляется под собственным брендом.

Цель — сканировать контейнерные образы, файловые системы и Kubernetes-кластеры так же, как это делает Trivy, но дополнительно сопоставлять находки с идентификаторами BDU:YYYY-NNNNN, оценками и уровнями опасности ФСТЭК. Это закрывает требования российской регуляторики (импортозамещение, аттестация по требованиям ФСТЭК) и позволяет включать идентификаторы БДУ прямо в отчёты.

Проект вырос из инструмента ksreport — генератора PDF/XLSX/HTML-отчётов по результатам сканирования кластеров через kubescape (под капотом которого работают Trivy и grype). Обогащённый вывод этого форка потребляется ksreport.

Что такое БДУ ФСТЭК

Официальная выгрузка: https://bdu.fstec.ru/files/documents/vulxml.zip — один XML-файл (vulxml.xml, ~560 МБ в распакованном виде, UTF-8).

Характеристики дампа (по состоянию на выгрузку 2026-07):

Параметр Значение
Всего записей ~89 987
Записей с перекрёстной ссылкой на CVE ~87 234 (96%)
Формат affected-софта vendor / name / version свободным текстом (не CPE)
Диапазоны версий естественный язык: «от X до Y включительно», «до X», «X и ниже»
CVSS версия 2.0 во всех записях (метрика Au:), поле score
Уровень опасности текстом: «Критический / Высокий / Средний / Низкий уровень опасности»

Структура записи <vul>

<vul>
  <identifier>BDU:2024-00001</identifier>
  <name>Уязвимость ...</name>
  <description>...</description>
  <vulnerable_software>
    <soft>
      <name>FortiSwitch</name>
      <vendor>Fortinet Inc.</vendor>
      <version>от 6.4.0 до 6.4.10 включительно</version>
      <platform>...</platform>
    </soft>
    <!-- часто несколько <soft> на запись -->
  </vulnerable_software>
  <cwes><cwe><identifier>CWE-259</identifier>...</cwe></cwes>
  <cvss><vector score="9.7">AV:N/AC:L/Au:N/C:C/I:P/A:C</vector></cvss>
  <severity>Высокий уровень опасности (базовая оценка CVSS 2.0 составляет 9.7)</severity>
  <identifiers>
    <identifier type="CVE" link="...">CVE-2011-4859</identifier>
  </identifiers>
  <identify_date>...</identify_date>
  <publication_date>...</publication_date>
  <last_upd_date>...</last_upd_date>
  <sources>...</sources>
</vul>

Подход

Поскольку 96% записей БДУ содержат CVE-ссылку, а affected-софт задан свободным текстом (без CPE и структурированных диапазонов), интеграция идёт в две фазы:

  • Фаза A — обогащение (enrichment). Trivy детектирует уязвимости как обычно (по CVE), а форк добавляет к каждой находке идентификатор БДУ, уровень опасности и CVSS 2.0 ФСТЭК через маппинг CVE → BDU. Даёт ~96% ценности при минимальных изменениях в матчинге.
  • Фаза B — источник детекта. БДУ как полноценный advisory-source: парсинг русскоязычных диапазонов версий, сопоставление vendor/product с пакетными экосистемами, поддержка BDU-only уязвимостей (~4% без CVE).

Подробности — в ROADMAP.md.

Статус

🚧 Ранняя стадия. Ведётся проектирование и скаффолдинг фазы A.

Структура

Проект состоит из трёх репозиториев:

dato-dev/rubezh/            # этот репо — дом проекта
├── cmd/bdu-import/         # парсер vulxml.xml → нормализованный JSONL
├── pkg/bdu/                # модель данных БДУ, нормализация
├── README.md, ROADMAP.md

dato-dev/trivy              # форк aquasecurity/trivy — бинарник сканера rubezh
dato-dev/trivy-db           # форк aquasecurity/trivy-db — источник fstec-bdu (bucket CVE→BDU)

Лицензия

Trivy распространяется под Apache-2.0. Форк наследует ту же лицензию; изменения, связанные с БДУ, — под Apache-2.0.

About

rubezh — сканер уязвимостей на базе Trivy с поддержкой БДУ ФСТЭК России

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages