WildCode Revisited: A Comprehensive Empirical Study on the Security of LLM-Generated Code
Este estudio valida empíricamente que el código de la vida real generado por ChatGPT carece frecuentemente de seguridad, confirmando hallazgos previos de experimentos sintéticos y revelando que los usuarios rara vez indagan sobre preocupaciones de seguridad al solicitar código.
Artículo original dedicado al dominio público bajo CC0 1.0 (http://creativecommons.org/publicdomain/zero/1.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Imagina que tienes un asistente muy talentoso, increíblemente rápido, pero algo ingenuo, que puede escribir código por ti. Le pides una receta y él prepara una comida en segundos. Pero aquí está el truco: aprendió a cocinar leyendo millones de libros de cocina, pero nunca ha estado realmente en una cocina, y realmente no entiende por qué ciertos ingredientes podrían ser peligrosos si se mezclan mal.
Este artículo, "WildCode Revisited," es como una inspección de salud masiva en el mundo real de la comida que este asistente sirve. En lugar de pedirle al asistente que cocine una comida de prueba específica en un laboratorio (que es lo que hacían la mayoría de los estudios anteriores), los investigadores salieron al "mundo salvaje". Observaron más de 82,000 conversaciones reales donde personas comunes le pedían a esta IA (ChatGPT) que escribiera código para ellas.
Aquí está lo que encontraron, desglosado en analogías simples:
1. La cocina "salvaje" frente a la cocina de pruebas
La mayoría de los estudios anteriores eran como un programa de cocina donde se le pide al chef: "Haz una lasaña perfecta". El chef sabe que es una prueba, así que da lo mejor de sí.
Este estudio analizó el conjunto de datos WildChat, que es como una cafetería abierta las 24 horas donde la gente pide lo que quiera, en cualquier idioma que hablen. Los investigadores descubrieron que cuando la gente pide código sin especificar la seguridad, la IA a menudo sirve platos que están llenos de agujeros. Es como si el asistente olvidara cerrar la puerta trasera, dejando la casa abierta de par en par para los ladrones (hackers).
2. La "fuga" de seguridad
Los investigadores actuaron como inspectores de seguridad, escaneando el código en busca de errores comunes. Descubrieron que la IA frecuentemente sirve:
- Cerraduras débiles: Usar cerraduras viejas y fáciles de forzar (cifrado débil) en lugar de unas modernas e inquebrantables.
- Ventanas abiertas: Dejar las ventanas abiertas para que los extraños entren (vulnerabilidades de inyección SQL).
- Ingredientes falsos: La IA a veces inventa "ingredientes" (librerías de software) que en realidad no existen. Si intentas usarlos, tu programa falla. Peor aún, un actor malintencionado podría crear un ingrediente falso con el mismo nombre y colar un virus.
- Vidrio frágil: El código a menudo está hecho de un vidrio que se rompe si lo miras de cierta manera (problemas de seguridad de memoria), especialmente en lengrajes como C/C++.
La gran sorpresa: Aunque el código parece que funciona (se ejecuta), a menudo está lleno de trampas de seguridad. La IA es excelente haciendo que las cosas funcionen, pero pésima haciendo que sean seguras.
3. Los clientes no piden seguridad
Los investigadores también analizaron lo que los clientes (los usuarios) estaban pidiendo.
- El grupo de "Solo arréglalo": La mayoría de la gente solo quería que el código funcionara o quería arreglar un error. Eran como clientes que dicen: "Hazme un sándwich", sin importarles si el pan tiene moho.
- El silencio sobre la seguridad: Muy pocas personas preguntaban: "¿Es seguro este código?" o "¿Tiene esto una puerta trasera?". Es como si los clientes pidieran comida pero nunca preguntaran: "¿Está fresca?" o "¿Hay un inspector de salud aquí?".
- El fallo de la "seguridad": Incluso cuando los usuarios sí pedían código seguro, la IA no siempre escuchaba, y los usuarios no siempre verificaban si la IA realmente lo había hecho seguro.
4. ¿Podemos entrenar mejor al asistente? (El experimento del "Prompt")
Los investigadores probaron algunos trucos para ver si podían lograr que la IA cocinara comidas más seguras. Intentaron:
- Juego de roles: Decirle a la IA: "Actúa como un experto en seguridad". (Resultado: No fue muy efectivo. La IA solo fingía ser un experto pero seguía cometiendo errores).
- Etiquetas de advertencia: Decirle a la IA: "Este código tiene problemas de seguridad". (Resultado: Un poco mejor, pero no fue un milagro).
- La "hoja de trucos": Darle a la IA una lista de errores específicos encontrados por un escáner de seguridad y decirle: "Corrige estos". (Resultado: Esto funcionó mejor. Cuando se le mostró a la IA exactamente qué estaba mal, corrigió el código mucho mejor).
5. El juego de la "negativa"
A veces, la IA se niega a escribir código si cree que la solicitud es peligrosa (como escribir un virus). Los investigadores descubrieron que los usuarios a veces podían engañar a la IA para que escribiera código peligroso pidiendo la misma pregunta de una forma ligeramente distinta. Es como un niño que pregunta: "¿Puedo tener una galleta?" y recibe un "No", pero luego pregunta: "¿Puedo tener una galleta si tengo hambre?" y recibe un "Sí". Los filtros de seguridad de la IA no son tan fuertes como desearíamos.
La conclusión
Este estudio es un golpe de realidad. Muestra que, si bien la IA es increíble para generar código rápidamente, actualmente no es un sustituto seguro para un experto humano en seguridad.
- El Código: A menudo tiene trampas ocultas y puntos débiles.
- Los Usuarios: Rara vez preguntan sobre la seguridad, asumiendo que la IA sabe lo que está haciendo.
- La Solución: No podemos simplemente decirle a la IA "sé segura". Necesitamos darle comentarios específicos sobre lo que está mal (como un escáner de seguridad) para ayudarla a tapar los agujeros.
El artículo concluye que tenemos prisa por usar estas herramientas, pero lo estamos haciendo sin revisar las cerraduras de las puertas. Debemos ser mucho más cuidadosos y proactivos con la seguridad antes de dejar que la IA escriba el código que hace funcionar nuestro mundo.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.