Системные требования¶
Требования к аппаратному обеспечению¶
Вычислительные ресурсы¶
| Параметр | Минимальные требования | Рекомендуемые значения |
|---|---|---|
| Архитектура процессора | x86_64 (AMD64) | x86_64 (AMD64) |
| Количество ядер CPU | 16 ядер | 24+ ядер |
| Оперативная память (RAM) | 32 ГБ | 64 ГБ |
| Дисковое пространство | 100 ГБ SSD | 500 ГБ NVMe SSD |
| Сетевой интерфейс | 1 Гбит/с | 10 Гбит/с |
Ограничения при 32 ГБ RAM
При наличии 32 ГБ оперативной памяти одновременный запуск атак типов CV whitebox (загрузка моделей VGG19/ResNet50 в память) и ASR whitebox (загрузка моделей Whisper) может приводить к ситуации OOMKilled у воркеров. Рекомендуется планировать запуск ресурсоёмких атак последовательно либо увеличить объём RAM до 64 ГБ.
GPU (опционально)¶
Графический ускоритель необходим для выполнения следующих типов атак:
- CV whitebox-атаки — FGSM, PGD, C&W, DeepFool и другие атаки, требующие доступа к весам модели.
- ASR BIM-атаки — состязательные атаки на модели распознавания речи.
| Параметр | Требование |
|---|---|
| Производитель | NVIDIA |
| Драйвер NVIDIA | версия 525.x и выше |
| NVIDIA Container Toolkit | версия 1.14 и выше |
| Видеопамять (VRAM) | 8 ГБ и более (рекомендуется 16 ГБ) |
Без GPU
Если GPU не установлен, все blackbox-атаки (Jailbreak, ASR blackbox, CV blackbox) будут работать корректно. Whitebox-атаки будут выполняться на CPU, но значительно медленнее.
Требования к программному обеспечению¶
Docker Engine¶
Требуется Docker Engine версии 24.0 и выше (рекомендуется 25.0+).
# Удаление старых версий
sudo apt-get remove -y docker docker-engine docker.io containerd runc 2>/dev/null || true
# Установка зависимостей
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
# Добавление GPG-ключа Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Добавление репозитория
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Установка Docker
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
# Запуск и автозагрузка
sudo systemctl enable --now docker
# Проверка
docker --version
# Удаление старых версий
sudo dnf remove -y docker docker-client docker-client-latest \
docker-common docker-latest docker-latest-logrotate \
docker-logrotate docker-engine podman runc 2>/dev/null || true
# Добавление репозитория
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo \
https://download.docker.com/linux/rhel/docker-ce.repo
# Установка Docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
# Запуск и автозагрузка
sudo systemctl enable --now docker
# Проверка
docker --version
Docker Compose v2¶
Требуется Docker Compose v2.20 и выше (рекомендуется v2.24+).
Только Docker Compose v2
Платформа AppSec.GenAI использует функции, доступные только в Docker Compose v2:
service_healthy— ожидание прохождения healthcheck перед стартом зависимого сервиса.service_completed_successfully— ожидание успешного завершения one-shot контейнера (миграции, seed).profiles— профили для опциональных сервисов (E2E-тесты).
Старый docker-compose v1 (отдельный бинарник, устанавливаемый через pip) не поддерживается.
Docker Compose v2 устанавливается как плагин Docker Engine (пакет docker-compose-plugin). Проверка:
NVIDIA Container Toolkit (опционально)¶
Если на сервере установлен GPU NVIDIA и требуется выполнение whitebox-атак:
# Добавление репозитория NVIDIA
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
# Конфигурация Docker runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# Проверка
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi
# Добавление репозитория NVIDIA
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
sudo dnf install -y nvidia-container-toolkit
# Конфигурация Docker runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# Проверка
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi
Сетевые порты¶
Полный перечень портов¶
В таблице ниже приведены все порты, используемые платформой. Столбец Внешний указывает, требуется ли доступ к порту извне Docker-сети.
| Порт | Сервис | Протокол | Описание | Внешний |
|---|---|---|---|---|
| 8080 | UI (Angular) | HTTP | Веб-интерфейс платформы | Да |
| 3000 | UI Gateway (NestJS) | HTTP/WS | API Gateway (BFF), WebSocket | Да |
| 8001 | Model Management | HTTP | API управления моделями | Нет |
| 8002 | Scan Profile | HTTP | API профилей сканирования | Нет |
| 8003 | Results | HTTP | API результатов | Нет |
| 8004 | Scan Orchestrator | HTTP | API оркестратора сканирования | Нет |
| 8005 | Jailbreak Service | HTTP | API Jailbreak-сервиса | Нет |
| 8008 | CV Adversarial | HTTP | API CV-атак | Нет |
| 8025 | ASR Adversarial | HTTP | API ASR-атак | Нет |
| 8006 | Auth Service | HTTP | API аутентификации | Нет |
| 8009 | License Service | HTTP | API лицензирования | Нет |
| 8180 | Keycloak | HTTP | Сервер аутентификации (консоль) | Нет |
| 5432 | PostgreSQL | TCP | База данных | Нет |
| 6379 | Redis | TCP | Кеш и очереди | Нет |
| 4222 | NATS Node 1 | TCP | Клиентские подключения | Нет |
| 4223 | NATS Node 2 | TCP | Клиентские подключения | Нет |
| 4224 | NATS Node 3 | TCP | Клиентские подключения | Нет |
| 8222 | NATS Node 1 | HTTP | Мониторинг | Нет |
| 8223 | NATS Node 2 | HTTP | Мониторинг | Нет |
| 8224 | NATS Node 3 | HTTP | Мониторинг | Нет |
| 6222 | NATS Node 1 | TCP | Внутрикластерный обмен | Нет |
| 6223 | NATS Node 2 | TCP | Внутрикластерный обмен | Нет |
| 6224 | NATS Node 3 | TCP | Внутрикластерный обмен | Нет |
| 9000 | MinIO | HTTP | S3-совместимый API | Нет |
| 9001 | MinIO Console | HTTP | Веб-консоль MinIO | Нет |
Рекомендации по firewall¶
Рекомендация
Для боевой эксплуатации рекомендуется открыть для внешнего доступа только два порта:
- 8080 — веб-интерфейс (UI).
- 3000 — API Gateway (для WebSocket-подключений из браузера).
Все остальные порты должны быть доступны только внутри Docker-сети appsec-genai (172.28.0.0/16).
Пример настройки iptables:
# Разрешить доступ к UI и API Gateway
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
# Заблокировать прямой доступ к внутренним сервисам
sudo iptables -A INPUT -p tcp --dport 5432 -j DROP # PostgreSQL
sudo iptables -A INPUT -p tcp --dport 6379 -j DROP # Redis
sudo iptables -A INPUT -p tcp --dport 9000 -j DROP # MinIO API
sudo iptables -A INPUT -p tcp --dport 9001 -j DROP # MinIO Console
sudo iptables -A INPUT -p tcp --dport 8180 -j DROP # Keycloak
Поддерживаемые браузеры¶
Для работы с веб-интерфейсом платформы поддерживаются следующие браузеры:
| Браузер | Минимальная версия |
|---|---|
| Google Chrome | 120+ |
| Mozilla Firefox | 120+ |
| Яндекс Браузер | 24+ |
JavaScript и WebSocket
Веб-интерфейс требует поддержки JavaScript (ES2022+) и WebSocket. Убедитесь, что эти технологии не заблокированы корпоративным прокси или расширениями браузера.