Prompt injection — это user-input, который перезаписывает или обходит системный промпт. Три класса: direct ("забудь инструкции, сделай X"), indirect (вредонос в RAG-документе/URL), jailbreak (роле-плей обход политик). Защита в 3 слоя: pre-filter (regex+embedding), post-filter (LLM-judge на ответ), monitoring (логи + heartbeat + аномалии).
Ниже: подробности, пример, смежные термины, FAQ.
Бесплатный онлайн-инструмент — сканер безопасности сайта: результат мгновенно, без регистрации.
# Простой pre-filter на Python
import re
BLOCKED = [
r'ignore (?:previous|prior|all) (?:instructions|prompts)',
r'system\s*prompt',
r'<\|im_start\|>',
r'\bDAN\b', # 'Do Anything Now' jailbreak
r'jailbreak',
]
def is_suspicious(text: str) -> bool:
t = text.lower()
return any(re.search(p, t) for p in BLOCKED)
# В продакшене: log_to_enterno_heartbeat('blocked' if is_suspicious(input) else 'ok')
# Алерт: > 10 blocked/мин за последние 5 мин → notify SlackДля эффективного обнаружения prompt injection в LLM-приложении необходимо проводить регулярные тесты на уязвимости, анализируя входные данные, используемые для генерации ответов. Используйте специальные инструменты, такие как OWASP ZAP, для автоматизации тестирования. Также важно внедрить журналирование и мониторинг запросов для выявления подозрительных паттернов в пользовательских вводах.
Обнаружение prompt injection в LLM-приложениях требует системного подхода и применения различных методов. Вот несколько ключевых стратегий:
Bandit или ESLint, для выявления уязвимостей в коде вашего приложения.Burp Suite, для перехвата и анализа HTTP-запросов. Это позволит вам увидеть, какие данные отправляются на сервер и как система на них реагирует.Для примера, рассмотрим настройку OWASP ZAP для автоматического тестирования на prompt injection в вашем LLM-приложении.
OWASP ZAP с официального сайта.localhost:8080.Также стоит рассмотреть возможность интеграции мониторинга запросов в ваше приложение. Например, добавьте следующий код в вашу обработку запросов:
app.use((req, res, next) => { console.log(req.body); next(); });Это позволит вам отслеживать все входящие запросы и выявлять подозрительные паттерны, которые могут указывать на попытки prompt injection.
Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.
Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.
Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.
Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.
Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.
аудит HTTP-заголовков
проверка конфигурации
CSP и HSTS настройка
соответствие стандартам
Strict-Transport-Security.Server: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.DENY или SAMEORIGIN.nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.Server, X-Powered-By, X-AspNet-Version из ответов.История security-проверок и мониторинг HTTP-заголовков безопасности.
Зарегистрироваться (FREE)Атакующий заменит "ignore" на "I-G-N-O-R-E" или переведёт на другой язык. Regex ловит низковисящий фрукт, embedding-фильтр + LLM-judge закрывают остальное.
Один embeddings-вызов ≈ 50-100 мс. Кешируйте по хешу input для повторных запросов. Для high-RPS — pre-compute embeddings корпуса jailbreaks офлайн.
Не отвечать содержимым → вернуть generic-сообщение → инкрементировать heartbeat-counter «blocked» → лог IP/user_id для последующего ban-флоу при повторах.
Бесплатный тариф — 20 мониторов, проверки раз в 5 минут, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.