OpiniónSeguridad

Gestión de vulnerabilidades de seguridad de código abierto con IA y automatización

Gabriel Agatiello, Senior Security Sales Executive at Dynatrace.

Las organizaciones se enfrentan ahora a más presión que nunca para ofrecer servicios nuevos e innovadores. Cada vez más, los equipos de DevOps y seguridad utilizan código abierto para avanzar más rápidamente. Las bibliotecas de este tipo proporcionan visibilidad del código, lo que permite a los desarrolladores aprovechar este mientras crean nuevas aplicaciones y prestaciones digitales. Una investigación realizada por Red Hat puso de manifiesto que el 90 % de las organizaciones utilizan código abierto y el 54 % lo usan para el desarrollo de aplicaciones. Sin embargo, la explosión de tecnologías, plataformas y dichas bibliotecas complica las tareas de seguridad, ya que en el proceso de desarrollo participan más colaboradores externos, repositorios y servicios web.

Solo en 2020, más de 56 millones de desarrolladores utilizaron la plataforma de GitHub para crear más de 1900 millones de recursos con código abierto. Junto al auge de las arquitecturas nativas de la nube y las plataformas dinámicas como Kubernetes, los stacks de tecnología son más complicados que nunca.

Solo en 2020, más de 56 millones de desarrolladores utilizaron la plataforma de GitHub para crear más de 1900 millones de recursos con código abierto.

Desde el punto de vista de la seguridad, el reto es que una mayor complejidad conlleva más vulnerabilidades. Los equipos DevOps, ya sobrecargados de trabajo, tienen que elegir entre la velocidad y la seguridad en muchas ocasiones, ya que dedican la mayor parte de su tiempo a solventar las alertas de posibles debilidades A estos equipos les resulta cada vez más difícil entender qué flaquezas son las más críticas y a las que hay que dar prioridad, lo que ralentiza el tiempo de comercialización de las innovaciones.

Aparecen nuevos problemas

El principal desafío del código abierto proviene de su principal atractivo: su naturaleza pública y gratuita. Cualquiera puede acceder a él, incluso los que lo hacen con malas intenciones. Tradicionalmente, la comunidad de desarrolladores corrige los puntos débiles y lo comparte en foros o en bases de datos de vulnerabilidades, para que otras personas puedan actualizar sus aplicaciones. La adopción de entornos dinámicos en la nube y  Kubernetes ha hecho que las aplicaciones web sean altamente distribuidas y complejas, por lo que cada vez es más difícil ubicar el código abierto y determinar su grado de actualización. Los equipos de seguridad y DevOps no tienen tiempo para rastrearlo y parchear cada vulnerabilidad potencial, lo que deja a las organizaciones en una situación crítica frente a los ataques.

Además, el gran volumen de código abierto en uso significa que estos equipos se enfrentan a un aluvión constante de alertas de seguridad. La investigación de Dynatrace indica que las organizaciones atienden un promedio de 2169 vulnerabilidades potenciales cada mes.

Para agravar el problema, los enfoques tradicionales de gestión de vulnerabilidad se basan en procesos manuales para los cuales los equipos de DevOps no tienen tiempo. Estos deben centrarse en la entrega de nuevos servicios lo más rápido posible, lo que ha llevado a más de dos tercios (71 %) de los CISO a admitir que no siempre están seguros de que su código esté libre de vulnerabilidades antes de pasar a producción.

Elige tus batallas para ganar la guerra

Las empresas que utilizan bibliotecas de código abierto no sólo necesitan determinar dónde se encuentran las vulnerabilidades, sino también priorizar qué problemas deben resolverse primero. Encontrar el modo de hacerlo es difícil porque la gravedad de las vulnerabilidades varía mucho de un entorno a otro. Un fallo de la biblioteca con efectos catastróficos en una organización podría no ser un problema para otra.

El contexto es fundamental para comprender qué vulnerabilidades tienen mayor impacto potencial en su organización y, por tanto, requieren acción urgente. Incluso si surge en una aplicación crítica, puede que no tenga acceso a datos sensibles y, por tanto, no requiera una acción inmediata. En cambio, una debilidad en una aplicación aparentemente menos importante podría usarse como puerta trasera a una base de datos que contiene datos personales altamente confidenciales, y requiere atención inmediata.

Con tantas alertas y tan poco tiempo, los equipos de seguridad y DevOps necesitan automatización e inteligencia artificial para abordar este escenario. Para aprovechar estas capacidades de manera efectiva, las organizaciones deben asegurarse de que la IA sea capaz de extraer datos de una única fuente que ofrezca observabilidad en tiempo real en todo su entorno, incluidas todas las aplicaciones y la infraestructura, así como una base de datos de vulnerabilidades. Esto brinda a las alertas impulsadas por IA el contexto necesario para priorizar las vulnerabilidades de la biblioteca de código abierto, identificando dónde están y cuál es su impacto potencial. Con IA, los equipos de seguridad y DevOps pueden obtener las respuestas precisas que necesitan para resolver estos problemas. De este modo, se reduce el tiempo que los equipos dedican a esfuerzos manuales y se libera tiempo para la innovación.

Mantener el ritmo de forma segura

La rapidez de la innovación es cada vez mayor y el código abierto seguirá desempeñando un papel clave para los equipos responsables de ofrecer nuevos servicios. Sin embargo, para evitar que las vulnerabilidades de seguridad potencialmente peligrosas se cuelen a través de la red, las organizaciones deben adoptar un enfoque automatizado para la gestión de las mismas. Esto permitirá que los equipos de seguridad y DevOps no sólo identifiquen amenazas, sino que también trabajen juntos para comprender su contexto, impacto potencial y prioridad. Con este enfoque de DevSecOps, los equipos ya no tienen que sacrificar la seguridad para aumentar la velocidad de desarrollo y pueden confiar en que los riesgos prioritarios se abordarán antes de que tengan impacto. En última instancia, esto reduce el riesgo a medida que los equipos dedican más tiempo para innovar y ofrecer servicios con mayor rapidez.

Computing 816