Seamos realistas: los desarrolladores de software no siempre reciben la formación más completa. Por eso, en ocasiones escriben código poco seguro mientras se ven sometidos a la presión de trabajar a una velocidad superior a la humana. Ahora, en la era de la inteligencia artificial, recurren cada vez más a herramientas capaces de generar fragmentos de código con mayor rapidez y —en realidad, todos nosotros— tendemos a confiar más en ese código que en el generado por personas.
Esa rapidez y esa confianza no constituyen una buena combinación para la seguridad de las aplicaciones.
La mayor velocidad de desarrollo de código que permiten los modelos de lenguaje a gran escala (LLM) de y , así como la inteligencia artificial generativa (GenAI) , se traduce en una mayor velocidad de aparición de vulnerabilidades, lo que está generando actualmente una serie de nuevos retos para las pruebas de seguridad, la corrección de fallos y la gobernanza inteligente de la IA.
A medida que se acerca la edición 2024 de Black Hat USA, una de las sesiones más esperadas es «: De HAL a HALT: cómo frustrar a los hermanos de Skynet en la era de la programación con IA generativa» ("), a cargo de Chris Wysopal, un reconocido líder en seguridad de aplicaciones y cofundador de Veracode.
En una sesión informativa exclusiva celebrada justo antes de Black Hat USA 2024, el responsable de « », , se reunió con Wysopal para abordar los temas clave que tratará en su sesión. A continuación, les presentamos algunas ideas clave extraídas de nuestra conversación, que ofrecen un adelanto de lo que los asistentes podrán aprender sobre la intersección entre la IA generativa y la ciberseguridad.
Esta entrevista se ha editado ligeramente para ajustar su extensión y mejorar su claridad.
En su sesión de Black Hat se mencionan (HAL) y (Skynet) , algunos de los momentos más infames de Hollywood relacionados con la inteligencia artificial. A menos que Arnold Schwarzenegger irrumpa en nuestras oficinas, ¿qué grado de cambio cree usted que se avecina realmente?
El objetivo de esta sesión es analizar cómo el código generado por modelos de lenguaje grande (LLM) constituye probablemente uno de los principales usos de estos modelos en la actualidad. Está creciendo y tiene un potencial increíblemente enorme. Esto va a cambiar la forma en que se desarrolla el software.
«El código generado por modelos de lenguaje grande (LLM) es probablemente uno de los principales usos de estos modelos en la actualidad. Está creciendo y tiene un potencial increíblemente enorme.»
Para mí, como persona que lleva más de 25 años trabajando en el ámbito de la seguridad de las aplicacion es , esto supone un cambio enorme en el desarrollo de software. Por lo general, cuando se producen cambios en el desarrollo de software, también se producen cambios en la seguridad de las aplicaciones. Por lo tanto, esta ponencia trata sobre cómo la IA generativa —es decir, el código generado— va a transformar la seguridad de las aplicaciones.
[Read also: A procrastinator’s guide to Black Hat USA 2024 – and how to watch later]
Usted ha mencionado que el código generado por modelos de lenguaje grande (LLM) puede ser tan inseguro como el código generado por personas. ¿Qué implicaciones tiene esto para las empresas que utilizan herramientas como ChatGPT o Microsoft Copilot?
Existen varios estudios realizados por la Universidad de Stanford, la Universidad de Wuhan y la Universidad Carnegie Mellon que han analizado este problema y, en esencia, han concluido que estos modelos de lenguaje a gran escala (LLM) generan código que es prácticamente tan inseguro como el código generado por personas. Si se introducen datos erróneos, se obtienen resultados erróneos. Si aprende a hacer algo de una determinada manera, es probable que lo haga así. Así pues, eso es, en cierto modo, el punto de partida de referencia. Y entonces uno se pregunta: «Bueno, ¿qué hacemos al respecto?».
¿Cómo pueden las empresas aprovechar la IA general en su beneficio y garantizar al mismo tiempo un desarrollo de software seguro?
[En lugar de entrenar] un modelo base para que aprenda a escribir código, podemos ajustarlo y proporcionarle ejemplos de cómo es el código deficiente. Y si ve este código incorrecto y le piden que escriba un código correcto, así es como debería ser ese código correcto.
«[En lugar de entrenar] un modelo base sobre cómo escribir código, podemos ajustarlo y proporcionarle ejemplos de cómo es el código defectuoso.»
Una de las soluciones que consideramos viable es que utilice ChatGPT, Code Llama, Copilot, ya que estos recursos cuentan con los mejores conocimientos sobre cómo escribir diferentes tipos de código para numerosos lenguajes de programación y resolver diversos problemas de programación. E ignore el hecho de que se está escribiendo código vulnerable, del mismo modo que ignora el hecho de que sus desarrolladores están escribiendo código vulnerable. Porque, francamente, no les está proporcionando una formación en programación segura tan rigurosa como para que escriban código seguro de gran calidad en todo momento. Básicamente, lo que está diciendo es: «Sé que mis desarrolladores están escribiendo código inseguro».
Por lo tanto, sigue siendo necesario realizar pruebas de seguridad en y, y sigue siendo necesario corregir los problemas de seguridad.
¿Cómo cree que evolucionará el papel de la experiencia humana en esta era de la programación impulsada por la inteligencia artificial? ¿Sigue habiendo cabida para la revisión manual del código y las pruebas de seguridad?
Ya tenemos el problema de que en el código desarrollado por personas se detectan más errores de los que podemos corregir, ¿verdad? Así pues, se enfrenta a esta deuda de seguridad cada vez mayor. Ya de por sí no está dedicando suficientes recursos para solucionar todos los problemas que está detectando con su automatización de .
Pues ese es, por así decirlo, el problema con el que partimos. Y ahora vamos a agravar ese problema al escribir más código más rápidamente, con prácticamente el mismo nivel de seguridad. Aunque fuera el doble de bueno, aunque tuviera la mitad de densidad de vulnerabilidades, seguiría teniendo un problema mayor si ejecutara el triple de código por desarrollador. Por lo tanto, al utilizar los modelos de lenguaje grande (LLM) en el desarrollo, estamos generando más vulnerabilidades.
Así que sí, necesitamos herramientas rápidas en el proceso de CI/CD de que detecten el problema, pero también necesitamos herramientas rápidas que lo solucionen.
[Lea también: Guía definitiva sobre ciberseguridad basada en la IA: ventajas, riesgos y beneficios]
Ha hablado usted sobre el potencial del aprendizaje recursivo y la degeneración del conocimiento en los modelos de IA. ¿Podría profundizar en esta cuestión y en sus implicaciones para la ciberseguridad?
Sí, esto está empezando a convertirse en algo que preocupa a la gente. El aprendizaje a partir de contenidos generados por IA tiene efectos perjudiciales sobre el conocimiento, ya que, en realidad, se está aprendiendo de esas «alucinaciones» . Así pues, la idea es la siguiente: ¿qué pasaría si la mayor parte del código que se escribe lo escribieran los modelos de lenguaje grande (LLM) y, como todos sabemos, esos modelos cometieran algunos errores? ¿Supone eso un problema para la próxima generación de código, de la que va a aprender?
«Adelante, utilice su ChatGPT, su Code Llama, su Copilot… E ignore el hecho de que está generando código vulnerable, [porque] seguirá teniendo que realizar pruebas para detectar problemas de seguridad y seguirá teniendo que solucionarlos.»
¿Sabe usted? Esa próxima generación de modelos de lenguaje grande (LLM): dentro de tres años, cuando esté aprendiendo, ¿lo hará quizá a partir del 10 % del código que se escriba en el mundo y que haya sido creado por modelos de lenguaje grande? ¿Y empezará a aumentar? Quizás algún día escribamos código casi siempre con modelos de lenguaje grande (LLM), y apenas haya interacción humana. ¿Qué significa eso si los modelos de lenguaje a gran escala (LLM) aprenden de otros, de modo que nosotros simplemente estamos aprendiendo de los resultados de otros LLM?
Apenas estamos empezando a comprender cómo esto tiene un efecto degenerativo sobre el conocimiento, y es posible que tengamos que marcar el código generado por los modelos de lenguaje grande (LLM) para no entrenar futuros modelos de este tipo con dicho código. O algo por el estilo.
¿Qué cuestiones éticas plantea el uso de la IA generativa para la programación, especialmente en lo que respecta a la atribución del código y a los derechos de autor?
Tiene el mismo problema que se plantea con los artículos de del *New York Times* o, por ejemplo, con el libro de Sarah Silverman: ella ha presentado una demanda porque escribió algunos chistes en un libro que nunca ha interpretado en ningún sitio. Simplemente aparecía en el libro, y ahora aparece en las respuestas de ChatGPT cuando, por ejemplo, se le pide: «Escríbame un chiste sobre esto», y utiliza los chistes de ella.
Por lo tanto, queda claro que simplemente está utilizando mi contenido y mi contenido protegido por derechos de autor. Pues eso es precisamente lo que ocurre con el código.
La mayor parte del código con el que se ha entrenado está bajo la licencia GPL (Licencia Pública General) de . Por lo tanto, es necesario indicar la autoría y, en algunos casos, la licencia « » (GPL 3) le obligaría a publicar el código de su software, en caso de que lo incluya. Así pues, sí, se trata de un tema sobre el que aún no existe jurisprudencia, pero puedo decirle que los abogados están muy preocupados al respecto, y lo que están haciendo es analizar el código mediante el análisis de fragmentos de código para intentar encontrar coincidencias, con el fin de comprobar si es compatible con el código abierto; y si se trata de un fragmento de código lo suficientemente extenso, eso constituiría una infracción. Es decir, una sola línea de código que no puede infringir. Pero si se trata de una rutina completa… Si se trata de toda una clase, eso sí que constituye una infracción.
Para terminar, ¿qué es lo que más le ilusiona de Black Hat y qué espera que los asistentes se lleven de su sesión?
Lo que realmente quiero decir es que la IA generativa está teniendo un impacto enorme en la programación. Al igual que la transición a la nube o algo por el estilo, se trata de un cambio fundamental para las aplicaciones y debemos reflexionar sobre cómo esto va a modificar la seguridad del software en el futuro.
Necesitamos contar con procedimientos adecuados para que esto no empeore la situación. Como la corrección automática: creo que esa es una buena idea. Nuestra labor consiste en garantizar que, ya seamos un banco como o una empresa de software como , todo lo que lancemos al mercado en materia de software sea seguro; y si la IA generativa está provocando que sea menos seguro, debemos dar una respuesta. Ese es mi mensaje principal.
MÁS INFORMACIÓN EN BLACK HAT USA 2024
No se pierda esta oportunidad de escuchar a una de las mentes más destacadas del ámbito de la ciberseguridad y de participar en el debate sobre el futuro de la inteligencia artificial y la seguridad de las aplicaciones en Black Hat USA 2024. La sesión de Chris Wysopal en Black Hat USA 2024 es una cita ineludible para todos los profesionales de las tecnologías de la información, así como para los directivos de empresas que deseen obtener una visión más clara de uno de los principales obstáculos para la seguridad de la inteligencia artificial.
- Sesión: De HAL a HALT: cómo frustrar a los hermanos de Skynet en la era de la programación con IA generativa
- Fecha: Miércoles, August 7
- Horario: 1:30 - 2:10 p.m. PT
- Ubicación: Oceanside A, planta 2

