Revista Informática

La Complejidad de AppSec y el Poder de la IA para Superarla

Publicado el 30 agosto 2024 por Lauratuero @incubaweb

Detectar vulnerabilidades más temprano y enviar software más rápido. Estas son las buenas intenciones detrás del impulso de cambiar los flujos de trabajo de seguridad de aplicaciones desde los equipos de seguridad hacia los desarrolladores, un movimiento de “cambio a la izquierda” en el ciclo de vida del desarrollo de software. Pero, ¿realmente funciona?

En la práctica, cambiar a la izquierda ha sido más acerca de trasladar la carga que la habilidad. La mayoría de las herramientas de seguridad de aplicaciones, incluso aquellas que afirman ser «primero para desarrolladores», requieren un cierto grado de experiencia en seguridad para ser implementadas y utilizadas. Al interrumpir el proceso de codificación y sacar a los desarrolladores de su flujo, el cambio a la izquierda puede agravar los problemas que intentaba resolver. Un dato alarmante: el 81% de los desarrolladores admiten haber lanzado software con vulnerabilidades solo para cumplir con un plazo.

“Most developers are not trained security experts,” afirma Mike Hanley, Chief Security Officer de GitHub. “But with AI, we’re radically transforming the traditional definition of shift left by bringing security directly to developers as they’re introducing their ideas to code, fundamentally preventing vulnerabilities from ever being written.”

Nick Liffen, Director de Servicios de Campo para GitHub Advanced Security, exploró este desafío con una audiencia de desarrolladores en GitHub Universe. Primero, les pidió a todos en la sala que se levantaran. Luego, les dio a sus oyentes una opción: permanecer de pie si los desarrolladores de sus organizaciones disfrutaban remediar vulnerabilidades, o sentarse si no lo hacían. Como era de esperar, casi todos se sentaron. Los programadores prefieren escribir código.

Mientras los equipos de desarrollo se esfuerzan por lanzar nuevas funcionalidades que solucionen problemas de los clientes, abran nuevos mercados y superen a la competencia, los equipos de seguridad tienen la responsabilidad de proteger los datos y la reputación de una organización. Ir rápido, pero reducir el riesgo. Es bastante difícil para toda una organización hacer ambas cosas, pero ¿es razonable pedirle eso a un equipo de desarrollo o a un solo desarrollador?

Cuando desarrolladores y equipos de seguridad chocan, todos pierden: el objetivo de la mayoría de los desarrolladores es lanzar productos excelentes llevándolos a producción lo más rápido posible. El objetivo del equipo de seguridad es asegurarse de que el software de su organización sea lo más seguro posible abordando vulnerabilidades de alta gravedad e impacto rápidamente, y luego priorizando otras vulnerabilidades a medida que surgen. Estos incentivos en competencia a menudo conducen a fricciones entre los dos equipos.

Cambiar a la izquierda desplaza la responsabilidad, pero no la experiencia: integrar una herramienta de seguridad en el flujo de trabajo de un desarrollador no siempre significa que los desarrolladores la utilizarán (o incluso sabrán cómo utilizarla). Una abundancia de alertas de falsos positivos puede hacer que los desarrolladores presten menos atención a las posibles vulnerabilidades.

El cambio de contexto no siempre es asequible para los desarrolladores: a menudo, los desarrolladores no tienen el conocimiento o el contexto completo para solucionar las vulnerabilidades y errores que reciben. Esto significa que deben abandonar su entorno, buscar soluciones en Internet y romper su flujo de trabajo, lo que reduce la productividad y la velocidad general en los equipos de ingeniería.

Con amenazas en constante evolución y no suficiente tiempo o documentación para capacitarse, junto con la monotonía de abordar vulnerabilidades en vez de la creatividad de escribir código, no es de extrañar que tantos desarrolladores se sentaran después de la pregunta de Liffen.

En cuanto a las organizaciones en su conjunto, hay dos desafíos cruciales: las aplicaciones son el vector de ataque número uno para los actores maliciosos, y las brechas de seguridad son cada vez más costosas, creciendo un 15% en los últimos tres años. El mismo informe dice que las empresas que utilizan AI y automatización en seguridad pueden ahorrar $1.76 millones en comparación con organizaciones que no lo hacen.

Para que su empresa innove a escala y ahorre dinero, los desarrolladores no deben verse obligados a elegir entre seguridad y velocidad. Con el creciente uso de la inteligencia artificial, esto es cada vez menos necesario.

Las herramientas de IA como GitHub Copilot ya hacen la seguridad más centrada en el desarrollador con sugerencias de código y contexto en torno a las vulnerabilidades dentro del flujo de trabajo del desarrollador. Nuevos productos, herramientas y plataformas están ayudando a los desarrolladores a escribir código más seguro desde el principio, y permiten que los problemas se aborden más fácilmente a medida que surgen.

Laura Paine, Directora de Marketing de Productos de GitHub, comenta: “Los desarrolladores necesitan la capacidad de proteger proactivamente su código donde se crea, en lugar de probar y remediar vulnerabilidades después del hecho. La seguridad integrada es crítica para entregar aplicaciones seguras”.

Con IA, los desarrolladores pueden beneficiarse de una detección mejorada de vulnerabilidades, ya que muchas aplicaciones actuales dependen de paquetes de código abierto. Herramientas como CodeQL, cuando se utilizan en conjunto con herramientas de IA, ayudan a automatizar el proceso de modelado de amenazas, ahorrando tiempo y asegurando el cumplimiento de estándares industriales.

Las alertas de seguridad ahora pueden ser mucho más útiles. Por ejemplo, GitHub ha integrado AI en su tecnología de escaneo de secretos para ayudar a detectar secretos generados por humanos, como contraseñas y credenciales. Esto ahorra tiempo a los desarrolladores y facilita la colaboración con los equipos de seguridad.

Asha Chakrabarty, Vicepresidenta de Gestión de Productos de GitHub, dice: “Imagina que recibes una alerta de seguridad, pero en lugar de solo recibir orientación sobre cómo solucionar por ti mismo, obtienes una solución generada por IA directamente en tu solicitud de extracción. Esto proporciona una sugerencia precisa y accionable que ayuda a resolver el problema más rápido y previene nuevas vulnerabilidades en tu base de código.”

Hacer la seguridad de aplicaciones a gran escala con IA no solo ayuda a los desarrolladores, sino también a los profesionales de seguridad. Nuevos productos ofrecen visiones generales de la seguridad de repositorios y proyectos con insights accionables para administradores y formas simples de asignar trabajo entre equipos de ingeniería y seguridad.

GitHub ha lanzado nuevos dashboards de visión general de seguridad que facilitan desde desarrolladores hasta administradores tener una vista clara del esfuerzo de seguridad de la organización, desde análisis de tendencias históricas hasta el tiempo promedio de remediación. Estos dashboards permiten filtrar datos para encontrar tendencias y evaluar la postura de seguridad de forma sencilla.

En los próximos cinco años se proyecta que se crearán 500 millones de aplicaciones, más de las que los desarrolladores han hecho en los últimos 40 años combinados. Con este crecimiento inmenso, la seguridad solo se va a dificultar más si seguimos con la mentalidad de cambio a la izquierda sin abordar sus puntos críticos.

Necesitamos herramientas que los desarrolladores quieran usar. El objetivo de Liffen: “Ojalá la seguridad se vuelva tan inconsciente y sin fricción en el flujo de trabajo del desarrollador, que la seguridad sea simplemente la forma en que los desarrolladores trabajan.”

¿Listo para aprovechar nuestras nuevas herramientas de seguridad impulsadas por IA? Aprende más o comienza ahora.


Volver a la Portada de Logo Paperblog