Con un 600 % más de ataques a la cadena de suministro de software en tres años, los equipos de DevOps deben repensar su enfoque: integrar la seguridad desde el diseño sin sacrificar la velocidad de desarrollo.
El código abierto es un elemento esencial en el diseño y distribución del software actual. De hecho, el código abierto está presente en el 96% de los programas comerciales y, para 2024, se habrán añadido millones de nuevos paquetes a los registros de códigos públicos. El código abierto acelera el desarrollo, fomenta la innovación comunitaria y forma la columna vertebral de innumerables aplicaciones comerciales y de consumo. Según un estudio de la Harvard Business School, sin software de código abierto, las empresas tendrían que gastar aproximadamente 8,8 billones de dólares para desarrollar el software y las plataformas que les permitan operar.
Si bien no hay duda de que el código abierto es esencial para la innovación continua en la industria, este ingrediente clave también conlleva un número creciente de desafíos de seguridad a medida que los piratas informáticos aprenden a explotar la misma apertura que hace que este ecosistema sea tan rico. En los últimos tres años, los ataques dirigidos a la cadena de suministro de software han aumentado en un 600 %, y los atacantes se dirigen cada vez más a canalizaciones de CI/CD, administradores de paquetes y registros públicos. Más de 10 millones de personas y 1700 organizaciones se vieron afectadas por ataques a la cadena de suministro de código abierto solo en 2022. La realidad es clara: el código abierto es esencial, pero requiere un nuevo nivel de vigilancia de la seguridad.
Código abierto: una herramienta poderosa que requiere salvaguardias
El 82% de los componentes de software de código abierto tienen algún nivel de riesgo inherente, como vulnerabilidades sin parches, dificultades de mantenimiento o problemas de calidad. Las organizaciones a menudo intentan limitar el uso de dependencias solo a paquetes aprobados y verificados, pero al hacerlo inhiben la innovación y la velocidad. Para cumplir con los plazos, los desarrolladores expertos encuentran soluciones y estos componentes a menudo se agregan a los proyectos sin un seguimiento constante o un monitoreo de seguridad continuo, lo que crea una oportunidad para que los atacantes actúen.
Muchos profesionales de DevOps están familiarizados con el mantra «liberar rápido o morir». Pero cuando este mantra dicta sus plazos, a veces la seguridad pasa a un segundo plano. Puede resultar tentador lanzar una versión para cumplir los objetivos empresariales y prometer corregir las vulnerabilidades más adelante. Pero el costo de quedarse atrás en materia de seguridad es alto: parchear las vulnerabilidades binarias después de su implementación puede costar millones, y la reputación de una empresa puede verse seriamente dañada después de una infracción. La lección es simple pero esencial: abordar la seguridad desde el principio, de una manera amigable para los desarrolladores, es mucho menos costoso que tener que hacer limpieza en producción.
Qué deberían priorizar los desarrolladores y los equipos de DevSecOps
Crear software seguro significa integrar la seguridad en los flujos de trabajo sin ralentizar la entrega. Aquí hay cuatro pasos prácticos que los desarrolladores y los equipos de DevSecOps pueden seguir:
* Manténgase proactivo en el manejo de las adicciones. No permita que las bibliotecas obsoletas se conviertan en un eslabón débil. Adquiera el hábito de revisar, actualizar y, si es necesario, reemplazar las dependencias periódicamente para abordar las vulnerabilidades antes de que puedan explotarse.
* Automatizar la revisión de dependencias. El uso de políticas automatizadas combinadas con bases de datos de seguridad enriquecidas puede acelerar la velocidad del software y, simultáneamente, mejorar la seguridad al trasladar la carga de los recursos manuales a herramientas inteligentes.
* Verificar la integridad de los archivos binarios. La confianza es esencial, pero no debe ser ciega. Asegúrese siempre de verificar la autenticidad de los archivos binarios y los artefactos de terceros que utilice en su entorno. Esto reduce el riesgo de incluir paquetes maliciosos o comprometidos en su canalización.
* Adoptar un seguimiento continuo. El análisis de vulnerabilidades automatizado integrado en sus canalizaciones de CI/CD le permite detectar rápidamente problemas de seguridad. Un enfoque continuo hace que la seguridad sea una parte integral del ritmo de desarrollo, no una ocurrencia tardía.
Muchas organizaciones también están rediseñando la infraestructura de su sistema para crear un buffer más seguro entre los desarrolladores y los registros en la Internet pública. Al utilizar un repositorio centralizado y organizado que sirve como proxy de los registros públicos para todos los artefactos de software, contenedores e incluso modelos de aprendizaje automático, los equipos tienen un único punto de control donde pueden aplicar controles de seguridad, organización y análisis consistentes antes de que los componentes ingresen a las canalizaciones. En última instancia, esto simplifica la experiencia del desarrollador y aumenta la seguridad en toda la cadena de suministro de software.
El próximo desafío: modelos de aprendizaje automático de código abierto
Es posible que los desarrolladores estén más familiarizados que antes con la protección de bibliotecas de códigos y binarios, pero ha surgido un nuevo desafío: los modelos de aprendizaje automático de código abierto. Los modelos de aprendizaje automático suelen ser grandes y opacos, plantean problemas de licencia y pueden contener vulnerabilidades ocultas implantadas por actores maliciosos.
A diferencia del código tradicional, los modelos de aprendizaje automático pueden ser más difíciles de inspeccionar, lo que los convierte en un objetivo atractivo para los atacantes que buscan ingresar a entornos empresariales con código malicioso. Es esencial tratar los modelos de aprendizaje automático de la misma manera que otros artefactos de software, lo que incluye escanearlos en busca de vulnerabilidades, verificar su procedencia y almacenarlos de forma segura antes de su implementación.
Construyendo un futuro seguro para el código abierto
Asegurar la cadena de suministro de software es más que un desafío técnico. Se trata de un cambio de mentalidad en la forma en que los equipos abordan el desarrollo. En pocas palabras, la seguridad no puede ser sólo un control final antes de entrar en producción: debe estar presente en cada paso, desde el momento en que se tiene en cuenta una dependencia hasta el despliegue final en producción. Al gestionar de forma proactiva las dependencias, verificar los archivos binarios, realizar análisis continuos y gestionar los modelos de aprendizaje automático de forma responsable, los equipos de desarrollo pueden ayudar a cerrar las vulnerabilidades que los piratas informáticos esperan aprovechar. Centralizar los controles de seguridad puede simplificar este proceso, reduciendo el riesgo y manteniendo la velocidad requerida por el desarrollo moderno.
Al incorporar la seguridad en el centro de su ADN de desarrollo, los equipos pueden continuar innovando rápidamente mientras protegen su organización, sus usuarios y el ecosistema digital en general.
____________________________
Par Fred SimónCofundador y arquitecto jefe de JFrog
Lea también:
Software: Por qué el enfoque DevOps es la clave para navegar entre la disrupción y la mercantilización…
Los 100 que harán tecnologías en la nube
[

