Configure la extensión de Seguridad de Microsoft DevOps para Azure DevOps

Seguridad de Microsoft DevOps es una aplicación de línea de comandos que integra el análisis estático en el ciclo de vida de desarrollo. Instala, configura y ejecuta los analizadores de cumplimiento, seguridad y SDL más recientes mediante configuraciones portátiles para garantizar una ejecución coherente y determinista entre entornos.

Seguridad de Microsoft DevOps usa las siguientes herramientas de código abierto:

Name Idioma License
AntiMalware Protección contra malware en Windows desde Microsoft Defender para punto de conexión. Busca malware y interrumpe la compilación si se detecta contenido malintencionado. Se ejecuta de forma predeterminada en el agente más reciente de Windows. No de código abierto
Bandit Python Licencia de Apache 2.0
BinSkim Destinos binarios: Windows, ELF Licencia MIT
Checkov Terraform, plan de Terraform, CloudFormation, AWS SAM, Kubernetes, gráficos de Helm, Kustomize, Dockerfile, Sin servidor, Bicep, OpenAPI, ARM Licencia de Apache 2.0
ESLint JavaScript Licencia MIT
IaCFileScanner Herramienta de mapeo de plantillas para Terraform, CloudFormation, ARM templates y Bicep No de código abierto
Analizador de plantillas Plantillas de ARM, Bicep Licencia MIT
Terrascan Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, CloudFormation Licencia de Apache 2.0
Trivy Imágenes de contenedores, infraestructura como código (IaC) Licencia de Apache 2.0

Note

A partir del 20 de septiembre de 2023, la herramienta de análisis de secretos (CredScan) dentro de la extensión DevOps de Seguridad de Microsoft (MSDO) para Azure DevOps ha quedado en desuso. El examen de secretos de MSDO se reemplaza por GitHub Advanced Security para Azure DevOps.

Prerequisites

Antes de instalar la extensión, asegúrate de cumplir con los siguientes requisitos:

  • Necesita privilegios de administrador de colecciones de proyectos en la organización de Azure DevOps para instalar la extensión. Si no tiene acceso, solicite estos privilegios desde el administrador de Azure DevOps.

Instalación de la extensión

Para instalar la extensión Seguridad de Microsoft DevOps:

  1. Inicie sesión en Azure DevOps.

  2. Vaya a Shopping Bag>Manage extensions (Administrar extensiones).

    Captura de pantalla que muestra cómo navegar a la pantalla administrar extensiones.

  3. Seleccione Compartido.

    Note

    Si ya ha instalado la extensión DevOps de Seguridad de Microsoft, aparece en la pestaña Instalado.

  4. Seleccione Seguridad de Microsoft DevOps.

    Captura de pantalla que muestra dónde seleccionar Seguridad de Microsoft DevOps.

  5. Seleccione Instalar.

  6. Seleccione la organización adecuada en el menú desplegable.

  7. Seleccione Instalar.

  8. Seleccione Continuar con la organización.

Configuración de canalizaciones mediante YAML

Tip

Opcional: Instala la extensión SARIF SAST Scans Tab si quieres que los resultados del análisis SARIF aparezcan automáticamente en la pestaña de Escaneos de la canalización.

Para configurar una canalización con YAML:

  1. Inicie sesión en Azure DevOps.

  2. Seleccione su proyecto.

  3. Vaya a Canalizaciones>Nueva canalización.

    Captura de pantalla que muestra dónde buscar la canalización de creación en DevOps.

  4. Seleccione Azure Repos Git.

    Captura de pantalla en la que se muestra dónde navegar, para seleccionar Git del repositorio de Azure.

  5. Seleccione el repositorio correspondiente.

    Captura de pantalla que muestra dónde seleccionar el repositorio.

  6. Seleccione Canalización de inicio.

    Captura de pantalla que muestra dónde seleccionar la canalización de inicio.

  7. Pegue el siguiente CÓDIGO YAML en la canalización:

    # Starter pipeline
    # Start with a minimal pipeline that you can customize to build and deploy your code.
    # Add steps that build, run tests, deploy, and more:
    # https://aka.ms/yaml
    trigger: none
    pool:
      # ubuntu-latest also supported.
      vmImage: 'windows-latest'
    steps:
    - task: MicrosoftSecurityDevOps@1
      displayName: 'Microsoft Security DevOps'
      # inputs:    
        # config: string. Optional. A file path to an MSDO configuration file ('*.gdnconfig'). Vist the MSDO GitHub wiki linked below for additional configuration instructions
        # policy: 'azuredevops' | 'microsoft' | 'none'. Optional. The name of a well-known Microsoft policy to determine the tools/checks to run. If no configuration file or list of tools is provided, the policy may instruct MSDO which tools to run. Default: azuredevops.
        # categories: string. Optional. A comma-separated list of analyzer categories to run. Values: 'code', 'artifacts', 'IaC', 'containers'. Example: 'IaC, containers'. Defaults to all.
        # languages: string. Optional. A comma-separated list of languages to analyze. Example: 'javascript,typescript'. Defaults to all.
        # tools: string. Optional. A comma-separated list of analyzer tools to run. Values: 'bandit', 'binskim', 'checkov', 'eslint', 'templateanalyzer', 'terrascan', 'trivy'. Example 'templateanalyzer, trivy'
        # break: boolean. Optional. If true, will fail this build step if any high severity level results are found. Default: false.
        # publish: boolean. Optional. If true, will publish the output SARIF results file to the chosen pipeline artifact. Default: true.
        # artifactName: string. Optional. The name of the pipeline artifact to publish the SARIF result file to. Default: CodeAnalysisLogs*.
    

    Note

    El artifactName "CodeAnalysisLogs" es necesario para la integración con Defender for Cloud. Para obtener más opciones de configuración de herramientas y variables de entorno, consulte la wiki de Seguridad de Microsoft DevOps.

  8. Seleccione Guardar y ejecutar para confirmar y ejecutar la canalización.

    Note

    Instale la extensión SARIF SAST Scans Tab para mostrar automáticamente los resultados del análisis de SARIF en la pestaña Exámenes del flujo de trabajo.

Carga de hallazgos de herramientas de seguridad de terceros en Defender for Cloud

Defender for Cloud puede ingerir resultados de SARIF de otras herramientas de seguridad para la visibilidad de código a nube. Para cargar estos resultados, asegúrese de que los repositorios de Azure DevOps estén integrados a Defender for Cloud. Después de la incorporación, Defender for Cloud monitoriza de manera continua el artefacto CodeAnalysisLogs en busca de resultados SARIF.

Use la tarea PublishBuildArtifacts@1 para publicar archivos SARIF en el artefacto CodeAnalysisLogs. El siguiente paso YAML publica el archivo de resultados SARIF como un artefacto de compilación para que Defender for Cloud pueda absorber los hallazgos:

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: 'results.sarif'
    ArtifactName: 'CodeAnalysisLogs'

Defender for Cloud muestra estos resultados en la evaluación los repositorios de Azure DevOps deberían tener resueltos los hallazgos del análisis de código para el repositorio afectado.