Skip to content

Latest commit

 

History

History
63 lines (44 loc) · 3.53 KB

File metadata and controls

63 lines (44 loc) · 3.53 KB

Українською. Читати англійською.

pycve-server

Builder-частина проєкту PyCVE. CLI rule-builder перетворює офіційні CVE-фіди (Canonical Ubuntu, Ubuntu OVAL, Debian Security Tracker) на статичні JSON-рулсети — по одному файлу на реліз — та опційний файл пріоритетів cve-priority.json. Далі ці файли роздає будь-який статичний HTTP-сервер, а на хостах їх споживає pycve-agent.

Швидкий старт

Потрібен Python 3.11+. Збірка з тестового fixture — без мережі, за секунди:

./run-rule-builder.sh \
  --canonical-cves \
  --canonical-url tests/fixtures/canonical-cves.json \
  --releases focal,jammy \
  --output-dir /tmp/pycve-rules \
  --write-priority
ls /tmp/pycve-rules
# focal.json  jammy.json  cve-priority.json

Для постійного використання можна встановити пакет (entrypoint rule-builder):

python3 -m venv .venv && . .venv/bin/activate && pip install -e .

Основні команди

Одне джерело на запуск; для змішаного парку Ubuntu + Debian — два запуски в той самий каталог:

# Ubuntu — основне джерело (Canonical CVE feed)
rule-builder --canonical-cves --releases focal,jammy,noble --output-dir /srv/www/pycve/rules

# Ubuntu — альтернативне джерело (OVAL)
rule-builder --ubuntu-oval --releases focal,jammy,noble --output-dir /srv/www/pycve/rules

# Debian (Security Tracker)
rule-builder --debian-cves --releases bookworm,bullseye,trixie --output-dir /srv/www/pycve/rules

# Оновити тільки cve-priority.json, без перезбирання рулсетів
rule-builder --output-dir /srv/www/pycve/rules --priority-only

Перерваний довгий Canonical-fetch безпечно перезапускати — builder продовжить із checkpoint.

Документація

Повна документація живе у вікі цього репозиторію:

  • Getting Started — наскрізний приклад: збірка правил → статика → перший вердикт агента.
  • Server Reference — повний довідник CLI: всі ключі, режими пріоритетів, checkpoint/resume, OVAL-мапінг, fixtures.
  • Data Sources — порівняння джерел і критерії вибору.
  • Operations — продакшн-розкат: cron, статичний хостинг, оновлення правил.
  • Architecture, Rule Format, Priority — як влаштована система і її артефакти.

Тести

python3 -m unittest discover -s tests -p 'test_*.py'
# або: uv run python3 -m unittest discover -s tests -p 'test_*.py'