Blog

LLM: ¿Un enfoque (im)perfectamente humano para una programación segura?

February 1, 2024
Pieter Danhieux
Pantalla de portátil que brilla con líneas verticales de código verde y morado en un entorno oscuro.

Una versión de este artículo apareció en Dark Reading. Ha sido actualizado y distribuido aquí.

‍

Desde los primeros rumores sobre las últimas herramientas de IA que han sacudido la cultura, tanto los desarrolladores como los curiosos de la programación las han utilizado para generar código con solo pulsar un botón. Los expertos en seguridad señalaron rápidamente que, en muchos casos, el código producido era de mala calidad y vulnerable, y que, en manos de personas con poca conciencia sobre seguridad, podría provocar una avalancha de aplicaciones y desarrollos web inseguros que afectarían a consumidores desprevenidos.

Y luego están aquellos que tienen suficientes conocimientos de seguridad para usarla para, bueno, el mal. Por cada proeza asombrosa de la IA, parece haber un contraataque de la misma tecnología utilizada para fines nefastos. Phishing, vídeos falsos (deepfakes), creación de malware, travesuras de aficionados... estas actividades disruptivas se pueden lograr mucho más rápido y con menores barreras de entrada.

Sin duda, hay mucho clickbait que promociona estas herramientas como revolucionarias, o al menos superiores cuando se comparan con la habilidad humana «promedio». Aunque parece inevitable que la tecnología de IA tipo LLM cambie nuestra forma de abordar muchos aspectos del trabajo, y no solo el desarrollo de software, debemos dar un paso atrás y considerar los riesgos más allá de los titulares.

Y, como compañero de programación, sus defectos son quizás su atributo más «humano».

Los patrones de codificación deficientes dominan sus soluciones habituales

Dado que ChatGPT ha sido entrenado con décadas de código y bases de conocimiento existentes, no es de extrañar que, a pesar de todas sus maravillas y misterios, también sufra los mismos errores comunes que enfrentan las personas al navegar por el código. Los patrones de codificación deficientes son su opción predeterminada, y todavía se necesita un conductor con conocimientos de seguridad para generar ejemplos de código seguro mediante las preguntas adecuadas y una ingeniería de prompts correcta.

Incluso entonces, no hay garantía de que los fragmentos de código proporcionados sean precisos y funcionales desde una perspectiva de seguridad; la tecnología es propensa a las alucinaciones, llegando incluso a inventar librerías inexistentes cuando se le pide realizar operaciones JSON específicas, tal como descubrió Mike Shema. Esto podría dar lugar a la «ocupación por alucinación» por parte de actores malintencionados, quienes estarían encantados de crear malware disfrazado de la librería fabricada que ChatGPT recomendó con total confianza.

En última instancia, debemos afrontar la realidad de que, por lo general, no hemos esperado que los desarrolladores tengan suficiente conciencia sobre seguridad, ni como industria los hemos preparado adecuadamente para escribir código seguro como estado predeterminado. Esto será evidente en la enorme cantidad de datos de entrenamiento con los que se alimenta a ChatGPT, y podemos esperar resultados de seguridad igualmente mediocres en sus resultados, al menos inicialmente. Los desarrolladores tendrían que ser capaces de identificar los errores de seguridad y, o bien corregirlos ellos mismos, o diseñar mejores prompts para obtener un resultado más sólido.

El primer estudio de usuario a gran escala que examina cómo los usuarios interactúan con un asistente de programación de IA para resolver diversas funciones relacionadas con la seguridad, realizado por investigadores de la Universidad de Stanford, respalda esta idea, con una observación que concluye:

«Observamos que los participantes que tuvieron acceso al asistente de IA fueron más propensos a introducir vulnerabilidades de seguridad en la mayoría de las tareas de programación, pero también más propensos a calificar sus respuestas inseguras como seguras en comparación con los del grupo de control».

Esto demuestra un nivel de confianza predeterminada en que los resultados de las herramientas de programación de IA son siempre intrínsecamente seguros, cuando en realidad no lo son.


Entre esto y las inevitables amenazas derivadas de la IA que impregnarán nuestro futuro, ahora más que nunca, los desarrolladores deben perfeccionar sus habilidades de seguridad y elevar el estándar de calidad del código, sin importar su origen.

El camino hacia un desastre por brecha de datos está pavimentado de buenas intenciones

No debería sorprender que los compañeros de programación de IA sean populares, especialmente cuando los desarrolladores se enfrentan a una responsabilidad creciente, plazos más ajustados y las ambiciones de innovación de una empresa sobre sus hombros. Sin embargo, incluso con las mejores intenciones, la falta de conciencia de seguridad práctica al usar IA para programar conducirá inevitablemente a problemas de seguridad evidentes. Todos los desarrolladores que utilicen herramientas de IA/ML generarán más código, y su nivel de riesgo de seguridad dependerá de su nivel de habilidad. Las organizaciones deben ser plenamente conscientes de que las personas sin formación sin duda generarán código más rápido, pero también aumentarán la velocidad de la deuda técnica de seguridad.

Incluso nuestra prueba preliminar (abril de 2023) con ChatGPT ha revelado que generará errores muy básicos que podrían tener consecuencias devastadoras. Cuando le pedimos que creara una rutina de inicio de sesión en PHP usando una base de datos MySQL, generó código funcional rápidamente. Sin embargo, por defecto, almacenó las contraseñas en texto plano en la base de datos, guardó las credenciales de conexión a la base de datos en el código y utilizó un patrón de codificación que podría resultar en una inyección SQL (aunque realizó cierto nivel de filtrado en los parámetros de entrada y mostró errores de base de datos). Todos ellos, errores de novato bajo cualquier estándar:
‍

Las recomendaciones de ChatGPT no son necesariamente seguras y pueden ser peligrosas en algunos casos.

‍
Un prompting adicional aseguró que los errores se corrigieran, pero se requieren conocimientos de seguridad significativos para rectificar el rumbo. El uso generalizado y sin control de estas herramientas no es mejor que dejar a desarrolladores junior sueltos en sus proyectos, y si este código está construyendo infraestructura sensible o procesando datos personales, entonces estamos ante una bomba de relojería.

Por supuesto, al igual que los desarrolladores junior mejoran sus habilidades con el tiempo, esperamos que las capacidades de IA/ML mejoren. Dentro de un año, es posible que no cometa errores de seguridad tan obvios y simples. Sin embargo, eso tendrá el efecto de aumentar drásticamente la habilidad de seguridad necesaria para detectar los errores de seguridad más graves, ocultos y no triviales que todavía corre el riesgo de producir.

Seguimos mal preparados para encontrar y corregir vulnerabilidades de seguridad, y la IA amplía la brecha

Aunque se lleva años hablando de «desplazar la seguridad a la izquierda» (shifting left), lo cierto es que, en la mayoría de las organizaciones, el equipo de desarrollo carece de conocimientos prácticos en seguridad. Debemos esforzarnos más por ofrecerles las herramientas y la formación adecuadas para facilitarles el camino.

Tal como están las cosas, no estamos preparados para los fallos de seguridad habituales, por no hablar de los nuevos problemas derivados de la IA, como la inyección de prompts y el «hallucination squatting», que suponen vectores de ataque totalmente nuevos que se propagarán como la pólvora. Las herramientas de programación con IA son el futuro del arsenal de cualquier desarrollador, pero la formación para utilizar estas armas de productividad de forma segura debe empezar ya.

‍

Advertisement urging developers to download for security skills in AI development tools by Secure Code Warrior.
¿Quieres saber más? Descarga nuestro informe técnico más reciente.
Eslogan

Controle el desarrollo impulsado por IA antes de su lanzamiento

Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).

Reservar una demostración
Biblioteca de recursos

Explorar más blogs

Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

ver todo
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Una cultura de seguridad: cómo Sage creó su programa de defensores

Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Más información
Icono de ventana de navegador con las letras KVK en negrita y dos líneas horizontales azules debajo sobre un fondo azul degradado.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores

La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Más información
Logotipo de Insurance Australia Group con texto y un icono en azul y gris dentro del diseño de una ventana de navegador web.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro

IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial

Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Habilitador 8: Branding de su programa

Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cada empleado está ahora en la primera línea de la ciberseguridad de la IA

El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.

Más información

Proteja el desarrollo basado en IA antes de su lanzamiento

Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.

Reservar una demostración
No se encontraron elementos.