Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Instrucciones del usuario mezcladas con instrucciones del sistema

5 tareas · 40 min · Principiante

Durante la prueba piloto de Lía, la tienda de Librerías Nazareno recibió compras con el código de cortesía de clientes que no tenían ninguna queja abierta. El equipo cree que «alguien hackeó el modelo». Te entregan la plantilla de instrucciones, el código que arma el contexto, lo que devolvió el índice en una conversación y extractos del piloto. Vas a leer cómo entró una orden ajena al mismo texto que las reglas del sistema y por qué el diseño la dejó tener efecto.

0 de 5 · 0%

Objetivo de la sala

Durante la prueba piloto de Lía, la tienda de Librerías Nazareno recibió compras con el código de cortesía de clientes que no tenían ninguna queja abierta. El equipo cree que «alguien hackeó el modelo». Te entregan la plantilla de instrucciones, el código que arma el contexto, lo que devolvió el índice en una conversación y extractos del piloto. Vas a leer cómo entró una orden ajena al mismo texto que las reglas del sistema y por qué el diseño la dejó tener efecto.

Un programa clásico separa el código de los datos: una consulta con parámetros no confunde el nombre de un cliente con una orden SQL. Un modelo de lenguaje recibe todo como un mismo texto. Las etiquetas de «sistema» y «usuario» ayudan, pero no son una frontera que el modelo garantice: si en un fragmento recuperado alguien escribió algo con forma de instrucción, el modelo puede obedecerlo. OWASP lo pone el primero de su lista para aplicaciones con modelos de lenguaje como inyección de instrucciones, y distingue la directa (la escribe quien chatea) de la indirecta (llega dentro de un documento, una página o una reseña que el sistema recupera).

La consecuencia de diseño es incómoda pero simple: no hay frase en la plantilla que impida del todo que el modelo siga una orden ajena. Lo que sí se controla es qué puede pasar si la sigue.

Responde para continuar

¿Por qué una reseña recuperada por el índice puede cambiar lo que hace la asistente?

Ver pista de ayuda

Piensa en cómo recibe el modelo las reglas y los fragmentos.

Abre el laboratorio. En armar_contexto.py verás dónde caen los fragmentos del índice: dentro del mismo mensaje de sistema que las reglas, sin ninguna marca que los distinga. Después lee fragmentos-recuperados.txt, lo que devolvió el índice en la conversación que preocupa. Uno de los seis fragmentos no describe un libro: le habla a la asistente.

Responde para continuar

¿Qué fragmento recuperado contiene texto dirigido a la asistente? Escribe su identificador.

Ver pista de ayuda

Lee las reseñas buscando alguna que no hable del libro sino de lo que debe hacer Lía.

Que un fragmento traiga una orden no prueba que el modelo la siguiera. Para saberlo se cruza con la conversación y con el dato que decide si el cliente tenía derecho: conversaciones.txt muestra cuántas quejas abiertas tenía cada cliente según el perfil enviado, y quejas-abiertas.txt es la lista del área de servicio. Busca la conversación en la que la asistente presenta el código de cortesía como una promoción a alguien sin queja.

Responde para continuar

¿En qué conversación la asistente ofrece el código como promoción a un cliente sin queja abierta después de recuperar ese fragmento? Escribe su identificador.

Ver pista de ayuda

Compara la consulta del cliente en el archivo de fragmentos con las de las conversaciones.

La plantilla le dice al modelo que no revele sus instrucciones. Esa regla se pide con el mismo texto que cualquier otra y se rompe igual: basta con que alguien la pida con una excusa razonable. OWASP trata aparte la fuga de las instrucciones del sistema, y su consejo de fondo no es esconderlas mejor sino no guardar en ellas nada que no pueda publicarse, ni secretos ni la lógica de la que dependa un control.

Busca en conversaciones.txt la conversación en la que la asistente reproduce sus reglas.

Responde para continuar

¿En qué conversación la asistente copia sus reglas a un cliente que se las pide? Escribe su identificador.

Ver pista de ayuda

Busca la palabra reglas en la respuesta de la asistente.

La nota del equipo al final de armar_contexto.py explica todo el incidente: el derecho al código NAZ-CORTESIA-15 lo decide el modelo leyendo una regla, y la tienda acepta cualquier compra que lo traiga. Ni la reseña ni la conversación que copió las reglas habrían costado dinero si esa decisión estuviera en el servidor. Separar mejor los fragmentos con delimitadores y avisar al modelo de que son datos ayuda a reducir el riesgo, pero no lo cierra.

Responde para continuar

¿Qué cambio cierra el problema del código de cortesía aunque el modelo vuelva a seguir una orden ajena?

Ver pista de ayuda

El control que funciona es el que no depende de lo que decida el modelo.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad