2.1 Preparar la Organización (PO)

2.1 Preparar la Organización (PO) para los pasos de CI/CD de Build y Deploy

2.1 Preparar la Organización (PO) - Tareas de Build y Deploy

Las organizaciones deben asegurarse de que su personal, procesos y tecnología estén preparados para realizar desarrollo de software seguro a nivel organizacional. Muchas organizaciones encontrarán que algunas prácticas de PO también son aplicables a subconjuntos de su desarrollo de software, como grupos de desarrollo individuales o proyectos.


PO.1 Definir Requisitos de Seguridad para el Desarrollo de Software: Asegurar que los requisitos de seguridad para el desarrollo de software sean conocidos en todo momento, de manera que puedan ser considerados a lo largo del SDLC y se minimice la duplicación de esfuerzos, ya que la información de los requisitos puede recopilarse una sola vez y compartirse. Esto incluye requisitos de fuentes internas (por ejemplo, las políticas de la organización, objetivos de negocio y estrategia de gestión de riesgos) y fuentes externas (por ejemplo, leyes y regulaciones aplicables).


Para cumplir con SSDF PO.1 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se desplaza de solo definir a:

  • Aplicar políticas de seguridad sobre dependencias, código y configuraciones.

  • Verificar el cumplimiento con las bases de seguridad establecidas antes del despliegue.

  • Asegurar que los artefactos cumplan con los requisitos de seguridad del DoD, NIST u organizacionales.


Tareas Herramientas
PO.1.1:

Identificar y documentar todos los requisitos de seguridad para las infraestructuras y procesos de desarrollo de software de la organización, y mantener dichos requisitos a lo largo del tiempo.

PO.1.2:

Identificar y documentar todos los requisitos de seguridad que el software desarrollado por la organización debe cumplir, y mantener dichos requisitos a lo largo del tiempo.

Open Policy Agent

Motor de políticas de propósito general usando Rego para aplicar políticas en servicios, CI/CD e infraestructura.

Conftest

Usa el lenguaje Rego de OPA para probar manifests de Kubernetes, Terraform y Dockerfiles contra requisitos de seguridad predefinidos.

InSpec

Prueba infraestructuras y aplicaciones desplegadas contra frameworks de cumplimiento (por ejemplo, CIS Benchmarks, NIST 800-53).

Kyverno

Motor de políticas nativo de Kubernetes para aplicar configuraciones seguras en el momento del despliegue.

Checkov

Escanea Infraestructura como Código (IaC) durante la compilación para asegurar el cumplimiento de los requisitos de seguridad antes del despliegue.

Trivy

Escanea imágenes de contenedores, IaC y SBOMs para vulnerabilidades y configuraciones incorrectas antes del despliegue.

Clair

Análisis estático de imágenes de contenedores para asegurar que cumplan con los requisitos de seguridad antes de enviarlas al registro.

Grype

Escaneo de vulnerabilidades en imágenes de contenedores y sistemas de archivos para validar artefactos contra políticas antes del despliegue.

Sigstore Cosign

Firmar y verificar imágenes de contenedores y otros artefactos de compilación para asegurar su integridad y procedencia.

Conforma

Verifica de forma segura artefactos de la cadena de suministro y aplica políticas sobre cómo fueron construidos y probados. Construido con Sigstore y Open Policy Agent, puede verificar el cumplimiento de procedencia SLSA con políticas extensibles.

PO.2

Implementar Roles y Responsabilidades: Asegurar que todas las personas, dentro y fuera de la organización, involucradas en el SDLC estén preparadas para desempeñar sus roles y responsabilidades relacionadas con el SDLC durante todo el ciclo de vida del desarrollo de software.


Para cumplir con SSDF PO.2 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se traslada a:

  • Aplicar control de acceso basado en roles (RBAC) para limitar quién puede iniciar compilaciones, aprobar cambios y desplegar.

  • Proporcionar registros de auditoría y trazabilidad de las acciones para garantizar responsabilidad.

  • Asegurar que los cambios de código y despliegues sean revisados por personal autorizado.


Tareas Herramientas
PO.2.1:

Crear nuevos roles y modificar responsabilidades de los roles existentes según sea necesario para abarcar todas las partes del SDLC. Revisar y mantener periódicamente los roles y responsabilidades definidos, actualizándolos según se requiera.


PO.2.2:

Proporcionar formación basada en roles para todo el personal con responsabilidades que contribuyan al desarrollo seguro. Revisar periódicamente la competencia del personal y la formación basada en roles, y actualizar la formación según sea necesario.


PO.2.3:

Obtener el compromiso de la alta dirección o del funcionario autorizado con el desarrollo seguro y comunicar ese compromiso a todos los involucrados en roles y responsabilidades relacionadas con el desarrollo.

Keycloak

Gestión de identidad y acceso de código abierto para aplicar RBAC en pipelines de CI/CD y herramientas de despliegue.

Dex

Proveedor federado de OpenID Connect para integrar identidades de desarrolladores en sistemas de build y deploy con control de acceso basado en roles.

Vault by HashiCorp

Gestiona y controla de manera segura el acceso a secretos según roles definidos durante builds y despliegues.

Argo CD

Herramienta de despliegue GitOps con RBAC para controlar quién puede sincronizar, aprobar o revertir despliegues.

Jenkins with Role Strategy Plugin

Agrega RBAC detallado a pipelines de Jenkins, limitando acciones de build y deploy a roles autorizados.

Tekton Pipelines

CI/CD nativo de Kubernetes con RBAC de Kubernetes para controlar permisos de ejecución de pipelines.

Flux CD

Herramienta GitOps que aplica RBAC para workflows de despliegue y requiere aprobaciones para cambios.

Kubernetes RBAC

Control de acceso incorporado para restringir quién puede desplegar, modificar o eliminar cargas de trabajo.

Gitea

Servicio Git autoalojado con roles de usuario y permisos de repositorio para aplicar flujos de trabajo de aprobación y revisión.

Auditbeat

Proporciona registro de auditoría para acciones de build y deploy, ayudando a rastrear el cumplimiento de las responsabilidades asignadas.

PO.3

Implementar Cadenas de Herramientas de Soporte: Utilizar automatización para reducir el esfuerzo humano y mejorar la precisión, reproducibilidad, usabilidad y exhaustividad de las prácticas de seguridad a lo largo del SDLC, así como proporcionar una forma de documentar y demostrar el uso de estas prácticas. Las cadenas de herramientas y herramientas pueden utilizarse en diferentes niveles de la organización, como a nivel organizacional o específico de proyecto, y pueden abordar una parte particular del SDLC, como un pipeline de build.


Para cumplir con SSDF PO.3 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se centra en:

  • Asegurar que las herramientas de build y despliegue estén configuradas de forma segura y se mantengan actualizadas.

  • Proteger contra ataques a la cadena de suministro que apunten al pipeline de CI/CD.

  • Verificar la integridad de herramientas y artefactos antes de su uso.

  • Controlar y monitorear el acceso a las cadenas de herramientas.


Tareas Herramientas
PO.3.1:

Especificar qué herramientas o tipos de herramientas deben o deberían incluirse en cada cadena de herramientas para mitigar los riesgos identificados, así como cómo se deben integrar entre sí los componentes de la cadena de herramientas.


PO.3.2:

Seguir las prácticas de seguridad recomendadas para desplegar, operar y mantener herramientas y cadenas de herramientas.


PO.3.3:

Configurar las herramientas para generar artefactos que respalden las prácticas de desarrollo de software seguro definidas por la organización.

Sigstore Cosign

Firma y verifica artefactos de build para evitar el despliegue de software manipulado.

Marco SLSA + slsa-verifier

Garantiza la procedencia del build y verifica la integridad de los artefactos antes del despliegue.

Gitleaks

Escanea repositorios y pipelines de build en busca de secretos antes de la ejecución del build.

Argo CD

Herramienta de despliegue GitOps con RBAC para controlar quién puede sincronizar, aprobar o revertir despliegues.

Trivy

Escanea contenedores de herramientas CI/CD y sus dependencias en busca de vulnerabilidades.

Syft

Genera SBOMs de artefactos de build para rastrear los componentes usados en la cadena de herramientas.

Builds herméticos con Konflux-ci

Builds con dependencias fijadas y predescargadas en entornos aislados para habilitar builds reproducibles y verificables.

Hermeto

Pre-descarga dependencias para builds herméticos, genera SBOMs y asegura builds de contenedores aislados de red con checksums verificables.

Clair

Analiza imágenes de contenedores usados en builds/despliegues para detectar vulnerabilidades.

Vault de HashiCorp

Protege secretos usados por herramientas de build/despliegue, asegurando que no se expongan en los pipelines.

Open Policy Agent (OPA)

Aplica políticas como código en workflows de CI/CD y despliegue usando Rego para prevenir acciones inseguras.

Fábrica de software Konflux-ci para Tekton

Implementa el framework In-toto usando pipelines como código.

Auditbeat

Monitorea y registra la actividad de la cadena de herramientas CI/CD para garantizar integridad y cumplimiento.

PO.4 Define and Use Criteria for Software Security Checks: Help ensure that the software resulting from the SDLC meets the organization’s expectations by defining and using criteria for checking the software’s security during development.


Para cumplir con SSDF PO.4 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se centra en:

  • Aplicar prácticas consistentes de pruebas y validación de seguridad antes del lanzamiento.

  • Automatizar las verificaciones de seguridad en los pipelines de CI/CD.

  • Utilizar procesos estandarizados para verificar, firmar y rastrear artefactos.

  • Integrar controles de seguridad para que ningún artefacto inseguro sea desplegado.


Tareas Herramientas
PO.4.1:

Definir criterios para las verificaciones de seguridad del software y hacer seguimiento a lo largo del SDLC.

PO.4.2:

Implementar procesos, mecanismos, etc., para recopilar y proteger la información necesaria en apoyo de los criterios.

OWASP Dependency-Check

Automatiza el escaneo de dependencias de código abierto en los builds para aplicar una detección consistente de vulnerabilidades.

Semgrep

Análisis estático integrado en los builds para asegurar verificaciones consistentes de seguridad del código antes del despliegue.

Bandit (para Python)

Linter de seguridad para Python en pipelines de build para mantener verificaciones consistentes por lenguaje.

Trivy

Escaneo consistente de vulnerabilidades e IaC antes del despliegue.

Grype

Mantiene escaneos de vulnerabilidades consistentes para todos los artefactos de build.

InSpec

Automatiza verificaciones de cumplimiento antes del despliegue para asegurar que las prácticas coincidan con los estándares organizacionales.

Sigstore Cosign

Estandariza la firma y verificación de artefactos para que solo builds confiables sean desplegados.

Open Policy Agent (OPA)

Aplica políticas de despliegue a nivel organizacional en todos los entornos.

DefectDojo

Centraliza y estandariza el seguimiento de vulnerabilidades y flujos de remediación en todos los builds.

PO.5 Implementar y Mantener Entornos Seguros para el Desarrollo de Software: Asegúrese de que todos los componentes de los entornos de desarrollo de software estén fuertemente protegidos contra amenazas internas y externas, para evitar compromisos de los entornos o del software que se desarrolla o mantiene en ellos. Ejemplos de entornos de desarrollo incluyen entornos de desarrollo, build, prueba y distribución.


Para cumplir con SSDF PO.5 en un contexto de Build y Deploy usando herramientas de código abierto, el enfoque se centra en:

Proteger la infraestructura de CI/CD contra amenazas internas y externas. Endurecer servidores de build, registros de contenedores y sistemas de despliegue. Asegurar que los entornos de build y despliegue estén parchados, monitoreados y con control de acceso. Prevenir código malicioso o manipulación en la cadena de suministro de software.

Tareas Herramientas
PO.5.1:

Separar y proteger cada entorno involucrado en el desarrollo de software.

PO.5.2:

Asegurar y reforzar los endpoints de desarrollo (i.e., endpoints para diseñadores de software, desarrolladores, testers, builders, etc.) para realizar tareas de desarrollo utilizando un enfoque basado en riesgos.

Jenkins Configuration as Code + Role Strategy Plugin

Protege los servidores de build de Jenkins con configuraciones codificadas y RBAC para limitar el acceso a trabajos críticos de build.

Tekton Pipelines

Framework CI/CD nativo de Kubernetes con control de acceso basado en roles (RBAC).

Argo CD

Despliegue GitOps con RBAC y verificación de commits firmados para despliegues a producción.

Vault by HashiCorp

Protege secretos en entornos de build y despliegue, previniendo fugas en los pipelines.

Sigstore Cosign

Firma artefactos de build y los verifica antes del despliegue para asegurar que no fueron manipulados.

In-toto

Proporciona seguridad de extremo a extremo en la cadena de suministro de software, asegurando que cada paso del build/despliegue esté firmado y verificado.

InSpec

Ejecuta escaneos de cumplimiento continuo en servidores de desarrollo y build; aplica benchmarks CIS/NIST.

SLSA + slsa-verifier

Verifica la procedencia del build, asegurando que los artefactos provienen de un entorno de build confiable y no comprometido.

Trivy

Escanea contenedores e infraestructura de build/despliegue en busca de vulnerabilidades y configuraciones incorrectas.

Falco

Seguridad en tiempo de ejecución para entornos de build y despliegue, detectando comportamientos maliciosos o actividad no autorizada.

Auditbeat

Monitorea servidores de build y despliegue para cambios en la integridad de archivos, accesos no autorizados y eventos de seguridad.

Kyverno

Aplica políticas de seguridad de Kubernetes en los entornos de despliegue (ej., no permitir pods privilegiados).