VTB Hackathon · архитектура, флоу и уникальность

Финальная архитектура решения для питча полуфинала.

Суть решения

Автосканер уязвимостей API, который:
• Находит 95% OWASP Top 10 уязвимостей ДО продакшена
• Работает с ГОСТ-шлюзом без сложных зависимостей  
• Интегрируется в CI/CD и «ломает» сборку при рисках
• Покрывает REST (OpenAPI) и события (AsyncAPI)

Технологический стек:
• Java 21 + Virtual Threads для масштабирования
• Модульная архитектура (11 сканеров + deep-анализ)
• ГОСТ-предикция без live-доступа к шлюзу
• CI/CD нативные интеграции (GitHub Actions, GitLab CI)

Архитектура решения

Структура проекта: основные модули и их ответственность.

├── core/          — парсинг OpenAPI/AsyncAPI, конфиг, оркестратор SecurityScanner
├── scanners/      — 11 статических сканеров (BOLA, BFLA, Injection, Secrets, RateLimit…)
├── deep/          — DeepSchemaAnalyzer, CorrelationEngine, TLS/ГОСТ анализ, SecretInventory
├── analysis/      — SmartAnalyzer, EnhancedRules, AttackSurfaceMapper, SchemaConstraintAnalyzer
├── util/          — AccessControlHeuristics, общие эвристики/утилиты
├── fuzzing/       — SmartFuzzer (targeted probes, генерация контрактных проб)
├── integration/   — GOSTGateway, TLSAnalyzer, CI/CD адаптеры, webhook/REST коннекторы
├── reports/       — HTML/PDF/JSON отчёты, ExecutiveSummary, attack-surface диаграммы
├── web/           — Spring REST + static UI (загрузка спецификаций/выгрузка отчётов)
└── models/        — ScanContext, Vulnerability, ContractViolation, ScanResult, ScanStatistics

Основные компоненты:
• SecurityScanner — управляет процессом сканирования
• ScanContext — хранит данные для анализа  
• SmartAnalyzer — обрабатывает и фильтрует результаты
• CorrelationEngine — находит связи между уязвимостями

Пайплайн ядра:
1) Парсинг OpenAPI/AsyncAPI → нормализация/валидация (core) → ScanContext.
2) Параллельный запуск сканеров на virtual threads (scanners/*) с ограничением ресурсов.
3) Обогащение находок глубокими анализами (deep/*, TLS/ГОСТ, SecretInventory, SmartFuzzer).
4) Дедупликация, корреляция, вычисление risk score/priority.
5) Экспорт результатов в HTML/PDF/JSON и интеграции (reports/*, integration/*).

Рабочий процесс

Настройка политики

Вход: профиль домена, лимиты, правила дедупликации, CI-гейт (fail/pass).
Обработчик: core/Config.
Выход: единая политика сканирования для всех этапов.

Ввод спецификации

Вход: OpenAPI/AsyncAPI (файл/URL), опции политики и домена.
Обработчик: core/OpenAPIParser, core/AsyncAPIParser.
Выход: ScanContext с валидированной моделью и доменным профилем (BANKING/HEALTHCARE/GOV).

Обогащение модели

Вход: ScanContext.
Обработчик: анализ поверхности атак и схем данных.
Выход: карта поверхности атаки (эндпоинты, роли, LIST→RESOURCE цепочки, чувствительные объекты).

Валидация аутентификации

Вход: карта поверхности атаки.
Обработчик: analysis/AccessControlHeuristics.
Выход: гипотезы по BOLA/BFLA/consent-only для использования сканерами.

Параллельный статический анализ

Вход: контекст + карта поверхности атаки.
Обработчик: пакет scanners/* (BOLA/BFLA/Injection/…); запуск через virtual threads.
Выход: атомарные Vulnerability/ContractViolation с ссылками на артефакты.

Глубокие проверки

Вход: набор находок из шага 3.
Обработчик: deep/* (TLS/mTLS, OAuth/JWT, ГОСТ), fuzzing/SmartFuzzer, SecretInventory, CorrelationEngine.
Выход: обогащённые находки + цепочки атак (evidence, impact, remediation).

Дедупликация & корреляция

Вход: атомарные и глубокие находки.
Обработчик: SmartAnalyzer, CorrelationEngine.
Выход: единый список инцидентов без дублей, с цепочками причин.

Дедупликация & отчёты

Вход: обогащённые находки и цепочки.
Обработчик: SmartAnalyzer, ConfidenceCalculator, reports/*, integration/CICDIntegration.
Выход: ScanResult/ScanStatistics, HTML/PDF/JSON, ExecutiveSummary, диаграмма attack‑surface, публикация в CI/CD.

CI/CD гейт и обратная связь

Вход: ScanStatistics, политики и пороги.
Обработчик: integration/CICDIntegration.
Выход: статус пайплайна (pass/fail), комментарии к MR/PR, артефакты отчётов.

Бизнес-ценность

Снижение cost of fix

Обнаружение в разработке vs продакшене = 1:100 по стоимости исправления

Ускорение compliance

ГОСТ-готовность за 5 минут вместо 2-недельного ручного аудита

Снижение рисков

Автоблокировка релизов при критичных BOLA/инъекциях

Почему именно наше решение?

GOST-предикция

  • Анализ спецификаций для выявления GOST-проблем
  • Работает без установки дополнительного ПО
  • Проверка TLS/SSL конфигураций на соответствие

Virtual Threads

  • Параллельное тестирование 100+ эндпоинтов
  • Сканирование за 2-5 минут вместо 30+
  • Контроль ресурсов и таймаутов

Domain-Aware Rules

  • Банкинг: PSD2, Open Banking, финансовые данные
  • Госуслуги: ФЗ-152, ГОСТ, персональные данные
  • Healthcare: HIPAA, медицинские records

3. Ключевые преимущества

Контекст + ГОСТ + AsyncAPI

  • Автоконтекст (BANKING / HEALTHCARE / GOV) → набор правил и метрик под домен.
  • ГОСТ-комплаенс по умолчанию: TLSAnalyzer (TLS1.3+mTLS), GOSTDeepAnalyzer, GOSTGateway, SecretInventory.
  • Два мира: REST (OpenAPI) + событийные контракты (AsyncAPI) в одном пайплайне.
  • Политики и профили: fail‑thresholds для CRITICAL/HIGH, белые/чёрные списки эндпоинтов.
  • Локальная работа, on‑prem: без облачных зависимостей и внешних DAST‑сервисов.

Единый эвристический движок

  • SmartAnalyzer + EnhancedRules + SchemaConstraintAnalyzer — интеллектуальная фильтрация результатов
  • AttackSurfaceMapper + CorrelationEngine — анализ цепочек BOLA и consent-only
  • ConfidenceCalculator + BenchmarkComparator — расчет приоритетов и уверенности
  • Virtual threads в оркестрации: масштабируемый параллелизм без лишней памяти.
  • Умная дедупликация находок — чистые и понятные отчеты

Готовность к боевым интеграциям

  • CLI + CI/CD интеграции, HTML/PDF/JSON отчеты, диаграммы attack-surface
  • Virtual threads → быстрые прогоны в пайплайнах, контролируемые лимиты ресурсов.
  • SmartFuzzer + deep‑модули покрывают DAST‑кейсы без внешних сервисов.
  • Чистый Java 21, on‑prem friendly, без облачных зависимостей — важно для банков/госов.
  • Пороговые гейты: блокировка релиза при критичных BOLA/BFLA/Secret/TLS‑ошибках.
  • Артефакты: JSON для машинной интеграции + PDF/HTML для менеджеров в одном ранe.