Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft Security DevOps — это приложение командной строки, которое интегрирует статический анализ в жизненный цикл разработки. Он устанавливает, настраивает и запускает последние анализаторы SDL, безопасности и соответствия требованиям, используя переносимые конфигурации, чтобы обеспечить согласованное, детерминированное выполнение в средах.
Microsoft Security DevOps использует следующие средства с открытым кодом:
| Имя | Language | Лицензия |
|---|---|---|
| Антивредоносное ПО | Защита от вредоносных программ в Windows с помощью Microsoft Defender for Endpoint. Проверяет наличие вредоносных программ и прерывает сборку, если обнаружен вредоносный контент. Выполняется по умолчанию на последнем агенте Windows. | Не открытый исходный код |
| Bandit | Питон | Лицензия Apache 2.0 |
| BinSkim | Двоичные целевые объекты: 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 |
| Trivy | Образы контейнеров, инфраструктура как код (IaC) | Лицензия Apache 2.0 |
Замечание
По состоянию на 20 сентября 2023 г. средство сканирования секретов (CredScan) в расширении Microsoft Security DevOps (MSDO) для Azure DevOps устарело. Сканирование секретов MSDO заменяется на расширенную безопасность GitHub для Azure DevOps.
Предпосылки
- Для установки расширения требуются права администратора коллекции проектов в организации Azure DevOps. Если у вас нет доступа, запросите его у администратора Azure DevOps на этапе установки.
Настройка расширения Microsoft Security DevOps Azure DevOps
Выполните вход в Azure DevOps.
Перейдите к Корзина покупок>Управление расширениями.
Выберите Общий.
Замечание
Если вы уже установили расширение Microsoft Security DevOps, оно отображается на вкладке "Установленные".
Выберите Microsoft Security DevOps.
Нажмите Установить.
Выберите соответствующую организацию в раскрывающемся меню.
Нажмите Установить.
Выберите "Перейти к организации".
Настройка конвейеров с помощью YAML
Войдите в Azure DevOps.
Выберите проект.
Перейдите в Пайплайны>Создать новый пайплайн.
Выберите Azure Repos Git.
Выберите соответствующий репозиторий.
Выберите Стартовый конвейер.
Вставьте следующий 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*.Замечание
Для интеграции с Defender for Cloud требуется имя артефакта 'CodeAnalysisLogs'. Дополнительные параметры конфигурации инструментов и переменные среды см. в вики-сайте Microsoft Security DevOps
Нажмите кнопку "Сохранить и запустить ", чтобы зафиксировать и запустить конвейер.
Замечание
Установите расширение вкладки SARIF SAST Scans, чтобы автоматически отобразить результаты анализа SARIF на вкладке "Сканирование конвейера".
Отправка результатов из сторонних средств безопасности в Defender для облака
Defender для облака может получать результаты SARIF из других средств безопасности для видимости кода в облако. Чтобы отправить эти результаты, убедитесь, что репозитории Azure DevOps подключены к Defender для облака. После подключения Defender для облака постоянно отслеживает CodeAnalysisLogs артефакт для выходных данных SARIF.
Используйте задачу PublishBuildArtifacts@1 для публикации файлов SARIF в артефакт CodeAnalysisLogs. Рассмотрим пример.
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: 'results.sarif'
ArtifactName: 'CodeAnalysisLogs'
Defender для облака отображает эти результаты в оценке репозиториев Azure DevOps, для которых должны быть устранены результаты сканирования кода для затронутого репозитория.