Настройка расширения Microsoft Security DevOps Azure DevOps

Microsoft Security DevOps — это приложение командной строки, которое интегрирует статические средства анализа в жизненный цикл разработки. Microsoft Security DevOps устанавливает, настраивает и запускает последние версии статических средств анализа (включая, но не ограничивается средствами SDL/security и compliance). Microsoft Security DevOps управляет данными с переносимыми конфигурациями, которые обеспечивают детерминированное выполнение в нескольких средах.

Microsoft Security DevOps использует следующие средства с открытым исходным кодом:

Имя. Язык Лицензия
Антивредоносное ПО Защита от вредоносных программ в Windows от Microsoft Defender для конечной точки, которая проверяет наличие вредоносных программ и прерывает сборку, если вредоносные программы найдены. Это средство проверяется по умолчанию в агенте windows-latest. Не открытый исходный код
Бандит Python Лицензия Apache 2.0
BinSkim Binary-Windows, ELF Лицензия MIT
Checkov; Terraform, план Terraform, CloudFormation, AWS SAM, Kubernetes, Helm chart, Kustomize, Dockerfile, Serverless, Bicep, OpenAPI, ARM Лицензия Apache 2.0
ESlint JavaScript Лицензия MIT
IaCFileScanner Средство сопоставления шаблонов для Terraform, CloudFormation, шаблона ARM, Bicep Не открытый исходный код
Анализатор шаблонов Шаблон ARM, Bicep Лицензия MIT
Terrascan; Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, CloudFormation Лицензия Apache 2.0
Триви образы контейнеров, инфраструктура как код (IaC) Лицензия Apache 2.0

Примечание.

С 20 сентября 2023 г. средство сканирования секретов (CredScan) в расширении Microsoft Security DevOps (MSDO) для Azure DevOps устарело. Сканирование секретов MSDO будет заменено на GitHub Advanced Security для Azure DevOps.

Необходимые компоненты

  • Для установки расширения требуются права администратора коллекции проектов в организации Azure DevOps.

Если у вас нет доступа к установке расширения, необходимо запросить доступ к администратору организации Azure DevOps во время установки.

Настройка расширения Microsoft Security DevOps Azure DevOps

Чтобы настроить расширение Microsoft Security DevOps Azure DevOps, выполните следующие действия.

  1. Выполните вход в Azure DevOps.

  2. Перейдите к расширениям управления пакетами> покупок.

    Снимок экрана, на котором показано, как перейти к экрану управления расширениями.

  3. Выберите Общее.

    Примечание.

    Если вы уже установили расширение Microsoft Security DevOps, он будет указан на вкладке "Установленные".

  4. Выберите Microsoft Security DevOps.

    Снимок экрана, на котором показано, где выбрать Microsoft Security DevOps.

  5. Выберите Установить.

  6. Выберите соответствующую организацию в раскрывающемся меню.

  7. Выберите Установить.

  8. Щелкните Перейти к организации.

Настройка конвейеров с помощью YAML

Чтобы настроить конвейер с помощью YAML, выполните следующее:

  1. Вход в Azure DevOps

  2. Выберите проект.

  3. Переход к конвейерам

  4. Выберите Создать конвейер.

    Снимок экрана: расположение конвейера в DevOps.

  5. Выберите Azure Repos Git.

    Снимок экрана, на котором показано, куда перейти, чтобы выбрать репозиторий Azure Git.

  6. Выберите соответствующий репозиторий.

    Снимок экрана: место выбора репозитория.

  7. Выберите Простейший конвейер.

    Снимок экрана: место выбора начального конвейера.

  8. Вставьте следующий 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'. 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*.
      
    

    Примечание.

    АртефактName "CodeAnalysisLogs" требуется для интеграции с Defender для облака. Дополнительные параметры конфигурации инструментов и переменные среды см . в вики-сайте Microsoft Security DevOps

  9. Чтобы зафиксировать конвейер, нажмите кнопку "Сохранить и запустить".

    Конвейер будет выполняться в течение нескольких минут и сохранит результаты.

    Примечание.

    Установите расширение TAB SARIF SAST Scans в организации Azure DevOps, чтобы убедиться, что созданные результаты анализа будут отображаться автоматически на вкладке "Сканирование".

Отправка результатов из сторонних средств безопасности в Defender для облака

Хотя Defender для облака предоставляет интерфейс командной строки MSDO для стандартных функций и элементов управления политикой в наборе анализаторов безопасности открытый код, вы можете отправлять результаты из других сторонних средств безопасности, которые, возможно, были настроены в конвейерах CI/CD для Defender для облака для комплексной контекстуализации кода в облако. Все результаты, отправленные в Defender для облака, должны быть в стандартном формате SARIF.

Сначала убедитесь, что репозитории Azure DevOps подключены к Defender для облака. После успешного подключения Defender для облака он постоянно отслеживает артефакт CodeAnalysisLogs для выходных данных SARIF.

Вы можете использовать задачу "PublishBuildArtifacts@1", чтобы убедиться, что выходные данные SARIF публикуются в правильном артефакте. Например, если анализатор безопасности выводит выходные данныеresults.sarif, можно настроить следующую задачу в задании, чтобы убедиться, что результаты передаются в Defender для облака:

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