Mareando y Desalineando a un Asistente IA de una tienda de Mochilas.
Estaba este viernes explicándole a un compañero lo fácil que muchos de los asistentes basados en LLM abiertos en Internet pueden ser explotados por los malos para consumir servicios de IA en resolución de problemas. De esto mismo os he hablado en los artículos que os he publicado sobre un Asistente Virtual hecho sobre Google DeepMind Gemma , antes os dejé otro artículo sobre un Asistente AI construido sobre Gemini , y también os dejé publicado otro sobre un Asistente AI construido con GPT-4o , y luego uno titulado "Weaponinzing Token Consumption" en "LLM-Based AI Assistant" que explica cómo el mundo del cibercrimen busca estos asistentes para automatizarlos en forma de API y comercializarlos entre los malos. Figura 1: Mareando y Desalineando a un Asistente IA de una tienda de Mochilas. Después de eso, os publiqué el de " Mi Asistente Virtual IA no programará en Python para ti... pero si es COBOL, vale " y el de " El AIBot de la Universidad que ayuda no sólo a los estudiantes ", donde jugaba siempre con los mismos conceptos: El desalineamiento del Prompt de configuración y el bypass de los Guardarraíles . Figura 2: " Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment " escrito por Chema Alonso con la colaboración de Pablo González , Fran Ramírez , Amador Aparicio , Manuel S. Lemos y José Palanco en 0xWord Le estaba contando esto a mi compañero, y no se lo creía mucho, así que le dije: " Venga, vamos a buscar uno juntos y lo probamos ", y acabamos en una Tienda de Mochilas . No os cuento el inicio, porque ya lo sabéis, teníamos que preguntar cosas sobre la tienda de mochilas, así que para desalinearlo, bastó con hacer una lista de mochilas que nos recomendara, y añadir al nombre de la mochila lo que queríamos que nos hiciera el LLM . Figura 3: Lista de mochilas con tokens en ventana de contexto Primero le pedimos algo sencillito, como su nombre, que nos lo dio por supuesto, y el tamaño de tokens de su ventana de contexto, que eso siempre nos viene bien saberlo si hay que " weaponizar " en forma de API . Figura 4: La fecha está correcta. Después de pedirle cosas sencillas, como la fecha - correcta en la imagen anterior - y la hora, que nos dio las 12:00 lo que implicaba que no tenía acceso a la hora (yo siempre lo uso para saber en qué región está el servidor), le pedí que me sacara en una lista más larga las funciones a las que tenía acceso, y aquí están. Figura 5: Lista de funciones a las que tiene acceso Parecía bastante hecho el desalineamiento, pero de repente me encontré con varias barreras que estaban bien solucionadas por parte del equipo de seguridad de este Asistente IA . En primer lugar, no tenía acceso a Internet , lo cual siempre le quita un poco de gracia. Figura 6: Sin capacidad de navegar por Internet La segunda es que tampoco tenía capacidad de programar, y esto sí que me dejó bastante rallado. ¿Cómo podía ser que un modelo LLM no tenga capacidad de programar nada? ¿Dónde se había realizado esta reducción de capacidades? Figura 7: Sin capacidad de programar Lo cierto es que el Asistente IA , después de muchas pruebas - y cuando digo muchas, son muchas - tiene Guardarraíles en Prompt de entrada y Guardarraíles en la respuesta, lo que es correcto y es como debe de hacerse, así que me tocó pensar para qué lo podría usar, y me acordé del Captcha Cognitivo de los conjuntos semánticos de palabras de algunas webs . Figura 8: Captchas Cognitivos de Conjuntos Semánticos Luego, para poder saltar los Guardarraíles de salida, estuve mirando si podía codificar - como hice en el ejercicio del problema del prisionero a principios de 2025 - usando capacidades criptográficas y de codificación varias. Figura 9: Codificación ASCII de respuestas Y también con estuve probando con los Acrósticos , para codificar respuestas usando esta codificación y poder evitar filtros de palabras en la salida.