Condividi tramite


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.

Immagine GIF che mostra il processo di installazione per abilitare l'analisi del codice senza agente

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.

Diagramma che mostra l'architettura dell'analisi del codice senza agente.

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:

  1. 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.
  2. 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.
  3. 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.
  4. Elaborazione dei risultati: elabora i risultati dell'analisi tramite il back-end di Defender per il cloud per creare raccomandazioni di sicurezza interattive.
  5. 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

  1. Passare alla scheda Raccomandazioni di sicurezza in Microsoft Defender per il cloud.

  2. Esaminare l'elenco delle raccomandazioni, che include risultati come:

  3. 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.