Examen del repositorio de GitHub conectado o del proyecto de Azure DevOps
Puede configurar Microsoft Security DevOps para examinar el repositorio de GitHub conectado o el proyecto de Azure DevOps. Use una acción de GitHub o una extensión de Azure DevOps para ejecutar Microsoft Security DevOps solo en el código fuente infraestructura como código fuente (IaC) y ayudar a reducir el tiempo de ejecución de la canalización.
En este artículo se muestra cómo aplicar un archivo de configuración YAML de plantilla para examinar el repositorio conectado o proyecto específicamente para problemas de seguridad de IaC mediante reglas de DevOps de seguridad de Microsoft.
Requisitos previos
- Para Microsoft Security DevOps, configure la acción de GitHub o la extensión de Azure DevOps en función del sistema de administración de código fuente:
- Si el repositorio está en GitHub, configure la Acción de GitHub de Microsoft Security DevOps.
- Si administra el código fuente en Azure DevOps, configure la extensión DevOps de Azure DevOps de Microsoft Security.
- Asegúrese de que tiene una plantilla de IaC en el repositorio.
Configuración y ejecución de una acción de GitHub para examinar el código fuente de IaC conectado
Para configurar una acción y ver los resultados del examen en GitHub:
Inicie sesión en GitHub.
Vaya a la página principal del repositorio.
En el directorio de archivos, seleccione .github>workflows>msdevopssec.yml.
Para obtener más información sobre cómo trabajar con una acción en GitHub, consulte Requisitos previos.
Seleccione el icono Editar este archivo (lápiz).
En la sección Ejecutar analizadores del archivo YAML, agregue este código:
with: categories: 'IaC'
Nota:
Los valores distinguen mayúsculas de minúsculas.
Este es un ejemplo:
Seleccione Confirmar cambios....
Seleccione Commit changes (Confirmar cambios).
(Opcional) Agregue una plantilla de IaC al repositorio. Si ya tiene una plantilla de IaC en el repositorio, omita este paso.
Por ejemplo, confirme una plantilla de IaC que puede usar para implementar una aplicación web básica de Linux.
Seleccione el archivo azuredeploy.json.
Seleccione Raw.
Copie toda la información del archivo, como en el ejemplo siguiente:
{ "$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')]" } } } ] }
En el repositorio de GitHub, vaya a la carpeta .github/workflows.
Seleccione Agregar archivo>Crear nuevo archivo.
Escriba un nombre para el archivo.
Pegue la información copiada en el archivo.
Seleccione Commit new file (Confirmar nuevo archivo).
El archivo de plantilla se agrega al repositorio.
Compruebe que el examen de DevOps de seguridad de Microsoft ha finalizado:
En el repositorio, seleccione Acciones.
Seleccione el flujo de trabajo para ver el estado de la acción.
Para ver los resultados del examen, vaya a Defender for Cloud>Seguridad de DevOps (Sin requisito previo de GHAS) o Seguridad>Alertas de examen de código de forma nativa en GitHub (requiere licencia de GHAS).
Configuración y ejecución de una extensión de Azure DevOps para examinar el código fuente de IaC conectado
Para configurar una extensión y ver los resultados del examen en Azure DevOps:
Inicie sesión en Azure DevOps.
Seleccione su proyecto.
Seleccione Canalizaciones.
Seleccione la canalización en la que está configurada la extensión de Azure DevOps para Microsoft Security DevOps.
Seleccione Editar canalización.
En el archivo de configuración de YAML de canalización, debajo de la línea
displayName
de la tarea MicrosoftSecurityDevOps@1, agregue este código:inputs: categories: 'IaC'
Este es un ejemplo:
Seleccione Guardar.
(Opcional) Agregue una plantilla de IaC al proyecto de Azure DevOps. Si ya tiene una plantilla de IaC en el proyecto, omita este paso.
Elija si desea confirmar directamente en la rama principal o crear una nueva rama para la confirmación y, a continuación, seleccione Guardar.
Para ver los resultados del examen de IaC, seleccione Canalizaciones y, a continuación, seleccione la canalización que modificó.
Consulte más detalles y seleccione una ejecución de canalización específica.
Ver detalles e información de corrección para las reglas de IaC aplicadas
Las herramientas de análisis de IaC que se incluyen con Microsoft Security DevOps son el Analizador de plantillas (PSRule se incluye en el Analizador de plantillas), Checkov y Terrascan.
El Analizador de plantillas ejecuta reglas en plantillas de Azure Resource Manager (plantillas de ARM) y plantillas de Bicep. Para obtener más información, consulte las reglas del Analizador de plantillas y los detalles de corrección.
Terrascan ejecuta reglas en plantillas y plantillas de ARM para CloudFormation, Docker, Helm, Kubernetes, Kustomize y Terraform. Para obtener más información, consulte las reglas de Terrascan.
Chekov ejecuta reglas en plantillas y plantillas de ARM para CloudFormation, Docker, Helm, Kubernetes, Kustomize y Terraform. Para más información, consulte las reglas de Checkov.
Para obtener más información sobre las herramientas de análisis de IaC que se incluyen con Microsoft Security DevOps, consulte:
Contenido relacionado
En este artículo, ha aprendido a configurar una acción de GitHub y una extensión de Azure DevOps para que Microsoft Security DevOps examine errores de configuración de seguridad de IaC y cómo ver los resultados.
Más información:
- Obtenga más información sobre la seguridad de DevOps.
- Obtenga información sobre cómo conectar los repositorios de GitHub a Defender for Cloud.
- Obtenga información sobre cómo conectar su proyecto Azure DevOps a Defender for Cloud.