Deno acaba de liberar el código de su Firewall para Agentes (Claw Patrol)
BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Esto es Claw Patrol, un firewall de seguridad de código abierto creado por el equipo Dino que se sitúa entre
00:00:04tus agentes de IA e internet, y resuelve tres problemas de seguridad clave con los agentes de IA.
00:00:09El acceso no es control real, tu agente no debería ver secretos, y no puedes ver lo que hizo tu agente.
00:00:14He estado probando muchas herramientas de seguridad para agentes de IA recientemente, y realmente me gusta el enfoque
00:00:19que Claw Patrol ha tomado aquí, pero aún no es perfecto. Así es como funciona Claw Patrol: tienes
00:00:28un servidor llamado gateway, que contiene tus reglas, credenciales, registros y el panel de Claw Patrol,
00:00:32y luego tienes cualquier número de máquinas que ejecutan agentes, y pueden unirse
00:00:36a ese gateway y enrutar el tráfico de sus agentes a través de él. De hecho, puedes optar por ejecutar comandos individuales
00:00:40a través del gateway, o puedes añadir toda tu máquina. En mi caso, mi gateway es simplemente un servidor Ubuntu
00:00:45al que me conecto con Tailscale, que Claw Patrol admite de forma nativa, así como
00:00:50WireGuard o ambos, y mis agentes son mi Mac y mi servidor OpenClaw. Estoy ejecutando el gateway de OpenClaw
00:00:55a través de Claw Patrol, y en mi Mac solo uso el comando de ejecución única con Clawd según lo necesito.
00:01:00Con un poco de contexto, veamos los tres problemas clave que resuelve Claw Patrol, y
00:01:04empezaré por el número dos, que es que tus agentes no deberían ver secretos, ya que conecta bien con
00:01:09los otros problemas. En el gateway de Claw Patrol, puedes configurar tus credenciales como usuarios de Postgres,
00:01:14suscripciones de Clawd, cuentas de GitHub y cualquier token de portador o encabezados personalizados como los que tengo aquí para mi
00:01:19servidor API de producción. Con esto, cuando ejecutamos nuestros agentes a través del gateway usando ese comando de ejecución
00:01:25de Claw Patrol, no necesitan ninguna de estas credenciales para que las solicitudes funcionen realmente. Simplemente
00:01:30se inyectarán cuando esa solicitud pase por el gateway. Así que, si le pido a Claw que use mi API y mi
00:01:35base de datos para darme una visión general de ambos, es capaz de hacerlo sin problemas, y puedo ver en
00:01:41los comandos que realmente está ejecutando que no incluye ninguna clave API para estas solicitudes curl,
00:01:46pero necesita una, y en Postgres, solo está usando una contraseña falsa de X que definitivamente no es la contraseña real,
00:01:51pero sigue conectándose y obteniendo la información relevante, ya que el gateway
00:01:56ha captado estas solicitudes y ha adjuntado las credenciales reales. Esto significa que el agente nunca
00:02:00tiene acceso a los valores reales, así que si alguien viera los registros de mi agente o intentara una inyección de prompt,
00:02:06nunca obtendría estas credenciales, ya que viven en un servidor completamente separado, y el agente no tiene
00:02:10forma de acceder a ellas. Solo para mostrar ese proceso de inyección aún más limpio, si ejecuto esta solicitud curl en mi
00:02:15terminal aquí, puedes ver que es rechazada porque no le pasé una clave API, pero si ejecuto exactamente
00:02:20el mismo comando a través de claw patrol run, los datos se devuelven normalmente ya que esa clave API está siendo inyectada.
00:02:26El siguiente problema que intenta resolver claw patrol es que el acceso es un control de acción. Claw patrol te da
00:02:31un control realmente finito sobre lo que un agente puede hacer con una solicitud. Por ejemplo, si uso esa habilidad de Postgres
00:02:36de nuevo, pero esta vez le pido que elimine una tabla y cree una nueva, cuando se ejecuta, devuelve inmediatamente
00:02:41un mensaje de error personalizado que configuré diciendo que los cambios de esquema solo se realizan mediante PRs de migración,
00:02:46no mediante el agente. El gateway ha analizado la solicitud de Postgres que hizo mi agente,
00:02:51y la ha comparado con un conjunto de reglas que he definido, y gracias a una de mis reglas, ha denegado
00:02:56la solicitud de eliminar la tabla. Otra forma en la que podría manejar esto es con un humano en el bucle, así que puedo
00:03:00hacer que esta regla me contacte para aprobar la acción. Por el momento, esta solo admite
00:03:04Slack, pero pronto habrá más opciones. Incluso hay una opción para usar un LLM como juez,
00:03:09y las reglas son increíblemente personalizables y flexibles, por lo que incluso puedes tener reglas como verificar
00:03:13tu endpoint de API de atención al cliente que envía respuestas, y puedes ver si hay algún contenido ofensivo,
00:03:18saludos faltantes, o simplemente cualquier cosa que no quieras que se filtre en esa solicitud. Y de nuevo,
00:03:22todo esto al realizarse en la solicitud en el gateway significa que, teóricamente, todo esto está a salvo de
00:03:27inyecciones de prompt y prácticamente cualquier otro tipo de ataque de IA. El tercer problema que resuelve Claw Patrol
00:03:31es que no puedes ver lo que hizo el agente, pero con claw patrol, cada solicitud es visible en
00:03:37el panel aquí, e incluso puedes ver las sesiones activas, así como los tokens utilizados, y si haces clic
00:03:42en una solicitud, puedes ver los detalles relevantes como el comando postgres que se ejecutó realmente,
00:03:46o en el caso de una llamada API, puedes ver la solicitud API así como la respuesta que obtuvo.
00:03:51De esta forma, no necesitas perder tiempo revisando todos los registros de los servicios individuales
00:03:55que tocó el agente para intentar averiguar qué hizo, y en su lugar, puedes ver simplemente lo que hizo
00:03:59en el momento de la solicitud, así que deberías ver prácticamente todo lo que hace el agente.
00:04:03Esos son los tres problemas que intenta resolver claw patrol, ¿pero cómo se configura todo esto? Bueno,
00:04:07una vez que tienes instalado claw patrol, el gateway se configura completamente con un único archivo HCL.
00:04:12Aquí, defines los distintos endpoints para los que tendrás reglas y credenciales,
00:04:16así que tengo varios como OpenAI, Slack, SSH, Postgres, etc., por lo que si alguna solicitud pasa
00:04:22a través del gateway que coincide con uno de estos, sabe que debe comprobar las reglas y credenciales.
00:04:26En cuanto a las propias credenciales, la configuración también es bastante directa.
00:04:30Dices qué tipo de credencial es y qué endpoint debe coincidir con esa credencial.
00:04:34Hay soporte para montones de tipos de credenciales como suscripciones de Anthropic, Codex Ones,
00:04:39ClickHouse, Postgres, y también los básicos como tokens de portador y encabezados personalizados,
00:04:43así que deberías encontrar que admite casi todos los tipos que necesitas,
00:04:46e incluso si no es así, puedes crear plugins para añadir tu propio tipo.
00:04:50Una vez que hayas definido una credencial aquí, todo lo que necesitas hacer es dirigirte al panel para completar el
00:04:54valor real. Configurar reglas también es bastante fácil.
00:04:56Simplemente dices el endpoint al que se aplicará la regla, y luego escribes la regla
00:05:00usando el lenguaje de expresión común (CEL), por lo que esto puede cubrir una amplia gama de cosas como HTTP,
00:05:05Postgres, Kubernetes, etc. Después de esto, indicas el veredicto para la regla que has
00:05:09definido, ya sea que apruebes o deniegues basándote en ella, y usarías aprobar aquí si estuvieras creando
00:05:14un enfoque basado en lista de permitidos en lugar de uno de lista de bloqueo, por lo que bloquearías todo por defecto y luego
00:05:18solo permitirías ciertas cosas. En mi caso, sin embargo, simplemente utilicé el método de lista de bloqueo.
00:05:22Finalmente, otra función muy útil aquí son los perfiles. De hecho, puedes agrupar tus credenciales
00:05:26en múltiples perfiles, lo que significa que cualquier regla y endpoint adjunto a esas credenciales
00:05:31también se agrupa junto con él, y esto te permite configurar una especie de control basado en roles para tus
00:05:35agentes y tus equipos, para que los desarrolladores puedan tener cierto acceso a credenciales y diferentes reglas para
00:05:40ellos, y tal vez otro equipo, como un equipo de soporte, tenga diferentes credenciales y diferentes reglas también.
00:05:45Para ayudarte cuando estés haciendo cambios en las reglas, hay un comando de prueba donde puedes
00:05:49descargar las acciones de reglas del panel y luego volver a ejecutarlas contra tus cambios de reglas locales para ver si
00:05:54alguno de ellos ha cambiado el resultado, así que puedes detectar si habrá filtraciones accidentales.
00:05:59Debo admitir que este proceso de configuración me resultó un poco tedioso, y estoy seguro de que se
00:06:02mejorará pronto, ya que es una etapa muy temprana del proyecto, pero si hubiera una forma sencilla de añadir
00:06:07credenciales y reglas desde el panel, eso sería absolutamente increíble. Quizás algo similar a
00:06:11cómo funciona AdGuard, donde puedes ver una solicitud llegando y hacer clic para añadir una regla o
00:06:15credencial para esa solicitud. También tuve muchos problemas cuando intentaba añadir endpoints
00:06:19que eran solo direcciones IP a mi servidor Proxmox local. Por alguna razón, simplemente no quería
00:06:24interceptar esas solicitudes, y no podía ver ninguna de ellas apareciendo en el panel, y simplemente
00:06:28me dio un poco de dolor de cabeza. Así que definitivamente se necesitan algunas correcciones, o tal vez simplemente lo estaba usando mal,
00:06:33pero de cualquier manera, sí, va a llevar algo de trabajo llegar a un punto de usabilidad que no interrumpa
00:06:38tu flujo, pero eso tiene sentido ya que todo esto se trata de seguridad y no solo de enviar un agente
00:06:43en modo YOLO. Así que déjame saber en los comentarios de abajo qué opinas de Claw Patrol, y si
00:06:47tienes alguna herramienta de seguridad que uses para tus agentes. Mientras estás allí, suscríbete, y como
00:06:51siempre, nos vemos en el próximo.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video