Implementaciones de código
Las canalizaciones automatizadas de compilación y versión deben actualizar una carga de trabajo a una nueva versión sin problemas y sin romper las dependencias. Aumente la automatización con procesos que permitan que la implementación rápida de las correcciones de alta prioridad.
Las organizaciones deben aprovechar la guía existente y la automatización al proteger las aplicaciones en la nube, en lugar de comenzar desde cero. El uso de los recursos y las lecciones aprendidas por organizaciones externas pioneras en estos modelos pueden acelerar la mejora de la postura de seguridad de una organización con un menor gasto en esfuerzo y recursos.
Puntos clave
- Implique al equipo de seguridad en el planeamiento y el diseño del proceso de DevOps para integrar controles preventivos y de detección de riesgos de seguridad.
- Diseñe canalizaciones de implementación automatizadas que permitan poner al día y revertir implementaciones rápidamente para abordar errores críticos y actualizaciones de código fuera del ciclo de vida de implementación normal.
- Integre las herramientas de exploración de código en la canalización de CI/CD.
Reversión y puesta al día
Si algo va mal, la canalización debería revertir a una versión de trabajo anterior. N-1 y N+1 hacen referencia a la reversión y la puesta al día de versiones. Las canalizaciones de implementación automatizadas deben permitir poner al día o revertir implementaciones rápidamente para abordar errores críticos y actualizaciones de código fuera del ciclo de vida de implementación normal.
¿Se pueden implementar las versiones N-1 o N+1 a través de canalizaciones automatizadas donde N es la versión de implementación actual en producción?
Dado que las actualizaciones de seguridad son una prioridad alta, diseñe una canalización que admita correcciones de seguridad críticas y actualizaciones periódicas.
Normalmente, una versión está asociada a procesos de aprobación con varias aprobaciones, pruebas de calidad, etc. Si la implementación de la carga de trabajo es pequeña con aprobaciones mínimas, normalmente puede usar el mismo proceso y la misma canalización para el lanzamiento de una corrección de seguridad.
Un proceso de aprobación complejo que tarde una cantidad de tiempo significativa puede retrasar una corrección. Considere la posibilidad de crear un proceso de emergencia para acelerar las correcciones de alta prioridad. El proceso puede ser empresarial, o bien un proceso de comunicación entre equipos. Otra manera es crear una canalización que podría no incluir todas las aprobaciones validadas, pero que debería poder extraer la corrección rápidamente. La canalización debe permitir poner al día y revertir rápidamente implementaciones que aborden correcciones de seguridad, errores críticos y actualizaciones de código fuera del ciclo de vida de implementación normal.
Importante
La implementación de una corrección de seguridad es una prioridad, pero no debe ser a costa de introducir una regresión o un error. Al diseñar una canalización de emergencia, considere detenidamente qué pruebas automatizadas se pueden omitir. Evalúe el valor de cada prueba con respecto al tiempo de ejecución. Por ejemplo, las pruebas unitarias suelen completarse rápidamente. Las pruebas de integración o de un extremo a otro se pueden ejecutar durante mucho tiempo.
Implique al equipo de seguridad en el planeamiento y el diseño del proceso de DevOps. El diseño de canalizaciones automatizado debe tener la flexibilidad necesaria para admitir implementaciones regulares y de emergencia. Esto es importante para admitir la aplicación rápida y responsable de correcciones de seguridad y otras correcciones urgentes e importantes.
Acción sugerida
Implemente un proceso de implementación automatizado que ofrezca compatibilidad con escenarios de reversión a través de las ranuras de implementación de Azure App Service.
Más información
Configuración de entornos de ensayo en Azure App Service
Exploración de credenciales
Las credenciales, las claves y los certificados conceden acceso a los datos o servicios que utiliza la carga de trabajo. El almacenamiento de credenciales en el código supone un riesgo de seguridad significativo. Asegúrese de que las herramientas de examen de código estático formen parte del proceso de integración continua (CI).
¿Las herramientas de exploración de código forman parte del proceso de integración continua (CI) de esta carga de trabajo?
Para evitar que las credenciales se almacenen en el código fuente o en los archivos de configuración, integre las herramientas de examen de código en la canalización de CI/CD:
- Durante el tiempo de diseño, use analizadores de código para evitar que las credenciales se inserten en el repositorio de código fuente. Por ejemplo, los analizadores de .NET Compiler Platform (Roslyn) inspeccionan su código de C# o de Visual Basic.
- Durante el proceso de compilación, use complementos de canalización para capturar credenciales en el código fuente. Algunas opciones son la seguridad avanzada de GitHub y las herramientas de análisis de código fuente de OWASP.
- Examine todas las dependencias, tales como bibliotecas de terceros y componentes del marco, como parte del proceso de CI. Investigue los componentes vulnerables marcados por la herramienta. Combine esta tarea con otras tareas de exploración de código que inspeccionen la renovación de código, los resultados de las pruebas y la cobertura.
- Use una combinación de pruebas de seguridad de aplicaciones dinámicas (DAST) y pruebas de seguridad de aplicaciones estáticas (SAST). El enfoque DAST prueba la aplicación mientras está en uso. El enfoque SAST examina el código fuente y detecta vulnerabilidades en función de su diseño o implementación. OWASP proporciona algunas opciones de tecnología. Para obtener más información, consulte los temas sobre las herramientas de SAST y las herramientas de detección de vulnerabilidades.
- Use las herramientas de detección especializadas de las tecnologías que usa la carga de trabajo. Por ejemplo, si la carga de trabajo está contenedorizada, ejecute herramientas de detección que tengan en cuenta los contenedores para detectar riesgos en el registro de contenedor, durante el uso y antes de este.
Acciones sugeridas
Incorpore DevOps seguro en el kit de herramientas de Azure y la guía publicada por la organización para el proyecto de la seguridad de aplicaciones web (OWASP) o una organización de orientación equivalente.
Más información
Vínculos de la comunidad
- Herramientas de análisis de código fuente de OWASP
- Seguridad avanzada de GitHub
- Herramientas de examen de vulnerabilidades
Vuelva al artículo principal: Implementación y pruebas seguras en Azure