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

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

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

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

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

Категории

Все категории
Loading categories
VulnReach — Runtime-aware SCA — доказывает, какие CVE реально достижимы, а не просто установлены. | Kitploit
Инструменты/GitHubGitHub/owasp/vulnreach
Статический анализСканеры уязвимостейДинамический анализ (песочница)Анализ уязвимостейАнализ КодаВеб-безопасностьDevSecOpsБезопасность Цепочки Поставок
GitHubowasp/vulnreach

VulnReach

Runtime-aware SCA — доказывает, какие CVE реально достижимы, а не просто установлены.

Репозиторий
815122 дней назадЕщё не проверено
Сайт

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

VulnReach

SCA с учётом достижимости — доказывает, какие CVE действительно достижимы, а не просто установлены.

OWASP Project License Python

VulnReach теперь официальный проект OWASP. 🎉

Демо

VulnReach Demo

Шаг 1 — SCA обнаруживает 74 CVE среди зависимостей

Trivy SCA output — 74 vulnerabilities detected

Шаг 2 — VulnReach доказывает, какие из них действительно достижимы

Fix Plan — 7 packages, 50 confirmed reachable CVEs with upgrade targets


Результаты — цепочка доказательств для каждой CVE

Dynamically reachable findings with full evidence chain

Панель управления — 42 подтверждённых достижимых в 9 репозиториях

VulnReach Dashboard

Поддержка языков: Python полностью готов к продакшену (taint, AST, маршруты, исполнение). Java и JavaScript имеют функциональный анализ графа вызовов и находятся в экспериментальной стадии. Go, C# и PHP — в дорожной карте. Подробнее см. ROADMAP.md.

VulnReach расширяет стандартный вывод SCA, добавляя контекст достижимости — с помощью статического анализа, отслеживания потоков данных (taint) и покрытия в runtime доказывает, какие из обнаруженных CVE действительно могут быть достигнуты в вашем приложении.


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

Последние разработки (выпущено)

  • Конвейер параллельных запусков с учётом зависимостей для ускорения сканирования
  • Достижимость Python — готова к продакшену (слои taint, AST, маршруты, runtime)
  • Достижимость Java — функциональный граф вызовов с парсингом зависимостей Maven/Gradle (экспериментально)
  • Достижимость JavaScript — функциональный граф вызовов с определением точек входа по маршрутам (экспериментально)
  • Отмена сканирования — POST /scan/{id}/cancel останавливает выполняющееся сканирование
  • Стабильный контракт ответа на сканирование: summary + классифицированные группы в GET /scan/{id}
  • Нормализация ответа сканирования, общая для API и локального режима пакета (паритет)
  • Безопасная по умолчанию граница выполнения:
    • базовый compose работает без монтирования Docker socket
    • динамические сканы требуют явного согласия через VULNREACH_ALLOW_DOCKER_DAEMON=true
    • профиль выполнения использует ограниченный docker-socket-proxy
  • Детерминированные проверки качества фикстур для Java/JavaScript/Go в CI
  • Принят как официальный проект OWASP — owasp.community/projects/vulnreach
  • AI-эндпоинт для следующих шагов — POST /findings/{id}/next-steps формирует рекомендации по устранению для аналитика (немедленные действия, проверки валидации, пути обновления, мониторинг) для детерминированной находки. Ленивый / по запросу: сканы никогда не вызывают LLM, а сбои LLM обрабатываются корректно. Детерминированный вердикт доступен только для чтения. См. docs/api.md.

Экспериментально

  • Режим трассировки scan.runtime.ebpf (ориентирован на Linux, явное согласие)
  • AI-ассистированная генерация OpenAPI и интеллектуальные потоки DAST

Смотрите:

  • docs/incubator-readiness.md
  • docs/threat-model.md

Как это работает

Каждая CVE классифицируется через пятиуровневую цепочку доказательств:

root@kitploit:~
1. SCA (Trivy)              → установлен ли пакет и уязвим ли он?
2. Анализ потоков (tainter) → поступают ли пользовательские данные в уязвимый сток?
3. Анализ AST              → находится ли уязвимая функция в вашем графе вызовов?
4. Доступность маршрута    → достижим ли путь вызова из HTTP-эндпоинта?
5. Покрытие в runtime      → выполнялся ли уязвимый код фактически?

Результат — приоритетный список находок с четырьмя уровнями:

УровеньЗначение
DYNAMICALLY_REACHABLEПокрытие runtime подтвердило выполнение — исправлять немедленно
STATICALLY_REACHABLEПуть кода доказан через AST/taint — высокий приоритет
UNCERTAINТолько слабый сигнал — требуется исследование
NOT_REACHABLEДоказательств нет — исключить из очереди оповещений

Быстрый старт

С Docker Compose (рекомендуется)

Уведомление безопасности — перед запуском скопируйте .env.example в .env.local и замените каждое значение CHANGE_ME на надёжный случайный секрет. Не публикуйте VulnReach в открытой сети без установки реальных учётных данных и настройки CORS_ORIGINS.

root@kitploit:~
git clone https://github.com/ihrishikesh0896/vulnreach.git
cd vulnreach

# 1. Создайте локальную конфигурацию
cp .env.example .env.local

# 2. Заполните все CHANGE_ME — сгенерируйте секреты: openssl rand -hex 32
$EDITOR .env.local

# 3. Запустите стек
docker compose up --build

# Опционально: включите динамические сканы runtime (доступ к Docker daemon через ограниченный socket proxy)
# docker compose -f docker-compose.yml -f docker-compose.runtime.yml up --build

Запустите сканирование

Варианты аутентификации:

  • Краткосрочный JWT: POST /login
  • Долгосрочный API-токен (ключ API): создайте в UI Settings -> API Keys, затем используйте как Authorization: Bearer <API_KEY>
root@kitploit:~
# Получить токен (замените учётными данными, которые вы задали в .env.local)
TOKEN=$(curl -s -X POST http://localhost:8000/login \
  -H "Content-Type: application/json" \
  -d '{"username":"<your-admin-user>","password":"<your-admin-password>"}' | jq -r .access_token)

# Запустить сканирование из GitHub-репозитория
curl -X POST http://localhost:8000/scan \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"repo_url":"https://github.com/yourorg/yourapp"}'

# Получить результаты
curl http://localhost:8000/scan/<scan_id> \
  -H "Authorization: Bearer $TOKEN" | jq .summary

Возможности

  • SCA с фильтрацией по достижимости — классифицирует каждую CVE по силе доказательств, а не только по CVSS
  • Подтверждение в runtime — сбор покрытия на основе Docker через coverage.py
  • Отслеживание потоков (taint) — прослеживает пользовательские данные → уязвимые стоки (SQL, subprocess, YAML, pickle)
  • DAST под управлением LLM — Claude/OpenAI/Ollama генерирует и проверяет эксплойт-полезные нагрузки (опционально)
  • CI/CD шлюзы — policy.block_if останавливает сборки при подтверждённых критических находках
  • JWT-аутентификация — многопользовательская, ролевой доступ (admin / analyst)
  • API-токены (ключи API) — долгосрочная машинная аутентификация для curl/CI (Authorization: Bearer <API_KEY>)
  • Экспорт в PDF — GET /scan/{id}/export/pdf
  • Отсутствие привязки к вендору — LLM-функции по умолчанию используют provider: none; поддерживается Ollama для офлайн-режима

На практике

Цель сканирования: multi-tier-dvpa — намеренно уязвимое приложение на Python/Django с 72 сырыми CVE в 11 пакетах.

СлойРезультат
Сырые CVE (Trivy)72
Классифицированные находки (VulnReach)90
DYNAMICALLY_REACHABLE — исправить сейчас49
STATICALLY_REACHABLE — исправить в этом спринте23
UNCERTAIN — исследовать18
NOT_REACHABLE — игнорировать0
Шлюз CI конвейераBLOCKED

46% находок были перемещены из недифференцированной очереди «исправить всё» в приоритезированный список действий. В типичном продакшн-сервисе (где многие транзитивные зависимости никогда не вызываются) этот показатель достигает 70–90%.

Полная методология, детали цепочки доказательств и разбивка по пакетам: docs/benchmark.md


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

Использование

  • USAGE_PACKAGE.md — установка пакета/CLI, зависимости, запуск, использование
  • USAGE_UI.md — установка UI/сервера, зависимости, запуск, использование

Операторам / Развёртывающим

  • docs/deployment.md — настройка Docker Compose, переменные окружения, заметки по продакшену
  • docs/configuration.md — полная справка по конфигурации scan.yml
  • docs/api.md — REST-эндпоинты и схемы

Архитектура / Безопасность

  • docs/architecture.md — дизайн конвейера и модель выполнения
  • docs/threat-model.md — границы доверия, STRIDE, сценарии злоупотреблений
  • docs/incubator-readiness.md — статус готовности OSS/OWASP
  • docs/DAST.md — концепции и поток DAST

Участникам

  • ROADMAP.md — запланированные функции, известные ограничения, статус поддержки языков
  • docs/development.md — внутреннее устройство, агенты, хранение, точки расширения
  • OWASP.md — заметки по проекту OWASP
  • SECURITY.md — раскрытие уязвимостей и ротация ключей
  • CONTRIBUTING.md — процесс внесения вклада
  • CHANGELOG.md — история релизов

Требования

  • Python 3.11+
  • PostgreSQL 13+
  • Docker + Docker Compose v2 (для динамического анализа)
  • trivy в PATH (установка)
  • jq (используется в примерах быстрого старта — установка)

Опционально (все корректно пропускаются при отсутствии):

  • semgrep — pip install semgrep
  • tainter — pip install tainter (анализ потоков данных; см. руководство по разработке)

Лицензия

Apache 2.0 — смотрите LICENSE.

Скачать инструмент