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

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

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

Имя. Язык Лицензия
Antimalware Защита от вредоносных программ в Windows от Microsoft Defender для конечной точки, которая проверяет наличие вредоносных программ и прерывает сборку, если вредоносные программы найдены. Это средство проверяется по умолчанию в агенте windows-latest. Не открытый исходный код
Бандит Python Лицензия Apache 2.0
BinSkim Binary-Windows, ELF Лицензия MIT
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.

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

  • Для установки расширения требуются права Администратор istrator в организации 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:    
      # 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*.
    
    

    Примечание.

    Артефакт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'

Результаты сторонних средств безопасности будут отображаться как "репозитории Azure DevOps должны иметь проверенные результаты проверки кода", связанные с репозиторием, в который был определен поиск secuirty.

Подробнее

Следующие шаги

Дополнительные сведения о DevOps Security см. в Defender для облака.

Узнайте, как подключить организации Azure DevOps к Defender для облака.