Analizzare il repository GitHub connesso o il progetto Azure DevOps
È possibile configurare Microsoft Security DevOps per analizzare il repository GitHub connesso o il progetto Azure DevOps. Usare un'azione GitHub o un'estensione Azure DevOps per eseguire Microsoft Security DevOps solo nel codice sorgente dell'infrastruttura come codice (IaC) e ridurre il runtime della pipeline.
Questo articolo illustra come applicare un file di configurazione YAML modello per analizzare il repository o il progetto connesso in modo specifico per i problemi di sicurezza IaC usando le regole di Microsoft Security DevOps.
Prerequisiti
- Per Microsoft Security DevOps, configurare l'azione GitHub o l'estensione Azure DevOps in base al sistema di gestione del codice sorgente:
- Se il repository si trova in GitHub, configurare l'azione GitHub di Microsoft Security DevOps.
- Se si gestisce il codice sorgente in Azure DevOps, configurare l'estensione Microsoft Security DevOps di Azure DevOps.
- Assicurarsi di disporre di un modello IaC nel repository.
Configurare ed eseguire un'azione GitHub per analizzare il codice sorgente IaC connesso
Per configurare un'azione e visualizzare i risultati dell'analisi in GitHub:
Accedi a GitHub.
Passare alla pagina principale del repository.
Nella directory del file selezionare .github>flussi di lavoro>msdevopssec.yml.
Per altre informazioni sull'uso di un'azione in GitHub, vedere Prerequisiti.
Selezionare l'icona (matita) Modifica file.
Nella sezione Esegui analizzatori del file YAML aggiungere questo codice:
with: categories: 'IaC'
Nota
Valori dei tag si distingue tra maiuscole e minuscole.
Ecco un esempio:
Selezionare Esegui commit modifiche . . . .
Selezionare Eseguire il commit delle modifiche.
(Facoltativo) Aggiungere un modello IaC al repository. Se nel repository è già presente un modello IaC, ignorare questo passaggio.
Ad esempio, eseguire il commit di un modello IaC che è possibile usare per distribuire un'applicazione Web Linux di base.
Selezionare il file azuredeploy.json.
Selezionare Non elaborato.
Copiare tutte le informazioni nel file, come nell'esempio seguente:
{ "$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')]" } } } ] }
Nel repository GitHub passare alla cartella .github/workflows.
Selezionare Aggiungi file>Crea nuovo file.
Immetti un nome per il file.
Incollare le informazioni copiate nel file.
Selezionare Esegui il commit del nuovo file.
Il file modello viene aggiunto al repository.
Verificare che l'analisi di Microsoft Security DevOps sia stata completata:
Per il repository selezionare Azioni.
Selezionare il flusso di lavoro per visualizzare lo stato dell'azione.
Per visualizzare i risultati dell'analisi, passare a Defender per il Cloud>DevOps security (Nessun prerequisito GHAS) o Sicurezza>Avvisi di scansione del codie nativamente su GitHub (richiede una licenza GHAS).
Configurare ed eseguire un'estensione Azure DevOps per analizzare il codice sorgente IaC connesso
Per configurare un'estensione e visualizzare i risultati dell'analisi in Azure DevOps:
Accedere a Azure DevOps.
Seleziona il progetto.
Seleziona pipeline.
Selezionare la pipeline in cui è configurata l'estensione Azure DevOps per Microsoft Security DevOps.
Selezionare Modifica pipeline.
Nel file di configurazione YAML della pipeline, sotto la riga
displayName
per l'attività MicrosoftSecurityDevOps@1, aggiungere questo codice:inputs: categories: 'IaC'
Ecco un esempio:
Seleziona Salva.
(Facoltativo) Aggiungere un modello IaC al progetto Azure DevOps. Se nel progetto è già presente un modello IaC, ignorare questo passaggio.
Scegliere se eseguire il commit direttamente nel ramo principale o creare un nuovo ramo per il commit e quindi selezionare Salva.
Per visualizzare i risultati dell'analisi IaC, selezionare Pipeline, quindi selezionare la pipeline modificata.
Per altre informazioni, vedere Selezionare un'esecuzione della pipeline specifica.
Visualizzare i dettagli e le informazioni di correzione per le regole IaC applicate
Gli strumenti di analisi IaC inclusi in Microsoft Security DevOps sono Analizzatore modelli (PSRule è incluso in Analizzatore modelli), Checkov e Terrascan.
L'analizzatore modelli esegue regole nei modelli di Azure Resource Manager (modelli ARM) e nei modelli Bicep. Per altre informazioni vedere le regole e i dettagli di correzione di Analizzatore modelli.
Terrascan esegue regole su modelli e modelli ARM per CloudFormation, Docker, Helm, Kubernetes, Kustomize e Terraform. Per altre informazioni, vedere le regole di Terrascan.
Chekov esegue regole su modelli e modelli ARM per CloudFormation, Docker, Helm, Kubernetes, Kustomize e Terraform. Per altre informazioni, vedere le regole Checkov.
Per altre informazioni sugli strumenti di analisi IaC inclusi in Microsoft Security DevOps, vedere:
Contenuto correlato
In questo articolo è stato illustrato come configurare un'azione GitHub e un'estensione Azure DevOps per Microsoft Security DevOps per analizzare errori di configurazione della sicurezza IaC e come visualizzare i risultati.
Per ottenere altre informazioni:
- Altre informazioni sulla sicurezza di DevOps.
- Informazioni su come connettere il repository GitHub a Defender per il Cloud.
- Informazioni su come connettere il progetto Azure DevOps a Defender per il cloud.