Configurare l'estensione Microsoft Security DevOps di Azure DevOps

Microsoft Security DevOps è un'applicazione da riga di comando che integra gli strumenti di analisi statica nel ciclo di vita di sviluppo. Microsoft Security DevOps installa, configura ed esegue le versioni più recenti degli strumenti di analisi statica , inclusi, ma non solo, gli strumenti SDL/security e compliance. Microsoft Security DevOps è basato sui dati con configurazioni portabili che consentono l'esecuzione deterministica in più ambienti.

Microsoft Security DevOps usa gli strumenti open source seguenti:

Nome Lingua Licenza
Antimalware Protezione antimalware in Windows da Microsoft Defender per endpoint, che analizza il malware e interrompe la compilazione se è stato trovato malware. Questo strumento analizza per impostazione predefinita l'agente windows-latest. Non open source
Bandito Python Licenza Apache 2.0
BinSkim Binary--Windows, ELF Licenza MIT
ESlint JavaScript Licenza MIT
IaCFileScanner Terraform, CloudFormation, modello di Resource Manager, Bicep Non open source
Analizzatore modelli Modello di ARM, Bicep Licenza MIT
Terrascan Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, CloudFormation Licenza Apache 2.0
Trivy immagini del contenitore, Infrastruttura come codice (IaC) Licenza Apache 2.0

Nota

A partire dal 20 settembre 2023, lo strumento di analisi dei segreti (CredScan) nell'estensione Microsoft Security DevOps (MSDO) per Azure DevOps è stato deprecato. L'analisi dei segreti MSDO verrà sostituita con GitHub Advanced Security per Azure DevOps.

Prerequisiti

  • Per installare l'estensione, è necessario disporre dei privilegi di Project Collection Amministrazione istrator per l'organizzazione Azure DevOps.

Se non si ha accesso per installare l'estensione, è necessario richiedere l'accesso dall'amministratore dell'organizzazione di Azure DevOps durante il processo di installazione.

Configurare l'estensione Microsoft Security DevOps di Azure DevOps

Per configurare l'estensione Microsoft Security DevOps di Azure DevOps:

  1. Accedere a Azure DevOps.

  2. Passare a Shopping Bag>Manage extensions (Gestisci estensioni).

    Screenshot che mostra come passare alla schermata Gestisci estensioni.

  3. Selezionare Condiviso.

    Nota

    Se è già stata installata l'estensione Microsoft Security DevOps, verrà elencata nella scheda Installato.

  4. Selezionare Microsoft Security DevOps.

    Screenshot che mostra dove selezionare Microsoft Security DevOps.

  5. Selezionare Installa.

  6. Selezionare l'organizzazione appropriata dal menu a discesa.

  7. Selezionare Installa.

  8. Selezionare Continua all'organizzazione.

Configurare le pipeline con YAML

Per configurare la pipeline tramite YAML:

  1. Accedere ad Azure DevOps

  2. Selezionare il progetto.

  3. Passare a Pipeline

  4. Selezionare New pipeline (Nuova pipeline).

    Screenshot che mostra dove individuare la pipeline di creazione in DevOps.

  5. Selezionare GIT Azure Repos.

    Screenshot che mostra dove passare per selezionare Git del repository di Azure.

  6. Selezionare il repository pertinente.

    Screenshot che mostra dove selezionare il repository.

  7. Selezionare Pipeline starter.

    Screenshot che mostra dove selezionare la pipeline iniziale.

  8. Incollare il codice YAML seguente nella pipeline:

    # 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:    
      # command: 'run' | 'pre-job' | 'post-job'. Optional. The command to run. Default: run
      # config: string. Optional. A file path to an MSDO configuration file ('*.gdnconfig').
      # policy: 'azuredevops' | 'microsoft' | 'none'. Optional. The name of a well-known Microsoft policy. 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', 'eslint', 'templateanalyzer', 'terrascan', 'trivy'.
      # break: boolean. Optional. If true, will fail this build step if any error 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*.
    
    

    Nota

    L'elemento ArtifactName 'CodeAnalysisLogs' è necessario per l'integrazione con Defender per il cloud. Per altre opzioni di configurazione degli strumenti e variabili di ambiente, vedere il wiki di Microsoft Security DevOps

  9. Per eseguire il commit della pipeline, selezionare Salva ed esegui.

    La pipeline verrà eseguita per alcuni minuti e salverà i risultati.

    Nota

    Installare l'estensione SARIF SAST Scan Tab nell'organizzazione di Azure DevOps per assicurarsi che i risultati dell'analisi generati vengano visualizzati automaticamente nella scheda Analisi.

Caricamento di risultati da strumenti di sicurezza di terze parti in Defender per il cloud

Anche se Defender per il cloud fornisce l'interfaccia della riga di comando MSDO per i controlli standardizzati di funzionalità e criteri in un set di analizzatori della sicurezza open source, è possibile caricare i risultati da altri strumenti di sicurezza di terze parti che potrebbero essere stati configurati nelle pipeline CI/CD per Defender per il cloud per una contestualizzazione completa da codice a cloud. Tutti i risultati caricati in Defender per il cloud devono essere in formato SARIF standard.

Assicurarsi prima di tutto che i repository Di Azure DevOps vengano onboarding in Defender per il cloud. Dopo aver eseguito l'onboarding di Defender per il cloud, monitora continuamente l'artefatto "CodeAnalysisLogs" per l'output SARIF.

È possibile usare l'attività "PublishBuildArtifacts@1" per assicurarsi che l'output SARIF venga pubblicato nell'artefatto corretto. Ad esempio, se un analizzatore della sicurezza restituisce "results.sarif", è possibile configurare l'attività seguente nel processo per assicurarsi che i risultati vengano caricati in Defender per il cloud:

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

Findings from third-party security tools will appear as 'Azure DevOps repositories should have code scanning findings resolved' assessments associated with the repository the secuirty finding was identified in.