In this article
ChatGPT y la programación segura: beneficios y vulnerabilidades de seguridad del código generado por ChatGPT
A medida que los desarrolladores siguen adoptando herramientas de IA para transformar sus flujos de trabajo, el código generado por IA es cada vez más común. De hecho, el 96 % de los desarrolladores afirmó que usa asistentes de programación con IA para agilizar su trabajo.
Aunque las herramientas de IA generativa (GenAI), como ChatGPT, pueden agilizar los flujos de trabajo y aumentar la productividad, la seguridad y la calidad de sus resultados no están garantizadas. Los desarrolladores y las organizaciones que adoptan ChatGPT u otras herramientas de GenAI deben comprender sus beneficios, pero también conocer las posibles vulnerabilidades de seguridad y los problemas asociados con el código generado por IA, y priorizar la implementación de prácticas de seguridad sólidas.

¿Puede ChatGPT escribir código seguro?
En una encuesta, el 75,8 % de los desarrolladores cree que el código generado por IA es más seguro que el escrito por personas, aunque se ha demostrado que el código generado por IA introduce vulnerabilidades. También se ha descubierto que los desarrolladores que tenían acceso a asistentes de IA basados en el modelo codex-davinci-002 de OpenAI escribían código significativamente menos seguro que quienes no tenían acceso. Curiosamente, los desarrolladores que se concentraron en sus interacciones con el modelo, por ejemplo, al dar instrucciones más eficaces, crearon código más seguro.
Por lo tanto, aunque ChatGPT y otras herramientas de programación con IA pueden escribir código seguro, sus resultados dependen por completo de los datos de entrenamiento y de la ingeniería de instrucciones. Si los datos de entrenamiento contienen vulnerabilidades o errores, el código generado por IA será inseguro desde el principio. Por eso, los desarrolladores deben asumir que cualquier código generado por IA es inseguro y tomar medidas para corregir las vulnerabilidades antes de implementarlo.
Si no lo hacen, el código inseguro puede propagarse por toda la base de código y, en última instancia, afectar la seguridad de las aplicaciones y el software.
¿Qué tan confiable es el código generado por ChatGPT?
La confiabilidad del código generado por ChatGPT depende de la tarea que realiza y de los datos de entrenamiento subyacentes. Aunque ahora ChatGPT tiene acceso a información más actualizada y puede navegar por Internet, todavía puede inventar información o generar código poco confiable, sobre todo a medida que evolucionan las buenas prácticas de programación y los lenguajes. Esto puede convertirse en un problema de seguridad si los desarrolladores dan por sentado que el código generado por ChatGPT es seguro, confiable y está actualizado. Casi el 80 % de los desarrolladores admite que omite medidas de seguridad porque considera que el código generado por IA es «lo suficientemente seguro», lo que podría provocar vulnerabilidades y problemas de seguridad generalizados en toda una base de código.
¿Qué tan bueno es ChatGPT para programar?
Los estudios muestran que ChatGPT puede resolver bien problemas o tareas de programación fáciles e intermedios. También se ha demostrado que ChatGPT ofrece posibilidades para ayudar con tareas de programación, pero tiene limitaciones claras. Como mencionamos, la calidad de ChatGPT y de sus resultados depende de los datos con los que se entrenó. Los sesgos, errores, información desactualizada o instrucciones poco claras afectan la calidad del código generado. Además, ChatGPT suele tener dificultades con problemas de programación más complejos, por lo que no puede reemplazar las habilidades ni la experiencia especializadas.
¿Puede ChatGPT encontrar vulnerabilidades en el código?
ChatGPT puede analizar el código para buscar brechas e inconsistencias y ofrecer comentarios, lo que podría ayudar a descubrir vulnerabilidades comunes. Sin embargo, es posible que no comprenda el código complejo ni encuentre vulnerabilidades complejas, por lo que algunas podrían pasar inadvertidas hasta que ocurra algo más grave.
Al revisar código, ChatGPT no puede analizarlo en tiempo real, así que los desarrolladores deben ingresar el código manualmente para que lo revise. Esto puede ser un problema si los cambios o las correcciones no se incorporan o actualizan en ChatGPT, lo que hace que las vulnerabilidades pasen inadvertidas o sigan sin resolverse. ChatGPT también puede inventar información y evaluar incorrectamente la seguridad del código.
¿Puede ChatGPT garantizar prácticas de programación segura?
Aunque es posible usar ChatGPT como herramienta inicial para evaluar código, el flujo de trabajo de los desarrolladores debe incluir otras medidas de seguridad. Confiar únicamente en ChatGPT para garantizar prácticas de programación segura hará que algunas vulnerabilidades pasen inadvertidas. Los equipos de seguridad de aplicaciones (AppSec) deben seguir usando herramientas y medidas de seguridad integrales para garantizar que se respeten las prácticas de programación segura.
¿Están seguros los datos con ChatGPT?
El uso de modelos de lenguaje grandes (LLM), como ChatGPT, plantea importantes preocupaciones en torno a la seguridad de los datos. Aunque ChatGPT incorpora medidas de seguridad para los datos, las empresas deben asumir que ningún dato dentro de la IA generativa está seguro. A menudo, los usuarios comparten información confidencial en sus instrucciones sin pensarlo, porque creen que está protegida. Sin embargo, la información confidencial o sensible podría incorporarse a los datos de entrenamiento del modelo y aparecer en sus resultados, lo que pondría en riesgo a la empresa.
Además, si ChatGPT u otra herramienta de IA se ve comprometida, o si hackean la cuenta de usuario de una empresa, los actores maliciosos podrían acceder a información confidencial o a datos de entrenamiento, lo que afectaría aún más a las organizaciones. Para reducir este riesgo, las empresas deben establecer políticas internas sobre qué pueden compartir los empleados con las herramientas de IA y cómo se gestionan esos datos.
Cómo comprobar si el código generado por ChatGPT es seguro
Al considerar la ciberseguridad en una organización, los protocolos de seguridad deben evolucionar para incluir las herramientas de GenAI. Las organizaciones están en riesgo si no cuentan con una postura de seguridad sólida que incluya políticas y protocolos internos para herramientas como ChatGPT. En la mayoría de los casos, el mayor riesgo para una organización es que se incorpore código inseguro generado por IA a una base de código, que se propague a varios proyectos y provoque una brecha de seguridad.
La forma más eficaz de garantizar que el código generado por ChatGPT sea seguro es usar una herramienta específica de análisis de seguridad, como Snyk Code. A diferencia de ChatGPT, Snyk Code se integra sin problemas en el flujo de trabajo de los desarrolladores y en todo el proceso de desarrollo. Además, Snyk Code analiza el código en tiempo real y busca vulnerabilidades de forma continua. Gracias a DeepCode AI, Snyk Code prioriza las vulnerabilidades y recomienda correcciones para que los equipos se enfoquen en los problemas más críticos.
Aunque ChatGPT y otras herramientas de programación con GenAI pueden mejorar el flujo de trabajo de los desarrolladores, una plataforma como Snyk es fundamental para garantizar que la base de código y las aplicaciones de una organización estén seguras y protegidas frente a futuras vulnerabilidades o ataques.
SEGURIDAD DEL CÓDIGO DE IA
Guía de compra para la seguridad del código generado por IA
Aprende a proteger el código generado por IA con la Guía de compra para la seguridad del código generado por IA de Snyk.