LLMs: ¿Un enfoque (im)perfectamente humano de la codificación segura?
Una versión de este artículo apareció en Lectura oscura. Se ha actualizado y sindicado aquí.
Desde que se empezó a hablar de las últimas herramientas de inteligencia artificial, los desarrolladores y los curiosos de la programación las han utilizado para generar código con sólo pulsar un botón. Los expertos en seguridad no tardaron en señalar que, en muchos casos, el código que se generaba era de mala calidad y vulnerable, y que en manos de personas poco concienciadas en materia de seguridad podría provocar una avalancha de aplicaciones y desarrollos web inseguros que llegaría a consumidores desprevenidos.
Y luego están los que tienen suficientes conocimientos de seguridad como para utilizarlos para, bueno, hacer el mal. Por cada hazaña alucinante de la IA, parece que hay un contragolpe de la misma tecnología que se utiliza con fines nefastos. Phishing, vídeos de estafas falsas, creación de malware, travesuras de script kiddie en general... estas actividades perturbadoras se pueden conseguir mucho más rápido, con barreras de entrada más bajas.
No cabe duda de que hay muchos titulares que promocionan estas herramientas como revolucionarias o, al menos, como las mejores cuando se comparan con la habilidad humana "media". Aunque parece inevitable que la tecnología de IA al estilo LLM cambie la forma en que abordamos muchos aspectos del trabajo -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 codificación, sus defectos son quizá su atributo más "humano".
En sus soluciones predominan los patrones de codificación deficientes
ChatGPT se basa en décadas de código y bases de conocimiento existentes, por lo que no es de extrañar que, a pesar de toda su maravilla y misterio, también sufra los mismos problemas comunes a los que se enfrenta la gente cuando navega por el código. Los patrones de codificación deficientes son el pan de cada día, y sigue haciendo falta un conductor consciente de la seguridad para generar ejemplos de codificación seguros haciendo las preguntas adecuadas y ofreciendo la ingeniería de consulta adecuada.
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 la alucinación, incluso inventando bibliotecas inexistentes cuando se le pide que realice algunas operaciones JSON específicas, como descubrió Mike Shema. Esto podría dar lugar a "alucinaciones" por parte de los actores de amenazas, que estarían encantados de crear malware disfrazado de la biblioteca inventada recomendada con total confianza por ChatGPT.
En última instancia, tenemos que enfrentarnos a la realidad de que, en general, no hemos esperado que los desarrolladores sean lo suficientemente conscientes de la seguridad, ni nosotros, como industria, les hemos preparado adecuadamente para escribir código seguro por defecto. Esto se pondrá de manifiesto en la enorme cantidad de datos de formación introducidos en ChatGPT, y podemos esperar resultados de seguridad similares, al menos al principio. Los desarrolladores tendrían que ser capaces de identificar los fallos de seguridad y, o bien corregirlos ellos mismos, o bien diseñar mejores avisos para obtener un resultado más sólido.
El primer estudio a gran escala realizado por investigadores de la Universidad de Stanford en el que se examina cómo interactúan los usuarios con un asistente de codificación de inteligencia artificial para resolver una serie de funciones relacionadas con la seguridad corrobora esta idea:
"Observamos que los participantes que tenían acceso al asistente de IA eran más propensos a introducir vulnerabilidades de seguridad en la mayoría de las tareas de programación, aunque también más propensos a calificar sus respuestas inseguras como seguras en comparación con los de nuestro grupo de control."
Esto habla de un nivel de confianza por defecto en el resultado de las herramientas de codificación de IA como productoras de código que siempre es intrínsecamente seguro, cuando en realidad no lo es.
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 listón de la calidad del código sin importar su origen.
El camino hacia el desastre de la filtración de datos está empedrado de buenas intenciones
No debería sorprendernos que los compañeros de codificación de IA sean populares, sobre todo porque los desarrolladores se enfrentan a una responsabilidad cada vez mayor, plazos más ajustados y la ambición de la innovación de una empresa descansando sobre sus hombros. Sin embargo, incluso con las mejores intenciones, la falta de concienciación sobre la seguridad a la hora de utilizar la IA para la codificación 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 para la seguridad dependerá de su nivel de conocimientos. Las organizaciones deben ser muy conscientes de que las personas sin formación generarán sin duda código más rápidamente, 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 construyera una rutina de inicio de sesión en PHP utilizando una base de datos MySQL, el código funcional se generó rápidamente. Sin embargo, por defecto almacenaba las contraseñas en texto plano en una base de datos, almacenaba las credenciales de conexión a la base de datos en el código, y utilizaba un patrón de codificación que podría dar lugar a una inyección SQL (aunque, hizo algún nivel de filtrado en los parámetros de entrada y escupió errores de base de datos). Todos los errores de novato por cualquier medida:
Otras indicaciones aseguraron que se enmendaran los errores, pero se necesitan conocimientos importantes de seguridad para corregirlos. El uso generalizado y sin control de estas herramientas no es mejor que soltar a desarrolladores junior en tus 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 aumentan sin duda sus habilidades con el tiempo, esperamos que las capacidades de la IA/ML mejoren. Dentro de un año, puede que no cometa errores de seguridad tan obvios y sencillos. Sin embargo, eso tendrá el efecto de aumentar drásticamente la habilidad de seguridad requerida para rastrear los errores de seguridad más graves, ocultos y no triviales que todavía está en peligro de producir.
Seguimos estando mal preparados para detectar y corregir las vulnerabilidades de seguridad, y la IA aumenta la brecha.
Aunque se ha hablado mucho de "cambiar a la izquierda" durante muchos años, el hecho es que, en la mayoría de las organizaciones, hay una falta significativa de conocimientos prácticos de seguridad entre la cohorte de desarrollo, y debemos trabajar más duro para proporcionar las herramientas adecuadas y la educación para ayudarles en su camino.
En la actualidad, no estamos preparados para los errores de seguridad que estamos acostumbrados a encontrar, por no hablar de los nuevos problemas derivados de la IA, como la inyección inmediata y la alucinación en cuclillas, que representan vectores de ataque completamente nuevos que están listos para despegar como un reguero de pólvora. Las herramientas de codificación de IA representan el futuro del arsenal de codificación de un desarrollador, pero la educación para manejar estas armas de productividad de forma segura debe llegar ahora.
Aunque parece inevitable que la tecnología de IA al estilo LLM cambie nuestra forma de abordar muchos aspectos del trabajo -no sólo el desarrollo de software-, debemos dar un paso atrás y considerar los riesgos más allá de los titulares. Y como compañera de codificación, sus defectos son quizá su atributo más "humano".
Director General, Presidente y Cofundador
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDirector General, Presidente y Cofundador
Pieter Danhieux es un experto en seguridad mundialmente reconocido, con más de 12 años de experiencia como consultor de seguridad y 8 años como instructor principal de SANS enseñando técnicas ofensivas sobre cómo atacar y evaluar organizaciones, sistemas y personas en busca de debilidades de seguridad. En 2016, fue reconocido como una de las personas más cool de la tecnología en Australia (Business Insider), galardonado como Profesional de Seguridad Cibernética del Año (AISA - Asociación Australiana de Seguridad de la Información) y tiene certificaciones GSE, CISSP, GCIH, GCFA, GSEC, GPEN, GWAPT, GCIA.
Una versión de este artículo apareció en Lectura oscura. Se ha actualizado y sindicado aquí.
Desde que se empezó a hablar de las últimas herramientas de inteligencia artificial, los desarrolladores y los curiosos de la programación las han utilizado para generar código con sólo pulsar un botón. Los expertos en seguridad no tardaron en señalar que, en muchos casos, el código que se generaba era de mala calidad y vulnerable, y que en manos de personas poco concienciadas en materia de seguridad podría provocar una avalancha de aplicaciones y desarrollos web inseguros que llegaría a consumidores desprevenidos.
Y luego están los que tienen suficientes conocimientos de seguridad como para utilizarlos para, bueno, hacer el mal. Por cada hazaña alucinante de la IA, parece que hay un contragolpe de la misma tecnología que se utiliza con fines nefastos. Phishing, vídeos de estafas falsas, creación de malware, travesuras de script kiddie en general... estas actividades perturbadoras se pueden conseguir mucho más rápido, con barreras de entrada más bajas.
No cabe duda de que hay muchos titulares que promocionan estas herramientas como revolucionarias o, al menos, como las mejores cuando se comparan con la habilidad humana "media". Aunque parece inevitable que la tecnología de IA al estilo LLM cambie la forma en que abordamos muchos aspectos del trabajo -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 codificación, sus defectos son quizá su atributo más "humano".
En sus soluciones predominan los patrones de codificación deficientes
ChatGPT se basa en décadas de código y bases de conocimiento existentes, por lo que no es de extrañar que, a pesar de toda su maravilla y misterio, también sufra los mismos problemas comunes a los que se enfrenta la gente cuando navega por el código. Los patrones de codificación deficientes son el pan de cada día, y sigue haciendo falta un conductor consciente de la seguridad para generar ejemplos de codificación seguros haciendo las preguntas adecuadas y ofreciendo la ingeniería de consulta adecuada.
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 la alucinación, incluso inventando bibliotecas inexistentes cuando se le pide que realice algunas operaciones JSON específicas, como descubrió Mike Shema. Esto podría dar lugar a "alucinaciones" por parte de los actores de amenazas, que estarían encantados de crear malware disfrazado de la biblioteca inventada recomendada con total confianza por ChatGPT.
En última instancia, tenemos que enfrentarnos a la realidad de que, en general, no hemos esperado que los desarrolladores sean lo suficientemente conscientes de la seguridad, ni nosotros, como industria, les hemos preparado adecuadamente para escribir código seguro por defecto. Esto se pondrá de manifiesto en la enorme cantidad de datos de formación introducidos en ChatGPT, y podemos esperar resultados de seguridad similares, al menos al principio. Los desarrolladores tendrían que ser capaces de identificar los fallos de seguridad y, o bien corregirlos ellos mismos, o bien diseñar mejores avisos para obtener un resultado más sólido.
El primer estudio a gran escala realizado por investigadores de la Universidad de Stanford en el que se examina cómo interactúan los usuarios con un asistente de codificación de inteligencia artificial para resolver una serie de funciones relacionadas con la seguridad corrobora esta idea:
"Observamos que los participantes que tenían acceso al asistente de IA eran más propensos a introducir vulnerabilidades de seguridad en la mayoría de las tareas de programación, aunque también más propensos a calificar sus respuestas inseguras como seguras en comparación con los de nuestro grupo de control."
Esto habla de un nivel de confianza por defecto en el resultado de las herramientas de codificación de IA como productoras de código que siempre es intrínsecamente seguro, cuando en realidad no lo es.
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 listón de la calidad del código sin importar su origen.
El camino hacia el desastre de la filtración de datos está empedrado de buenas intenciones
No debería sorprendernos que los compañeros de codificación de IA sean populares, sobre todo porque los desarrolladores se enfrentan a una responsabilidad cada vez mayor, plazos más ajustados y la ambición de la innovación de una empresa descansando sobre sus hombros. Sin embargo, incluso con las mejores intenciones, la falta de concienciación sobre la seguridad a la hora de utilizar la IA para la codificación 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 para la seguridad dependerá de su nivel de conocimientos. Las organizaciones deben ser muy conscientes de que las personas sin formación generarán sin duda código más rápidamente, 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 construyera una rutina de inicio de sesión en PHP utilizando una base de datos MySQL, el código funcional se generó rápidamente. Sin embargo, por defecto almacenaba las contraseñas en texto plano en una base de datos, almacenaba las credenciales de conexión a la base de datos en el código, y utilizaba un patrón de codificación que podría dar lugar a una inyección SQL (aunque, hizo algún nivel de filtrado en los parámetros de entrada y escupió errores de base de datos). Todos los errores de novato por cualquier medida:
Otras indicaciones aseguraron que se enmendaran los errores, pero se necesitan conocimientos importantes de seguridad para corregirlos. El uso generalizado y sin control de estas herramientas no es mejor que soltar a desarrolladores junior en tus 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 aumentan sin duda sus habilidades con el tiempo, esperamos que las capacidades de la IA/ML mejoren. Dentro de un año, puede que no cometa errores de seguridad tan obvios y sencillos. Sin embargo, eso tendrá el efecto de aumentar drásticamente la habilidad de seguridad requerida para rastrear los errores de seguridad más graves, ocultos y no triviales que todavía está en peligro de producir.
Seguimos estando mal preparados para detectar y corregir las vulnerabilidades de seguridad, y la IA aumenta la brecha.
Aunque se ha hablado mucho de "cambiar a la izquierda" durante muchos años, el hecho es que, en la mayoría de las organizaciones, hay una falta significativa de conocimientos prácticos de seguridad entre la cohorte de desarrollo, y debemos trabajar más duro para proporcionar las herramientas adecuadas y la educación para ayudarles en su camino.
En la actualidad, no estamos preparados para los errores de seguridad que estamos acostumbrados a encontrar, por no hablar de los nuevos problemas derivados de la IA, como la inyección inmediata y la alucinación en cuclillas, que representan vectores de ataque completamente nuevos que están listos para despegar como un reguero de pólvora. Las herramientas de codificación de IA representan el futuro del arsenal de codificación de un desarrollador, pero la educación para manejar estas armas de productividad de forma segura debe llegar ahora.
Una versión de este artículo apareció en Lectura oscura. Se ha actualizado y sindicado aquí.
Desde que se empezó a hablar de las últimas herramientas de inteligencia artificial, los desarrolladores y los curiosos de la programación las han utilizado para generar código con sólo pulsar un botón. Los expertos en seguridad no tardaron en señalar que, en muchos casos, el código que se generaba era de mala calidad y vulnerable, y que en manos de personas poco concienciadas en materia de seguridad podría provocar una avalancha de aplicaciones y desarrollos web inseguros que llegaría a consumidores desprevenidos.
Y luego están los que tienen suficientes conocimientos de seguridad como para utilizarlos para, bueno, hacer el mal. Por cada hazaña alucinante de la IA, parece que hay un contragolpe de la misma tecnología que se utiliza con fines nefastos. Phishing, vídeos de estafas falsas, creación de malware, travesuras de script kiddie en general... estas actividades perturbadoras se pueden conseguir mucho más rápido, con barreras de entrada más bajas.
No cabe duda de que hay muchos titulares que promocionan estas herramientas como revolucionarias o, al menos, como las mejores cuando se comparan con la habilidad humana "media". Aunque parece inevitable que la tecnología de IA al estilo LLM cambie la forma en que abordamos muchos aspectos del trabajo -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 codificación, sus defectos son quizá su atributo más "humano".
En sus soluciones predominan los patrones de codificación deficientes
ChatGPT se basa en décadas de código y bases de conocimiento existentes, por lo que no es de extrañar que, a pesar de toda su maravilla y misterio, también sufra los mismos problemas comunes a los que se enfrenta la gente cuando navega por el código. Los patrones de codificación deficientes son el pan de cada día, y sigue haciendo falta un conductor consciente de la seguridad para generar ejemplos de codificación seguros haciendo las preguntas adecuadas y ofreciendo la ingeniería de consulta adecuada.
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 la alucinación, incluso inventando bibliotecas inexistentes cuando se le pide que realice algunas operaciones JSON específicas, como descubrió Mike Shema. Esto podría dar lugar a "alucinaciones" por parte de los actores de amenazas, que estarían encantados de crear malware disfrazado de la biblioteca inventada recomendada con total confianza por ChatGPT.
En última instancia, tenemos que enfrentarnos a la realidad de que, en general, no hemos esperado que los desarrolladores sean lo suficientemente conscientes de la seguridad, ni nosotros, como industria, les hemos preparado adecuadamente para escribir código seguro por defecto. Esto se pondrá de manifiesto en la enorme cantidad de datos de formación introducidos en ChatGPT, y podemos esperar resultados de seguridad similares, al menos al principio. Los desarrolladores tendrían que ser capaces de identificar los fallos de seguridad y, o bien corregirlos ellos mismos, o bien diseñar mejores avisos para obtener un resultado más sólido.
El primer estudio a gran escala realizado por investigadores de la Universidad de Stanford en el que se examina cómo interactúan los usuarios con un asistente de codificación de inteligencia artificial para resolver una serie de funciones relacionadas con la seguridad corrobora esta idea:
"Observamos que los participantes que tenían acceso al asistente de IA eran más propensos a introducir vulnerabilidades de seguridad en la mayoría de las tareas de programación, aunque también más propensos a calificar sus respuestas inseguras como seguras en comparación con los de nuestro grupo de control."
Esto habla de un nivel de confianza por defecto en el resultado de las herramientas de codificación de IA como productoras de código que siempre es intrínsecamente seguro, cuando en realidad no lo es.
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 listón de la calidad del código sin importar su origen.
El camino hacia el desastre de la filtración de datos está empedrado de buenas intenciones
No debería sorprendernos que los compañeros de codificación de IA sean populares, sobre todo porque los desarrolladores se enfrentan a una responsabilidad cada vez mayor, plazos más ajustados y la ambición de la innovación de una empresa descansando sobre sus hombros. Sin embargo, incluso con las mejores intenciones, la falta de concienciación sobre la seguridad a la hora de utilizar la IA para la codificación 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 para la seguridad dependerá de su nivel de conocimientos. Las organizaciones deben ser muy conscientes de que las personas sin formación generarán sin duda código más rápidamente, 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 construyera una rutina de inicio de sesión en PHP utilizando una base de datos MySQL, el código funcional se generó rápidamente. Sin embargo, por defecto almacenaba las contraseñas en texto plano en una base de datos, almacenaba las credenciales de conexión a la base de datos en el código, y utilizaba un patrón de codificación que podría dar lugar a una inyección SQL (aunque, hizo algún nivel de filtrado en los parámetros de entrada y escupió errores de base de datos). Todos los errores de novato por cualquier medida:
Otras indicaciones aseguraron que se enmendaran los errores, pero se necesitan conocimientos importantes de seguridad para corregirlos. El uso generalizado y sin control de estas herramientas no es mejor que soltar a desarrolladores junior en tus 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 aumentan sin duda sus habilidades con el tiempo, esperamos que las capacidades de la IA/ML mejoren. Dentro de un año, puede que no cometa errores de seguridad tan obvios y sencillos. Sin embargo, eso tendrá el efecto de aumentar drásticamente la habilidad de seguridad requerida para rastrear los errores de seguridad más graves, ocultos y no triviales que todavía está en peligro de producir.
Seguimos estando mal preparados para detectar y corregir las vulnerabilidades de seguridad, y la IA aumenta la brecha.
Aunque se ha hablado mucho de "cambiar a la izquierda" durante muchos años, el hecho es que, en la mayoría de las organizaciones, hay una falta significativa de conocimientos prácticos de seguridad entre la cohorte de desarrollo, y debemos trabajar más duro para proporcionar las herramientas adecuadas y la educación para ayudarles en su camino.
En la actualidad, no estamos preparados para los errores de seguridad que estamos acostumbrados a encontrar, por no hablar de los nuevos problemas derivados de la IA, como la inyección inmediata y la alucinación en cuclillas, que representan vectores de ataque completamente nuevos que están listos para despegar como un reguero de pólvora. Las herramientas de codificación de IA representan el futuro del arsenal de codificación de un desarrollador, pero la educación para manejar estas armas de productividad de forma segura debe llegar ahora.
Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónDirector General, Presidente y Cofundador
Pieter Danhieux es un experto en seguridad mundialmente reconocido, con más de 12 años de experiencia como consultor de seguridad y 8 años como instructor principal de SANS enseñando técnicas ofensivas sobre cómo atacar y evaluar organizaciones, sistemas y personas en busca de debilidades de seguridad. En 2016, fue reconocido como una de las personas más cool de la tecnología en Australia (Business Insider), galardonado como Profesional de Seguridad Cibernética del Año (AISA - Asociación Australiana de Seguridad de la Información) y tiene certificaciones GSE, CISSP, GCIH, GCFA, GSEC, GPEN, GWAPT, GCIA.
Una versión de este artículo apareció en Lectura oscura. Se ha actualizado y sindicado aquí.
Desde que se empezó a hablar de las últimas herramientas de inteligencia artificial, los desarrolladores y los curiosos de la programación las han utilizado para generar código con sólo pulsar un botón. Los expertos en seguridad no tardaron en señalar que, en muchos casos, el código que se generaba era de mala calidad y vulnerable, y que en manos de personas poco concienciadas en materia de seguridad podría provocar una avalancha de aplicaciones y desarrollos web inseguros que llegaría a consumidores desprevenidos.
Y luego están los que tienen suficientes conocimientos de seguridad como para utilizarlos para, bueno, hacer el mal. Por cada hazaña alucinante de la IA, parece que hay un contragolpe de la misma tecnología que se utiliza con fines nefastos. Phishing, vídeos de estafas falsas, creación de malware, travesuras de script kiddie en general... estas actividades perturbadoras se pueden conseguir mucho más rápido, con barreras de entrada más bajas.
No cabe duda de que hay muchos titulares que promocionan estas herramientas como revolucionarias o, al menos, como las mejores cuando se comparan con la habilidad humana "media". Aunque parece inevitable que la tecnología de IA al estilo LLM cambie la forma en que abordamos muchos aspectos del trabajo -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 codificación, sus defectos son quizá su atributo más "humano".
En sus soluciones predominan los patrones de codificación deficientes
ChatGPT se basa en décadas de código y bases de conocimiento existentes, por lo que no es de extrañar que, a pesar de toda su maravilla y misterio, también sufra los mismos problemas comunes a los que se enfrenta la gente cuando navega por el código. Los patrones de codificación deficientes son el pan de cada día, y sigue haciendo falta un conductor consciente de la seguridad para generar ejemplos de codificación seguros haciendo las preguntas adecuadas y ofreciendo la ingeniería de consulta adecuada.
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 la alucinación, incluso inventando bibliotecas inexistentes cuando se le pide que realice algunas operaciones JSON específicas, como descubrió Mike Shema. Esto podría dar lugar a "alucinaciones" por parte de los actores de amenazas, que estarían encantados de crear malware disfrazado de la biblioteca inventada recomendada con total confianza por ChatGPT.
En última instancia, tenemos que enfrentarnos a la realidad de que, en general, no hemos esperado que los desarrolladores sean lo suficientemente conscientes de la seguridad, ni nosotros, como industria, les hemos preparado adecuadamente para escribir código seguro por defecto. Esto se pondrá de manifiesto en la enorme cantidad de datos de formación introducidos en ChatGPT, y podemos esperar resultados de seguridad similares, al menos al principio. Los desarrolladores tendrían que ser capaces de identificar los fallos de seguridad y, o bien corregirlos ellos mismos, o bien diseñar mejores avisos para obtener un resultado más sólido.
El primer estudio a gran escala realizado por investigadores de la Universidad de Stanford en el que se examina cómo interactúan los usuarios con un asistente de codificación de inteligencia artificial para resolver una serie de funciones relacionadas con la seguridad corrobora esta idea:
"Observamos que los participantes que tenían acceso al asistente de IA eran más propensos a introducir vulnerabilidades de seguridad en la mayoría de las tareas de programación, aunque también más propensos a calificar sus respuestas inseguras como seguras en comparación con los de nuestro grupo de control."
Esto habla de un nivel de confianza por defecto en el resultado de las herramientas de codificación de IA como productoras de código que siempre es intrínsecamente seguro, cuando en realidad no lo es.
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 listón de la calidad del código sin importar su origen.
El camino hacia el desastre de la filtración de datos está empedrado de buenas intenciones
No debería sorprendernos que los compañeros de codificación de IA sean populares, sobre todo porque los desarrolladores se enfrentan a una responsabilidad cada vez mayor, plazos más ajustados y la ambición de la innovación de una empresa descansando sobre sus hombros. Sin embargo, incluso con las mejores intenciones, la falta de concienciación sobre la seguridad a la hora de utilizar la IA para la codificación 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 para la seguridad dependerá de su nivel de conocimientos. Las organizaciones deben ser muy conscientes de que las personas sin formación generarán sin duda código más rápidamente, 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 construyera una rutina de inicio de sesión en PHP utilizando una base de datos MySQL, el código funcional se generó rápidamente. Sin embargo, por defecto almacenaba las contraseñas en texto plano en una base de datos, almacenaba las credenciales de conexión a la base de datos en el código, y utilizaba un patrón de codificación que podría dar lugar a una inyección SQL (aunque, hizo algún nivel de filtrado en los parámetros de entrada y escupió errores de base de datos). Todos los errores de novato por cualquier medida:
Otras indicaciones aseguraron que se enmendaran los errores, pero se necesitan conocimientos importantes de seguridad para corregirlos. El uso generalizado y sin control de estas herramientas no es mejor que soltar a desarrolladores junior en tus 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 aumentan sin duda sus habilidades con el tiempo, esperamos que las capacidades de la IA/ML mejoren. Dentro de un año, puede que no cometa errores de seguridad tan obvios y sencillos. Sin embargo, eso tendrá el efecto de aumentar drásticamente la habilidad de seguridad requerida para rastrear los errores de seguridad más graves, ocultos y no triviales que todavía está en peligro de producir.
Seguimos estando mal preparados para detectar y corregir las vulnerabilidades de seguridad, y la IA aumenta la brecha.
Aunque se ha hablado mucho de "cambiar a la izquierda" durante muchos años, el hecho es que, en la mayoría de las organizaciones, hay una falta significativa de conocimientos prácticos de seguridad entre la cohorte de desarrollo, y debemos trabajar más duro para proporcionar las herramientas adecuadas y la educación para ayudarles en su camino.
En la actualidad, no estamos preparados para los errores de seguridad que estamos acostumbrados a encontrar, por no hablar de los nuevos problemas derivados de la IA, como la inyección inmediata y la alucinación en cuclillas, que representan vectores de ataque completamente nuevos que están listos para despegar como un reguero de pólvora. Las herramientas de codificación de IA representan el futuro del arsenal de codificación de un desarrollador, pero la educación para manejar estas armas de productividad de forma segura debe llegar ahora.
Índice
Director General, Presidente y Cofundador
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
El movimiento Secure-by-Design es el futuro del desarrollo de software seguro. Conozca los elementos clave que las empresas deben tener en cuenta cuando piensan en una iniciativa Secure-by-Design.
DigitalOcean reduce su deuda de seguridad con Secure Code Warrior
El uso por parte de DigitalOcean de la formación Secure Code Warrior ha reducido significativamente la deuda de seguridad, permitiendo a los equipos centrarse más en la innovación y la productividad. La mejora de la seguridad ha reforzado la calidad de sus productos y su ventaja competitiva. De cara al futuro, SCW Trust Score les ayudará a seguir mejorando las prácticas de seguridad y a continuar impulsando la innovación.
Recursos para empezar
La puntuación de confianza revela el valor de las iniciativas de mejora de la seguridad mediante el diseño
Nuestra investigación ha demostrado que la formación en código seguro funciona. Trust Score, que utiliza un algoritmo basado en más de 20 millones de puntos de datos de aprendizaje procedentes del trabajo de más de 250 000 alumnos en más de 600 organizaciones, revela su eficacia a la hora de reducir las vulnerabilidades y cómo hacer que la iniciativa sea aún más eficaz.
Seguridad reactiva frente a seguridad preventiva: Prevenir es mejor que curar
La idea de introducir la seguridad preventiva en el código y los sistemas heredados al mismo tiempo que en las aplicaciones más recientes puede parecer desalentadora, pero un planteamiento basado en el diseño seguro, aplicado mediante la mejora de las competencias de los desarrolladores, puede aplicar las mejores prácticas de seguridad a esos sistemas. Es la mejor oportunidad que tienen muchas organizaciones de mejorar su seguridad.
Ventajas de la evaluación comparativa de las competencias de seguridad de los desarrolladores
La creciente atención que se presta al código seguro y a los principios del diseño seguro exige que los desarrolladores reciban formación en ciberseguridad desde el principio del proceso de desarrollo de software, con herramientas como Secure Code Warrior's Trust Score, que ayudan a medir y mejorar sus progresos.
Impulsando iniciativas de seguridad por diseño para empresas con éxito significativo
Nuestro último documento de investigación, Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise, es el resultado de un análisis profundo de iniciativas reales de Secure-by-Design a nivel empresarial y de la derivación de enfoques de mejores prácticas basados en hallazgos basados en datos.