Deno представили open-source файрвол для агентов (Claw Patrol)
BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Это Claw Patrol, open source межсетевой экран, созданный командой Dino, который находится между
00:00:04вашими ИИ-агентами и интернетом. Он решает три ключевые проблемы безопасности ИИ-агентов.
00:00:09Доступ — это не реальный контроль: агент не должен видеть секреты, а вы не можете видеть, что именно
00:00:14сделал ваш агент. Я пробовал много инструментов для безопасности ИИ-агентов в последнее время,
00:00:19и мне очень нравится подход Claw Patrol, но он еще не идеален. Итак, как работает Claw Patrol: у вас есть
00:00:28один сервер, называемый шлюзом (gateway), где хранятся правила, учетные данные, логи и
00:00:32панель управления Claw Patrol, а затем у вас есть любое количество машин, на которых работают агенты,
00:00:36они могут подключиться к этому шлюзу и направлять через него агентский трафик. На самом деле, вы
00:00:40можете запускать отдельные команды через шлюз или добавить всю машину целиком. В моем случае шлюз — это просто сервер
00:00:45Ubuntu, к которому я подключаюсь через Tailscale (который Claw Patrol поддерживает «из коробки»),
00:00:50а также WireGuard, или оба сразу. Мои агенты — это мой Mac и сервер OpenClaw. Я запускаю шлюз OpenClaw
00:00:55через Claw Patrol, а на Mac я просто использую команду single run с Clawd, когда мне нужно.
00:01:00Имея этот контекст, давайте рассмотрим три ключевые проблемы, которые решает Claw Patrol, и я
00:01:04начну со второй: агенты не должны видеть секреты, так как это логично подводит к остальным
00:01:09проблемам. На шлюзе Claw Patrol вы можете настроить учетные данные, такие как пользователи Postgres,
00:01:14подписки Clawd, учетные записи GitHub и любые bearer-токены или пользовательские заголовки, как у меня здесь для моего
00:01:19продакшн API-сервера. Благодаря этому, когда мы запускаем агентов через шлюз с помощью команды Claw Patrol
00:01:25run, им не нужны эти учетные данные для выполнения запросов. Они будут просто
00:01:30автоматически добавлены в запрос при прохождении через шлюз. Так что если я попрошу Claw использовать мой API и мой
00:01:35базу данных, чтобы получить обзор обоих, он сможет сделать это без проблем. Я могу видеть в
00:01:41командах, которые он выполняет, что он не включает API-ключи в эти curl-запросы,
00:01:46хотя ключ необходим. А для Postgres он использует поддельный пароль X, который точно не является
00:01:51настоящим паролем, но он все равно подключается и получает нужную информацию, так как шлюз
00:01:56перехватил эти запросы и прикрепил настоящие учетные данные. Это означает, что агент никогда не
00:02:00имеет доступа к реальным значениям. Если кто-то увидит логи моего агента или попытается использовать prompt injection,
00:02:06он никогда не получит эти учетные данные, так как они находятся на полностью отдельном сервере, и у агента
00:02:10нет способа получить к ним доступ. Чтобы еще нагляднее показать процесс вставки, если я запущу этот curl-запрос в
00:02:15своем терминале, вы увидите, что запрос отклонен, потому что я не передал API-ключ. Но если я запущу
00:02:20ту же самую команду через claw patrol run, данные вернутся как обычно, так как API-ключ был добавлен.
00:02:26Следующая проблема, которую пытается решить claw patrol — это то, что доступ не равен контролю действий. Claw patrol дает
00:02:31вам очень тонкий контроль над тем, что агент может делать с запросом. Например, если я снова использую
00:02:36навык Postgres, но на этот раз попрошу его удалить таблицу и создать новую, когда команда запустится, она немедленно
00:02:41вернет настроенное мной сообщение об ошибке: что изменения схемы возможны только через миграции
00:02:46в PR, а не через агента. Шлюз проанализировал Postgres-запрос, который сделал мой агент,
00:02:51и сверил его с набором правил, которые я определил. Благодаря одному из моих правил он отклонил
00:02:56запрос на удаление таблицы. Еще один способ справиться с этим — «человек в контуре» (human in the loop): я могу
00:03:00сделать так, чтобы это правило обращалось ко мне за подтверждением действия. На данный момент поддерживается только
00:03:04Slack, но скоро появятся и другие варианты. Есть даже опция использования LLM в качестве судьи,
00:03:09и правила невероятно настраиваемы и гибкие. Вы можете задать правила, например, проверять
00:03:13конечную точку API вашей службы поддержки, которая отправляет ответы, и видеть, есть ли там оскорбительный
00:03:18контент, отсутствуют ли приветствия или есть что-то еще, чего вы не хотите допустить в запросе. И опять же,
00:03:22все это выполняется для запроса на шлюзе, что теоретически защищает от
00:03:27prompt injection и практически всех других видов атак на ИИ. Третья проблема, которую решает claw patrol
00:03:31— это то, что вы не видите, что сделал агент. С claw patrol каждый запрос виден в
00:03:37панели управления, вы можете видеть активные сессии, а также использованные токены. А если нажать
00:03:42на запрос, вы увидите важные детали, такие как выполненная команда postgres,
00:03:46или, в случае API-вызова, запрос и полученный ответ.
00:03:51Таким образом, вам не нужно тратить время на просмотр всех логов отдельных сервисов,
00:03:55к которым обращался агент, пытаясь понять, что он сделал. Вместо этого вы можете просто увидеть, что он сделал
00:03:59в момент запроса, так что вы увидите практически все, что делает агент.
00:04:03Это три проблемы, которые пытается решить claw patrol, но как все это настроить? Что ж,
00:04:07после установки claw patrol шлюз настраивается с помощью одного файла HCL.
00:04:12В нем вы определяете различные конечные точки, для которых у вас будут правила и учетные данные,
00:04:16такие как OpenAI, Slack, SSH, Postgres и так далее. Если запрос проходит
00:04:22через шлюз и совпадает с одной из них, он знает, что нужно проверить правила и учетные данные.
00:04:26Что касается самих учетных данных, их настройка также довольно проста.
00:04:30Вы указываете тип учетных данных и конечную точку, которой они должны соответствовать.
00:04:34Поддерживается множество типов данных, таких как подписки Anthropic, Codex,
00:04:39ClickHouse, Postgres, а также базовые вещи, такие как bearer-токены и пользовательские заголовки,
00:04:43так что вы найдете почти все нужные вам типы,
00:04:46и даже если чего-то нет, вы можете написать плагины, чтобы добавить свой тип.
00:04:50После того как вы определили учетные данные здесь, все, что нужно сделать — это перейти в панель управления, чтобы ввести
00:04:54фактическое значение. Настройка правил также довольно проста.
00:04:56Вы просто указываете конечную точку, к которой применяется правило, и пишете правило
00:05:00используя Common Expression Language (CEL), так что это может охватывать широкий спектр вещей, таких как HTTP,
00:05:05Postgres, Kubernetes и так далее. После этого вы указываете вердикт для правила, которое
00:05:09только что определили: одобрить или отклонить. Вы используете “approve”, если создаете
00:05:14белый список вместо черного (то есть блокировать все по умолчанию и только потом
00:05:18разрешать некоторые вещи). В моем случае я просто использовал метод черного списка.
00:05:22Наконец, еще одна очень полезная функция — это профили. Вы можете группировать учетные данные
00:05:26в несколько профилей, что означает, что любые правила и конечные точки, привязанные к ним,
00:05:31также группируются вместе. Это позволяет вам настроить контроль на основе ролей для ваших
00:05:35агентов и команд: разработчики могут иметь определенный доступ к учетным данным и правилам,
00:05:40а, возможно, другая команда, например служба поддержки, имеет другие учетные данные и другие правила.
00:05:45Чтобы помочь вам при внесении изменений в правила, есть команда тестирования, где вы можете
00:05:49скачать действия правил из панели управления, а затем запустить их снова против ваших локальных изменений, чтобы увидеть, не
00:05:54изменился ли результат, чтобы обнаружить случайные утечки.
00:05:59Должен признаться, процесс настройки показался мне немного утомительным, и я уверен, что он будет
00:06:02улучшен, так как это ранняя стадия проекта. Но если бы был простой способ добавлять
00:06:07учетные данные и правила из панели управления, это было бы просто потрясающе. Возможно, что-то похожее на
00:06:11работу AdGuard, где вы видите входящий запрос и просто нажимаете, чтобы добавить правило или
00:06:15учетные данные для этого запроса. У меня также возникло много проблем при попытке добавить конечные точки,
00:06:19которые были просто IP-адресами моего локального сервера Proxmox. По какой-то причине он просто не хотел
00:06:24перехватывать эти запросы, и я не видел их на панели управления, что вызывало
00:06:28головную боль. Так что определенно нужны исправления, или, может быть, я просто использовал его неправильно,
00:06:33но в любом случае, потребуется работа, чтобы довести удобство использования до уровня, который не мешает
00:06:38вашему рабочему процессу. Хотя это логично, ведь речь идет о безопасности, а не о запуске агента
00:06:43в режиме “YOLO”. Дайте знать в комментариях, что вы думаете о Claw Patrol, и есть ли у вас
00:06:47инструменты безопасности, которые вы используете для своих агентов. Не забудьте подписаться, и
00:06:51как всегда, увидимся в следующем видео.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video