Analisi del codice senza agente in Microsoft Defender per il cloud
L'analisi del codice senza agente in Microsoft Defender per il cloud offre una copertura di sicurezza veloce e scalabile per tutti i repository in Azure DevOps. Rileva rapidamente le vulnerabilità nelle configurazioni del codice e dell'infrastruttura come codice (IaC) senza bisogno di agenti o modifiche alla pipeline di integrazione continua e distribuzione continua (CI/CD). Questo approccio semplifica la configurazione e la manutenzione con un singolo connettore Azure DevOps e offre una copertura generale, informazioni dettagliate continue e risultati di sicurezza interattivi. Consente ai team di sicurezza e sviluppo di concentrarsi sulla correzione uniforme dei rischi senza interrompere i flussi di lavoro di sviluppo.
Prerequisiti
Stato di rilascio: anteprima pubblica
Casi d'uso supportati:
Cloud: cloud commerciali di Azure
Aree supportate: Australia orientale, Canada centrale, Stati Uniti centrali, Asia orientale, Stati Uniti orientali, Europa settentrionale, Svezia centrale, Regno Unito meridionale, Europa occidentale
Ambienti supportati: connettore Azure DevOps
Ruoli e autorizzazioni:
Per configurare e configurare il connettore:
- Amministratore raccolta progetti: obbligatorio in Azure DevOps per eseguire la configurazione iniziale.
- Collaboratore sottoscrizione: necessario nella sottoscrizione di Azure per creare e configurare il connettore.
Per visualizzare i risultati della sicurezza:
- Amministratore della sicurezza: può gestire le impostazioni di sicurezza, i criteri e gli avvisi, ma non può modificare il connettore.
- Ruolo con autorizzazioni di lettura per la sicurezza: può visualizzare raccomandazioni, avvisi e criteri, ma non può apportare modifiche.
Vantaggi chiave
- Gestione proattiva dei rischi: identificare i rischi nelle prime fasi del processo di sviluppo. Ciò supporta procedure di codifica sicure e riduce le vulnerabilità prima di raggiungere la produzione.
- Onboarding semplice: configurare rapidamente con una configurazione minima e senza modifiche alla pipeline.
- Gestione centralizzata su scala aziendale: analizza automaticamente il codice tra più repository usando un singolo connettore. Questo offre una copertura estesa per ambienti di grandi dimensioni.
- Informazioni rapide per la correzione rapida: ricevere informazioni dettagliate sulle vulnerabilità eseguibili subito dopo l'onboarding. Ciò consente correzioni rapide e riduce il tempo di esposizione.
- Facile e semplice dallo sviluppatore: operare indipendentemente da pipeline di integrazione continua e distribuzione continua (CI/CD), senza modifiche o coinvolgimento diretto degli sviluppatori. Ciò consente il monitoraggio continuo della sicurezza senza interrompere la produttività o i flussi di lavoro degli sviluppatori.
Funzionalità di rilevamento dei rischi
L'analisi del codice senza agente migliora la sicurezza offrendo raccomandazioni di sicurezza mirate per i modelli di codice e IaC (Infrastructure-as-Code). Oltre alle raccomandazioni di sicurezza di Foundational Cloud Security Posture Management (CSPM) fornite tramite il connettore. Le funzionalità di rilevamento chiave includono:
- Vulnerabilità del codice: trovare errori di codifica comuni, procedure di codifica non sicure e vulnerabilità note in più linguaggi di programmazione.
- Errori di configurazione dell'infrastruttura come codice: rilevare errori di configurazione della sicurezza nei modelli IaC che potrebbero causare distribuzioni non sicure.
La creazione del connettore migliora la sicurezza fornendo un set fondamentale di raccomandazioni sulla sicurezza per repository, pipeline e connessioni al servizio.
Strumenti di analisi
L'analisi del codice senza agente usa vari strumenti open source per individuare vulnerabilità e configurazioni errate nei modelli di codice e IaC (Infrastructure-as-Code):
Strumento | Linguaggi/IaC supportati | Licenza |
---|---|---|
Bandito | Python | Apache 2.0 |
Checkov | Modelli IaC terraform, file di piano Terraform, modelli AWS CloudFormation, file manifesto Kubernetes, file del grafico Helm, Dockerfile, modelli IaC di Azure Azure Resource Manager (ARM), modelli IaC di Azure Bicep, modelli IaC AWS SAM (modello di applicazione serverless), Kustomize file, modelli framework serverless, file di specifica OpenAPI | Apache 2.0 |
ESLint | JavaScript, TypeScript, JSX, TSX | MIT |
Analizzatore di modelli | Modelli IaC arm, modelli IaC Bicep | MIT |
Terrascan | Modelli IaC terraform (HCL2), file manifesto Kubernetes (YAML/JSON), Dockerfiles, modelli AWS CloudFormation (YAML/JSON), modelli IaC di Azure ARM, file del grafico Helm (v3), Kustomize file | Apache 2.0 |
Questi strumenti supportano un'ampia gamma di linguaggi e framework IaC, garantendo un'analisi completa della sicurezza nella codebase.
Piattaforme e tipi di file supportati
Sistemi di controllo della versione
- Azure DevOps: supporto completo per i repository connessi tramite il connettore Azure DevOps.
Linguaggi di programmazione
- Python
- JavaScript/TypeScript
Piattaforme e configurazioni IaC (Infrastructure-as-Code)
Piattaforma IaC | Tipi di file supportati | Note |
---|---|---|
Terraform | .tf , .tfvars |
Supporta i modelli IaC terraform nel linguaggio HCL2, inclusi i file di variabile in .tfvars . |
Piano Terraform | File JSON | Include file JSON che rappresentano configurazioni pianificate, usate per l'analisi e l'analisi. |
AWS CloudFormation | File JSON, YAML | Supporta i modelli AWS CloudFormation per la definizione delle risorse AWS. |
Kubernetes | YAML, file JSON | Supporta i file manifesto kubernetes per definire le configurazioni nei cluster. |
Helm | Struttura di directory del grafico Helm, file YAML | Segue la struttura del grafico standard di Helm; supporta i file del grafico Helm v3. |
Docker | File denominati Dockerfile | Supporta i Dockerfile per le configurazioni dei contenitori. |
Modelli di Azure RESOURCE Manager | File JSON | Supporta i modelli IaC di Azure Resource Manager (ARM) in formato JSON. |
Azure Bicep | File bicep | Supporta modelli IaC Bicep, un linguaggio specifico del dominio per ARM. |
AWS SAM | File YAML | Supporta i modelli SAM (Serverless Application Model) di AWS per le risorse serverless. |
Kustomize | File YAML | Supporta i file di configurazione per la personalizzazione di Kubernetes (Kustomize). |
Serverless Framework | File YAML | Supporta i modelli per il framework serverless nella definizione di architetture serverless. |
OpenAPI | YAML, file JSON | Supporta i file di specifica OpenAPI per la definizione delle API RESTful. |
Abilitare l'analisi del codice senza agente nelle organizzazioni di Azure DevOps
Per connettere le organizzazioni di Azure DevOps a Defender per il cloud e abilitare l'analisi del codice senza agente, vedere le istruzioni in Connettere le organizzazioni di Azure DevOps. L'oggetto visivo seguente illustra il processo di configurazione rapido e semplice, guidando l'utente attraverso ogni passaggio per l'onboarding facile.
Funzionamento dell'analisi del codice senza agente
L'analisi del codice senza agente funziona indipendentemente da pipeline CI/CD. Usa il connettore Azure DevOps per analizzare automaticamente il codice e le configurazioni IaC (Infrastructure-as-Code). Non è necessario modificare le pipeline o aggiungere estensioni. Questa configurazione consente l'analisi della sicurezza estesa e continua in più repository. I risultati vengono elaborati e visualizzati direttamente in Microsoft Defender per il cloud.
Processo di analisi
Dopo aver abilitato la funzionalità di analisi del codice senza agente all'interno di un connettore, il processo di analisi segue questa procedura:
- Individuazione repository: il sistema identifica automaticamente tutti i repository collegati tramite il connettore Azure DevOps subito dopo la creazione del connettore e quindi ogni 8 ore.
- Recupero del codice: recupera in modo sicuro il codice più recente dal ramo predefinito (principale) di ogni repository per l'analisi, prima dopo la configurazione del connettore e quindi ogni 3-4 giorni.
- Analisi: il sistema usa un set di strumenti di analisi predefiniti gestiti e aggiornati all'interno di Microsoft Defender per il cloud per individuare vulnerabilità e configurazioni errate nei modelli di codice e IaC.
- Elaborazione dei risultati: elabora i risultati dell'analisi tramite il back-end di Defender per il cloud per creare raccomandazioni di sicurezza interattive.
- Recapito dei risultati: il sistema mostra i risultati come raccomandazioni sulla sicurezza in Defender per il cloud, consentendo ai team di sicurezza di esaminare e risolvere i problemi.
Frequenza e durata dell'analisi
- Frequenza di analisi:
- Il comportamento di sicurezza dei repository, delle pipeline e delle connessioni al servizio viene valutato quando si crea il connettore e quindi ogni 8 ore.
- Il sistema analizza il codice e i modelli IaC (Infrastructure-as-Code) per individuare le vulnerabilità dopo aver creato il connettore e quindi ogni 3-4 giorni.
- Durata analisi: le analisi vengono in genere completate entro 15-60 minuti, a seconda delle dimensioni e della complessità del repository.
Visualizzazione e gestione dei risultati dell'analisi
Al termine delle analisi, è possibile accedere ai risultati della sicurezza all'interno di Microsoft Defender per il cloud.
Accesso ai risultati
Passare alla scheda Raccomandazioni di sicurezza in Microsoft Defender per il cloud.
Esaminare l'elenco delle raccomandazioni, che include risultati come:
I repository Di Azure DevOps devono avere i risultati dell'analisi del codice risolti : indica le vulnerabilità rilevate nei repository di codice.
I repository Di Azure DevOps devono avere un'infrastruttura perché i risultati dell'analisi del codice sono risolti : punta alle configurazioni errate di sicurezza rilevate nei file modello IaC all'interno dei repository.
Altre raccomandazioni sulla sicurezza generate dal connettore Azure DevOps possono includere:
- Per i repository Di Azure DevOps deve essere abilitata la sicurezza avanzata di GitHub per Azure DevOps (GHAzDO)
- Azure Pipelines non deve avere segreti disponibili per le compilazioni di fork
- Le connessioni al servizio Azure DevOps non devono concedere l'accesso a tutte le pipeline
- I gruppi di variabili di Azure DevOps con variabili segrete non devono concedere l'accesso a tutte le pipeline
- Le connessioni al servizio di Azure classico di Azure DevOps non devono essere usate per accedere a una sottoscrizione
- (Anteprima) I repository DevOps di Azure devono richiedere l'approvazione minima di due revisori per i push di codice
- (Anteprima) I repository Di Azure DevOps non devono consentire ai richiedenti di approvare le proprie richieste pull
- (Anteprima) Azure DevOps Projects deve avere disabilitato la creazione di pipeline classiche
- I file protetti di Azure DevOps non devono concedere l'accesso a tutte le pipeline
Selezionare qualsiasi raccomandazione per informazioni dettagliate, inclusi i file interessati, i livelli di gravità e le indicazioni per la correzione.
Differenza tra l'analisi del codice senza agente e l'analisi nella pipeline
L'analisi del codice senza agente e l'analisi in pipeline usando l'estensione Microsoft Security DevOps offrono entrambe l'analisi della sicurezza all'interno di Azure DevOps. Servono esigenze diverse, ma lavorano bene insieme. Nella tabella seguente sono evidenziate le principali differenze che consentono di scegliere l'opzione più adatta alle esigenze di sicurezza e sviluppo.
Aspetto | Analisi del codice senza agente | Analisi nella pipeline |
---|---|---|
Adattamento del caso d'uso | Offre un'ampia copertura con interruzioni minime per gli sviluppatori | Fornisce analisi dettagliate integrate nella pipeline con controlli personalizzabili |
Analisi dell'ambito e della copertura | Si concentra sull'analisi delle vulnerabilità dell'infrastruttura come codice (IaC) e del codice, pianificate ogni 3-4 giorni | Offre una copertura completa, inclusi file binari e immagini del contenitore, attivati in ogni esecuzione della pipeline |
Installazione e configurazione | Non richiede altre operazioni di installazione dopo la creazione del connettore | Richiede l'installazione e la configurazione manuali in ogni pipeline di Azure DevOps |
Integrazione della pipeline | Esegue in modo indipendente le pipeline (CI/CD) senza modificare i flussi di lavoro | Si integra all'interno della pipeline CI/CD, che richiede la configurazione YAML in ogni pipeline |
Personalizzazione dello scanner | Gli scanner non possono essere personalizzati o eseguiti in modo selettivo | Consente la personalizzazione con scanner, categorie, lingue, livelli di riservatezza e strumenti non Microsoft specifici |
Risultati e feedback | Fornisce l'accesso ai risultati all'interno di Defender per il cloud | Offre feedback quasi in tempo reale all'interno della pipeline CI/CD, con risultati visibili anche in Defender per il cloud |
Criteri di interruzione e esito negativo | Non è possibile interrompere le compilazioni | Può essere configurato per interrompere le compilazioni in base alla gravità dei risultati della sicurezza |
Scalabilità e impatto sulle prestazioni
L'analisi del codice senza agente evita la creazione di risorse nella sottoscrizione e non richiede l'analisi durante il processo della pipeline. Usa l'API REST di Azure DevOps per eseguire il pull di metadati e codice. Ciò significa che le chiamate API vengono conteggiati per i limiti di velocità di Azure DevOps, ma non si comportano costi diretti per il trasferimento dei dati. Il servizio gestisce le analisi per garantire che rimangano entro i limiti di velocità di Azure DevOps senza interrompere l'ambiente di sviluppo. Questo metodo offre un'analisi efficiente e ad alte prestazioni tra repository senza influire sui flussi di lavoro DevOps. Per altre informazioni, vedere Frequenza e limiti di utilizzo di Azure DevOps.
Sicurezza dei dati, conformità e controllo di accesso per l'analisi del codice senza agente
il servizio di analisi del codice senza agente di Microsoft Defender per il cloud garantisce una gestione sicura e conforme del codice implementando misure rigorose di sicurezza e privacy dei dati:
- Crittografia dei dati e controllo di accesso: il sistema crittografa tutti i dati in transito usando protocolli standard del settore. Solo i servizi Defender per il cloud autorizzati possono accedere al codice.
- Residenza e conservazione dei dati: le analisi si trovano nella stessa area geografica del connettore Azure DevOps (Stati Uniti o UE) per rispettare le leggi sulla protezione dei dati. Il sistema elabora il codice solo durante l'analisi e lo elimina in modo sicuro in un secondo momento, senza archiviazione a lungo termine.
- Accesso ai repository: il servizio genera un token di accesso sicuro per Azure DevOps per eseguire analisi. Questo token consente il recupero dei metadati e del codice necessari senza creare risorse nella sottoscrizione. Solo Defender per il cloud componenti hanno accesso, proteggendo l'integrità dei dati.
- Supporto per la conformità: il servizio è allineato agli standard normativi e di sicurezza per la gestione e la privacy dei dati, garantendo l'elaborazione sicura e l'analisi del codice del cliente in conformità ai requisiti di protezione dei dati a livello di area.
Queste misure garantiscono un processo di analisi del codice sicuro, conforme ed efficiente, mantenendo la privacy e l'integrità dei dati.
Limitazioni (anteprima pubblica)
Durante la fase di anteprima pubblica, si applicano le limitazioni seguenti:
Nessuna scansione binaria: il sistema analizza solo i file di codice e IaC (Infrastructure-as-Code).
Frequenza di analisi: analizza i repository ogni 3-4 giorni.
Dimensioni del repository: limita l'analisi ai repository con meno di 1 GB.
Copertura del ramo: le analisi coprono solo il ramo predefinito (principale).
Personalizzazione degli strumenti: non è possibile personalizzare gli strumenti di analisi.