Reino: Input Validation and Representation

Los problemas de validación y representación de entradas están causados por metacaracteres, codificaciones alternativas y representaciones numéricas. Los problemas de seguridad surgen de entradas en las que se confía. Estos problemas incluyen: «desbordamientos de búfer», ataques de «scripts de sitios», "SQL injection" y muchas otras acciones.

Prompt Injection

Abstract
Cuando envía datos no validados a solicitudes del sistema en modelos de IA, los atacantes pueden manipular los resultados o ejecutar acciones no autorizadas, lo que comprometería la integridad del sistema y la seguridad de los datos.
Explanation
En las aplicaciones de IA, las indicaciones del sistema proporcionan instrucciones de preprocesamiento o contexto que guía las respuestas de la IA. Los atacantes pueden crear entradas que, cuando se integran como indicaciones del sistema, alteran el comportamiento del modelo de IA para ejecutar operaciones no autorizadas o revelar información confidencial.

Ejemplo 1: El siguiente código ilustra una inyección de aviso del sistema a un cliente de chat de IA que utiliza Spring AI:

@GetMapping("/prompt_injection")
String generation(String userInput1, ...) {
return this.clientBuilder.build().prompt()
.system(userInput1)
.user(...)
.call()
.content();
}


En este ejemplo, el atacante manipula entradas no validadas en un mensaje del sistema, lo que puede provocar una violación de la seguridad.
References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 1427
[2] Standards Mapping - Common Weakness Enumeration Top 25 2024 [13] CWE ID 077
desc.dataflow.java.prompt_injection
Abstract
Cuando envía datos no validados a solicitudes del sistema en modelos de IA, los atacantes pueden manipular los resultados o ejecutar acciones no autorizadas, lo que comprometería la integridad del sistema y la seguridad de los datos.
Explanation
En las aplicaciones de IA, las indicaciones del sistema proporcionan instrucciones de preprocesamiento o contexto que guía las respuestas de la IA. Los atacantes pueden crear entradas que, cuando se integran como indicaciones del sistema, alteran el comportamiento del modelo de IA para ejecutar operaciones no autorizadas o revelar información confidencial.

Ejemplo 1: El siguiente código ilustra una inyección de aviso del sistema en el modelo de IA de Anthropic:

client = new Anthropic();

# Simulated attacker's input attempting to inject a malicious system prompt
attacker_input = ...

response = client.messages.create(
model = "claude-3-5-sonnet-20240620",
max_tokens=2048,
system = attacker_input,
messages = [
{"role": "user", "content": "Analyze this dataset for anomalies: ..."}
]
);
...


En este ejemplo, el atacante manipula entradas no validadas en un mensaje del sistema, lo que puede provocar una violación de la seguridad.
References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 1427
[2] Standards Mapping - Common Weakness Enumeration Top 25 2024 [13] CWE ID 077
desc.dataflow.javascript.prompt_injection
Abstract
Cuando envía datos no validados a solicitudes del sistema en modelos de IA, los atacantes pueden manipular los resultados o ejecutar acciones no autorizadas, lo que comprometería la integridad del sistema y la seguridad de los datos.
Explanation
En las aplicaciones de IA, las indicaciones del sistema proporcionan instrucciones de preprocesamiento o contexto que guía las respuestas de la IA. Los atacantes pueden crear entradas que, cuando se integran como indicaciones del sistema, alteran el comportamiento del modelo de IA para ejecutar operaciones no autorizadas o revelar información confidencial.

Ejemplo 1: El siguiente código Python ilustra una inyección de aviso del sistema en el modelo de IA de OpenAI:

client = OpenAI()

# Simulated attacker's input attempting to inject a malicious system prompt
attacker_input = ...

completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": attacker_input},
{"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."}
]
)


En este ejemplo, el atacante manipula entradas no validadas en un mensaje del sistema, lo que puede provocar una violación de la seguridad.
References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 1427
[2] Standards Mapping - Common Weakness Enumeration Top 25 2024 [13] CWE ID 077
desc.dataflow.python.prompt_injection