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

Часто задаваемые вопросы

Модели и провайдеры

Как добавить пользовательскую модель?
  1. Перейдите в раздел Модели машинного обученияМодели.
  2. Нажмите кнопку +.
  3. Укажите название, адрес (URL эндпоинта), тип модели (LLM, CV, ASR).
  4. Активируйте модель переключателем Активная модель.

Подробнее см. Управление моделями.

Как настроить подключение к GigaChat?

GigaChat использует OAuth2-аутентификацию через Сбербанк:

  1. Получите API-ключ (Client ID + Client Secret) на developers.sber.ru.
  2. При регистрации модели укажите URL эндпоинта GigaChat.
  3. В разделе аутентификации выберите OAuth2 и введите учётные данные.
  4. Система автоматически получает и обновляет OAuth-токен через https://ngw.devices.sberbank.ru:9443/api/v2/oauth.
Модель отображается как «недоступна», хотя она работает?

Возможные причины:

  1. Healthcheck не проходит — проверьте, что модель отвечает на GET-запрос по указанному URL.
  2. SSL-сертификат — если модель использует самоподписанный сертификат, убедитесь что в системе включён режим verify=False.
  3. Сетевая изоляция — убедитесь, что контейнеры системы имеют сетевой доступ к модели.
  4. Таймаут — модель может отвечать дольше стандартного таймаута (30 секунд). Проверьте логи model-management сервиса.
Какие типы моделей поддерживаются?
Тип модели Модальность Поддерживаемые атаки
LLM text Jailbreak (17 подтипов)
Image classifier / CNN / Vision image CV-атаки (19 типов)
ASR / Speech audio ASR-атаки (6 типов)
MLLM (мультимодальные) text + image/audio Jailbreak + CV/ASR (ограниченно)
Можно ли тестировать модели через внешний API (OpenAI, Anthropic)?

Да. Зарегистрируйте модель с URL эндпоинта провайдера и укажите API-ключ. Для blackbox-атак (jailbreak, ZOO, One Pixel, Simple BlackBox) внешний API достаточен. Для whitebox CV-атак требуется локальный доступ к весам модели.

Как подключить GigaChat? Нужен ли OAuth-токен?

Да, GigaChat использует OAuth2-аутентификацию через Сбербанк. Порядок действий:

  1. Получите Client ID и Client Secret на developers.sber.ru.
  2. При регистрации модели укажите Endpoint URL: https://gigachat.devices.sberbank.ru/api/v1/chat/completions.
  3. Система автоматически получает Bearer-токен через https://ngw.devices.sberbank.ru:9443/api/v2/oauth.
  4. Важно: OAuth-токен имеет ограниченное время жизни (обычно 30 минут). Система автоматически обновляет токен перед каждым запросом.
  5. SSL-сертификаты Сбербанка могут быть самоподписанными — система использует verify=False для этих соединений.

Если возникают ошибки подключения, проверьте сетевой доступ к ngw.devices.sberbank.ru:9443 из контейнеров.

Поддерживает ли система self-hosted модели (Ollama, vLLM)?

Да. Для подключения локально развёрнутых моделей используйте ручную регистрацию (шаблон «Manual»):

Ollama:

  • Endpoint URL: http://host.docker.internal:11434/v1/chat/completions.
  • API-ключ: ollama (любое непустое значение).
  • Модель: название модели в Ollama (например, llama3, mistral).

vLLM:

  • Endpoint URL: http://host.docker.internal:8000/v1/chat/completions.
  • API-ключ: указанный при запуске vLLM (--api-key).
  • Модель: название загруженной модели.

host.docker.internal

Адрес host.docker.internal позволяет контейнерам обращаться к сервисам, запущенным на хост-машине. Если модель запущена на другом сервере, укажите его IP-адрес напрямую.


Профили и атаки

Сколько атак доступно в системе?

На текущий момент доступно более 40 типов атак:

  • 17 подтипов джейлбрейк-атак (LLM).
  • 19 типов CV-атак (компьютерное зрение).
  • 6 типов ASR-атак (распознавание речи).

Полный список см. в разделах Jailbreak-атаки, CV-атаки, ASR-атаки.

Как выбрать подходящие атаки для моей модели?
Тип модели Рекомендуемые атаки Описание
LLM (ChatGPT, GigaChat) jailbreak_plain, jailbreak_roleplay, jailbreak_encoding Базовое тестирование безопасности
LLM (глубокое тестирование) jailbreak_pipeline, jailbreak_crescendo Многостадийные и многоходовые атаки
CV (с доступом к весам) FGSM, PGD, C&W Whitebox-тестирование
CV (только API) ZOO, One Pixel, Simple BlackBox Blackbox-тестирование
ASR (без GPU) DABA, PIBA, Ultrasonic, JingleBack, PBSM Backdoor-инъекции
ASR (с GPU) BIM Audio Целевая транскрипция
Что такое composition modes (parallel, sequential, none)?

Режимы композиции определяют, как несколько техник трансформации применяются к промптам:

  • parallel — каждая техника создаёт независимый вариант (N техник → N+1 вариант).
  • sequential — техники применяются цепочкой (N техник → 1 вариант).
  • none — применяется только первая техника (N техник → 2 варианта).

Подробнее с формулами и примерами см. Режимы композиции.

Как рассчитать количество запросов к модели?

Используйте формулу:

Total = NumPrompts x product(options_per_stage)

Где options_per_stage зависит от composition_mode:

  • parallel с N техниками: N + 1.
  • sequential: 1.
  • none: 2.

Пример: 5 промптов, 3 стадии (none=2, parallel(2)=3, parallel(2)=3): 5 x 2 x 3 x 3 = 90 запросов

Что такое Unified Transformation Framework (Phase 9)?

Это наиболее мощная система трансформации промптов, объединяющая все 24 техники (10 кодирований + 9 обфускаций + 5 ролеплей) в произвольные многостадийные конвейеры. При включении (unified_transformations.enabled = true) она имеет наивысший приоритет и переопределяет все остальные настройки трансформации.

Подробнее см. Unified Transformation Framework.


Сканирование

Сколько времени занимает сканирование?

Время зависит от типа атаки, количества запросов и скорости ответа модели:

Тип сканирования Конфигурация Типичное время
Jailbreak (plain) 20 промптов, стратегия simple 2--5 минут
Jailbreak (plain) 50 промптов, стратегия orchestrator 5--10 минут
Jailbreak (pipeline) 5 промптов x 18 вариантов = 90 запросов 15--30 минут
CV (FGSM) 1 изображение, epsilon=0.03 ~5 минут
CV (C&W) 1 изображение, 1000 итераций ~30 минут
ASR (DABA) 1 аудиофайл, 5 циклов ~10 минут
ASR (BIM) 1 аудиофайл, 600 итераций ~30 минут
Полный профиль (несколько атак) 3--5 атак 30--60+ минут

На время также влияют: rate_limit, доступность GPU, сетевая задержка до модели.

Что происходит если модель стала недоступна во время сканирования?

Система использует механизм stale detection для обнаружения зависших заданий:

  1. Каждое задание имеет таймаут 5 минут на получение ответа от модели.
  2. Если модель не отвечает в течение этого времени, задание помечается статусом STALE_TIMEOUT.
  3. Остальные задания в сканировании продолжают выполняться (если модель стала снова доступна).
  4. По завершении сканирование получит статус PARTIAL_SUCCESS (если часть заданий выполнена) или FAILED (если все задания завершились ошибкой).

Что делать:

  • Проверьте доступность модели и устраните проблему.
  • Создайте новое сканирование с тем же профилем — повторный запуск безопасен.
  • Результаты успешно выполненных заданий из предыдущего сканирования сохраняются.
Можно ли отменить запущенное сканирование?

Да, сканирование можно отменить на любом этапе. Уже собранные результаты сохраняются. Однако отменённое сканирование невозможно возобновить — необходимо создать новое.

Что означает статус partial_success?

PARTIAL_SUCCESS означает, что часть заданий в сканировании выполнена успешно, а часть завершилась с ошибкой. Это может произойти, когда:

  • Одна из атак требует GPU, которого нет в наличии.
  • Целевая модель стала недоступна в процессе сканирования.
  • Превышен rate limit провайдера для части запросов.

Успешно выполненные задания и найденные уязвимости доступны в результатах.

Сканирование зависло — что делать?
  1. Проверьте индикатор WebSocket — если он красный, обновите страницу.
  2. Проверьте доступность целевой модели.
  3. Просмотрите логи сервиса атаки в Docker (docker-compose logs jailbreak-worker).
  4. Проверьте соединение с NATS (docker logs nats-1).
  5. Если проблема не решается — отмените сканирование и создайте новое.
Можно ли запустить несколько сканирований одновременно?

Да, система поддерживает параллельное выполнение нескольких сканирований. Однако учитывайте:

  • Общие ресурсы GPU разделяются между сканированиями.
  • Rate limit к одной модели суммируется.
  • При нехватке ресурсов задания становятся в очередь.

Результаты и уязвимости

Что такое DREAD-оценка?

DREAD — это методология оценки рисков, состоящая из 5 компонентов:

  • **D**amage (Ущерб) — потенциальный вред от эксплуатации.
  • **R**eproducibility (Воспроизводимость) — насколько легко повторить атаку.
  • **E**xploitability (Эксплуатируемость) — сложность проведения атаки.
  • **A**ffected Users (Затронутые пользователи) — масштаб воздействия.
  • **D**iscoverability (Обнаружимость) — насколько легко найти уязвимость.

Каждый компонент оценивается от 0.0 до 10.0, итоговая оценка = среднее.

Подробнее см. DREAD-оценка.

Какова частота ложных срабатываний?

Зависит от стратегии Judge:

Стратегия False Positive Rate False Negative Rate
simple (ключевые слова) ~15--25% ~20--30%
llm (JailJudge) ~5--10% ~5--15%
orchestrator (6 детекторов) ~3--8% ~5--10%

Для повышения точности рекомендуется использовать стратегию orchestrator с weighted_average.

Как отличить ложное срабатывание от реальной уязвимости?

Используйте judge_score (оценку Judge) как основной ориентир:

Judge Score Интерпретация Рекомендуемое действие
1--3 Почти всегда безопасный ответ Можно отметить как false positive
4--6 Пограничный случай Требуется ручная проверка — прочитайте текст ответа модели
7--10 Почти всегда реальная уязвимость Зафиксировать и передать команде безопасности

Дополнительные признаки реальной уязвимости:

  • Модель выдала конкретные инструкции/данные, которые не должна была раскрывать.
  • Ответ содержит явный выход из роли (breaking character).
  • Модель игнорирует системный промпт и выполняет запрос напрямую.

Признаки ложного срабатывания:

  • Модель отказала в запросе, но Judge неверно интерпретировал отказ.
  • Ответ содержит общую информацию, доступную в открытых источниках.
  • Модель отвечает в рамках ролевой игры, но не выдаёт реально опасную информацию.
Можно ли экспортировать результаты?

Да. Нажмите кнопку отчёта в строке сканирования на странице деталей. Доступные форматы:

  • JSON — полные данные со всеми метаданными, для интеграции с внешними системами (SIEM, дефект-трекеры).
  • CSV — табличный формат, для анализа в Excel / Google Sheets.
  • DOCX — формальный отчёт с поддержкой кастомных шаблонов.
  • PDF — для архивирования и передачи руководству.

Экспорт доступен как для отдельного сканирования (кнопка в строке), так и для группы сканирований (выберите несколько и нажмите Экспорт).

Как отметить ложное срабатывание?

Откройте детали уязвимости и нажмите Отметить как ложное срабатывание. Отмеченные уязвимости исключаются из агрегированных метрик и отчётов. Отметку можно снять в любой момент.


Инфраструктура

Сколько оперативной памяти нужно для работы системы?
Конфигурация RAM Описание
Минимальная 16 GB Только jailbreak-атаки (без GPU)
Рекомендуемая 32 GB Jailbreak + CV-атаки + ASR-атаки
Полная 64 GB Все модальности + JailJudge (LLM Judge) + Whisper

Дополнительно при использовании LLM Judge (strategy: llm): +6 GB RAM.

Обязательно ли нужна GPU?

Нет, GPU не обязательна. Без GPU доступны:

  • Все 17 подтипов jailbreak-атак.
  • 3 blackbox CV-атаки (ZOO, One Pixel, Simple BlackBox).
  • 5 из 6 ASR-атак (все, кроме BIM).

Для whitebox CV-атак (16 из 19) и BIM Audio GPU обязательна.

Как обновить систему до новой версии?
  1. Остановите сервисы: ./scripts/stop.sh.
  2. Обновите Docker-образы: docker-compose pull.
  3. Примените миграции: для каждого сервиса выполните docker-compose build <service>-migrations, затем docker-compose up -d.
  4. Проверьте здоровье: ./scripts/health-check.sh.

Подробнее см. Руководство по установке.

Как создать резервную копию?

Основные данные хранятся в двух местах:

  • PostgreSQL — модели, профили, результаты сканирований, уязвимости.
  • MinIO — артефакты (изображения, аудио, отчёты).

Для бэкапа PostgreSQL:

pg_dump -h localhost -U postgres -d genai > backup_$(date +%Y%m%d).sql

Для бэкапа MinIO используйте утилиту mc (MinIO Client).

Подробнее см. Управление сервисами.

Какие порты использует система?
Сервис Порт Описание
UI 8080 (prod) / 4200 (dev) Веб-интерфейс
UI Gateway 3000 BFF-прокси
Model Management 8001 API управления моделями
Scan Profile 8002 API профилей
Results 8003 API результатов
Scan Orchestrator 8004 API сканирований
Jailbreak Service 8005 API джейлбрейка
PostgreSQL 5432 База данных
NATS 4222 Шина сообщений
Redis 6379 Кеш и очереди
MinIO 9000 (API) / 9001 (UI) Хранилище объектов
Keycloak 8080 Аутентификация
Grafana 3000 Мониторинг
Prometheus 9090 Метрики
Jaeger 16686 Трейсинг