El blog de Deska
Contenido no confiable y agentes de IA: cómo manejarlos con seguridad
Aprende prácticas de seguridad para el manejo de contenido no confiable por agentes de IA, evitando inyecciones de prompts y filtración de datos.
· 10 min de lectura
El desarrollo de software con inteligencia artificial introduce un nuevo vector de ataque que a menudo es pasado por alto por los equipos que solo se enfocan en la calidad del resultado. El riesgo principal surge cuando sucede el evento de un agent reading untrusted content (agente leyendo contenido no confiable) y este encuentra instrucciones maliciosas incrustadas en los datos, lo que conduce a una inyección de prompts o acciones no autorizadas. A medida que los agentes adquieren la capacidad de navegar por la web, leer documentación e inspeccionar repositorios de terceros, la frontera entre los datos y las instrucciones se vuelve borrosa. Esta publicación explora patrones defensivos para proteger tu entorno mientras mantienes las ganancias de productividad de los agentes de codificación autónomos.
El problema de la inyección de prompts indirecta
La inyección de prompts tradicional ocurre cuando un usuario engaña intencionalmente a un LLM. La inyección de prompts indirecta es más sutil. Sucede cuando un agente, actuando en tu nombre, lee un archivo o un sitio web que contiene instrucciones ocultas diseñadas para secuestrar la lógica del agente. Si un agente lee un archivo README de un repositorio clonado y ese archivo contiene una instrucción oculta para borrar el directorio personal, un agente ingenuo podría ejecutar ese comando sin dudarlo.
El desafío radica en la naturaleza de los LLMs. Estos tratan toda la entrada en una ventana de contexto como una secuencia plana de tokens. A menos que la arquitectura separe estrictamente las instrucciones del sistema de los datos proporcionados por el usuario, el modelo podría priorizar las instrucciones maliciosas encontradas en el contenido no confiable sobre su programación original.
Vectores de ataque comunes en flujos de IA
La seguridad para agentes de IA requiere identificar por dónde entran los datos no confiables al contexto. Estos son los escenarios más comunes:
- Web Scraping: Cuando un agente busca documentación o incidentes en librerías, puede encontrar sitios web diseñados específicamente para explotar el comportamiento del LLM.
- Repositorios de terceros: Clonar un paquete para investigar un error expone al agente a todos los archivos dentro de ese repositorio, incluyendo markdown oculto o comentarios de código.
- Comentarios en Pull Requests: Los agentes que resumen PR de forma automática son vulnerables a instrucciones colocadas en comentarios o mensajes de commit por colaboradores externos.
- Archivos de registro (Logs): Si un agente tiene la tarea de depurar una aplicación leyendo logs, puede encontrar una inyección de logs, donde un atacante activa una entrada de log específica que el agente interpreta como un comando.
Estrategias de defensa técnica
Asegurar un entorno donde operan los agentes requiere un enfoque de múltiples capas. Ninguna solución es perfecta, pero combinar estos métodos reduce significativamente el riesgo.
El patrón de Sandbox
La defensa más efectiva es el aislamiento. Los agentes nunca deben ejecutarse directamente en tu sistema operativo anfitrión con privilegios totales. Al usar contenedores o máquinas virtuales, aseguras que si un agente se ve comprometido, el impacto se limite a un entorno volátil. Muchos desarrolladores eligen ejecutar sus agentes en IDEs especializados o espacios de trabajo que proporcionan una capa de abstracción entre el agente y el sistema.
Sanitización de contenido
Antes de que un agente vea un documento, el sistema debería eliminar elementos potencialmente peligrosos. Esto incluye quitar scripts de HTML, filtrar caracteres de control y usar parsers de markdown que no rendericen bloques ejecutables por defecto. Aunque esto no previene todas las inyecciones basadas en lógica, elimina los vectores tradicionales de cross site scripting (XSS) e inyección de comandos.
Humano en el bucle (HITL)
Hasta que el razonamiento de los agentes sea perfectamente resistente a entradas adversarias, el humano sigue siendo la última línea de defensa. Las acciones de alto riesgo, como borrar archivos, subir código a producción o modificar la configuración del sistema, deben requerir aprobación manual. Un espacio de trabajo transparente que muestre exactamente qué está leyendo el agente y qué pretende hacer es esencial para este proceso de verificación.
Manejo de riesgos en el espacio de trabajo de Deska
Al usar herramientas modernas para gestionar estos agentes, las decisiones arquitectónicas de la herramienta importan. Deska ofrece una aplicación de escritorio gratuita para Mac, Windows y Linux que cambia la forma en que los desarrolladores interactúan con los agentes. El lienzo infinito o canvas permite colocar paneles para terminales y el editor de código lado a lado, lo que facilita monitorear la actividad del agente en tiempo real.
En Deska, puedes ejecutar múltiples agentes de codificación como Claude Code, Codex CLI y OpenCode como paneles individuales. Debido a que el entorno es local-first, tu código y archivos permanecen en tu máquina en lugar de ser procesados en una nube de terceros donde pierdes visibilidad. Cuando un agente está leyendo contenido no confiable dentro de un panel de Deska, puedes usar las terminales integradas para verificar el estado actual de tu sistema de archivos y asegurar que no hayan ocurrido cambios no autorizados.
El uso de Ask Deska, el asistente de voz y chat, te permite manejar el espacio de trabajo mediante lenguaje natural. Si sospechas que un agente ha sido comprometido por un archivo malicioso, puedes pedirle al asistente que cierre las sesiones relevantes o aísle agentes de codificación específicos sin necesidad de buscar manualmente los IDs de los procesos.
Monitoreo remoto seguro
Uno de los mayores riesgos al tratar con contenido no confiable es la incapacidad de monitorear una tarea del agente que toma mucho tiempo. Si dejas tu escritorio mientras un agente indexa un código base grande y desconocido, podrías perderte una advertencia de seguridad.
Deska soluciona esto mediante su aplicación mobile. Te permite monitorear y continuar el trabajo desde tu teléfono a través de un relevo seguro. Los dispositivos se emparejan directamente por lo que no se exponen puertos al internet público. Esto asegura que, incluso si estás lejos de tu estación de trabajo, puedas vigilar qué está haciendo el agente e intervenir si ves que navega hacia directorios sospechosos o ejecuta comandos inusuales.
Matriz de decisión para la seguridad del agente
| Función | Agentes Local-First | Agentes basados en la nube |
|---|---|---|
| Privacidad de datos | El código se queda en disco | Código subido al proveedor |
| Seguridad de red | Emparejamiento directo | Requiere exposición a internet |
| Visibilidad | Monitoreo en canvas lado a lado | Limitado a interfaz de chat |
| Control | Terminación inmediata de procesos | Depende de la API de la nube |
Mejores prácticas para desarrolladores
Para mantener un flujo de trabajo seguro, sigue estas reglas al trabajar con cualquier agente:
- Usa un enfoque local-first siempre que sea posible para mantener los datos sensibles dentro de tu perímetro de seguridad.
- Revisa cada archivo que un agente proponga crear o modificar, especialmente si el agente estuvo navegando por la web recientemente.
- Mantén las llaves de API seguras usando modelos BYOK donde tú controlas los límites de uso y la rotación.
- Organiza tu trabajo en espacios de trabajo discretos para evitar que un agente en un proyecto acceda a archivos sensibles en otro.
- Actualiza regularmente los binarios de tus agentes a través del mecanismo de actualizaciones para asegurar que tienes los últimos parches de seguridad.
Preguntas Frecuentes
¿Puede una inyección de prompts robar mis llaves de API?
Sí, si el agente tiene acceso a tus variables de entorno o archivos de configuración. Si un agente que lee contenido no confiable encuentra un comando para imprimir tus variables de entorno, podría enviar esas llaves a un servidor malicioso. Por eso el almacenamiento local-first de secretos y los permisos restringidos para agentes son críticos.
¿Cómo aíslo un agente en mi máquina local?
La mejor forma es usar una herramienta de espacio de trabajo dedicada que ejecute los procesos del agente en un contexto aislado. También puedes usar contenedores Docker para envolver la ejecución del agente. Las herramientas que te permiten ver las rutas de datos y almacenamiento claramente te ayudan a entender a qué puede llegar realmente el agente.
¿Es seguro dejar que los agentes naveguen por internet?
Generalmente es seguro si el agente usa un widget de navegador restringido y no tiene acceso de escritura a tu sistema de archivos principal mientras navega. En Deska, los widgets de navegador permiten que los agentes recopilen información mientras tú mantienes la supervisión visual en el canvas. Siempre verifica la información obtenida antes de dejar que el agente la aplique a tu código.
Conclusión
La evolución de los asistentes de codificación con IA ofrece una velocidad increíble, pero requiere una nueva mentalidad respecto a la seguridad. Al comprender los riesgos de un agente leyendo contenido no confiable e implementar patrones defensivos como el aislamiento, la supervisión humana y la gestión de datos local-first, puedes proteger tu entorno de desarrollo.
Si buscas un espacio de trabajo diseñado para manejar estos flujos de trabajo de IA modernos con transparencia y control local, puedes descargar Deska gratis y comenzar a construir tu lienzo personalizado hoy mismo.