Konfigurace rozšíření Microsoft Security DevOps Azure DevOps

Microsoft Security DevOps je aplikace příkazového řádku, která integruje nástroje statické analýzy do životního cyklu vývoje. Microsoft Security DevOps instaluje, konfiguruje a spouští nejnovější verze nástrojů pro statickou analýzu (včetně nástrojů pro SDL/zabezpečení a dodržování předpisů, mimo jiné). Microsoft Security DevOps je řízený daty s přenosnými konfiguracemi, které umožňují deterministické spouštění napříč několika prostředími.

DevOps zabezpečení Microsoftu používá následující open source nástroje:

Název Jazyk Licence
Antimalware AntiMalwarová ochrana ve Windows z programu Microsoft Defender for Endpoint, která vyhledá malware a přeruší sestavení, pokud byl nalezen malware. Tento nástroj ve výchozím nastavení prohledává agenta windows-latest. Není open source
Bandita Python Apache License 2.0
BinSkim Binary--Windows, ELF Licence MIT
Checkov Terraform, Terraform plan, CloudFormation, AWS SAM, Kubernetes, Helm charts, Kustomize, Dockerfile, Serverless, Bicep, OpenAPI, ARM Apache License 2.0
ESlint JavaScript Licence MIT
IaCFileScanner Nástroj pro mapování šablon pro Terraform, CloudFormation, šablonu ARM, Bicep Není open source
Analyzátor šablon Šablona ARM, Bicep Licence MIT
Terrascan Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, CloudFormation Apache License 2.0
Trivy image kontejnerů, infrastruktura jako kód (IaC) Apache License 2.0

Poznámka:

Od 20. září 2023 je nástroj pro kontrolu tajných kódů (CredScan) v rozšíření Microsoft Security DevOps (MSDO) pro Azure DevOps zastaralý. Kontrola tajných kódů MSDO se nahradí GitHub Advanced Security pro Azure DevOps.

Požadavky

  • K instalaci rozšíření se vyžadují oprávnění kolekce projektů Správa astrator pro organizaci Azure DevOps.

Pokud nemáte přístup k instalaci rozšíření, musíte během procesu instalace požádat o přístup od správce vaší organizace Azure DevOps.

Konfigurace rozšíření Microsoft Security DevOps Azure DevOps

Konfigurace rozšíření Microsoft Security DevOps Azure DevOps:

  1. Přihlaste se ke službě Azure DevOps.

  2. Přejděte na rozšíření Správa nákupních bagů>.

    Snímek obrazovky, který ukazuje, jak přejít na obrazovku spravovat rozšíření

  3. Vyberte Sdílené.

    Poznámka:

    Pokud jste už nainstalovali rozšíření Microsoft Security DevOps, bude uvedené na kartě Nainstalované.

  4. Vyberte Microsoft Security DevOps.

    Snímek obrazovky znázorňující, kde vybrat Microsoft Security DevOps

  5. Vyberte volbu Instalovat.

  6. V rozevírací nabídce vyberte příslušnou organizaci.

  7. Vyberte volbu Instalovat.

  8. Vyberte Pokračovat do organizace.

Konfigurace kanálů pomocí YAML

Konfigurace kanálu pomocí YAML:

  1. Přihlášení k Azure DevOps

  2. Vyberte projekt.

  3. Přechod na Kanály

  4. Vyberte New pipeline (Nový kanál).

    Snímek obrazovky znázorňující, kde najít kanál pro vytvoření v DevOps

  5. Vyberte Git Azure Repos.

    Snímek obrazovky znázorňující, kam přejít, vyberte Git úložiště Azure.

  6. Vyberte příslušné úložiště.

    Snímek obrazovky znázorňující, kde vybrat úložiště

  7. Vyberte počáteční kanál.

    Snímek obrazovky znázorňující, kde vybrat počáteční kanál

  8. Do kanálu vložte následující YAML:

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

    Poznámka:

    Pro integraci s Defenderem pro cloud se vyžaduje artifactName CodeAnalysisLogs. Další možnosti konfigurace nástrojů a proměnné prostředí najdete na wikiwebu Microsoft Security DevOps.

  9. Pokud chcete kanál potvrdit, vyberte Uložit a spustit.

    Kanál se spustí několik minut a výsledky se uloží.

    Poznámka:

    Nainstalujte rozšíření SARIF SAST Scans Tab v organizaci Azure DevOps, abyste zajistili, že se vygenerované výsledky analýzy automaticky zobrazí na kartě Kontroly.

Nahrání zjištění z nástrojů zabezpečení třetích stran do defenderu pro cloud

I když Defender pro cloud poskytuje rozhraní příkazového řádku MSDO pro standardizované funkce a řízení zásad v rámci sady opensourcových analyzátorů zabezpečení, máte možnost nahrát výsledky z jiných nástrojů zabezpečení třetích stran, které jste možná nakonfigurovali v kanálech CI/CD pro Defender for Cloud pro komplexní kontext kódování-cloud. Všechny výsledky nahrané do Defenderu pro cloud musí být ve standardním formátu SARIF.

Nejprve se ujistěte, že jsou vaše úložiště Azure DevOps nasazená v defenderu pro cloud. Jakmile úspěšně nasadíte Defender for Cloud, bude nepřetržitě monitorovat artefakt CodeAnalysisLogs pro výstup SARIF.

Úlohu PublishBuildArtifacts@1 můžete použít k zajištění publikování výstupu SARIF do správného artefaktu. Pokud například analyzátor zabezpečení vypíše results.sarifvýstup, můžete ve své úloze nakonfigurovat následující úlohu, abyste zajistili, že se výsledky nahrají do Defenderu pro 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 security finding was identified in.