Сканирование подключенного репозитория GitHub или проекта Azure DevOps
Вы можете настроить Microsoft Security DevOps для сканирования подключенного репозитория GitHub или проекта Azure DevOps. Используйте действие GitHub или расширение Azure DevOps для запуска Microsoft Security DevOps только в исходном коде инфраструктуры в виде кода (IaC) и снижения среды выполнения конвейера.
В этой статье показано, как применить файл конфигурации YAML шаблона для сканирования подключенного репозитория или проекта специально для проблем с безопасностью IaC с помощью правил Microsoft Security DevOps.
Необходимые компоненты
- Для Microsoft Security DevOps настройте действие GitHub или расширение Azure DevOps на основе системы управления исходным кодом:
- Если репозиторий находится в GitHub, настройте действие Microsoft Security DevOps GitHub.
- Если вы управляете исходным кодом в Azure DevOps, настройте расширение Microsoft Security DevOps Azure DevOps.
- Убедитесь, что в репозитории есть шаблон IaC.
Настройка и запуск действия GitHub для проверки подключенного исходного кода IaC
Чтобы настроить действие и просмотреть результаты сканирования в GitHub, выполните приведенные ниже действия.
Войдите в GitHub.
Перейдите на главную страницу репозитория.
В каталоге файла выберите рабочие процессы>github>msdevopssec.yml.
Дополнительные сведения о работе с действием в GitHub см. в разделе "Предварительные требования".
Щелкните значок редактирования этого файла (карандаша).
В разделе "Запуск анализаторов" файла YAML добавьте следующий код:
with: categories: 'IaC'
Примечание.
Значения чувствительны к регистру.
Приведем пример:
Выберите "Зафиксировать изменения". . . .
Выберите " Зафиксировать изменения".
(Необязательно) Добавьте шаблон IaC в репозиторий. Если у вас уже есть шаблон IaC в репозитории, пропустите этот шаг.
Например, зафиксируйте шаблон IaC, который можно использовать для развертывания базового веб-приложения Linux.
Выберите файл azuredeploy.json.
Выберите Raw (Необработанный формат).
Скопируйте все сведения в файле, как показано в следующем примере:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "webAppName": { "type": "string", "defaultValue": "AzureLinuxApp", "metadata": { "description": "The base name of the resource, such as the web app name or the App Service plan." }, "minLength": 2 }, "sku": { "type": "string", "defaultValue": "S1", "metadata": { "description": "The SKU of the App Service plan." } }, "linuxFxVersion": { "type": "string", "defaultValue": "php|7.4", "metadata": { "description": "The runtime stack of the current web app." } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "The location for all resources." } } }, "variables": { "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]", "appServicePlanName": "[concat('AppServicePlan-', parameters('webAppName'))]" }, "resources": [ { "type": "Microsoft.Web/serverfarms", "apiVersion": "2020-06-01", "name": "[variables('appServicePlanName')]", "location": "[parameters('location')]", "sku": { "name": "[parameters('sku')]" }, "kind": "linux", "properties": { "reserved": true } }, { "type": "Microsoft.Web/sites", "apiVersion": "2020-06-01", "name": "[variables('webAppPortalName')]", "location": "[parameters('location')]", "kind": "app", "dependsOn": [ "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]" ], "properties": { "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]", "siteConfig": { "linuxFxVersion": "[parameters('linuxFxVersion')]" } } } ] }
В репозитории GitHub перейдите в папку .github/workflows .
Нажмите кнопку "Добавить файл>", чтобы создать файл.
Введите имя файла.
Вставьте скопированные сведения в файл.
Выберите Commit new file (Зафиксировать новый файл).
Файл шаблона добавляется в репозиторий.
Убедитесь, что проверка Microsoft Security DevOps завершена:
В репозитории выберите "Действия".
Выберите рабочий процесс, чтобы просмотреть состояние действия.
Чтобы просмотреть результаты сканирования, перейдите к Defender для облака> DevOps security (без предварительных требований GHAS) или проверка кода безопасности>в собственном коде в GitHub (требуется лицензия GHAS).
Настройка и запуск расширения Azure DevOps для проверки подключенного исходного кода IaC
Чтобы настроить расширение и просмотреть результаты сканирования в Azure DevOps, выполните приведенные ниже действия.
Выполните вход в Azure DevOps.
Выберите проект.
Выберите конвейеры.
Выберите конвейер, в котором настроено расширение Azure DevOps для Microsoft Security DevOps.
Выберите Изменить конвейер.
В файле конфигурации YAML конвейера под строкой
displayName
задачи MicrosoftSecurityDevOps@1 добавьте следующий код:inputs: categories: 'IaC'
Приведем пример:
Выберите Сохранить.
(Необязательно) Добавьте шаблон IaC в проект Azure DevOps. Если у вас уже есть шаблон IaC в проекте, пропустите этот шаг.
Выберите, следует ли выполнять фиксацию непосредственно в главной ветви или создать новую ветвь для фиксации, а затем нажмите кнопку "Сохранить".
Чтобы просмотреть результаты сканирования IaC, выберите конвейеры и выберите измененный конвейер.
Дополнительные сведения см. в разделе "Выбор определенного запуска конвейера".
Просмотр сведений и сведений об исправлении для примененных правил IaC
Средства сканирования IaC, включенные в microsoft Security DevOps, являются анализатором шаблонов (PSRule входит в анализатор шаблонов), Checkov и Terrascan.
Анализатор шаблонов выполняет правила для шаблонов Azure Resource Manager (шаблонов ARM) и шаблонов Bicep. Дополнительные сведения см. в правилах и исправлениях анализатора шаблонов.
Terrascan выполняет правила для шаблонов и шаблонов ARM для CloudFormation, Docker, Helm, Kubernetes, Kustomize и Terraform. Дополнительные сведения см. в правилах Terrascan.
Чеков выполняет правила для шаблонов и шаблонов ARM для CloudFormation, Docker, Helm, Kubernetes, Kustomize и Terraform. Дополнительные сведения см. в правилах Checkov.
Дополнительные сведения о средствах сканирования IaC, включенных в Microsoft Security DevOps, см. в следующих статье:
Связанный контент
В этой статье вы узнали, как настроить действие GitHub и расширение Azure DevOps для Microsoft Security DevOps для проверки неправильной конфигурации безопасности IaC и как просмотреть результаты.
Чтобы получить дополнительные сведения, выполните следующие действия.
- Дополнительные сведения о безопасности DevOps.
- Узнайте, как подключить репозиторий GitHub к Defender для облака.
- Узнайте, как подключить проект Azure DevOps к Defender для облака.