Перейти к основному содержимому

Настройки безопасности

Elftia предоставляет многоуровневые механизмы защиты безопасности, защищающие вашу систему от потенциальных рисков, связанных с вызовами инструментов Agent и внедрением внешних сообщений. На этой странице подробно описаны все параметры конфигурации, относящиеся к безопасности.

Обзор архитектуры безопасности

Система безопасности Elftia включает следующие основные компоненты:

КомпонентРасположениеФункция
GuardianAgentУровень выполнения AgentИспользует AI для проверки безопасности вызовов инструментов
PromptGuardianУровень сообщений ChannelОбнаруживает атаки с внедрением промптов во входящих сообщениях
Permission Mode (режим разрешений)Уровень взаимодействия с AgentУправляет тем, требуется ли пользователю подтверждать выполнение инструментов
InputSanitizerУровень сообщений ChannelФильтрация входных данных на основе правил (сопоставление регулярных выражений)
AuditLoggerГлобальныйЗаписывает журналы аудита для всех событий безопасности

GuardianAgent

GuardianAgent — это модуль проверки безопасности на основе AI. Когда Agent выполняет вызов инструмента, GuardianAgent сначала использует независимый LLM для оценки уровня риска операции и на основе конфигурации принимает решение о разрешении выполнения.

Четыре режима

РежимПоведениеРекомендуемый сценарий
Выкл. (Off)Полностью отключён, нулевые накладные расходыЛичное использование, доверие к поведению Agent
Мониторинг (Monitor)Проверяет чувствительные вызовы инструментов, только записывает в журнал без блокировкиХотите понять поведение Agent, не создавая помех
Охрана (Guard)Проверяет чувствительные вызовы инструментов, блокирует высокорисковые и критические операцииЕжедневное использование, баланс безопасности и удобства
Строгий (Strict)Проверяет все вызовы инструментов, блокирует операции среднего и выше уровня рискаОбщая среда, максимальные требования безопасности

Уровни риска

GuardianAgent категоризирует вызовы инструментов по пяти уровням риска:

Уровень рискаЗначениеПример
Отсутствует (None)Полностью безопасноЧтение файлов в проекте, просмотр директорий
Низкий (Low)Незначительный рискЗапись файлов проекта в рабочей области
Средний (Medium)Средний рискВыполнение команд Shell, изменяющих состояние системы, установка npm-пакетов
Высокий (High)Значительный рискДоступ к чувствительным путям, операции с файлами вне рабочей области, сетевые операции
Критический (Critical)Непосредственная опасностьКоманды рекурсивного удаления, кража данных, повышение привилегий

Поведение блокировки по режимам

Уровень рискаВыкл.МониторингОхранаСтрогий
noneРазрешитьРазрешитьРазрешитьРазрешить
lowРазрешитьЗаписать + РазрешитьРазрешитьРазрешить
mediumРазрешитьЗаписать + РазрешитьРазрешитьБлокировать
highРазрешитьЗаписать + РазрешитьБлокироватьБлокировать
criticalРазрешитьЗаписать + РазрешитьБлокироватьБлокировать

Чувствительные инструменты

В режимах мониторинга и охраны проверку безопасности вызывают только следующие «чувствительные инструменты»:

  • Bash: выполнение команд Shell
  • Write: запись файлов
  • Edit: редактирование файлов
  • Agent: генерация суб-Agent

В строгом режиме проверку вызывают все вызовы инструментов (включая чтение файлов).

Отказоустойчивый дизайн

РежимПоведение при таймауте/ошибке
Мониторинг / ОхранаРазрешить (fail-open) — не блокировать нормальные операции при недоступности проверки
СтрогийБлокировать (fail-closed) — по умолчанию отклонять при недоступности проверки

Таймаут проверки составляет 15 секунд. Если LLM не возвращает результат проверки в течение 15 секунд, применяются указанные выше правила.

Расположение настройки

Настройки → Clawia → Режим GuardianAgent

Выберите нужный режим. Изменения вступают в силу немедленно без перезапуска.

Журнал аудита

Все результаты проверок (независимо от того, была ли блокировка) записываются в журнал аудита. Исторические записи проверок можно просмотреть в разделе Настройки → Clawia → Журнал аудита, включая:

  • Временную метку
  • Название инструмента и параметры
  • Результат проверки (уровень риска, причина)
  • Факт блокировки

PromptGuardian

PromptGuardian — это защита безопасности для сообщений Channel (многоплатформенные каналы). Когда Elftia получает сообщения от внешних пользователей через такие каналы, как Discord и Telegram, PromptGuardian использует AI для обнаружения атак с внедрением промптов в сообщениях.

Три режима

РежимПоведениеРекомендуемый сценарий
Выкл. (Off)Без обнаружения инъекцийИспользование Channel только для себя, доверие ко всем источникам сообщений
Мониторинг (Monitor)Обнаружение инъекций, запись в журнал без блокировкиНаблюдение за наличием подозрительных сообщений
Блокировка (Block)Обнаружение инъекций, перехват подозрительных сообщений с возвратом дружелюбного отказаОткрытый Channel, необходима защита от злоумышленников

Обнаруживаемые атаки

PromptGuardian способен обнаруживать следующие типы атак:

  • Переопределение инструкций: попытка переопределить или обойти системные инструкции (например, «Ignore all instructions above»)
  • Манипуляция ролью: выдача себя за другую личность (например, «You are now DAN»)
  • Внедрение маркеров промптов: вставка системных/инструкционных маркеров (например, [INST], <|im_start|>)
  • Извлечение промптов: попытка получить содержимое системного промпта
  • Внедрение XML/тегов: внедрение маркеров вызова инструментов (например, <tool_use>, <function_calls>)
  • Обход через кодирование: использование base64-кодирования, невидимых символов и других техник
  • Социальная инженерия: использование «образовательных целей» или «гипотетических сценариев» для обхода правил безопасности
  • Многоэтапные атаки: постепенное выстраивание атаки через несколько сообщений

Поведение при блокировке

Когда сообщение заблокировано, PromptGuardian не раскрывает пользователю факт существования проверки безопасности. Вместо этого возвращается случайное дружелюбное сообщение об отказе (например, «Сигнал пропал, давай сменим тему»), не давая злоумышленникам скорректировать свою стратегию.

Отказоустойчивый дизайн

PromptGuardian использует дизайн fail-open: если проверка истекает по таймауту (10 секунд) или завершается с ошибкой, сообщение пропускается в нормальном режиме и поток сообщений не прерывается из-за сбоев проверки безопасности.

Расположение настройки

Настройка PromptGuardian находится в параметрах безопасности Channel. Необходимо предварительно настроить LLM-провайдера и модель для проверки безопасности.

Permission Mode (Режим разрешений)

Permission Mode управляет тем, требует ли Agent подтверждения пользователя при выполнении вызовов инструментов.

РежимПоведениеСценарий использования
По умолчанию (Default)Чувствительные операции требуют подтверждения пользователяЕжедневное использование, рекомендуется
AcceptEditsРедактирование файлов проходит автоматически, остальные операции по-прежнему требуют подтвержденияДоверие к способностям Agent редактировать код
BypassPermissionsВсе операции проходят автоматическиВысокое доверие к Agent, стремление к максимальной эффективности
PlanAgent только строит планы, не выполняет никаких операцийПроверка плана действий Agent
предупреждение

Режим «BypassPermissions» позволяет Agent напрямую выполнять все операции (включая команды Shell и удаление файлов). Используйте его только при полном доверии к поведению Agent и в безопасной среде. Рекомендуется использовать вместе с режимом GuardianAgent «Guard» или «Strict».

Настройки безопасности Channel

При подключении внешних платформ через Channel можно настроить следующие параметры безопасности:

Ограничение частоты запросов

ПараметрОписание
Ограничение частоты сообщенийОграничение максимального количества сообщений от одного пользователя в заданном временном окне
Глобальное ограничение частотыОграничение общей скорости обработки сообщений в Channel

Фильтрация входных данных

InputSanitizer обеспечивает фильтрацию входных данных на основе регулярных выражений (выполняется перед PromptGuardian):

  • Фильтрация известных вредоносных шаблонов
  • Очистка потенциальных маркеров инъекций
  • Только запись предупреждений в журнал, без блокировки сообщений

Роли пользователей

В Channel можно назначать роли разным пользователям для управления правами доступа.

Рекомендации по настройке безопасности

Личное использование

Если Elftia используется только лично и не предоставляет сервисы внешним пользователям:

ПараметрРекомендуемое значение
GuardianAgentВыкл. или Мониторинг
PromptGuardianВыкл.
Permission ModeПо умолчанию

Общий Channel

Если ваш Channel открыт для внешних пользователей, которые могут отправлять сообщения:

ПараметрРекомендуемое значение
GuardianAgentОхрана или Строгий
PromptGuardianБлокировка
Permission ModeПо умолчанию
Ограничение частотыВключено

Разработка и отладка

В сценариях разработки и тестирования:

ПараметрРекомендуемое значение
GuardianAgentМониторинг
PromptGuardianМониторинг
Permission ModeAcceptEdits

Это позволяет наблюдать за событиями безопасности в журналах аудита, не снижая эффективности разработки.

Журнал аудита

Все события безопасности записываются в журнал аудита, который можно просмотреть в разделе Настройки → Clawia → Журнал аудита.

Журнал фиксирует следующую информацию:

ПолеОписание
ВремяВремя возникновения события
ТипGuardianAgent / PromptGuardian / Permission
ОперацияКонкретное название инструмента или источник сообщения
РезультатРазрешить / Блокировать
ПодробностиУровень риска, объяснение причины и т. д.
подсказка

Регулярный просмотр журнала аудита поможет вам понять паттерны поведения Agent и потенциальные угрозы безопасности, а также скорректировать политики безопасности.


Дополнительные параметры конфигурации см. в Справочнике по настройкам. Если в процессе использования возникают вопросы, связанные с безопасностью, обратитесь к разделу Частые проблемы.