Bearbeiten

Konfigurieren der Azure DevOps-Erweiterung von Microsoft Security DevOps

Microsoft Security DevOps ist eine Befehlszeilenanwendung, die statische Analysetools in den Entwicklungslebenszyklus integriert. Microsoft Security DevOps installiert und konfiguriert die neuesten Versionen statischer Analysetools (u. a. SDL-, Sicherheits- und Compliancetools) und führt diese aus. Microsoft Security DevOps ist datengesteuert mit portablen Konfigurationen, die eine deterministische Ausführung in mehreren Umgebungen ermöglichen.

Microsoft Security DevOps verwendet die folgenden Open Source-Tools:

Name Sprache Lizenz
Antischadsoftware Antischadsoftware in Windows durch Microsoft Defender for Endpoint, die nach Malware scannt und den Build unterbricht, wenn Schadsoftware gefunden wurde. Dieses Tool scannt standardmäßig den windows-latest-Agent. Nicht Open Source
Bandit Python Apache License 2.0
BinSkim Binary--Windows, ELF MIT-Lizenz
ESlint JavaScript MIT-Lizenz
IaCFileScanner Terraform, CloudFormation, ARM-Vorlage, Bicep Nicht Open Source
Template Analyzer ARM-Vorlage, Bicep MIT-Lizenz
Terrascan Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, CloudFormation Apache License 2.0
Trivy Containerimages, Infrastructure-as-Code (IaC) Apache License 2.0

Hinweis

Ab dem 20. September 2023 wird das Tool Geheimnisüberprüfung (CredScan) innerhalb der Microsoft Security DevOps (MSDO)-Erweiterung für Azure DevOps veraltet sein. Die MSDO-Geheimnisüberprüfung wird durch GitHub Advanced Security für Azure DevOpsersetzt.

Voraussetzungen

  • Administratorberechtigungen für die Projektsammlung für die Azure DevOps-Organisation sind erforderlich, um die Erweiterung zu installieren.

Wenn Sie keinen Zugriff zum Installieren der Erweiterung haben, müssen Sie während des Installationsvorgangs den Zugriff vom Administrator Ihrer Azure DevOps-Organisation anfordern.

Konfigurieren der Azure DevOps-Erweiterung von Microsoft Security DevOps

So konfigurieren Sie die Azure DevOps-Erweiterung von Microsoft Security DevOps

  1. Melden Sie sich bei Azure DevOps an.

  2. Navigieren Sie zu Warenkorb>Erweiterungen verwalten.

    Screenshot: Navigieren zum Bildschirm für die Erweiterungsverwaltung

  3. Wählen Sie Freigegeben aus.

    Hinweis

    Wenn Sie die Microsoft Security DevOps-Erweiterung bereits installiert haben, ist sie auf der Registerkarte Installiert aufgeführt.

  4. Wählen Sie Microsoft Security DevOps aus.

    Screenshot: Auswählen von Microsoft Security DevOps

  5. Wählen Sie Installieren aus.

  6. Wählen Sie im Dropdownmenü die entsprechende Organisation aus.

  7. Wählen Sie Installieren aus.

  8. Wählen Sie Mit Organisation fortfahren aus.

Konfigurieren Ihrer Pipelines mithilfe von YAML

So konfigurieren Sie Ihre Pipeline mithilfe von YAML

  1. Melden Sie sich bei Azure DevOps an.

  2. Wählen Sie Ihr Projekt aus.

  3. Navigieren Sie zu Pipelines.

  4. Wählen Sie Neue Pipeline aus.

    Screenshot: Position von „Pipeline erstellen“ in DevOps

  5. Wählen sie Azure Repos Git aus.

    Screenshot, der zeigt, wohin Sie navigieren müssen, um „Azure Repos Git“ auszuwählen

  6. Wählen Sie das relevante Repository aus.

    Screenshot: Auswählen Ihres Repositorys

  7. Wählen Sie Starterpipeline aus.

    Screenshot: Auswählen von „Starterpipeline“

  8. Fügen Sie den folgenden YAML-Code in die Pipeline ein:

    # 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*.
    
    

    Hinweis

    Der artifactName „CodeAnalysisLogs“ ist für die Integration in Defender for Cloud erforderlich. Weitere Toolkonfigurationsoptionen und Umgebungsvariablen finden Sie im Wiki zu Microsoft Security DevOps

  9. Wählen Sie Speichern und ausführen aus, um die Pipeline zu committen.

    Die Pipeline wird einige Minuten lang ausgeführt und speichert die Ergebnisse.

    Hinweis

    Installieren Sie die SARIF SAST-Erweiterung für die Registerkarte „Überprüfungen“ in der Azure DevOps-Organisation, um sicherzustellen, dass die generierten Analyseergebnisse automatisch auf der Registerkarte „Überprüfungen“ angezeigt werden.

Hochladen von Ergebnissen aus Drittanbieter-Sicherheitstools in Defender for Cloud

Während Defender for Cloud die MSDO CLI für standardisierte Funktionen und Richtlinienkontrollen für eine Reihe von Open-Source-Sicherheitsanalysatoren bereitstellt, haben Sie die Flexibilität, Ergebnisse von anderen Sicherheitstools von Drittanbietern, die Sie möglicherweise in CI/CD-Pipelines konfiguriert haben, in Defender for Cloud hochzuladen, um eine umfassende Code-to-Cloud-Kontextualisierung zu erhalten. Alle in Defender for Cloud hochgeladenen Ergebnisse müssen im standardmäßigen SARIF-Format vorliegen.

Stellen Sie zunächst sicher, dass für Ihre Azure DevOps-Repositorys in Defender for Cloud das Onboarding durchgeführt wurde. Nach dem erfolgreichen Onboarding überwacht Defender for Cloud kontinuierlich das „CodeAnalysisLogs“-Artefakt auf die SARIF-Ausgabe.

Sie können die Aufgabe „PublishBuildArtifacts@1“ verwenden, um sicherzustellen, dass die SARIF-Ausgabe auf das richtige Artefakt veröffentlicht wird. Wenn ein Sicherheitsanalysator beispielsweise die Datei „results.sarif“ ausgibt, können Sie die folgende Aufgabe in Ihrem Auftrag konfigurieren, um sicherzustellen, dass die Ergebnisse in Defender for Cloud hochgeladen werden:

- 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.