Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È 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. Prima di iniziare, assicurati di avere un repository GitHub collegato o un progetto Azure DevOps e controlla i prerequisiti.
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:
Accedere a GitHub.
Vai alla pagina principale del tuo repository.
Nella directory del file, seleziona .github>workflows>msdevopssec.yml.
Per altre informazioni sull'uso di un'azione in GitHub, vedere Prerequisiti.
Selezionare l'icona Modifica file (matita).
Nella sezione Run analyzers del file YAML, aggiungi il seguente codice per abilitare Infrastructure as Code scanning:
with: categories: 'IaC'Note
Per i valori si distingue tra maiuscole e minuscole.
Lo screenshot seguente mostra un esempio della configurazione YAML aggiornata:
Seleziona Conferma 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.
Immettere 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 della scansione, utilizza una delle seguenti opzioni:
- Vai su Defender per il cloud>per la sicurezza DevOps. Questa opzione non richiede una licenza GitHub Advanced Security (GHAS).
- Se hai una licenza GitHub Advanced Security (GHAS), vai a> SecurityCode Scanning gli avvisi nativamente in GitHub.
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.
Selezionare 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
displayNamelinea per il compito MicrosoftSecurityDevOps@1 , aggiungi il seguente codice per abilitare la scansione Infrastructure as Code:inputs: categories: 'IaC'Lo screenshot seguente mostra un esempio della configurazione YAML della pipeline con la categoria IaC aggiunta:
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 main o creare un nuovo ramo per il commit e quindi selezionare Salva.
Per visualizzare i risultati dell'analisi IaC, selezionare Pipeline e quindi selezionare la pipeline modificata.
Per visualizzare altri dettagli, 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 di modelli (PSRule è incluso nell'Analizzatore di modelli), Checkov e Terrascan.
L'analizzatore modelli esegue regole nei modelli di Azure Resource Manager (modelli arm) e nei modelli Bicep. Vedere le regole dell'analizzatore Template e i dettagli di correzione.
Terrascan esegue regole sui modelli ARM e sui modelli per CloudFormation, Docker, Helm, Kubernetes, Kustomize e Terraform. Vedere le regole di Terrascan.
Chekov esegue regole su modelli e modelli ARM per CloudFormation, Docker, Helm, Kubernetes, Kustomize e Terraform. Vedere le regole Checkov.
Per altre informazioni sugli strumenti di analisi IaC inclusi in Microsoft Security DevOps, vedere:
Contenuti correlati
In questo articolo si è appreso 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.