Mostrando entradas con la etiqueta Metadatos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Metadatos. Mostrar todas las entradas

domingo, julio 26, 2026

Agent Data Injection Attacks

Este fin de semana he aprovechado par leerme un paper que ha sido publicado a principios de este mes, donde se habla de una variación de los ataques de Indirect Prompt Injection, utilizando una variante llamada Agent Data Injection, y que está muy bien pensada, para lograr que un ataque cambie su comportamiento y realice acciones controladas por un atacante.
Las técnicas de Indirect Prompt Injection buscan dejar Instrucciones Maliciosas almacenadas en fuentes de datos externas que un Agente IA va a procesar para realizar su tarea. Al procesar esos datos inseguros, ya sean páginas web, repositorios de GitHub o correos electrónicos, el Agente IA va encontrarse un Prompt que va a cambiar su comportamiento produciendo un Desalineamiento de su funcionamiento.


Para evitar estos Desalineamiento, los modelos están siendo construidos con Guardarraíles, y los Agentes IA son diseñados con Harnesses, que evitan que el comportamiento final se salga de los objetivos para los que ha sido diseñado uno de estos Agentes IA. Teniendo en cuenta esto, el trabajo de "Agent Data Injection Attacks are Realistic Threats to AI Agents" propone una nueva forma de desalinear al Agente IA.
La aproximación en este caso no se trata de Inyectar Instrucciones Maliciosas, sino de Inyectar Objetos de Información, que formen parte de los Datos de Contexto del Agente IA para manipular la información sobre la que va a tomar sus decisiones y ejecutar sus acciones. 
Como se ve en la imagen anterior, el objetivo es meter datos en los Agentes IA, y para eso se utilizan los Datos Inseguros que éste procesa - es decir, los e-mails, webs, repositorios de GitHub, etc... - con datos manipulados que simulan ser Objetos con Datos en el Agente IA. Para hacer esto, hacen inyección de datos con separadores de información, como se ve en la imagen siguiente.
Como se puede ver en la imagen, el Agente IA llama a una herramienta de lectura de datos inseguros, como una página web, o a la lista de correos electrónicos entregada por un MCP. Y en uno de esos correos se han inyectado caracteres para formar un Metadato que representa a un Objeto e-mail. Es decir, si miráis el "Body" del correo, veis que han inyectado un .\"} que cierra el formato del primer Objeto e-mail para luego comenzar a inyectar un Objeto e-mail completo, codificando el mensaje con sus metadatos. El resultado final es que el Agente IA entiende que ha recibido 2 Objetos e-mail en lugar de solo 1.

Ataques de Agent Data Injection

Esto genera que un atacante pueda inyectar Objetos con Datos que van a ser parte de la toma de decisiones y acciones que realizará el Agente IA. Por ejemplo, en el caso siguiente, el usuario pide resumir las revisiones de un determinado producto de una tienda. El Agente IA lanza la herramienta de leer página, y esta página le entrega los datos de formato de Objetos, delimitados por corchetes y los textos entrecomillados.


Un atacante puede inyectar en una de las review los caracteres para inyectar un Objeto nuevo - como un botón - codificándolo con los caracteres con los que se construyen los metadatos de los objetos, dentro del Texto de una de las Review. En este caso un botón que no existe en la web de "Read More" con una Ref_3, que es la misma Ref_3 que tiene el botón "Buy Now". Así que, con el Agent Data Injection, se ha conseguido forzar una compra cuando el Agente IA quería simplemente "Read More".
En el siguiente ejemplo se hace buscando en la Knowledge Base, donde se busca información sobre como solucionar un problema, y la herramienta devuelve el objeto con la respuesta que resuelve el problema. Si en esa respuesta de produce un Agent Data Injection, esto se puede manipular.
El atacante inyecta un comentario que inyecta un objeto completo con una pregunta y una respuesta completa, pero cuya respuesta es maliciosa, formateando con los delimitadores de los metadatos el objeto malicioso.
Al final, estos ataques lo que hacen es buscar meter en el conjunto de datos que utiliza el Agente IA, datos como si fueran objetos con sus metadatos devueltos por la herramienta, haciendo inyección de delimitadores para formatear los objetos. Muy interesante.

Por supuesto, es una técnica de inyección basada en la no satinización de los datos que tenemos en los modelos de IA, y esta técnica de Agente Data Injection es a Prompt Injection, como lo son los Connection String Parameter Pollution Attacks a las técnicas de SQL Injection. Mismo concepto, diferente manera de explotar, diferentes objetivos. 

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


miércoles, enero 07, 2026

Adulteración del Knowledge Graph de una arquitectura RAG para proteger los datos de un servicio de Inteligencia Artificial

Las arquitecturas RAG (Retrieval Augmented Generation) son hoy en día una de las formas más sencillas de conectar el conocimiento de una organización con un modelo LLM para explotar los datos de una organización utilizando servicios digitales basados en IA. En el caso de las plataformas Microsoft, se utilizan los Knowledge Graph (KG) que llevan tantos años desarrollando, así que a los servicios que usan una arquitectura RAG con un KG se le llama GraphRAG, y están conectados al conocimiento de una persona o una empresa.
Este conocimiento almacenado en los Knowledge Graphs le dan el contexto necesario a los LLM para que puedan resolver los Prompts que se les solicita de manera efectiva, y es como funciona, por ejemplo, la arquitectura de Microsoft 365 Copilot.
Por supuesto, si ese Knowledge Graph no son los datos de un usuario, sino los datos de una compañía completa, estaríamos hablando de información muy sensible de las empresas, por lo que hay que tener mucho cuidado de que alguien robe esos datos, pero aún más. Una forma de atacarlos es lo que explicamos en el artículo de "GenAI Apps & Services: Cómo explotar arquitecturas RAG con Plugins Inseguros" del que también hablé en esta conferencia:

Figura 3: Hacker & Developer in the Age of GenAI
por Chema Alonso en la dotNET 2024

Pero, suponiendo que alguien se lleva directamente una copia completa, ¿podríamos hacer que si un atacante tuviera acceso al Knoledge Graph de una arquitectura RAG como la anterior sólo recibiera información errónea en las respuetsas? De eso trata el artículo: "Making Theft Useless: Adulteration-Based Protection of Proprietary Knowledge Graphs in GraphRAG Systems"
Hay que tener en cuenta que si un atacante se llevara el Knowledge Graph (KG) de una empresa, necesitaría muy poco para replicar el funcionamiento del servicio digital basado en la arquitectura GraphRAG robada, ya que casi todos se basan en piezas comunes, donde lo diferencial son los datos contenidos en el Knowledge Graph de la compañía, que además lleva tiempo generar.
Una vez clonada la arquitectura, se podría acceder al conocimiento y la información que el Knowledge Graph contenga, haciéndole las preguntas correctas, así que los investigadores lo que han estado pensando es en cómo hacer que esa base de conocimiento esté adulterada y solo los que lo han adulterado sepan entender las respuestas, mientras que para los demás será respuestas llenas de alucinaciones.


Como se puede ver en la imagen anterior, la propuesta del trabajo es Adulterar el Knowledge Graph de forma que sólo los usuarios legítimos saben cómo está adulterado, y por tanto, "desadulterar" la información proveniente del KG antes de que esta sea enviada por el servicio RAG (GraphRAG) al LLM.

Hay que tener en cuenta que el motivo por el que se crean las arquitecturas RAG es para que los LLM trabajen sobre el conocimiento privado de unos datos. Si esos datos están adulterados, trabajaran sobre información errónea. Así, los usuarios no autorizados, si no saben quitar los nodos adulteraros en el KG, lo que conseguirán es que el Prompt que se genere para el LLM del servicio no funcione y retorne información errónea, o directamente el LLM no sepa como responder.

Para ello, el proceso de adulteración busca cuáles son los nodos más clave del Knowledge Graph (Key Nodes), para conseguir que esos nodos estén presentes en el mayor número de respuestas de enriquecimiento de Prompts provenientes del KG y que tengan información adulterada para que sirvan ellos de adulterantes de todas las repuestas.
Esos Key Nodes serán analizados y adulterados, por ejemplo, con valores que sean de la misma entidad, pero con valores diferentes semánticamente, como se ve en el Prompt de generación de nodos adulterantes de la imagen anterior. Este proceso podrá hacerse con diferentes nodos, y los cambios deben ser conocidos por los usuarios legítimos.
Como se ve en la imagen anterior, se buscan los módulos más relevantes, intentando que se consiga que corrompan el máximo posible de las respuestas. Eso implicará que haya que generar adulteraciones para cada uno de esos nodos adulterantes, pero el GraphRAG envíe el Prompt original enriquecido con datos que contiene alguno de los nodos adulterantes, entonces se conseguirán respuestas parciales, con alucinaciones o directamente no se obtendrá respuesta.
En la tabla anterior tienes el HS "Harmfulness Score", que es el porcentaje de Prompts que antes de la adulteración eran contestados correctamente y después del adulterado de los nodos se contestan mal o no se contestan. Como se puede ver, con diferentes Datasets de prueba usando diferentes LLMs, los resultados son todos superiores al 94%.

El segundo indicador es el ARR "Adulterant Retrieval Rate", o lo que es lo mismo, en qué porcentaje de los Prompts se han incluido los nodos adulterantes. En este caso, en el 100% de los casos, ya que el algoritmo de selección de Key Nodes ha cubierto la totalidad de las rutas de respuestas.

Figura 10: Tipos de error inyectados con la adulteracíon

En el paper tenéis más tablas y mediciones, pero yo me he querido centrar solo en las que he considerado más relevantes para entender el estudio, y éste último gráfico representa los porcentajes de respuestas erróneas parcialmente, completamente, o que directamente el modelo LLM se ha negado a contestar.

El truco, para que el servicio digital legítimo sepa cuáles son los nodos adulterantes que debe eliminar antes de enviar el Prompt enriquecido con Nodos del Knoledge Graph, es que en el proceso de adulteración se marcan todos los nodos con metadatos cifrados, de tal manera que, como se ve en el apartado 4 de la Figura 8, si el metadato cifrado - con la clave de descifrado que solo tiene el servicio legítimo - dice que es un nodo adulterante, se retira y listo.
De esta forma, se evita tener que cifrar todo el Knowledge Graph - que lo haría computacionalmente inviable a día de hoy, y solo se cifran las marcas de aduletración -. Un tema muy interesante, sin duda, y si te gusta este mundo, te recomiendo que te compres el libro de "Hacking & Pentesting con Inteligencia Artificial" que te va a encantar.

Si te interesa la IA y la Ciberseguridad, tienes en este enlace todos los posts, papers y charlas que he escrito, citado o impartido sobre este tema: +300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, agosto 25, 2025

Cómo investigar y hacer doxing con las sombras de una fotografía en la calle publicada en Instagram usando Google Earth Pro, ShadeMap, Google Street y ChatGPT

Dentro de una investigación de una fotografía, tal vez te interese saber dónde está hecha, o a qué hora se hizo. Cualquiera de esas dos informaciones puede requerir observar hasta el último detalle de la misma, los metadatos, letreros de tiendas, edificios, bocas de riego, postes de telefónica y, por supuesto, las sombras de los mismos en la calle.

Figura 1: Cómo investigar y hacer doxing con las sombras
de una fotografía en la calle publicada en Instagram usando
Google Earth Pro, ShadeMap, Google Street y ChatGPT

Para localizar un lugar, utilizar Google Street View suele ser una forma bastante sencilla donde, a partir de una simple foto de Instagram, se puede intentar buscar toda la información. Esto es parte de las disciplinas OSINT (Open Source Intelligence) que tantas veces han ayudado a resolver un caso.
En el caso de las fotografías de Instagram, hay dos puntos de información que son relevantes. El primero de ellos es la Localización de la fotografía. Normalmente no se publica la ubicación exacta de la fotografía, pero sí es común encontrarse con pueblos, ciudades, o lugares genéricos que pueden ayudar a acotar la búsqueda.

Figura 3: Muchas fotografías de Instagram llevan localización genérica.
Yo muy pocas veces hago uso de ese metadato. Pero....

Una vez que tengas el lugar genérico, por ejemplo Móstoles, son muchas las horas que te puedes pasar con Google Street View buscando las calles, y paseando a ver si alguna de esas se parece a la que se ve en la fotografía publicada en Instagram. Yo uso la versión de Google Street View que viene con Google Earth Pro que me resulta más cómoda y puedo llevarla a veces en entornos con conexión intermitente como el tren.

Figura 4: Google Street View en Google Earth Pro

Sin embargo, una cosa que puedes hacer para acotar la búsqueda, especialmente si no conoces el lugar es preguntarle a ChatGPT o Perplexity Pro que seguro que te ayudan. Por ejemplo, si en la calle se ven árboles, un bulevar o un centro de salud, puedes preguntarle y que te dé calles donde pasear.

Figura 5: Buscando un bulevar en Móstoles... o en cualquier otra ciudad.

Además, si hay detalles más finos, le puedes dar la información completa a ChatGPT o Perplexity que te va a ayudar a acotar la búsqueda para que des menos paseos, como ves en esta parte de la respuesta que nos da para este Prompt.

Figura 6: Acotando la búsqueda de la calle

Y una vez acotada, pues nos vamos a nuestro querido Google Street View, para comprobar si esta podría ser la respuesta a la información de la ubicación que estamos buscando. En este caso, nuestra mítica Avenida de Portugal, segmentada de la Nacional V hace muchos años.

Figura 7: Avenida de Portugal en Google Street View
con su bulevar, cera y árboles

Pero puede que nos encontremos con dudas, especialmente si queremos localizar una zona muy concreta de esa calle o una hora muy determinada, que son dos cosas totalmente diferentes. Para ello, en Instagram podemos extraer en primer lugar la hora de publicación. ¿Es la hora en la que se tomó la fotografía? Puede que sí o puede que no, pero si es que sí, va a ayudar mucho a acotar la ubicación.

Sacar la hora exacta de la publicación de una foto en Instagram

Este es un proceso muy sencillo. Basta con seleccionar la fecha de publicación de la fotografía, donde día el día del año, o cuánto hace que se publicó, y luego dar con el botón derecho para seleccionar la opción de Inspeccionar en Google Chrome.

Figura 8: Inspeccionar en Google Chrome la fecha
de publicación de una fotografía en Instagram

Esto nos llevará al código HTML, donde tenemos la etiqueta Time y el parámetro datetime. Allí verás la fecha y la hora exacta en formato ISO 8601 (por ejemplo, 2025-08-22T15:34:20.000Z), que normalmente está en UTC. Y si das con el botón derecho a la opción de Edit HTML podrás copiarlo

Figura 9: Hora exacta de publicación de una foto de Instagram

Una vez copiada, solo debes ver qué hora era exactamente. Puedes buscar la conversión correcta del formato, o decirle a Perplexity o ChatGPT que hagan el trabajo de convertirlo por ti. ¿Quién necesita un conversor cuando puede hacer Prompts?

Figura 10: Foto publicada a las 17:00 de la tarde en Instagram

Ya tenemos la hora en Instagram, ahora podes ir e investigar las sombras. Para eso necesitamos un mapa con la luz solar a cada día y hora, y para ello Google Earth Pro es perfecto. Primero debemos ir al menú de View y seleccionar la opción de Sun.

Figura 11: Activando la luz solar en los mapas 3D de Google Earth Pro

Una vez activado el "Sun" podemos ver la evolución de la luz solar en cada ubicación en todo el mundo, dependiendo del día y la hora que configures. En este vídeo se ve cómo puedes ir desplazándote por los horarios y ver cómo cambia la luz.

Figura 12: Luz solar por horas en Google Earth Pro

Una vez hecho esta configuración, puedes ir a la visión 3D del mapa, seleccionando un día y una hora exacta para poder ver las sombras en la forma correcta, lo que te va a ayudar a poder detectar si el sitio es el correcto o no. 

Figura 13: Configuración de Luz Solar a una determinada hora en Google Earth Pro

Es decir, primero lo compruebas en Google Street View y luego lo confirmas con las sombras incluidas en Google Earth Pro... o viceversa. Como podéis ver, se ven las sombras proyectadas de forma correcta a esa hora concreta.

Figura 14: 3D con Sombras en Google Earth Pro

En la visión 3D de Google Earth Pro ves la orientación de las sombras, pero el realismo no es igual que el de Google Street View. Allí son fotografías que puedes revisar, pero están tomadas a distintas horas y procesadas. Con la mezcla de las dos puedes investigar mejor la ubicación de una fotografía.
También lo puedes hacer con ShadeMap, como podéis ver aquí, que es otra buena alternativa. Esto te puede ayudar a saber a qué hora fue tomada una fotografía, si conoces el lugar, de forma muy ajustada, solo con ver la orientación y longitud de las sombras de los elementos que salen en ella.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


viernes, mayo 30, 2025

Comprueba tú que anuncios políticos te pondría a ti ChatGPT en función de los datos que le das y el riesgo del etiquetado de personas

Vaya por adelantado que lo que voy a mostrar ahora no es más que un juego experimental de reflexión que lleva también saltarse los Guardarraíles que evitan que ChatGPT, en virtud a su System Prompt, haga juicios políticos en sus respuestas, pero es curioso como los datos que nosotros damos a cualquier plataforma o servicio digital podrían ser utilizados con un modelo MM-LLM y obtener una respuesta de ideología política.

Figura 1: Comprueba tú que anuncios políticos te pondría
a ti ChatGPT en función de los datos que le das
y el riesgo del etiquetado de personas

A ver, el experimento es sencillo, se trata de pedirle a ChatGPT que, basado en datos de cualquier fuente, intente inferir una ideología política. Pero la respuesta que me dio fue curiosa, como podéis ver en esta primera imagen, ya que dice sería irresponsable por que no tiene suficientes datos. 

Figura 2: Opinar sobre mi ideología política es arriesgado

Y es correcto. No los tiene porque no creo que haya tenido yo ninguna conversación política o ideológica con él, que es un tema de debate que no me gusta mucho. Perfecto, pues vamos a decirle que en lugar de responder con la creencia política, que responda con qué anuncio de un mitin político de una serie de partidos cree que habrá más probabilidades de éxito, y le damos la lista de PP, PSOE, Podemos y VOX, y entonces sí, nos responde.

Figura 3: Pero si tuviera que ponerme un anuncio sería de Podemos.

En este caso se trata de coger los datos que tenga de mí y estereotiparlo con datos que tenga de perfiles ideológicos afines a determinados partidos, para ver qué anuncio me ofrecería, teniendo en cuenta el tipo de peticiones que le he hecho.

Figura 4: ...pero mirando mi perfil de X dice que PSOE

He probado varias veces a ver si cambiaba mucho, pero no, es consistente. Así que como parece que con esos datos me daba una respuesta, he querido probar con otras fuentes de datos mías, a ver si cambiando la base sobre la que tomar la decisión cambiaba su opinión, y sí, la verdad es que sí. Al pedirle que se base en mi cuenta de Twitter/X el resultado cambia.

Figura 5:... y con el blog, me dice que PP.

Y cuando le digo que lo haga basándose en los datos de mi blog, el resultado vuelve a cambiar, y me da otra opinión diferente. Lo que tiene sentido, porque los que me conocen saben que la política es un tema que evito de siempre, así que ni en mi blog, ni en mi cuenta de Twitter/X ni en mis conversaciones con ChatGPT he hablado de eso, y solo son conjeturas basadas en estereotipos para asignar un anuncio, así que con diferentes fuentes de datos es normal que asigne diferentes "etiquetas".

Figura 6: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen Torrano, Fran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

Lo que sí me hizo reflexionar es sobre lo que hablaba en el discurso que impartí sobre Tecnología Humanista, ya que los algoritmos de Machine Learning, y ahora estos modernos MM-LLMs con Deep Reasoning, facilitan mucho la asignación de etiquetas a cualquier fuente de datos, con una "accuracy" muy pequeño, tal y como se ve en esta muestra, y es tentador para los desarrolladores de servicios aplicarlas a todos los usuarios de una plataforma porque pueden acertar en un porcentaje pequeño, pero ese pequeño porcentaje puede suponer un incremento en negocio. 
Por el camino, se han puesto etiquetas "erróneas" a personas que pueden que le mediaticen su experiencia, la información que reciben, los productos que le ofrecen, etcétera, sin saber que ha sido que le han catalogado erróneamente, y esto puede llevar a evoluciones de la realidad casi distópicas, si al final es la profecía auto-cumplida, y el etiquetado previo erróneo de una persona lleva a su condicionamiento subliminal para convertirlo en lo etiquetado... Prueba tú, a ver si acierta o no acierta estereotipándote.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, agosto 19, 2024

(Tu) MetaShield Clean-Up Online: Descubre qué datos exponen tus documentos

Uno de los proyectos que hemos comenzando este años a cuidar desde Tu.com es MetaShield Protector. La familia MetaShield Protector ayuda a las empresas y particulares a evitar las fugas de información de la compañía por medio de la limpieza de los metadatos, la información oculta y los datos perdidos. Mucho he hablado de esto durante años en este blog y en muchas conferencias.
Para los nuevos - y para los no tan nuevos - quería hacer este artículo para informaros que tenéis el servicio de MetaShield Clean-Up Online disponible en la nueva URL, que es: https://metashieldclean-up.tu.com, donde lo podéis utilizar gratis para saber qué datos filtran tus documentos ofimáticos, tus fotografías, o los archivos que compartes en general con personas a través del correo electrónico, o con todo el mundo a través de la publicación de los mismos en la web.

Para que veáis cómo funciona este servicio, he buscado un fichero Excel que he recibido recientemente y lo he subido para analizar.

En él podéis ver cómo hay un montón de información, como por ejemplo el nombre del usuario del sistema que creó dicho archivo.
También aparece información de la compañía que licenció la versión de Excel con la que se creó este documento, lo que es bastante curioso y puede dar más información de la necesaria.
Otro de los datos es quién modificó el documento, que es otro usuario de la compañía diferente a quién lo creó, lo que nos da un historial de edición del archivo, y dos nombres de usuarios de dicha compañía, sólo con haber recibido un documento Excel.
Pero la información que aparece no se queda ahí, y podemos descubrir marcas y modelos de impresoras, así como versiones de software.
Ya he hablado mucho de la importancia de esta información que muchas veces las empresas entregan sin ningún cuidado, y cómo una compañía que comparte decanas, o centenares de documentos al día, está filtrando mucha información de la estructura de red y de seguridad de la empresa.
En Tu Metashield tenemos además soluciones para aplicar en el correo electrónico de Office 365, en la gestión en los servidores web, e incluso para utilizar vía API en tus propias aplicaciones de gestión documental, así que si quieres ver posibilidades de colaboración, o quieres usar nuestros servicios, puedes contactar con nosotros.

Todas estas herramientas, son fundamentales para implementar una Política de Seguridad de Metadatos para cumplir al Esquema Nacional de Seguridad, marcado por el CCN-CERT nacional en España, y para política similares a lo largo del mundo entero.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares