Meta tiene un plazo para abordar las preocupaciones de la UE sobre el modelo de ‘Pagar o Consentir’
Meta tiene un plazo para abordar las preocupaciones de la UE sobre el modelo...
Imagina un mundo donde el software que impulsa tus aplicaciones favoritas, asegura tus transacciones en línea y protege tu vida digital podría ser superado y tomado por sorpresa por un código cuidadosamente disfrazado. Esto no es solo la trama de la última ciber-novela; en realidad ha sido una realidad durante años. Cómo esto cambiará, en dirección positiva o negativa, a medida que la inteligencia artificial (IA) asume un papel más importante en el desarrollo de software es una de las grandes incertidumbres relacionadas con este valiente nuevo mundo.
En una era donde la IA promete revolucionar cómo vivimos y trabajamos, la conversación sobre sus implicaciones en seguridad no puede ser ignorada. A medida que cada vez más confiamos en la IA para tareas que van desde lo mundano hasta lo crítico, la pregunta ya no es solo «¿Puede la IA mejorar la ciberseguridad?» (¡claro!), sino también «¿Puede la IA ser hackeada?» (¡sí!), «¿Se puede utilizar la IA para hackear?» (¡por supuesto!), y «¿Producirá la IA software seguro?» (bueno…). Este artículo de liderazgo de pensamiento trata sobre este último punto. Cydrill (una empresa de entrenamiento en codificación segura) profundiza en el complejo panorama de las vulnerabilidades producidas por la IA, con un enfoque especial en GitHub Copilot, para resaltar la imperativa de prácticas de codificación segura en la protección de nuestro futuro digital.
Puedes probar tus habilidades de codificación segura con esta breve autoevaluación.
El salto de la IA desde una curiosidad académica hasta convertirse en un pilar de la innovación moderna ocurrió bastante repentinamente. Sus aplicaciones abarcan una asombrosa variedad de campos, ofreciendo soluciones que alguna vez fueron cosa de ciencia ficción. Sin embargo, este rápido avance y adopción han superado el desarrollo de medidas de seguridad correspondientes, dejando tanto a los sistemas de IA como a los sistemas creados por IA vulnerables a una variedad de ataques sofisticados. ¿Déjà vu? Lo mismo ocurrió cuando el software, como tal, estaba tomando el control en muchos aspectos de nuestras vidas…
En el corazón de muchos sistemas de IA se encuentra el aprendizaje automático, una tecnología que depende de conjuntos de datos extensos para «aprender» y tomar decisiones. Irónicamente, la fortaleza de la IA, su capacidad para procesar y generalizar a partir de vastas cantidades de datos, también es su talón de Aquiles. El punto de partida de «todo lo que encontramos en Internet» puede que no sea el conjunto de datos de entrenamiento perfecto; desafortunadamente, la sabiduría de las masas puede que no sea suficiente en este caso. Además, los hackers, armados con las herramientas y el conocimiento adecuados, pueden manipular estos datos para engañar a la IA y hacer que tome decisiones erróneas o realice acciones maliciosas.
«GitHub Copilot, impulsado por Codex de OpenAI, se erige como un testimonio del potencial de la IA en la codificación. Ha sido diseñado para mejorar la productividad al sugerir fragmentos de código e incluso bloques enteros de código. Sin embargo, múltiples estudios han resaltado los peligros de depender completamente de esta tecnología. Se ha demostrado que una parte significativa del código generado por Copilot puede contener fallos de seguridad, incluyendo vulnerabilidades a ataques comunes como la inyección SQL y desbordamientos de búfer.
El principio de «Basura entra, basura sale» (GIGO) es particularmente relevante aquí. Los modelos de IA, incluyendo Copilot, se entrenan con datos existentes, y al igual que cualquier otro modelo de lenguaje grande, la mayor parte de este entrenamiento es no supervisado. Si estos datos de entrenamiento están defectuosos (lo cual es muy posible dado que provienen de proyectos de código abierto o grandes sitios de preguntas y respuestas como Stack Overflow), la salida, incluidas las sugerencias de código, pueden heredar y propagar estos defectos. En los primeros días de Copilot, un estudio reveló que aproximadamente el 40% de las muestras de código producidas por Copilot cuando se le pedía completar código basado en muestras de los 25 principales de CWE eran vulnerables, subrayando el principio GIGO y la necesidad de una mayor conciencia de seguridad. Un estudio a mayor escala en 2023 (‘¿Es GitHub Copilot tan malo como los humanos para introducir vulnerabilidades en el código?‘) tuvo resultados algo mejores, pero aún lejos de ser buenos: al eliminar la línea de código vulnerable de ejemplos de vulnerabilidades del mundo real y pedirle a Copilot que la complete, recreó la vulnerabilidad aproximadamente 1/3 del tiempo y solucionó la vulnerabilidad solo aproximadamente 1/4 del tiempo. Además, tuvo un rendimiento muy deficiente en vulnerabilidades relacionadas con la falta de validación de entrada, produciendo código vulnerable cada vez. Esto destaca que la IA generativa está mal equipada para lidiar con entradas maliciosas si no están disponibles soluciones tipo ‘bala de plata’ para tratar una vulnerabilidad (por ejemplo, declaraciones preparadas).»
Abordar los desafíos de seguridad planteados por la IA y herramientas como Copilot requiere un enfoque multifacético:
Navegar la integración de herramientas de IA como GitHub Copilot en el proceso de desarrollo de software es arriesgado y requiere no solo un cambio de mentalidad, sino también la adopción de estrategias robustas y soluciones técnicas para mitigar posibles vulnerabilidades. Aquí tienes algunos consejos prácticos diseñados para ayudar a los desarrolladores a garantizar que su uso de Copilot y herramientas similares impulsadas por IA mejore la productividad sin comprometer la seguridad.
Implementación Práctica: La programación defensiva siempre está en el núcleo de la codificación segura. Cuando aceptes sugerencias de código de Copilot, especialmente para funciones que manejan la entrada de usuarios, implementa medidas estrictas de validación de entradas. Define reglas para la entrada de usuarios, crea una lista blanca de caracteres y formatos de datos permitidos, y asegúrate de validar las entradas antes de procesarlas. También puedes pedirle a Copilot que haga esto por ti; ¡a veces funciona bastante bien!
Implementación Práctica: Copilot puede sugerir agregar dependencias a tu proyecto, y los atacantes pueden aprovechar esto para implementar ataques de la cadena de suministro a través de la «alucinación de paquetes«. Antes de incorporar cualquier biblioteca sugerida, verifica manualmente su estado de seguridad revisando las vulnerabilidades conocidas en bases de datos como la Base de Datos Nacional de Vulnerabilidades (NVD) o realiza un análisis de composición de software (SCA) con herramientas como OWASP Dependency-Check o npm audit para proyectos Node.js. Estas herramientas pueden rastrear y gestionar automáticamente la seguridad de las dependencias.
Implementación Práctica: Independientemente de la fuente del código, ya sea generado por IA o hecho a mano, realiza revisiones regulares de código y pruebas con enfoque en la seguridad. Combina enfoques. Realiza pruebas estáticas (SAST) y dinámicas (DAST), realiza Análisis de Composición de Software (SCA). Realiza pruebas manuales y complementa con automatización. Pero recuerda poner a las personas por encima de las herramientas: ninguna herramienta o inteligencia artificial puede reemplazar la inteligencia natural (humana).
Implementación Práctica: Primero, deja que Copilot escriba tus comentarios o registros de depuración: ya es bastante bueno en estos aspectos. De todos modos, cualquier error en estos no afectará la seguridad de tu código. Luego, una vez que estés familiarizado con cómo funciona, puedes permitir gradualmente que genere más y más fragmentos de código para la funcionalidad real.
Implementación Práctica: Nunca aceptes ciegamente lo que sugiere Copilot. Recuerda, tú eres el piloto, ¡es solo el Copilot! Tú y Copilot pueden ser un equipo muy efectivo juntos, pero aún eres tú quien está a cargo, por lo que debes saber cómo debería ser el código esperado y cómo debería lucir el resultado final.
Implementación Práctica: Prueba diferentes cosas y sugerencias (en modo de chat). Intenta pedirle a Copilot que refine el código si no estás satisfecho con lo que obtuviste. Trata de entender cómo «piensa» Copilot en ciertas situaciones y comprende sus fortalezas y debilidades. Además, Copilot mejora con el tiempo, ¡así que experimenta continuamente!
Implementación Práctica: Educa continuamente a ti mismo y a tu equipo sobre las últimas amenazas de seguridad y mejores prácticas. Sigue blogs de seguridad, asiste a webinars y talleres, y participa en foros dedicados a la codificación segura. El conocimiento es una herramienta poderosa para identificar y mitigar posibles vulnerabilidades en el código, generado por IA o no.
La importancia de las prácticas de codificación segura nunca ha sido tan crucial como cuando navegamos por las aguas desconocidas del código generado por IA. Herramientas como GitHub Copilot presentan oportunidades significativas de crecimiento y mejora, pero también desafíos particulares en cuanto a la seguridad de tu código. Solo comprendiendo estos riesgos se puede reconciliar con éxito la efectividad con la seguridad y mantener protegida nuestra infraestructura y datos. En este viaje, Cydrill sigue comprometido en capacitar a los desarrolladores con el conocimiento y las herramientas necesarias para construir un futuro digital más seguro.
El viaje de aprendizaje combinado de Cydrill proporciona entrenamiento en codificación segura proactiva y efectiva para desarrolladores de empresas Fortune 500 de todo el mundo. Al combinar capacitación dirigida por instructores, e-learning, laboratorios prácticos y gamificación, Cydrill ofrece un enfoque novedoso y efectivo para aprender a codificar de manera segura.
¡Consulta los cursos de codificación segura de Cydrill!
Tags :
Meta tiene un plazo para abordar las preocupaciones de la UE sobre el modelo...
Expertos descubren una red de delincuencia cibernética china detrás de actividades de juego y...
Google abandona el plan de eliminar gradualmente las cookies de terceros en Chrome Luis...