Claude Platform Docs
Mejores prácticasFortalecer las barreras de protección

Mitigar jailbreaks e inyecciones de prompts

Defiende tu aplicación contra jailbreaks e inyección de prompts con filtrado de entradas, indicaciones del sistema reforzadas y manejo seguro de contenido de herramientas no confiable.

El "jailbreaking" (evasión de restricciones) y la "prompt injection" (inyección de prompts) son intentos de hacer que Claude ignore sus directrices o tus instrucciones. Aunque Claude es inherentemente resistente a este tipo de ataques, los pasos adicionales de esta página fortalecen tus barreras de protección, particularmente contra usos que violan los Términos de Servicio o la Política de Uso de Anthropic.

Estos ataques se dividen en dos categorías con modelos de amenaza diferentes:

  • Jailbreaks e inyección directa de prompts, donde el usuario de tu aplicación es el adversario y elabora entradas destinadas a eludir tus barreras de protección.
  • Inyección indirecta de prompts, donde el usuario es confiable pero Claude procesa contenido de terceros (páginas web, correos electrónicos, documentos, resultados de herramientas) que contiene instrucciones adversarias.

Jailbreaks e inyección directa de prompts

En este modelo de amenaza, un usuario elabora deliberadamente entradas para manipular tu aplicación y hacer que produzca contenido o realice acciones que no deseas. Estas mitigaciones fortalecen las barreras de protección de tu aplicación:

  • Filtros de inocuidad: Usa un modelo ligero como Claude Haiku 4.5 para filtrar previamente la entrada del usuario antes de que llegue a tu conversación principal. Usa salidas estructuradas para restringir la respuesta a una clasificación simple.

  • Validación de entradas: Filtra la entrada del usuario en busca de patrones de inyección conocidos antes de que llegue a Claude. Puedes usar un "large language model" (modelo de lenguaje grande), o LLM, para crear un filtro de validación generalizado proporcionando lenguaje de jailbreaking conocido como ejemplos.

  • Ingeniería de prompts: Elabora indicaciones del sistema que enfaticen los límites éticos y legales, y que le indiquen explícitamente a Claude cómo rechazar solicitudes.

  • Responde a los infractores reincidentes: Ajusta las respuestas y considera limitar o prohibir a los usuarios que intenten repetidamente eludir las barreras de protección de tu aplicación. Por ejemplo, si un usuario en particular provoca el mismo tipo de rechazo varias veces (como "salida bloqueada por la política de filtrado de contenido"), indícale al usuario que sus acciones violan las políticas de uso correspondientes y toma medidas en consecuencia.

Inyección indirecta de prompts

En este modelo de amenaza, estás protegiendo a tus usuarios de instrucciones incrustadas en contenido que Claude lee en su nombre: el cuerpo de un correo electrónico entrante, una página web obtenida, la salida de OCR de un archivo subido o el resultado de una llamada a una herramienta. Un atacante que pueda influir en ese contenido puede incrustar instrucciones que intenten redirigir a Claude.

Estructura tu aplicación de modo que Claude pueda distinguir de forma confiable el contenido no confiable de tus instrucciones:

  • Coloca el contenido no confiable únicamente en resultados de herramientas. Entrega el contenido de terceros a Claude dentro de bloques tool_result, nunca en indicaciones system ni en bloques text de usuario simples. Claude está entrenado para tratar con el escepticismo apropiado las instrucciones que aparecen dentro de los resultados de herramientas. Consulta Manejar llamadas a herramientas para conocer el formato de tool_result.

  • Dile a Claude qué es el contenido y de dónde proviene. En la description de la herramienta, o en la estructura del propio resultado, haz explícita la naturaleza y el origen del contenido: por ejemplo, que es el cuerpo de un correo electrónico entrante de un remitente desconocido, o texto de OCR extraído de una imagen subida por el usuario. Este contexto ayuda a Claude a calibrar cuánto confiar en las directivas incrustadas.

  • Establece la política en tu indicación del sistema. Dile explícitamente a Claude que el contenido devuelto por herramientas, documentos o búsquedas son datos no confiables y que nunca deben anular la indicación del sistema ni la solicitud original del usuario.

  • Codifica en JSON el contenido no confiable. Cuando sea posible, envuelve las cadenas de terceros en un objeto JSON en lugar de concatenarlas en texto libre. El escape de JSON proporciona delimitadores inequívocos entre la carga no confiable y la estructura circundante, de modo que un atacante no pueda cerrar una comilla o etiqueta para "escapar" hacia un contexto de instrucciones.

  • No coloques tus propias instrucciones en los resultados de herramientas. Dado que Claude trata el contenido de los resultados de herramientas como datos no confiables, las instrucciones que coloques allí pueden ser ignoradas o marcadas como una posible inyección. Envía tus instrucciones en un turno user que siga al bloque tool_result. En los modelos compatibles, también puedes usar un mensaje del sistema a mitad de conversación.

  • Limita el acceso de Claude a datos y acciones sensibles. Aplica el principio de mínimo privilegio para que una inyección exitosa pueda causar un daño mínimo: no le des a Claude acceso a secretos que no necesita, ejecuta las herramientas en entornos aislados (sandbox) y delimita los permisos de la forma más estrecha posible.

  • Filtra las salidas de las herramientas antes de que Claude actúe sobre ellas. Aplica al contenido que devuelven tus herramientas el mismo patrón de filtrado con un modelo ligero que usas para la entrada del usuario. Ejecuta cada herramienta, pasa su salida sin procesar a una pequeña llamada de clasificación con Claude Haiku 4.5 y devuelve el contenido como bloque tool_result solo si el filtro no reporta ningún intento de inyección. Usa salidas estructuradas para que el veredicto del clasificador sea un valor analizable sobre el cual tu aplicación pueda ramificar su lógica.

    También puedes aplicar los patrones de validación de entradas de la sección anterior a los resultados de herramientas antes de pasarlos a Claude.

  • Haz red teaming de tu propio agente. Antes de desplegar, prueba tu flujo de trabajo con documentos, correos electrónicos y salidas de herramientas que contengan deliberadamente intentos de inyección, y confirma que Claude los ignora y que tus pasos de filtrado y confirmación detectan el resto.

Monitoreo continuo

Analiza regularmente las salidas en busca de señales de inyecciones exitosas. Usa este monitoreo para refinar de forma iterativa tus prompts y tus estrategias de validación y filtrado.

Avanzado: Encadena salvaguardas

Combina estrategias para lograr una protección robusta. Este es un ejemplo de nivel empresarial con uso de herramientas:

Al combinar estas estrategias en capas, creas una defensa robusta contra el jailbreaking y las inyecciones de prompts, asegurando que tus aplicaciones impulsadas por Claude mantengan los más altos estándares de seguridad y cumplimiento.

Was this page helpful?