Документация ПО VAHREST
Описание функциональных характеристик и информация, необходимая для установки и эксплуатации программного обеспечения.
1Общие сведения
| Наименование | VAHREST — платформа автоматизированного тестирования безопасности API |
| Версия | 1.0 |
| Правообладатель | ИП Аганова Виктория Асатуровна (ИНН 236502087988, ОГРНИП 322237500121672) |
| Класс ПО | Средство анализа защищённости |
| Модель распространения | SaaS и On-premise |
| Адрес сайта | https://vahrest.ru |
VAHREST предназначен для автоматизированного обнаружения уязвимостей в API, оценки соответствия требованиям информационной безопасности и формирования отчётов для регуляторного аудита.
2Описание функциональных характеристик программного обеспечения
Данный раздел содержит полное описание функциональных характеристик программного обеспечения VAHREST в соответствии с требованиями п. 4 «ж» Правил формирования и ведения единого реестра российских программ для электронных вычислительных машин и баз данных.
2.1Назначение
VAHREST — платформа автоматизированного тестирования безопасности API, объединяющая 35 инструментов безопасности в единую систему с централизованным управлением, оркестрацией и унифицированной моделью результатов. Платформа предназначена для:
- Автоматизированного обнаружения уязвимостей в REST API, GraphQL, WebSocket, gRPC
- Проверки соответствия требованиям информационной безопасности (152-ФЗ, 187-ФЗ КИИ, ГОСТ 57580, PCI DSS)
- Комплексного анализа защищённости: DAST, SAST, SCA, фаззинг, сетевое сканирование
- Формирования регуляторных отчётов для аудита и сертификации
- Интеграции в CI/CD для непрерывного контроля безопасности
2.2Оркестрация сканирования
Двухуровневый движок сканирования обеспечивает параллельный запуск инструментов с межинструментным обменом данными. Сканирование проходит через последовательные фазы, внутри каждой фазы инструменты работают параллельно:
| Фаза 1: RECON | Разведка: обнаружение эндпоинтов, технологий, OpenAPI-спецификаций (Katana, Kiterunner, ffuf) |
| Фаза 2: SAST/SCA | Статический анализ кода и проверка зависимостей (Semgrep, Trivy, Gitleaks, Checkov) |
| Фаза 3: ACTIVE_SCAN | Активное сканирование: DAST, фаззинг, проверка аутентификации (ZAP, Nuclei, SQLMap и др.) |
| Фаза 4: VERIFY | Верификация найденных уязвимостей, генерация PoC-запросов |
| Фаза 5: ENRICH | Обогащение: CVSS-скоринг, CWE-маппинг, OWASP-классификация, рекомендации по устранению |
Пул из 10 воркеров (настраивается) обрабатывает очередь из 1500 задач с retry-механизмом (до 2 повторов, экспоненциальная задержка). Таймаут на плагин — 30 секунд. Результаты всех инструментов нормализуются в Unified Finding Model.
2.3Инструменты безопасности
Платформа интегрирует 35 инструментов безопасности в 8 категориях. Инструменты запускаются через CLI, Docker-контейнеры, API или как встроенные Go-модули:
| Категория | Инструменты | Тип запуска |
|---|---|---|
| DAST (6) | OWASP ZAP, Burp Suite Pro, Wapiti, Nuclei, Nikto, SQLMap | Docker / CLI / API |
| API Security (6) | Schemathesis, Spectral, RESTler, nexus-auth-tester, nexus-ratelimit-tester, nexus-api-inventory | CLI / Go / Docker |
| Recon (3) | Katana, Kiterunner, ffuf | CLI |
| SAST/SCA (4) | Semgrep, Trivy, Gitleaks, Checkov | CLI |
| Network/WAF (4) | testssl.sh, Nmap, OpenVAS, GoTestWAF | CLI / API / Docker |
| Compliance РФ (8) | БДУ ФСТЭК, ScanOVAL, XSpider, MaxPatrol VM, RedCheck, Сканер-ВС, nexus-152fz-audit, nexus-kii-audit | Go / API |
| Red Team (3) | Metasploit, Sliver C2, Cobalt Strike | API / Docker |
| IaC/TLS (1) | testssl.sh | CLI |
Дополнительно: 17 встроенных плагинов обеспечивают 100% покрытие OWASP API Security Top 10 (2023).
2.4Профили сканирования
6 предустановленных профилей позволяют выбрать баланс между скоростью и глубиной проверки:
| Профиль | Инструментов | Время |
|---|---|---|
| express | 3 | ~5 минут |
| standard | 16 | ~30 минут |
| full_security | 25 | 1-3 часа |
| before_release | 6 (SAST/SCA) | ~5 минут |
| pci_dss | 9 | ~1 час |
| compliance_ru | 10 | 1-2 часа |
Профиль express подходит для быстрой проверки в CI/CD, full_security — для полного аудита перед релизом, compliance_ru — для проверки соответствия российским стандартам.
2.5Unified Finding Model
Все результаты инструментов нормализуются в единую модель, что обеспечивает консистентное представление уязвимостей независимо от источника:
| Title | Название уязвимости |
| Description | Подробное описание |
| Severity | Критичность: Critical (CVSS >= 9.0), High (>= 7.0), Medium (>= 4.0), Low (>= 0.1), Info (0) |
| CWE | Идентификатор Common Weakness Enumeration |
| OWASP | Категория OWASP API Security Top 10 (2023) |
| CVSS | Числовой скоринг по Common Vulnerability Scoring System |
| Evidence | Доказательство: запрос, ответ, payload |
| Remediation | Рекомендации по устранению с примерами кода |
| SourceTool | Инструмент-источник (ZAP, Nuclei, Semgrep и др.) |
| PocCurl | PoC-запрос для воспроизведения (curl-формат) |
Дедупликация осуществляется по SHA256-хешу от комбинации category + url + title + cwe. Если несколько инструментов обнаружили одну и ту же уязвимость, она отображается один раз с указанием всех источников.
2.6Соответствие стандартам
Встроенные модули проверки соответствия российским и международным стандартам:
| 152-ФЗ | Федеральный закон о персональных данных. Автоматизированный аудит nexus-152fz-audit |
| 187-ФЗ / КИИ | Закон о критической информационной инфраструктуре. Проверка по приказам ФСТЭК №235/№239 (nexus-kii-audit) |
| ГОСТ Р 57580.1-2017 | Безопасность финансовых операций. Автоматизированная оценка соответствия |
| PCI DSS v4.0 | Стандарт безопасности платёжных карт. Профиль сканирования pci_dss |
| ISO 27001:2022 | Международный стандарт управления информационной безопасностью |
Инструменты с сертификатами ФСТЭК: XSpider (серт. №3247), RedCheck (серт. №3172), ScanOVAL, БДУ ФСТЭК.
2.7Управление доступом (RBAC)
Ролевая модель доступа с 5 базовыми ролями:
| Owner | Полный доступ к организации, управление подпиской и биллингом, удаление организации |
| Admin | Управление участниками, проектами, настройками организации, SSO-конфигурацией |
| Security Engineer | Создание и запуск сканирований, управление проектами, просмотр всех результатов |
| Developer | Просмотр результатов, запуск экспресс-сканирований на своих проектах |
| Viewer | Только просмотр результатов и отчётов (read-only) |
2.8Аутентификация
- JWT-токены (httpOnly cookies): access (24ч), refresh (7 дней), partial (15 мин для 2FA)
- Двухфакторная аутентификация (2FA): TOTP (Google Authenticator, Authy), Email-код, SMS-код, резервные коды
- SSO/SAML 2.0 и OpenID Connect (OIDC) для корпоративной интеграции
- OAuth 2.0: Google, GitHub, Yandex
- Верификация email и телефона при регистрации
- Сброс пароля через email с одноразовой ссылкой
2.9Мультитенантность
Полная изоляция данных между организациями реализована на уровне базы данных:
- PostgreSQL Row Level Security (RLS) по org_id — каждая организация видит только свои данные
- MinIO bucket prefixes — изоляция файлового хранилища (отчёты, артефакты сканирований)
- Все storage-методы принимают orgID (UUID) — изоляция на уровне API
- Отдельные API-ключи для каждой организации с scope-ограничениями
2.10AI-рекомендации
- Автоматическая генерация рекомендаций по устранению уязвимостей с примерами кода
- AI Triage — приоритизация уязвимостей по контексту приложения
- False Positive Analysis — снижение ложных срабатываний
- Мультипровайдерная LLM-архитектура — выбор на уровне конфигурации
2.11Отчётность
Генерация отчётов в форматах:
| Полный отчёт с графиками, рекомендациями и executive summary. Подходит для руководства и регуляторов | |
| SARIF | Static Analysis Results Interchange Format. Интеграция с GitHub Code Scanning, VS Code, Azure DevOps |
| CSV | Табличный формат для импорта в Excel, Google Sheets, SIEM-системы |
| JSON | Машиночитаемый формат для автоматизации и интеграции с внешними системами |
Дополнительно: SBOM (Software Bill of Materials) в форматах CycloneDX и SPDX, compliance-отчёты с маппингом на конкретные пункты стандартов (152-ФЗ, PCI DSS, ГОСТ 57580).
2.12Архитектура и стек
Архитектура платформы:
Web UI (Next.js)
|
v
REST API + JWT Auth (Go / Chi)
|
v
Scan Orchestrator (фазы RECON -> SAST -> ACTIVE_SCAN -> VERIFY -> ENRICH)
|
v
Tool Containers (Docker / CLI / API)
|
v
Unified Finding Model
|
v
PostgreSQL 16 + MinIO (хранение)Технологический стек:
| Backend | Go 1.24, Chi v5, GORM, pgx |
| Frontend | Next.js 14, React 18, TypeScript 5.4, Tailwind CSS, Zustand |
| База данных | PostgreSQL 16 (uuid-ossp, pg_trgm, RLS) |
| Кэширование | Redis 7 |
| Хранилище файлов | MinIO (S3-compatible) |
| Контейнеризация | Docker, Docker Compose, Kubernetes + Helm |
| Reverse proxy | Nginx |
| Мониторинг | Prometheus, Grafana, Loki |
| Инфраструктура | Yandex Cloud (ru-central1), Terraform |
3Информация, необходимая для установки программного обеспечения
Данный раздел содержит информацию, необходимую для установки программного обеспечения VAHREST. Платформа доступна в двух вариантах: SaaS (облачная) и On-Premise (локальная установка).
3.1SaaS-версия
Облачная версия доступна по адресу app.vahrest.ru. Установка дополнительного ПО не требуется.
- 1Перейдите на app.vahrest.ru/register и заполните форму регистрации
- 2Подтвердите email по ссылке из письма
- 3Настройте двухфакторную аутентификацию (TOTP, Email или SMS) для защиты аккаунта
- 4Создайте первый проект, указав URL целевого API
- 5Запустите сканирование, выбрав подходящий профиль
Поддерживаемые браузеры:
| Google Chrome | 90 и выше |
| Mozilla Firefox | 90 и выше |
| Apple Safari | 15 и выше |
| Microsoft Edge | 90 и выше |
3.2On-Premise: Docker Compose
Пошаговая инструкция установки через Docker Compose:
- 1Убедитесь, что установлены Docker 24+ и Docker Compose 2.20+:
docker --version # Docker version 24.0+ docker compose version # Docker Compose version v2.20+ - 2Получите дистрибутив и перейдите в директорию проекта:
cd vahrest/ - 3Скопируйте и заполните файл конфигурации:
cp .env.example .env # Отредактируйте .env: укажите JWT_SECRET, DATABASE_URL и другие параметры - 4Запустите платформу:
docker compose up -d --build - 5Проверьте работоспособность:
# Проверка статуса контейнеров docker compose ps # Проверка health-эндпоинта (дождитесь start_period ~120 сек) curl -s http://localhost:8080/health # Ожидаемый ответ: {"status":"ok"}
Миграции базы данных применяются автоматически при первом запуске. Для HTTPS настройте Nginx с сертификатом Let's Encrypt или используйте корпоративный сертификат.
3.3On-Premise: Kubernetes
Установка через Helm-чарт для Kubernetes 1.27+:
# Добавить репозиторий
helm repo add vahrest https://charts.vahrest.ru
helm repo update
# Установить с параметрами
helm upgrade --install vahrest vahrest/vahrest \
--namespace vahrest --create-namespace \
--set global.domain=vahrest.example.com \
--set postgresql.auth.password=YOUR_DB_PASSWORD \
--set config.jwtSecret=YOUR_JWT_SECRET \
--set config.domain=vahrest.example.com
# Проверить статус
kubectl get pods -n vahrest3.4Системные требования
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| CPU | 4 vCPU | 8+ vCPU |
| RAM | 8 ГБ | 16+ ГБ |
| Диск | 50 ГБ SSD | 200+ ГБ SSD |
| Docker | 24.0+ | 25.0+ |
| Docker Compose | 2.20+ | 2.24+ |
| Kubernetes (опц.) | 1.27+ | 1.29+ |
| PostgreSQL | 15 | 16 |
| Redis | 7.0 | 7.2 |
Поддерживаемые операционные системы:
| Ubuntu | 22.04 LTS, 24.04 LTS |
| Astra Linux | 1.7 и выше (SE, CE) |
| РЕД ОС | 7.3 и выше |
| CentOS Stream | 9 |
| Debian | 12 и выше |
3.5Переменные окружения
Основные переменные окружения файла .env:
| Переменная | Описание | Пример |
|---|---|---|
| DATABASE_URL | Строка подключения к PostgreSQL | postgres://user:pass@localhost:5432/vahrest?sslmode=disable |
| REDIS_URL | Строка подключения к Redis | redis://localhost:6379/0 |
| MINIO_ENDPOINT | Адрес MinIO для хранения отчётов | localhost:9000 |
| JWT_SECRET | Секрет для подписи JWT-токенов (мин. 32 символа) | your-secure-secret-at-least-32-chars |
| DOMAIN | Домен приложения | vahrest.example.com |
| SCAN_HTTP_PROXY | HTTP-прокси для инструментов сканирования | http://proxy:8080 |
| TWO_FACTOR_ENCRYPTION_KEY | Ключ шифрования 2FA-секретов (64 hex) | 0123456789abcdef... |
| SMTP_HOST | SMTP-сервер для отправки email | smtp.example.com |
3.6Управление секретами
Для production-окружения рекомендуется использовать HashiCorp Vault для управления секретами вместо хранения их в .env файлах:
- JWT_SECRET, TWO_FACTOR_ENCRYPTION_KEY, IDENTITY_ENCRYPTION_KEY — критические секреты, обязательно через Vault
- OAuth-credentials (Google, GitHub, Yandex) — рекомендуется через Vault
- DATABASE_URL, REDIS_URL — могут быть в .env при наличии сетевой изоляции
- Ротация JWT_SECRET — поддерживается без прерывания сервиса
4Информация, необходимая для эксплуатации программного обеспечения
Данный раздел содержит информацию, необходимую для эксплуатации программного обеспечения VAHREST: порядок работы с платформой, запуск сканирований, анализ результатов, управление командой и интеграция через REST API.
4.1Быстрый старт
- 1Вход в систему — перейдите на app.vahrest.ru/login и авторизуйтесь с помощью email/пароля или SSO
- 2Создание проекта — нажмите «Новый проект», укажите название и URL целевого API (например,
https://api.example.com) - 3Запуск сканирования — выберите профиль
expressдля быстрой проверки (~5 мин) илиstandardдля базового аудита (~30 мин) - 4Мониторинг — статус сканирования отображается в реальном времени: прогресс, текущая фаза, найденные уязвимости
- 5Результаты — просмотрите дашборд с risk score, список уязвимостей с рекомендациями, скачайте отчёт в PDF
4.2Запуск через веб-интерфейс
Веб-интерфейс предоставляет пошаговый мастер создания сканирования (Scan Wizard) из 4 шагов:
- 1Выбор проекта и целевого URL
- 2Выбор профиля сканирования (express, standard, full_security и др.)
- 3Настройка параметров: OpenAPI-спецификация, аутентификация API, прокси
- 4Подтверждение и запуск
Планировщик позволяет настроить регулярные сканирования по расписанию (ежедневно, еженедельно, ежемесячно) с автоматическими уведомлениями о результатах через Telegram, Slack, Email или Webhook.
4.3Запуск через REST API
Запуск сканирования через REST API с использованием API-ключа организации:
# Создание сканирования через API
curl -X POST https://app.vahrest.ru/api/v1/scans \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "PROJECT_UUID",
"preset": "standard",
"target_url": "https://api.example.com"
}'
# Проверка статуса сканирования
curl -s https://app.vahrest.ru/api/v1/scans/SCAN_ID \
-H "Authorization: Bearer YOUR_API_KEY"
# Получение результатов (уязвимости)
curl -s https://app.vahrest.ru/api/v1/scans/SCAN_ID/vulnerabilities \
-H "Authorization: Bearer YOUR_API_KEY"
# Скачивание отчёта в PDF
curl -s https://app.vahrest.ru/api/v1/scans/SCAN_ID/report?format=pdf \
-H "Authorization: Bearer YOUR_API_KEY" \
-o report.pdf4.4Запуск через CI/CD
Пример интеграции с GitHub Actions:
# .github/workflows/security-scan.yml
name: VAHREST Security Scan
on:
push:
branches: [main]
pull_request:
jobs:
security-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run VAHREST Scan
env:
VAHREST_API_KEY: ${{ secrets.VAHREST_API_KEY }}
VAHREST_PROJECT_ID: ${{ secrets.VAHREST_PROJECT_ID }}
run: |
# Запуск сканирования
SCAN_ID=$(curl -s -X POST https://app.vahrest.ru/api/v1/scans \
-H "Authorization: Bearer $VAHREST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"project_id":"'$VAHREST_PROJECT_ID'","preset":"express"}' \
| jq -r '.id')
# Ожидание завершения
while true; do
STATUS=$(curl -s https://app.vahrest.ru/api/v1/scans/$SCAN_ID \
-H "Authorization: Bearer $VAHREST_API_KEY" | jq -r '.status')
[ "$STATUS" = "DONE" ] || [ "$STATUS" = "FAILED" ] && break
sleep 30
done
# Скачивание JSON-отчёта
curl -s https://app.vahrest.ru/api/v1/scans/$SCAN_ID/report?format=json \
-H "Authorization: Bearer $VAHREST_API_KEY" -o results.json4.5Результаты сканирования
После завершения сканирования доступны:
- Дашборд — Risk Score (0-99), распределение уязвимостей по критичности (Critical/High/Medium/Low/Info), графики трендов по сканированиям
- Список уязвимостей — фильтрация по severity, CWE, OWASP-категории, инструменту-источнику. Сортировка по CVSS-скорингу
- Карточка уязвимости — подробное описание, evidence (запрос/ответ), CWE/OWASP-маппинг, рекомендации по устранению, PoC-запрос (curl), AI-рекомендации
- Compliance-отчёт — маппинг уязвимостей на пункты стандартов (152-ФЗ, PCI DSS, ГОСТ 57580), процент соответствия, чек-лист
- API-топология — интерактивный граф обнаруженных эндпоинтов с визуализацией связей
4.6Экспорт отчётов
| Полный отчёт для руководства и регуляторов: executive summary, рекомендации, графики | |
| SARIF | Интеграция с GitHub Code Scanning, VS Code, Azure DevOps |
| CSV | Импорт в Excel, Google Sheets, SIEM-системы |
| JSON | Машиночитаемый формат для автоматизации и внешних интеграций |
Экспорт доступен через веб-интерфейс (кнопка «Скачать отчёт») и через REST API (GET /api/v1/scans/{id}/report?format=pdf|sarif|csv|json).
4.7Управление командой
- Приглашения — отправка приглашений по email с выбором роли (Admin, Security Engineer, Developer, Viewer)
- Роли и разрешения — гранулярная ролевая модель RBAC, назначение ролей на уровне организации
- SSO/SAML — настройка корпоративного SSO для автоматического добавления сотрудников
- Аудит-лог — полная история действий: входы, сканирования, изменения настроек, экспорт в CSV/JSON
- API-ключи — создание и управление ключами организации с scope-ограничениями для CI/CD-интеграций
4.8REST API эндпоинты
Основные эндпоинты REST API (базовый URL: https://app.vahrest.ru/api/v1):
| Метод | Эндпоинт | Описание |
|---|---|---|
| GET | /projects | Список проектов организации |
| POST | /projects | Создание нового проекта |
| POST | /scans | Запуск нового сканирования |
| GET | /scans/{id} | Статус и детали сканирования |
| GET | /scans/{id}/vulnerabilities | Список найденных уязвимостей |
| GET | /scans/{id}/report?format=pdf | Скачивание отчёта (pdf, sarif, csv, json) |
| GET | /scans/{id}/compliance | Compliance-отчёт сканирования |
| GET | /findings | Список уязвимостей с фильтрацией |
| GET | /audit | Аудит-лог организации |
| POST | /api-keys | Создание API-ключа |
Rate limiting: 1000 запросов/день на API-ключ. Аутентификация: Authorization: Bearer API_KEY. Полная документация API доступна по адресу app.vahrest.ru/api/docs.
4.9Поддержка и SLA
Техническая поддержка:
| support@vahrest.ru | |
| Телефон | +7 (981) 940-18-88 |
| Сайт | vahrest.ru |
SLA по времени реагирования:
| Critical | Реагирование в течение 4 часов |
| High | Реагирование в течение 8 часов |
| Medium | Реагирование в течение 24 часов |
| Low | Реагирование в течение 72 часов |
Обновления выпускаются регулярно и включают исправления и новую функциональность. SaaS-пользователи получают обновления автоматически. Для On-premise:
# Обновление On-Premise (Docker Compose)
docker compose pull
docker compose up -d --build
# Обновление On-Premise (Kubernetes)
helm repo update
helm upgrade vahrest vahrest/vahrest -n vahrest