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-промптов