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.
L'analisi del codice senza agente in Microsoft Defender for Cloud offre una copertura di sicurezza veloce e scalabile per tutti i repository in Azure DevOps e GitHub. L'analisi del codice senza agente analizza automaticamente codice, dipendenze open source e infrastruttura distribuita come codice (IaC) per identificare vulnerabilità e configurazioni errate senza richiedere modifiche alle pipeline di compilazione o distribuzione. Questo approccio semplifica la configurazione e la manutenzione con un singolo connettore Azure DevOps o GitHub e offre un'ampia copertura, 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.
È possibile personalizzare gli scanner da eseguire e definire esattamente quali organizzazioni, progetti o repository includere o escludere dall'analisi.
Prerequisiti
Casi d'uso supportati:
Raccomandazioni sulla sicurezza per assegnare priorità e correggere le vulnerabilità del codice
Query di Cloud Security Explorer per individuare i repository, tra cui le dipendenze risultanti da uno SBOM.
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 e connettore GitHub.
Ruoli e autorizzazioni:
Per impostare e configurare il connettore:
- Amministratore raccolta di progetti: obbligatorio in Azure DevOps per eseguire la configurazione iniziale.
- Collaboratore alla 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 consigli, avvisi e criteri, ma non può apportare modifiche.
Vantaggi principali
Alcuni dei principali vantaggi dell'analisi del codice senza agente in Microsoft Defender for Cloud sono:
- Gestione proattiva dei rischi: identificare i rischi nelle prime fasi del processo di sviluppo. Ciò consente procedure di codifica sicure e riduce le vulnerabilità prima di raggiungere la produzione.
- Integrazione semplice: configurazione rapida con una configurazione ridotta al minimo e senza modifiche ai processi esistenti.
- Gestione centralizzata su scala aziendale: analizza automaticamente il codice tra più repository usando un singolo connettore. Questo offre un'ampia copertura 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.
- Ambiente di sviluppo intuitivo e senza problemi: Funziona indipendentemente dalle pipeline di integrazione continua e distribuzione continua (CI/CD), senza necessità di modifiche o coinvolgimento diretto degli sviluppatori. Ciò consente il monitoraggio continuo della sicurezza senza interrompere la produttività o i flussi di lavoro degli sviluppatori.
- Copertura e controllo flessibili: Scegli quali scanner funzionano e cosa viene analizzato. È possibile coprire tutti gli elementi per impostazione predefinita o personalizzare le impostazioni per includere o escludere organizzazioni, progetti o repository specifici. In questo modo è possibile associare la copertura della sicurezza al profilo di rischio e alle esigenze operative, senza complessità aggiuntiva.
- Creazione di SBOM (Software Bill of Materials): la generazione automatica di un SBOM per ogni scansione offre ai team un inventario preciso e interrogabile di dipendenze e versioni nei loro repository, senza modifiche aggiuntive del flusso di lavoro. Ciò consente un'analisi rapida dell'impatto, una risposta più rapida alle vulnerabilità appena divulgate e al processo decisionale sicuro durante la valutazione dell'esposizione a pacchetti o versioni specifici.
Funzionalità di rilevamento dei rischi
L'analisi del codice senza agente migliora la sicurezza offrendo raccomandazioni mirate e utilizzabili nel codice dell'applicazione, nei modelli IaC (Infrastructure-as-Code) e nelle dipendenze di terze parti. Inoltre, le raccomandazioni per gestire la postura di sicurezza del cloud 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 di Infrastructure as Code: rilevare errori di configurazione della sicurezza nei modelli IaC che potrebbero causare distribuzioni non sicure.
- Vulnerabilità delle dipendenze: identificare le vulnerabilità note nei pacchetti open source e nei pacchetti del sistema operativo individuati nei repository.
- Software Bill of Materials (SBOM): genera automaticamente un inventario completo e interrogabile delle dipendenze e delle loro versioni per ogni repository.
La creazione del connettore migliora la sicurezza fornendo raccomandazioni fondamentali per la gestione del comportamento di sicurezza cloud per repository, pipeline e connessioni al servizio.
Strumenti di analisi
La scansione 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 | Lingue/IaC supportate | License |
|---|---|---|
| Analizzatore di modelli | Modelli IaC arm, modelli IaC Bicep | MIT |
| 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), file Kustomize, modelli framework serverless, file di specifica OpenAPI | Apache 2.0 |
| Bandito | Pitone | Apache 2.0 |
| ESLint | JavaScript, TypeScript, JSX, TSX | MIT |
| Trivy | Analisi delle vulnerabilità dei pacchetti di dipendenze e del sistema operativo da manifesti e file di blocco del repository (modalità file system) | Apache 2.0 |
| Syft | Alpine (apk), pacchetti Bitnami, C (conan), C++ (conan), Dart (pubs), Debian (dpkg), Dotnet (deps.json), Objective-C (cocoapods), Elixir (mix), Erlang (rebar3), Go (go.mod, binari Go), GitHub (flussi di lavoro, azioni), Haskell (cabel, stack), Java (jar, ear, war, par, sar, nar, rar, native-image), JavaScript (npm, yarn), Plugin Jenkins (jpi, hpi), archivi del kernel Linux (vmlinz), moduli del kernel Linux (ko), Nix (output in /nix/store), PHP (composer, PECL, Pear), Python (wheel, egg, poetry, requirements.txt, uv), Red Hat (rpm), Ruby (gem), Rust (cargo.lock, binario verificabile), Swift (cocoapods, swift-package-manager), plugin Wordpress, provider Terraform (.terraform.lock.hcl) | Apache 2.0 |
Questi strumenti supportano un'ampia gamma di linguaggi e framework IaC (Infrastructure-as-Code), garantendo un'analisi completa della sicurezza nella codebase.
Sistemi e tipi di file supportati
Sistemi di controllo della versione
Azure DevOps: supporto completo per i repository connessi tramite il connettore Azure DevOps.
GitHub: supporto completo per i repository connessi tramite il connettore GitHub.
Linguaggi di programmazione
Analisi statica del codice: Python; JavaScript/TypeScript.
Ecosistemi di dipendenze (tramite Trivy): Node.js (npm, yarn), Python (pip, Pipenv, Poetry), Java (Maven, Gradle), .NET (NuGet), Go modules, Ruby (RubyGems), PHP (Composer), Rust (Cargo) e altri linguaggi e ecosistemi di pacchetti supportati tramite manifesti e blocchi.
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 la scansione. |
| AWS CloudFormation | File JSON, YAML | Supporta i modelli AWS CloudFormation per la definizione delle risorse AWS. |
| Kubernetes | File YAML, JSON | Supporta i file manifesto Kubernetes per definire le configurazioni nei cluster. |
| Timone | 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 |
.bicep file |
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 | File YAML, 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 e GitHub
È possibile connettere le organizzazioni di Azure DevOps e GitHub a Defender for Cloud per abilitare l'analisi del codice senza agente. Seguire la procedura descritta in Connettere le organizzazioni di Azure DevOps o Connettere le organizzazioni GitHub per iniziare.
Personalizzare la copertura e l'ambito dello scanner
Per GitHub e Azure DevOps, è possibile controllare quali scanner vengono eseguiti e specificare esattamente quali repository sono inclusi o esclusi dall'analisi senza agente.
Selezionare gli scanner: Attivare o disattivare ciascun scanner di codice e scanner IaC (Infrastructure-as-Code) in base alle esigenze.
Impostare l'ambito di analisi: Decidere se si vogliono analizzare tutti i repository per impostazione predefinita o definire un ambito personalizzato per includere o escludere organizzazioni, progetti o repository specifici.
- Modalità di esclusione: Analizza tutto tranne quello che stai elencando.
- Modalità di inclusione: Scansiona solo ciò che elenchi.
Opzioni dell'ambito personalizzato:
- Per GitHub, impostare l'ambito in base al proprietario o al repository.
- Per Azure DevOps, impostare l'ambito per organizzazione, progetto o repository.
Individuazione automatica di nuovi repository: L'individuazione automatica dei nuovi repository è sempre limitata alle organizzazioni o ai progetti inclusi nell'ambito del connettore. È abilitata per impostazione predefinita quando si usa la modalità di esclusione e non è impostato alcun elenco di ambiti personalizzato. I repository appena creati vengono analizzati automaticamente.
L'individuazione automatica non è disponibile in modalità di inclusione, perché vengono analizzati solo i repository elencati.
In questo modo è possibile associare l'analisi alle esigenze di sicurezza, mantenere aggiornata la copertura man mano che l'ambiente cresce ed evitare analisi non necessarie o aree non esaminate.
Funzionamento della scansione del codice senza agente
La scansione del codice senza agente funziona indipendentemente da pipeline CI/CD. Usa il connettore Azure DevOps o GitHub per analizzare automaticamente le configurazioni di codice e infrastruttura come codice (IaC). 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 scansione
Dopo aver abilitato la funzionalità di analisi del codice senza agente all'interno di un connettore, il processo di analisi include questi passaggi:
Individuazione repository: il sistema identifica automaticamente tutti i repository collegati tramite il connettore Azure DevOps e GitHub 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, inizialmente dopo la configurazione del connettore e quindi ogni giorno.
Analisi: il sistema usa un set di strumenti di analisi predefiniti gestiti e aggiornati in Microsoft Defender for Cloud per individuare vulnerabilità e configurazioni errate nei modelli di codice e infrastruttura come codice (IaC). Crea inoltre un SBOM per consentire la gestione dei pacchetti disponibili per query.
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 della scansione
Frequenza di scansione:
- Il comportamento di sicurezza dei repository, delle pipeline e delle connessioni al servizio viene valutato quando si crea il connettore e quindi ogni otto ore.
- Il sistema analizza i modelli di codice e infrastruttura come codice (IaC) per individuare le vulnerabilità dopo aver creato il connettore e quindi ogni giorno.
Durata della scansione: le scansioni vengono in genere completate entro 15-60 minuti, a seconda delle dimensioni e della complessità del repository.
Visualizzare e gestire i risultati della scansione
Al termine delle scansioni, è possibile accedere ai risultati della sicurezza all'interno di Microsoft Defender per il cloud.
Accedere ai risultati
Passare alla scheda Raccomandazioni di sicurezza in Microsoft Defender per il cloud.
Esaminare le raccomandazioni per i repository Azure DevOps e GitHub, ad esempio:
I repository devono avere i risultati di analisi del codice risolti : indica le vulnerabilità rilevate nei repository di codice.
I repository dovrebbero risolvere i risultati delle scansioni di Infrastructure as Code - Contrassegna le configurazioni errate della sicurezza nei modelli IaC.
I repository devono avere i risultati dell'analisi delle vulnerabilità delle dipendenze risolti : indica i pacchetti open source vulnerabili rilevati nei repository.
Per l'intera gamma di raccomandazioni supportate per entrambe le piattaforme, vedere: Raccomandazioni sulla sicurezza di Azure DevOps e GitHub.
Le raccomandazioni includono elementi come la richiesta di approvazioni multi-revisore, la limitazione dell'accesso ai segreti e l'applicazione delle procedure consigliate per gli ambienti Azure DevOps e GitHub.
Selezionare qualsiasi raccomandazione per visualizzare i dettagli su file interessati, gravità e passaggi di correzione.
Differenza tra la scansione 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 in Azure DevOps e GitHub. Servono esigenze diverse, ma si integrano tra loro. Nella tabella seguente sono evidenziate le principali differenze che consentono di scegliere l'opzione più adatta alle esigenze di sicurezza e sviluppo.
| Aspetto | Scansione del codice senza agente | Analisi nella pipeline |
|---|---|---|
| Adattamento del caso di utilizzo | 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 | Incentrato sulle vulnerabilità dell'infrastruttura come codice (IaC), sulle vulnerabilità del codice e sulle vulnerabilità delle dipendenze open source su base pianificata (giornaliera) | 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 CI/CD |
| 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 in ogni pipeline |
| Personalizzazione dello scanner | Consente di selezionare gli scanner in esecuzione | 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
La scansione 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 e GitHub per eseguire il pull di metadati e codice. Ciò significa che le chiamate API vengono conteggiati per i limiti di velocità di Azure DevOps e GitHub, 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 e GitHub 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 Limiti di frequenza e utilizzo di Azure DevOps eLimiti di frequenza per l'API REST di GitHub.
Sicurezza dei dati, conformità e controllo di accesso per la scansione del codice senza agente
Il servizio di scansione 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 verificano nella stessa area geografica dei connettori Azure DevOps e GitHub (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 e GitHub per eseguire analisi. Questo token consente il recupero dei metadati e del codice necessari senza creare risorse nella sottoscrizione. Solo i componenti di Defender per il cloud 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 scansione 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: vengono eseguiti solo gli strumenti di analisi del codice (SAST) e IaC.
- Frequenza di analisi: analizza i repository al momento dell'abilitazione e quindi ogni giorno.
- Dimensioni del repository: limita l'analisi ai repository con meno di 1 GB.
-
Copertura del ramo: le analisi coprono solo il ramo predefinito (in genere
main). - Personalizzazione degli strumenti: non è possibile personalizzare gli strumenti di analisi.
SBOM presenta attualmente le limitazioni seguenti:
- Il repository necessita di un file di blocco; in caso contrario, verranno trovate solo dipendenze dirette
- La limitazione delle dimensioni SBOM è limitata a 1 MB. Se sono stati identificati molti pacchetti, l'inserimento nella mappa cloud avrà esito negativo.
- L'abilitazione SBOM non è configurabile. Un SBOM verrà generato a ogni analisi senza agente.
- Il timeout è impostato su 15 minuti per l'esecuzione dello strumento SBOM.
- La disabilitazione di Agentless non elimina le raccomandazioni SBOM.