DevSecOps ayuda a anular los riesgos antes de que puedan ingresar más tarde en el flujo de compilación.
por Pete Bartolik – Red Hat
Muchas organizaciones que han comenzado el esfuerzo de implementar DevSecOps a menudo se dan cuenta rápidamente de que todavía están en las primeras etapas de la integración total de la seguridad y el cumplimiento en el ciclo de vida de desarrollo de software (SDLC).
Hoy en día, los usuarios normalmente descargan paquetes y usan resúmenes de sumas de verificación simples y, por lo general, dependen de los escáneres de seguridad en los productos finales (por ejemplo, contenedores, binarios) antes de que se implementen en producción. Es un ciclo de retroalimentación menos que óptimo para el desarrollador, ya que cualquier información sobre una amenaza de seguridad ya se habría introducido en la canalización de compilación después de que se confirme su código. Pocos registros brindan un servicio de hashing confiable junto con un sistema de firma criptográfica junto con el servicio de repositorio de paquetes en sí.
“Los protocolos débiles, la ingeniería social y los puntos finales desprotegidos pueden generar impactos sin precedentes, desde reparaciones costosas y tiempo de inactividad extenso hasta una reputación negativa y, en algunos casos, cerrar una empresa para siempre”, escribe Nick Hopman de Red Hat.
Anulación de los riesgos de seguridad
DevSecOps es un medio para inyectar seguridad en cada paso del desarrollo para que los desarrolladores obtengan comentarios tempranos y los riesgos de seguridad se anulen antes de ingresar más tarde en el flujo de compilación.
Aprovechar el potencial de DevSecOps no es necesariamente fácil, según un informe de McKinsey : “Se basa en una estrecha colaboración tanto dentro de TI como entre TI, seguridad, cumplimiento y riesgo. Para hacerlo bien, las empresas deben hacer cuatro cambios en la forma en que administran la tecnología: crear un modelo operativo más integrado, crear servicios ‘consumibles’ seguros, automatizar los procesos de desarrollo y lanzamiento, y evolucionar las arquitecturas de productos”.
DevSecOps es una tarea compleja, especialmente porque las herramientas DevOps, y el proceso DevOps en general, crecen y cambian continuamente. Los equipos también deben dominar las tecnologías que permiten a las organizaciones hacer DevSecOps a escala, como el uso de contenedores, Kubernetes y servicios de nube pública para desarrollar aplicaciones modernas nativas de la nube.
Llegar de aquí para allá
DevSecOps significa pensar en la seguridad de las aplicaciones y la infraestructura desde el principio. Seleccionar las herramientas adecuadas para integrar continuamente la seguridad, como acordar un entorno de desarrollo integrado (IDE) con características de seguridad, puede ayudar a cumplir estos objetivos. También significa automatizar algunas puertas de seguridad para evitar que el flujo de trabajo de DevOps se ralentice. Algunos pasos que las empresas pueden tomar ahora incluyen:
- Estandarice y automatice el entorno. Cada servicio debe tener el menor privilegio posible para minimizar las conexiones y accesos no autorizados.
- Introduzca API seguras que aumenten la visibilidad de la autorización y el enrutamiento. Al reducir las API expuestas, las organizaciones pueden reducir la superficie de los ataques.
- Automatice las pruebas de seguridad en el proceso de CI. Esto incluye ejecutar herramientas de análisis estático como parte de las compilaciones, así como escanear cualquier imagen de contenedor preconstruida en busca de vulnerabilidades de seguridad conocidas a medida que se incorporan a la canalización de compilación.
- Agregue pruebas automatizadas para las capacidades de seguridad en el proceso de prueba de aceptación, incluidas las pruebas de validación de entrada, la autenticación y las funciones de autorización.
- Automatice las actualizaciones de seguridad , como parches para vulnerabilidades conocidas. Hacerlo a través de la canalización de DevOps debería eliminar la necesidad de que los administradores inicien sesión en los sistemas de producción, mientras crean un registro de cambios documentado y rastreable. Para los contenedores, dado que son inmutables, no debe parchear los contenedores en ejecución; en su lugar, reconstruya y vuelva a implementarlos.
- Automatice las capacidades de gestión de la configuración de servicios y sistemas que permitan el cumplimiento de las políticas de seguridad y la eliminación de errores humanos manuales.
DevSecOps puede permitir que una organización asegure sus aplicaciones al principio del ciclo de vida con mayor velocidad, a mayor escala y de manera más integral en lugar de hacer la seguridad una vez que la aplicación ya está implementada.
Toda la canalización de creación de software requiere una cadena completa de atestación basada en criptografía y no repudio de todos los artefactos comprometidos y generados por los diversos actores dentro de la cadena de suministro. Aprovechar el aprendizaje automático y la IA ayudará a los desarrolladores a obtener una visión temprana de los ataques introducidos al software desde paquetes ascendentes comprometidos, fallas en la codificación de seguridad y otros riesgos comúnmente asociados con los procesos de creación y desarrollo de software.
Haga clic aquí para obtener más información sobre el enfoque de Red Hat para DevSecOps.