Перейти к содержанию

Системные требования

Требования к аппаратному обеспечению

Вычислительные ресурсы

Параметр Минимальные требования Рекомендуемые значения
Архитектура процессора 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). Проверка:

docker compose version
# Ожидаемый вывод: Docker Compose version v2.24.x или выше

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. Убедитесь, что эти технологии не заблокированы корпоративным прокси или расширениями браузера.