A pesar de que la seguridad es hoy en día una prioridad para los ejecutivos de todas las grandes empresas, muchos no tienen claro como garantizar que el software de su empresa es seguro. Un punto clave al que es necesario prestar atención desde el punto de vista de la seguridad es la cadena de suministro. La cadena de suministro de software está formada por todas las piezas y procesos utilizados para crear el software, desde el código que se crea, el software que se utiliza, las integraciones con aplicaciones de terceros, los scripts de empaquetado, etc. Cada una de estas piezas y los procesos que siguen son puntos potenciales de vulnerabilidad para la seguridad del software.
Evaluar la seguridad de la cadena de suministro de software dentro de un marco organizativo puede ser difícil. La mayoría de las empresas trabajan con múltiples proveedores y cuántos más terceros formen parte de la cadena, más puntos potenciales de vulnerabilidad hay que controlar. Entonces, ¿qué pueden hacer las empresas para asegurar una cadena de suministro de software segura?
Primer paso: Seguridad en el desarrollo
Tradicionalmente la seguridad ha sido un elemento que se introducía en las últimas fases de desarrollo de software. Mantener la seguridad en el desarrollo significa empezar por escribir un código limpio desde el principio, un código que sea seguro, fácil de entender y fácil de cambiar. Un código limpio supone la base de la eficiencia del desarrollo, la velocidad de lanzamiento y la seguridad general de la aplicación. No hacerlo de este modo puede suponer muchos problemas posteriores, sobre todo cuando los fallos se descubren después de que el código haya sido liberado.
A pesar de que es importante que los desarrolladores comprendan la importancia de las medidas de seguridad preventivas y que las incorporen al código, no es viable a largo plazo depositar toda la carga de la seguridad del software sobre los desarrolladores. Las debilidades de una cadena de suministro de software a menudo no son visibles para los equipos de ingeniería, por lo que es necesario implementar un ecosistema DevOps que garantice la seguridad y que permita que los desarrolladores simplemente se dediquen a arreglar los problemas dentro del código.
Siguiente paso: Seguridad en la entrega
La seguridad en la entrega requiere la supervisión de todas las cosas que pueden ir mal durante el proceso de entrega, aparte del propio código. Para ello la automatización puede ayudar a garantizar la seguridad de toda la cadena de suministro del software, eliminando cualquier error humano o identificando posibles pasos que se hayan pasado por alto.
Además de la automatización, las empresas deben establecer controles de acceso y privilegios tanto para el código como para el canal de distribución, a fin de garantizar que las personas adecuadas tengan el acceso correcto. Además, es importante mantener un catálogo de objetos inmutables u objetos seguros que no pueden modificarse una vez creados. Esto evita que alguien entre y modifique el código después de que se haya desplegado y ayuda a proporcionar otra capa de seguridad al proceso de entrega.
Supervisar la seguridad tras el lanzamiento y aplicar sistemas de cumplimiento
A medida que los lanzamientos de software se producen con mayor frecuencia y rapidez en las empresas, ya no solo es necesario fijarse en la seguridad de la infraestructura, sino que también es esencial mantener de forma automática el conocimiento sobre la aplicación después de su lanzamiento.
A la hora de detectar y solucionar problemas, hay dos parámetros clave en el sector que es importante tener en cuenta: el tiempo medio de detección (MTTD), que es el tiempo que se tarda en detectar un problema después de la publicación del software, y el tiempo medio de reparación (MTTR), que es el tiempo que se tarda en solucionar el problema. Estos términos son bien conocidos en el sector, pero lo que a menudo se pasa por alto es el tiempo medio para mitigar (MTTM), o el tiempo que se necesita para detener cualquier daño adicional.
En el momento en el que aparece una vulnerabilidad grave, la velocidad es algo esencial para actuar frente a ese ataque, aunque también lo es precisión. Aquí entran en juego nuevas técnicas de respuesta rápida, como los rollback automatizados y el feature flagging, que ayudan a reducir el MTTM, mejorando la seguridad de la cadena de suministro de software al reducir la brecha entre el MTTD y el MTTR.
Por otro lado, los sistemas de cumplimiento continuo se están convirtiendo en una capacidad crítica para garantizar la seguridad del software. Al funcionar en todo el ciclo de vida del software, imponen un bucle de retroalimentación que conecta la cadena de suministro de software de la empresa con el sistema de codificación. Esto le permite ir más allá de la detección y activar el proceso de mitigación con instrucciones concretas para la solución del problema.
La conclusión es que el software de una empresa es tan seguro como su código y la forma en que se distribuye, y al aplicar la seguridad en cada paso del proceso -desde el desarrollo hasta la entrega y la producción- las empresas pueden construir una cadena de suministro de software sólida y segura aplicando un enfoque de automatización integral.
Prakash Sethuraman, CISO en CloudBees