SecDevOps
La implantación del movimiento DevOps ha supuesto un avance en los procesos de desarrollo de software y su implantación. El cada vez más exigente “Time To Market” surge de la necesidad de que la calidad y la agilidad en el Ciclo de Vida de Desarrollo de Software estén cada vez más unidos, y por ello la solución idónea es la automatización de todas las fases de construcción y testeo del código; o lo que es lo mismo la Integración Continua (CI).
Esta filosofía es cada vez más importante y deja entrever la madurez durante el desarrollo de proyectos, pero todavía hay un principio clave que añadir a este proceso: la seguridad. Por lo que el término se convierte en SecDevOps. En resumen, Aplicar DevOps le permite mejorar sus tiempos de implementación de nuevos servicios y funcionalidades.
Siguiendo el ciclo de vida de DevOps, el equipo de seguridad comenzaría a aplicar sus controles en una de las últimas fases, más concretamente en la fase de Despliegue, demasiado tarde si tenemos en cuenta que se encontrarán fallos y el equipo de desarrollo debe solucionarlos en un corto plazo para sacar adelante la nueva versión, por ello en muchas ocasiones nos encontramos con retrasos en los tiempos de entrega y yendo en contra de la filosofía Agile y DevOps.
Por estos motivos, si implementamos desde la fase de planificación (Security By Design), y subsanamos los defectos antes de la fase de desarrollo, reducimos los costes de corregir las vulnerabilidades en fases de producto más avanzadas. Pero, vamos a hacer mayor zoom a cada una de las fases y las pruebas de seguridad aplicables en cada una de ellas:
- Planificación: Siendo la fase más temprana del desarrollo, optamos por analizar el tipo de amenazas que se puede encontrar el proyecto, ataques a la autenticación de usuarios, la exposición de servicios críticos y la versión que se usa, el cifrado, etc.
- Programación: El responsable del proyecto debe encargarse de que el equipo de desarrollo mantiene los problemas que pudieran existir de seguridad y hagan uso de las buenas prácticas y guías disponibles para el desarrollo seguro. Antes de pasar a la siguiente fase podemos realizar un análisis estático de código.
- Testing: como en cualquier otro desarrollo, llevamos a cabo las pruebas funcionales, unitarias y de integración. Diseñando casos de uso específicos para la seguridad.
- Empaquetado: En la fase de empaquetado analizaremos las librerías externas e imágenes (en caso de usar contenedores) en busca de problemas de seguridad que no recaigan sobre nuestro proyecto.
- Lanzamiento: La centralización y el uso de repositorios que dispongan de control de versiones. (GIT, Gitlab, Azure DevOps…)
- Despliegue: Previamente al despliegue de la aplicación en los servidores de producción, la desplegaremos sobre un entorno privado para testear nuevamente la seguridad de la aplicación.
- Operación: Ya está en funcionamiento. Es el turno de asegurarnos de la seguridad de la aplicación mediante una auditoria de seguridad o pentesting.
- Monitorización: Nunca dejamos de hacer pruebas de seguridad, la tecnología avanza y los ciberdelincuentes detectan a diario nuevas fallas que ponen en riesgo la integridad de muchas de las tecnologías usadas diariamente. En esta fase hacemos un seguimiento de la aplicación para detectar posibles vulnerabilidades y ataques.
La democratización de la ciberseguridad es uno de nuestros pilares fundamentales, incluyéndolo en los procesos de desarrollo de software o en cualquier otro punto relacionado con las nuevas tecnologías. En Auditech apostamos por fomentar una política de Seguridad por defecto, donde toda la organización tenga en cuenta estos conceptos. Siempre optar por la implantación temprana como SecDevOps.
En la EIP International Business School encontrarás la formación que buscas, actualizada y de calidad. Solicítanos ahora información para conocer más sobre nuestro Máster en Ciberseguridad.