En el mundo actual dominado por la inteligencia artificial, los modelos de lenguaje a gran escala (LLMs) han revolucionado la forma en que las máquinas comprenden y generan texto. Desde asistentes virtuales hasta sistemas avanzados de procesamiento de lenguaje natural, estos modelos son fundamentales para muchas aplicaciones. Sin embargo, detrás de su aparente eficiencia y precisión, existen riesgos complejos derivados de la forma en que procesan el texto: uno de ellos son los ataques de división de tokens, una vulnerabilidad poco visible pero capaz de causar graves consecuencias en la seguridad de la IA. Para comprender estos ataques es indispensable conocer primero el proceso de tokenización, un mecanismo que permite a los modelos de lenguaje interpretar las palabras dividiéndolas en unidades más pequeñas llamadas tokens. Estos tokens pueden ser palabras completas, fragmentos o incluso caracteres individuales, dependiendo del algoritmo y vocabulario del tokenizer.
Esta división es crucial, ya que el modelo no interpreta el texto como un simple conjunto de caracteres, sino como secuencias tokenizadas que le permiten entender y generar lenguaje coherente. El problema surge justamente en esa segmentación. Los ataques de división de tokens se basan en la manipulación deliberada de cómo se fragmenta un texto para introducir comandos maliciosos o instrucciones ocultas que el filtro de seguridad o la supervisión humana no detectan fácilmente. Un ejemplo clásico es que un texto parezca inofensivo para una persona o un sistema básico de filtrado, pero al ser tokenizado el modelo interpreta un comando peligroso. Imaginemos una situación en la que un agente de inteligencia artificial está programado para revisar correos electrónicos y almacenar retroalimentación sin permitir acciones perjudiciales.
Este agente puede tener un filtro que bloquea comandos explicitos como “eliminar base de datos”. Un atacante, usando técnicas de división de tokens, podría insertar caracteres invisibles o trucos con Unicode para descomponer esa frase prohibida en fragmentos que el filtro no reconozca. Por ejemplo, el uso de espacios de ancho cero u otros caracteres invisibles entre “elimin” y “ar” puede romper la frase a nivel de texto, pero el tokenizer podría recomponerlas en los tokens ["eliminar", "base", "de", "datos"], facilitando que el agente ejecute comandos no autorizados. Este tipo de ataque es una extensión de las conocidas inyecciones de prompts, pero mucho más sofisticada, ya que aprovecha las debilidades inherentes a la tokenización, un proceso interno y a menudo invisible para el usuario o el desarrollador. La consecuencia es una brecha crítica de seguridad que podría permitir a actores malintencionados ejecutar acciones como borrar datos, extraer información sensible o incluso controlar funcionalidades del sistema de manera oculta.
La complejidad de estos ataques radica en que no se trata simplemente de esconder palabras prohibidas, sino de explotar cómo diferentes tokenizadores segmentan el texto dependiendo del contexto y del conjunto de caracteres. Las variantes de Unicode y caracteres no estándar son herramientas comunes en estos ataques, ya que pueden parecer visualmente inocuos o imperceptibles, pero tienen un impacto significativo en la división de tokens. Por ejemplo, un carácter invisible como el espacio de ancho cero (zero width space) no es detectado por la mayoría de los filtros basados en texto, pero afecta cómo el texto es dividido durante la tokenización. Así, frases prohibidas pueden aparecer divididas y pasar desapercibidas, permitiendo que el LLM las interprete de forma diferente a lo esperado, violando así las reglas establecidas. Ante esta amenaza, se vuelve fundamental implementar estrategias de mitigación que garanticen la seguridad sin afectar la funcionalidad de los modelos.
Una de las primeras líneas de defensa es la sanitización y normalización de la entrada. Esto implica limpiar los textos recibidos eliminando o reemplazando caracteres especiales, normas Unicode poco comunes y caracteres de control que puedan ser utilizados para manipular la segmentación. Además, es vital no confiar únicamente en los filtros que analizan las cadenas de texto originales antes de la tokenización. Se recomienda realizar análisis de seguridad una vez que el texto ha sido tokenizado, para identificar patrones maliciosos que se formen justamente en esta etapa. Este enfoque post-tokenización permite detectar secuencias de tokens sospechosas que habrían pasado inadvertidas en un análisis puramente superficial.
Mantener actualizados los tokenizadores y seguir investigaciones sobre vulnerabilidades específicas en algoritmos de tokenización también ayuda a prevenir ataques futuros. Los desarrolladores deben conocer las particularidades del tokenizer utilizado y adaptarse a cambios o descubrimientos que puedan afectar la seguridad. Una política de privilegios mínimos aplicada a los agentes basados en LLM minimiza el impacto de posibles ataques. Si el modelo sólo tiene acceso o autorización para funciones estrictamente necesarias, se reduce la capacidad del atacante para causar daños significativos, incluso si logra superar algunos filtros. El monitoreo constante de la salida y comportamiento del agente es otro aspecto indispensable.
Comportamientos anómalos o respuestas inesperadas pueden indicar la presencia de un ataque y deben ser investigados inmediatamente para evitar perjuicios mayores. Finalmente, arquitecturas que separan claramente las instrucciones confiables de la entrada no controlada del usuario ofrecen una barrera adicional frente a ataques por token splitting. Aunque este método no elimina la vulnerabilidad, limita las oportunidades de que la entrada maliciosa sea interpretada como comando. En conclusión, los ataques de división de tokens representan un desafío relevante en la seguridad de los sistemas basados en inteligencia artificial y modelos de lenguaje. La explotación de vulnerabilidades en el proceso de tokenización exige una atención meticulosa por parte de desarrolladores y operadores para proteger sus sistemas.
A medida que la adopción de IA crece, también lo hacen las técnicas para explotarla, por lo que entender estas amenazas y aplicar medidas de defensa sólidas es vital para mantener la integridad y confiabilidad de las aplicaciones. La seguridad en el contexto de los LLM es una tarea multifacética que requiere combinaciones de enfoques técnicos y operativos. La tokenización, siendo un proceso interno fundamental, no debe subestimarse en su capacidad para convertirse en un vector de ataque. Conocimiento profundo, monitoreo permanente y adaptación continua son la clave para defenderse eficazmente contra esta amenaza silenciosa pero poderosa.