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

Jailbreak Service

Сервис jailbreak-атак на Large Language Models (LLM). Тестирует модели на устойчивость к попыткам обхода системных инструкций через 19 техник атак.

Назначение

Принимает задание атаки из NATS, генерирует adversarial-промпты, отправляет запросы к LLM, оценивает ответ через систему Judge и сохраняет результаты.

Компоненты

Чарт разворачивает 5 отдельных Deployment:

Компонент K8s Service Роль resourcesPreset
api jailbreak-api:8000 REST API + init-миграции + seed micro
preparator подготовка задач из NATS small
attacker выполнение атак на LLM small
judge оценка ответов модели small
reporter формирование отчётов в MinIO micro

Зависимости

Входящие

Сервис Протокол Назначение
orchestrator NATS публикует задания атак
ui-gateway HTTP обращается к jailbreak-api

Исходящие

Сервис Назначение
postgres БД промптов и результатов (схема jailbreak_service)
redis (DB 0) очереди задач
nats подписка на ATTACKS, публикация в RESULTS
minio сохранение отчётов (бакет jailbreak-reports)
LLM API внешние модели (OpenAI, Anthropic и др.)

Values

Параметр По умолчанию Обязателен Описание
image.name да registry.appsec.global/appsecgenai-release/jailbreak
image.tag да Версия образа
imagePullSecrets[0].name да imagePullSecret
secretEnv.DATABASE_URL да PostgreSQL connection string
secretEnv.S3_ACCESS_KEY да MinIO root user
secretEnv.S3_SECRET_KEY да MinIO root password
env.S3_BUCKET "jailbreak-reports" нет Бакет для отчётов
env.AUTH_ENABLED нет
env.OTEL_SDK_DISABLED нет "true" если нет otel-collector
global.url.redisUrl {svc: redis, port: 6379, scheme: redis, path: /0} нет
global.url.natsUrl {svc: nats, port: 4222, scheme: nats} нет
global.url.s3Endpoint {svc: minio, port: 9000, scheme: none} нет scheme: none = host:port без схемы
components.<name>.enabled true нет Включить/выключить компонент
components.<name>.replicaCount 1 нет Количество реплик
components.<name>.resourcesPreset см. таблицу нет Пресет ресурсов

S3 endpoint: scheme: none

jailbreak использует boto3/aiobotocore, который принимает endpoint в формате host:port без схемы. Схема задаётся отдельно через env.S3_SECURE: "true" (при HTTPS MinIO).

Пример values.yaml

# values-jailbreak.yaml
image:
  name: registry.appsec.global/appsecgenai-release/jailbreak
  tag: "<VERSION>"

imagePullSecrets:
  - name: harbor-cr

secretEnv:
  DATABASE_URL: "postgresql+asyncpg://genai_admin:<password>@postgres:5432/genai_db"
  S3_ACCESS_KEY: "<minio-root-user>"
  S3_SECRET_KEY: "<minio-root-password>"

env:
  ENVIRONMENT: "production"
  AUTH_ENABLED: "true"
  OTEL_SDK_DISABLED: "true"
  S3_BUCKET: "jailbreak-reports"
  # S3_SECURE: "true"    # раскомментировать при MinIO по HTTPS

global:
  url:
    redisUrl:   { svc: redis, port: 6379, scheme: redis, path: /0 }
    natsUrl:    { svc: nats,  port: 4222, scheme: nats }
    s3Endpoint: { svc: minio, port: 9000, scheme: none }

# Масштабирование компонентов (опционально)
# components:
#   attacker:
#     replicaCount: 2
#     resourcesPreset: "medium"

Установка

helm upgrade --install jailbreak \
  oci://registry.appsec.global/appsecgenai-release/charts/jailbreak \
  --version <VERSION> -n genai \
  --wait \
  -f values-jailbreak.yaml

Init-контейнеры при первом старте api-компонента: 1. migrate — Alembic миграции схемы jailbreak_service 2. seed — загрузка библиотеки jailbreak-промптов