“Implementación de DevSecOps para aplicaciones basadas en microservicios” Nueva guía de NIST

El gobierno federal de EE. UU., Al igual que las empresas privadas, está haciendo la transición a arquitecturas basadas en la nube, Devsecops y microservicios para aplicaciones nativas de la nube. El Instituto Nacional de Estándares y Tecnología (NIST) proporciona estándares y orientación para la adopción de las mejores prácticas por parte de la industria y fomenta la innovación.
Ⓒ Banco de imágenes de Getty

Con este fin, el NIST anunció en septiembre pasado una implementación de DevSecOps para aplicaciones basadas en microservicios que utilizan Service Mesh (800-204C). Una guía completa para implementar DevSecOps y usar una plataforma de referencia que usa mallas de servicio para alojar aplicaciones nativas de la nube en arquitecturas de microservicios. Este documento, actualmente en forma de borrador, fue creado en colaboración con el ex director de software de la Fuerza Aérea de los EE. UU. Nicholas Chalein y el líder de la malla de servicio Tetrate.

Esta guía utilizó el concepto de primitivas, los componentes básicos para una implementación exitosa de DevSecOps. Las primitivas de DevSecOps son las más adecuadas para aplicaciones basadas en microservicios para un desarrollo ágil. También respalda el concepto de que DevSecOps facilita los requisitos de agilidad empresarial necesarios para las aplicaciones nativas de la nube. Analicemos el contenido de cada sesión de la guía NIST.


Plataforma de referencia para implementar primitivas de DevSecOps

Esta guía trata sobre la plataforma de referencia en el contexto de una plataforma de gestión y orquestación de contenedores. Construir sobre una infraestructura física o virtual, por ejemplo, en un entorno rígido (físico) clasificado o desconectado o un entorno virtualizado como un entorno de proveedor de servicios en la nube (CSP) como AWS o Azure.

La guía recomienda utilizar una plataforma de gestión de recursos y orquestación de contenedores. Una de las plataformas de orquestación de contenedores de código abierto más populares es Kubernetes. Kubernetes se puede implementar en máquinas físicas o virtuales basadas en pods que alojan aplicaciones en contenedores. Mediante el uso de grupos de nodos y módulos de alojamiento, Kubernetes puede distribuir cargas de trabajo para microservicios en la infraestructura subyacente para admitir el equilibrio y el escalado de carga.

Por supuesto, la plataforma Kubernetes también tiene sus propios problemas de seguridad y rendimiento. Uno de ellos es poder manejar la segmentación y el enrutamiento del tráfico a través de diferentes tipos de pods, incluido el round robin.

El software de malla de servicios como Istio se utiliza para ese mismo propósito. El software Service Mesh proporciona la mayor parte del enrutamiento y la observabilidad del tráfico necesarios para las aplicaciones basadas en microservicios. Una arquitectura de malla de servicios consta de dos componentes principales: un plano de datos y un plano de control. Ambos componentes realizan funciones como redes seguras, aplicación de políticas, observación del tráfico y rendimiento (plano de datos), gestión de claves y certificados y gestión de conexiones entrantes / salientes (plano de control).


Preparación organizativa, primitivas clave e implementación de DevSecOps

Esta sesión cubrirá la forma correcta de preparar y hacer la transición de DevSecOps a DevSecOps en instituciones y empresas, y los componentes (primitivos) de DevSecOps. De hecho, esta sesión debería aparecer al principio del documento.

La guía destaca la necesidad de realizar cambios en los flujos de trabajo y los departamentos de TI de la empresa para facilitar la transición a DevSecOps. Un equipo multifuncional de desarrolladores, expertos en seguridad y expertos en operaciones de TI es esencial para que las empresas logren DevSecOps y rompan los silos tradicionales.

NIST menciona la evolución de DevOps a DevSecOps, enfatizando que DevOps tradicionalmente carece de pruebas de seguridad e integración de controles de seguridad y verificaciones de postura de seguridad en tiempo real. Este es un argumento interesante, dado que muchos expertos dicen que DevOps y DevSecOps son lo mismo y que DevOps siempre debe incluir seguridad. El término en el nombre, o el resultado y el método, ¿cuál es el más importante?

De todos modos, el punto es que DevSecOps debe tener algunos componentes centrales específicos que DevOps no tiene. Esto incluye la integración de las pruebas de seguridad en la canalización de CI / CD, la comprensión de lo que está sucediendo en la canalización y la implementación de controles de seguridad para proteger la canalización en sí, y garantizar que la seguridad no quede relegada a una tarea separada. hacer. La seguridad a menudo se considera un factor “adicional” al final del ciclo de vida del desarrollo.

Además de la discusión sobre las canalizaciones, esta guía enfatiza que las canalizaciones deben ser una sola tarea que fluya a través de las diversas etapas para construir, probar, proteger el código y proporcionar valor a la empresa. Dependiendo de si la empresa implementa integración continua, entrega continua o implementación continua, puede haber pasos manuales adicionales entre las implementaciones del entorno de prueba y producción (ver figura).

Ⓒ NIST
Ⓒ NIST

CI / CD consta en última instancia de tres fases: construcción / prueba, entrega / paquete e implementación. Las canalizaciones pueden facilitar CI / CD, pero las tareas y entidades también son las que componen una canalización, incluida la configuración de repositorios de código fuente, procesos de construcción, protección de procesos de construcción, entornos de implementación, canalizaciones de entrega y, finalmente, pruebas de código y canalizaciones. Se incluye la ejecución del flujo de trabajo.

Si bien la canalización de CI / CD admite la automatización y la implementación rápida, NIST enfatiza que todavía hay muchas áreas de intervención humana. Hay un equipo de desarrollo que presenta nuevas funciones, un equipo de seguridad que realiza auditorías y un equipo que diseña y crea canalizaciones para facilitar los flujos de trabajo.

La automatización es un componente importante para habilitar DevSecOps y Rapid Delivery. Pero decidir qué tareas automatizar puede ser un desafío. De acuerdo con la guía NIST, debe concentrarse en tareas repetitivas de alta frecuencia, tareas orientadas al cumplimiento y actividades cronológicas. Adoptar la automatización de esta manera permite a los equipos concentrarse en resolver problemas analíticos, con menos tiempo perdido en tareas y actividades de rutina.

Las consideraciones para la integración de herramientas en la canalización incluyen la facilidad de integración, interfaces accesibles y la capacidad de admitir varios componentes de infraestructura de back-end. El motivo de esta necesidad es el entorno en el que se pueden alojar las aplicaciones en contenedores y la necesidad de ser flexible y dinámico.


Implementación primitiva de DevSecOps para plataforma de referencia

La guía de NIST destaca que una plataforma de referencia puede involucrar muchas canalizaciones de CI / CD. También puede haber canalizaciones para código de aplicación, infraestructura como código (IaC), política como código u observabilidad como código. Todas estas canalizaciones, independientemente del tipo de código, requieren protección para la propia canalización, manejando el modelo de flujo de trabajo e integrando las pruebas de seguridad adecuadas. La documentación describe los aspectos importantes de la canalización asociados con cada tipo de código.

A menudo se dice que CI / CD mejora la seguridad del código, pero la propia canalización también debe protegerse para que no se introduzca ni distribuya código malicioso (ejemplo de SolarWinds). La protección de canalización incluye autenticación, registro, generación de informes disponibles para desarrolladores y equipos de seguridad, y firma de artefactos de múltiples partes, por ejemplo, usando TUF e in-toto.

NIST presenta un modelo de flujo de trabajo para una canalización de CI / CD que se basa en push o pull. La guía sostiene que los flujos de trabajo basados ​​en push pueden ser inseguros porque pueden exponer credenciales fuera del entorno departamental. En cambio, insiste en usar un estilo GitOps que se ve facilitado por un flujo de trabajo basado en extracción.

Este método ejecuta el entorno de implementación a través de un operador y extrae una nueva imagen en el entorno cuando el operador observa un cambio en el repositorio de Source Code Management (SCM). GitOps está emergiendo lentamente como un estándar de la industria, lo que permite a las organizaciones usar y confiar en SCM como una fuente de verdad. También puede proporcionar valor como control de versiones, control de deriva y eliminación de iteraciones manuales del entorno en lugar de aprovechar los flujos de trabajo basados ​​en Git.

Las pruebas de seguridad son importantes sin importar con qué canalización esté tratando. NIST proporciona pruebas de seguridad de aplicaciones estáticas (SAST), pruebas de seguridad de aplicaciones dinámicas (DAST), pruebas de seguridad de aplicaciones interactivas (IAST) y análisis de composición de software. Presentamos pruebas de seguridad generales que incluyen

Todos estos tipos de pruebas son muy importantes para reducir su riesgo e identificar vulnerabilidades. Estos análisis pueden descubrir vulnerabilidades, problemas con la imagen del contenedor y problemas de cumplimiento. También existe la necesidad de comprobar si existen problemas de seguridad y cumplimiento en las plantillas de IaC antes de que lleguen al entorno de ejecución. Esto se llama cambio de seguridad a la izquierda. Por supuesto, debe estar atento y ser consciente de las vulnerabilidades del tiempo de ejecución.

La guía de NIST analiza DevSecOps en el contexto de una Autoridad Continua para Operar (cATO) que autoriza la puesta en producción de sistemas. Se puede descubrir el código de cumplimiento y los paneles pueden proporcionar visibilidad en tiempo de ejecución. Probablemente pueda ver una guía cATO más completa en la guía cATO que publicará el Departamento de Defensa (DoD). La Guía del Departamento de Defensa cubrirá la autorización de plataformas, equipos y procesos de manera más completa. El DoD ha publicado recientemente varios documentos de DevSecOps, incluida la estrategia corporativa, los libros de jugadas y los documentos básicos.

NIST recopilará comentarios sobre el borrador del documento SP 800-204C antes del 1 de noviembre. [email protected]


Source: ITWorld Korea by www.itworld.co.kr.

*The article has been translated based on the content of ITWorld Korea by www.itworld.co.kr. If there is any problem regarding the content, copyright, please leave a report below the article. We will try to process as quickly as possible to protect the rights of the author. Thank you very much!

*We just want readers to access information more quickly and easily with other multilingual content, instead of information only available in a certain language.

*We always respect the copyright of the content of the author and always include the original link of the source article.If the author disagrees, just leave the report below the article, the article will be edited or deleted at the request of the author. Thanks very much! Best regards!