# prompt-injection-defense

Скилл помогает защитить LLM-приложения от прямых и непрямых инъекций промптов. Пригодится при настройке RAG-пайплайнов и субагентов с доступом к вызову инструментов.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 372 установки · ★ 1177
- Автор: devops-skills
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/BagelHole/DevOps-Security-Agent-Skills/tree/HEAD/security/ai/prompt-injection-defense/SKILL.md
- Обновлён: 2026-05-22
- HTML: https://affpapa.org/nevibecode/skills/prompt-injection-defense

## Что делает

Скилл добавляет набор правил и готовых Python-функций для защиты LLM на разных этапах обработки запроса. Внутри заложена многоуровневая модель: разделение системных и пользовательских инструкций, нормализация входящего текста, изоляция документов в RAG и проверка аргументов для вызова инструментов по списку разрешений. Для выявления утечек контекста используется система канареечных токенов `CanaryTokenManager`.

В модуль очистки входят готовые регулярные выражения под типичные фразы джейлбрейков вроде `ignore previous instructions` или системных переопределений. Функция `sanitize_input` отсекает управляющие символы, убирает нулевые байты и очищает пробельные символы Unicode. Для документов RAG применяется оборачивание текста в явные границы с генерацией SHA-256 хеша.

Для запуска требуется Python 3.10+ со стандартными библиотеками `re`, `hashlib` и `json`. Ограничиваться одними регулярными выражениями опасно. Они не распознают нестандартные перефразирования без явных маркеров, поэтому разметку контекста и проверку схемы вывода нужно внедрять вместе.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add BagelHole/DevOps-Security-Agent-Skills --skill prompt-injection-defense -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/prompt-injection-defense/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/prompt-injection-defense/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add BagelHole/DevOps-Security-Agent-Skills --skill prompt-injection-defense -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/prompt-injection-defense/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add BagelHole/DevOps-Security-Agent-Skills --skill prompt-injection-defense -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/prompt-injection-defense/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install BagelHole/DevOps-Security-Agent-Skills prompt-injection-defense
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/prompt-injection-defense/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add BagelHole/DevOps-Security-Agent-Skills --skill prompt-injection-defense -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/BagelHole/DevOps-Security-Agent-Skills --path security/ai/prompt-injection-defense
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/prompt-injection-defense/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add BagelHole/DevOps-Security-Agent-Skills --skill prompt-injection-defense -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/BagelHole/DevOps-Security-Agent-Skills/tree/HEAD/security/ai/prompt-injection-defense/SKILL.md

## Когда брать
- блокировать попытки переопределения системных промптов через пользовательский ввод
- изолировать ненадёжные документы в RAG с помощью граничных маркеров и хешей
- проверять аргументы вызываемых инструментов по строгим спискам ограничений
- отслеживать утечки контекста через канареечные токены

## Примеры запросов агенту
- Проверь входящий текст на признаки prompt injection с помощью модуля detect_injection
- Оберни найденные документы через sanitize_retrieved_context перед отправкой в модель
- Настрой проверку аргументов для вызова инструмента search через validate_tool_call

## Похожие
- [prompt-injection](https://affpapa.org/nevibecode/skills/prompt-injection.md) — скилл · 372 установки
- [ai-system-testing](https://affpapa.org/nevibecode/skills/ai-system-testing.md) — скилл · 1100 установок
- [skill-security-auditor](https://affpapa.org/nevibecode/skills/skill-security-auditor.md) — скилл · 785 установок
- [cmdi-command-injection](https://affpapa.org/nevibecode/skills/cmdi-command-injection.md) — скилл · 3700 установок
- [safety-scan](https://affpapa.org/nevibecode/skills/safety-scan.md) — скилл · 743 установки
- [tavily-best-practices](https://affpapa.org/nevibecode/skills/tavily-best-practices.md) — скилл · 20700 установок

Из того же набора: [bagelhole/devops-security-agent-skills](https://affpapa.org/nevibecode/by/bagelhole/devops-security-agent-skills.md) — 129 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
