Исследование

Инструменты защиты ИИ-агентов: практический справочник с примерами подключения

Короткий практический каталог инструментов защиты ИИ-агентов: открытый код или коммерческие, облако или свой контур, от каких атак защищают и как встраиваются.

Инструменты защиты ИИ-агентов: практический справочник с примерами подключения

Инструменты защиты ИИ-агентов: практический справочник с примерами подключения

Ниже - рабочий список инструментов для защиты ИИ-агентов и приложений на больших языковых моделях. Для каждого указано: лицензия, способ развертывания, от каких атак защищает и как выглядит минимальное подключение.

Важно: один инструмент обычно не закрывает все сразу. Инъекции в промпт, контроль поведения агента и маскировка данных - это разные слои защиты.


Быстрый выбор

  • Lakera Guard - коммерческий инструмент, облачный API, внешний фильтр входа и выхода.
  • NeMo Guardrails - открытый код, в своем контуре, управление сценарием агента, вызовами инструментов и ограничениями диалога.
  • Presidio - открытый код, в своем контуре, поиск и анонимизация персональных данных.
  • Rebuff - открытый код, в своем контуре, защита от инъекций в промпт, но проект имеет архивный статус archived и помечен как prototype.
  • Guardrails AI - открытый код, в своем контуре, конструктор проверок для входа и выхода модели.
  • MOLL Y/X - коммерческий инструмент: браузерное расширение и API для маскировки данных перед отправкой во внешний ИИ.

Lakera Guard

  • Лицензия: коммерческий продукт
  • Развертывание: облачный API
  • Что это: внешний ИИ-брандмауэр, фильтр входа и выхода
  • Защищает от: инъекций в промпт, джейлбрейк-запросов, утечек данных, вредных ссылок, нарушений политик
  • Когда брать: если нужен отдельный слой проверки перед вызовом модели без переписывания всего приложения

Как подключается

Пользовательский ввод сначала проходит через Lakera Guard. Если запрос безопасен, он уходит в модель. При необходимости тем же способом можно проверять и ответ модели перед возвратом пользователю.

Пример подключения (схема, псевдокод)

screened = lakera.scan(user_input)
if screened.blocked:
    return "Запрос заблокирован политикой безопасности"

answer = llm.invoke(user_input)
screened_answer = lakera.scan(answer)

if screened_answer.blocked:
    return "Ответ скрыт политикой безопасности"

return answer

Граница применения

Lakera Guard хорошо решает слой фильтрации, но не описывает за вас сценарии работы агента, разрешенные действия и бизнес-логику.


NVIDIA NeMo Guardrails

  • Лицензия: открытый код
  • Развертывание: в своем контуре
  • Что это: Python-фреймворк для управления поведением агента через rails и Colang
  • Защищает от: выхода агента за сценарий, небезопасных вызовов инструментов, отклонений в диалоге и поиске по базе знаний
  • Когда брать: если агент не просто отвечает, а ходит в инструменты, память, поиск и должен работать по строго заданным правилам

Как подключается

Вы описываете rails в конфиге и Colang, затем все сообщения пропускаете через LLMRails, а не отправляете напрямую в модель.

Пример подключения

from nemoguardrails import RailsConfig, LLMRails

config = RailsConfig.from_path("./config")
rails = LLMRails(config)

result = rails.generate(
    messages=[{"role": "user", "content": user_input}]
)

Граница применения

NeMo Guardrails требует отдельного проектирования сценариев и тестов. Если rails не описаны, фреймворк не угадает нужную политику сам.


Microsoft Presidio

  • Лицензия: открытый код
  • Развертывание: в своем контуре
  • Что это: библиотека для поиска и анонимизации персональных данных
  • Защищает от: утечки ПДн, случайной отправки чувствительных данных во внешний ИИ, нарушений требований по приватности
  • Когда брать: если нужно очищать текст, формы, документы и изображения до передачи в облачные модели или внешние сервисы

Как подключается

Обычно сначала запускается AnalyzerEngine, затем найденные сущности анонимизируются через AnonymizerEngine. После этого в модель уходит уже обезличенный текст.

Пример подключения

from presidio_analyzer import AnalyzerEngine
from presidio_anonymizer import AnonymizerEngine

analyzer = AnalyzerEngine()
anonymizer = AnonymizerEngine()

entities = analyzer.analyze(text=text, language="en")
safe_text = anonymizer.anonymize(
    text=text,
    analyzer_results=entities,
)

Граница применения

Presidio решает слой данных, а не слой поведения агента. Для русского контура обычно приходится отдельно настраивать распознаватели, словари и правила.


Rebuff

  • Лицензия: открытый код
  • Развертывание: в своем контуре
  • Что это: библиотека и прототип для защиты от инъекций в промпт
  • Защищает от: скрытых инструкций, утечки системного промпта, части джейлбрейк-сценариев
  • Когда брать: если нужен исследовательский слой или стартовая точка для собственного детектора атак

Как подключается

Входной текст проверяется до передачи в модель. Если детектор находит признаки инъекции, запрос блокируется или переводится в безопасный режим.

Пример подключения (схема, псевдокод)

from rebuff import Rebuff

detector = Rebuff()
check = detector.detect_injection(user_input)

if check.injection_detected:
    return "Подозрительный запрос заблокирован"

return llm.invoke(user_input)

Граница применения

Rebuff нельзя честно подавать как основной стандарт для продакшна: репозиторий имеет архивный статус archived, а сам проект помечен как prototype.


Guardrails AI

  • Лицензия: открытый код
  • Развертывание: в своем контуре
  • Что это: фреймворк для сборки проверок на входе и выходе модели
  • Защищает от: ПДн во входе и выходе, токсичного контента, невалидного формата ответа, части инъекций в промпт и нарушений политик вывода
  • Когда брать: если нужна не одна проверка, а набор валидаторов под разные маршруты и сценарии

Как подключается

Создается Guard, в него добавляются нужные валидаторы из Hub, после чего через него прогоняется входной запрос, ответ модели или оба потока сразу.

Пример подключения (схема, псевдокод)

from guardrails import Guard

guard = Guard().use_many(
    DetectPII(),
    DetectPromptInjection(),
    CompetitorCheck(),
)

validated = guard.validate(user_input_or_output)

Граница применения

Guardrails AI - это каркас, а не готовая политика безопасности. Качество зависит от набора валидаторов, порядка их применения и ваших проверок на реальных данных.


MOLL Y/X

  • Лицензия: коммерческий продукт
  • Развертывание: браузерное расширение и API в контуре компании
  • Что это: локальная маскировка данных перед отправкой во внешний ИИ или любой другой сервис
  • Защищает от: утечки ПДн, передачи чувствительных данных за пределы контура, нарушений 152-ФЗ, случайной отправки секретов в публичные ИИ-сервисы
  • Когда брать: если сотрудники уже работают в веб-интерфейсах ИИ или если компании нужен собственный API-слой маскировки

Как подключается

У MOLL Y/X два сценария:

  1. Браузерное расширение для Chrome, которое маскирует данные прямо перед отправкой в ChatGPT, Claude и другие сервисы.
  2. API в контуре компании: сначала текст или документ проходит через MOLL Y/X, затем уже обезличенный запрос уходит во внешний ИИ.

Пример подключения

import requests

safe = requests.post(
    "http://localhost:8080/v1/anonymize/text",
    json={"text": prompt},
).json()

llm_answer = llm.invoke(safe["text"])

final = requests.post(
    "http://localhost:8080/v1/deanonymize/text",
    json={"text": llm_answer, "map": safe["map"]},
).json()

Точки интеграции

  • GET /health
  • POST /v1/anonymize/text
  • POST /v1/anonymize/document
  • POST /v1/deanonymize/text

Что важно на практике

MOLL Y/X распознает 100+ типов сущностей, работает с текстом, документами и изображениями и подходит сразу для двух задач: защиты сотрудников в браузере и защиты корпоративных интеграций через API.

Граница применения

MOLL Y/X решает прежде всего слой маскировки и обезличивания. Если агент сам принимает решения, использует инструменты и читает потенциально враждебный контент, его правильно комбинировать с фильтрацией входа и ограничениями поведения.


Что ставить в реальном проекте

  • Если нужен внешний фильтр входа и выхода - берите Lakera Guard.
  • Если нужен контроль сценария, поведения и вызовов инструментов - смотрите на NeMo Guardrails или Guardrails AI.
  • Если нужно не выпускать ПДн и чувствительные данные наружу - ставьте Presidio или MOLL Y/X.
  • Если сотрудники уже работают в ChatGPT и Claude из браузера - самый прямой вариант это MOLL Y/X для Chrome.
  • Если нужен локальный API-слой перед внешним ИИ - смотрите на MOLL Y/X.
  • Если нужен исследовательский пример защиты от инъекций в промпт - можно посмотреть Rebuff, но с поправкой на его статус archived.

Предыдущая статья

Три кейса, когда ИИ чуть не стоил бизнесу миллионов

Похожие статьи