Configurare l'integrazione nativa di GitHub Advanced Security con Microsoft Defender per il cloud

Questa guida illustra i passaggi di configurazione e altre azioni che consentono di integrare GitHub Advanced Security (GHAS) e Microsoft Defender per il cloud con un caso d'uso che consente di convalidare l'integrazione end-to-end. Questa integrazione consente di ottimizzare la sicurezza delle applicazioni native del cloud di Microsoft correlando i rischi di runtime e il contesto con il codice originato per una correzione più rapida basata sull'intelligenza artificiale.

Seguendo questa guida, è possibile:

  • Configurare il repository GitHub per la copertura di Defender per il cloud.
  • Creare un fattore di rischio di esecuzione.
  • Testare casi d'uso reali in Defender per il cloud.
  • Collegare il codice alle risorse di runtime.
  • Avviare una campagna di sicurezza in GitHub. Questa campagna usa il contesto di runtime per classificare in ordine di priorità gli avvisi di sicurezza GHAS.
  • Creare issue GitHub in Defender per il cloud per iniziare la risoluzione.
  • Colmare il divario tra i team di ingegneria e sicurezza.

Prerequisiti

Aspetto Dettagli
Requisiti ambientali - GitHub account con un connettore creato in Defender per il cloud
- licenza GitHub Advanced Security (GHAS) per i repository connessi
- Piano Defender per la Gestione della Postura di Sicurezza Cloud (DCSPM) abilitato nell'abbonamento
- Microsoft Security Copilot (facoltativo per la correzione automatizzata basata su intelligenza artificiale)
Ruoli e autorizzazioni - Autorizzazioni di amministratore della sicurezza
- Amministratore della sicurezza nella sottoscrizione Azure (per visualizzare i risultati in Defender per il cloud)
- proprietario dell'organizzazione GitHub (per connettere i repository e configurare le campagne di sicurezza)
Ambienti Cloud - Disponibile solo nei cloud commerciali (non in Azure per enti pubblici, Azure gestito da 21Vianet o da altri cloud sovrani)

Prepara il tuo ambiente

Passaggio 1: Configurare il repository GitHub ed eseguire il flusso di lavoro

Per testare l'integrazione, usare i propri repository o un progetto sandbox di esempio example con un repository di test GitHub che contenga tutti i contenuti per costruire un'immagine di contenitore vulnerabile.

  1. Accedi al portale di Azure.

  2. Passare a Microsoft Defender per il cloud>DevOps security.

  3. Immettere il nome del repository di codice nella barra di ricerca (esempio: zava-webshop).

  4. Verificare che appartenga realmente all'organizzazione monitorata (ad esempio: zava-corporation org).

  5. Verificare se sono presenti risultati per il repository.

  6. Verificare che lo stato di sicurezza avanzata Advanced sia On, indicante che GitHub Advanced Security è abilitato sul repository monitorato, > il repository di cui è stato eseguito l'onboarding.

  7. Se il repository non è stato trovato, consultare la documentazione di Microsoft Defender per il cloud per la risoluzione dei problemi e la configurazione del connettore GitHub.

  8. Assicurarsi che l'analisi senza agente sia attivata per il connettore GitHub.

    Screenshot della configurazione del piano in Defender CSPM con la scansione del codice senza agente attivata e tutte le opzioni dello scanner abilitate.

Passaggio 2: Verificare che l'ambiente sia pronto

La convalida conferma che l'ambiente è configurato correttamente per visualizzare il codice in base alle raccomandazioni di runtime e generare risultati interattivi. Durante questo passaggio, Defender verifica che:

Visibilità completa del codice durante il runtime

  • Microsoft Defender per il cloud monitora continuamente i repository di codice sorgente per individuare le vulnerabilità di sicurezza.
  • Gli artefatti di compilazione, ad esempio le immagini di container, vengono analizzati nei registri di container prima della distribuzione.
  • I carichi di lavoro di runtime distribuiti nei cluster Kubernetes vengono monitorati per individuare i rischi per la sicurezza.
  • Defender per il cloud correla e traccia ogni artefatto dal codice, tramite build e distribuzione, al runtime e ritorno al punto di partenza.

Annotazioni

Possono essere necessarie fino a 24 ore dopo l'applicazione dei passaggi precedenti per visualizzare i risultati seguenti.

Verificare che GitHub analisi senza agente preleva il repository.

Passare a Microsoft Defender per il cloud>Cloud Security Explorer ed eseguire la query. Le query di convalida testano se Defender può identificare gli artefatti prodotti dalle pipeline e dai carichi di lavoro. Se le query restituiscono risultati, indica che l'analisi e la correlazione funzionano come previsto.

Screenshot di Cloud Security Explorer di Defender per il cloud che mostra una query per i push del repository GitHub nelle immagini del contenitore.

Annotazioni

Se non vengono restituiti risultati, potrebbe indicare che gli artefatti non sono ancora generati, l'analisi non è configurata o le autorizzazioni non sono presenti. Per altre informazioni, vedere Ruoli utente e autorizzazioni .

  1. Verificare che Defender per il cloud (in Registro Azure Container) ha analizzato l'immagine del contenitore e usata per creare un contenitore.

  2. Nella query aggiungere le condizioni per la distribuzione specifica.

    Screenshot di Cloud Security Explorer di Defender per il cloud che mostra una query per le operazioni di push nei repository GitHub nelle immagini dei container con vulnerabilità.

  3. Verificare che il contenitore sia in esecuzione e che Defender per il cloud abbia analizzato il cluster AKS.

    Screenshot di Cloud Security Explorer di Defender per il cloud che mostra una query per i push GitHub alle immagini del contenitore con vulnerabilità.

  4. Verificare che i fattori di rischio siano configurati correttamente sul lato Defender per il cloud. Cerca il tuo nome del contenitore nella pagina di inventario di Defender per il cloud, e dovrebbe essere contrassegnato come critico.

Annotazioni

Questo passaggio è obbligatorio solo se i fattori di rischio non sono già configurati nell'ambiente. Se si usano già fattori di rischio, è possibile verificare la configurazione in Impostazioni > Criticità risorsa.

La convalida corretta garantisce che i passaggi successivi, ad esempio raccomandazioni, campagne e GitHub generazione di problemi, producano risultati significativi.

Annotazioni

Dopo aver classificato la risorsa come critica, possono essere necessarie fino a 12 ore prima che Defender per il cloud invii i dati a GitHub. Altre informazioni.

Passaggio 3: Creare una campagna di GitHub

Per creare una campagna di analisi, è necessario lavorare a livello di organizzazione GitHub. Questa esperienza non è disponibile a livello di singolo repository.

  1. In GitHub passare all'organizzazione GitHub usata per il test di configurazione.

  2. SelezionareSicurezza>Campagne>Crea campagna>Dai filtri di scansione del codice.

  3. Questa campagna aiuta a classificare in ordine di priorità i risultati di GHAS che appartengono al codice effettivamente distribuito e in esecuzione.

  4. Selezionare Filtri rischi di runtime per la campagna.

    Screenshot della creazione di una campagna di scansione del codice GitHub con una barra dei filtri, un pulsante Filtro e un tooltip relativo al filtro in base ai metadati dell'artefatto.

    Screenshot della finestra di dialogo filtri avanzati nella creazione di campagne GitHub, con Filtro Rischio di Runtime e menu dei fattori di rischio selezionabili aperto.

  5. Selezionare Salva>Pubblica come campagna. Immettere le informazioni necessarie e quindi pubblicare la campagna.

  6. Tenere traccia dell'avanzamento della campagna. Screenshot della pagina della campagna di GitHub con stato di scadenza, barra di avanzamento della campagna, elenco degli avvisi critici e opzioni di filtro.

Passaggio 4: Mobilizzazione delle raccomandazioni

Utilizzare la funzionalità delle raccomandazioni per i container, dal codice all'esecuzione in runtime, e la correlazione delle CVE identificate con gli avvisi di sicurezza di Dependabot per comprendere lo stato dei problemi di sicurezza. È quindi possibile assegnare la raccomandazione per la risoluzione al team di progettazione pertinente in base al mapping da codice a runtime.

  1. Nel portale di Defender per il cloud passare alla scheda Raccomandazioni .

  2. Cercare il nome del contenitore creato dal repository di codice.

  3. Aprire una delle raccomandazioni relative al software di aggiornamento ; il nome della raccomandazione inizia con Update

  4. Selezionare la scheda CVEs associati Gli avvisi di sicurezza vengono visualizzati come parte del flusso di valutazione delle raccomandazioni. Questi avvisi forniscono indicazioni sui risultati relativi alla sicurezza avanzata di GitHub già noti agli ingegneri. Si noti che alcuni ID CVE hanno un collegamento View on GitHub nella colonna Related GitHub Alerts (Avvisi correlati GitHub).

    Screenshot di Defender per il cloud nella scheda Risultati che mostra gli avvisi CVE-2024-21409, lo stato della risoluzione, i punteggi CVSS e il popup dei dettagli degli avvisi di GitHub.

Selezionare il collegamento per aprire l'avviso di sicurezza GHAS pertinente. Per visualizzare il contenuto degli avvisi GHAS in GitHub, è necessario disporre delle autorizzazioni di accesso per il repository di GitHub pertinente. Se non si dispone delle autorizzazioni di accesso, è sempre possibile copiare il collegamento per l'utilizzo successivo o contattare l'amministratore GitHub.

Se è presente un arricchimento degli avvisi, è presente un avviso Dependabot corrispondente già noto all'ingegneria. Se lo stato è Attivo, nessuno lo ha ancora risolto e il problema deve essere prioritario per una correzione.

Se non viene trovato arricchimento, questo indica un rischio di runtime sconosciuto all'ingegneria che deve essere prioritizzato per una correzione.

Cosa verrà dopo? Come posso sapere chi è il team pertinente per la correzione? Come posso sapere quale contesto può aiutare l'ingegneria per la risoluzione?

Creare un problema di GitHub

Per chiudere il ciclo tra i team di progettazione e sicurezza, è possibile creare un problema GitHub che assegna priorità ai problemi di sicurezza su cui deve concentrarsi il team di progettazione. Questa prioritizzazione può includere il trasferimento dei risultati che GHAS non ha rilevato ma che Defender per il Cloud ha individuato per gli ID CVE che non fanno parte delle dipendenze dirette. Questi risultati possono includere vulnerabilità nell'immagine di base, nel sistema operativo o nel software come NGINX.

Il problema GitHub viene generato automaticamente nel repository di codice di origine, con tutti gli ID CVE presenti nell'ambito della raccomandazione, inclusi altri contesti correlati al runtime e al contenitore SDLC che consentono di facilitare la correzione e il test.

Dalla visualizzazione delle raccomandazioni è possibile generare in modo esplicito un problema di GitHub per tenere traccia del lavoro di correzione.

  1. Vai alla scheda Approfondimenti sulla correzione e vedi il diagramma codice-esecuzione. Il diagramma mappa il container in esecuzione all'immagine del container nel repository di codice e al repository di codice originale su GitHub.

    Screenshot di Informazioni dettagliate sulla correzione che mostra il diagramma da codice a runtime con livelli di rischio e menu Esegui azione aperto nella casella Runtime.

    1. Nella scheda Informazioni dettagliate sulla correzione esaminare la casella Runtime interessata.

    2. Validate se esiste già un problema di GitHub. Se esiste già un problema di GitHub, viene visualizzata un'icona GitHub nella casella. Passare il puntatore del mouse sull'icona per visualizzare i dettagli del problema.

    3. Se non esiste alcun problema e si dispone delle autorizzazioni necessarie, è possibile generare un nuovo problema di GitHub. Selezionare Intervenire.

    4. Selezionare l'opzione Generate GitHub issue dal popup.

    5. Se il problema è stato creato correttamente, verrà visualizzata una notifica popup con un collegamento al problema. Il problema viene creato nel repository di codice di origine.

      Screenshot di un elenco problemi su GitHub che mostra problemi aperti relativi alle dipendenze con etichette quali Defender per il cloud e sicurezza.

    Annotazioni

    Se l'opzione problema Generate GitHub non è disponibile, potrebbero mancare le autorizzazioni necessarie per GitHub o il repository. Contattare il GitHub o l'amministratore del repository per richiedere l'accesso.

    Screenshot dell'elenco di problemi su GitHub che mostra problemi aperti relativi alle dipendenze con etichette come Defender per il cloud e sicurezza.

    1. Aggiornamenti di proprietà e stato: le modifiche allo stato della segnalazione o all'assegnazione effettuate in GitHub vengono riportate in Microsoft Defender per il cloud, consentendo di tenere traccia dell'assegnazione e dello stato di avanzamento della correzione dalla visualizzazione Recommendations.

      Screenshot della pagina Raccomandazioni di Microsoft Defender per il cloud che mostra problemi ad alto rischio insieme a un popup che visualizza i dettagli delle issue di GitHub.

Apportare correzioni proattive

Sul lato GitHub, se si dispone di una licenza GitHub Copilot, è possibile risolvere il problema con l'aiuto dell'agente di codifica GitHub:

  1. Assegnare un agente di codifica GitHub al problema.
  2. Esaminare la correzione generata.
  3. Se la correzione sembra ragionevole, applicarla.
  4. Osservare come Defender per il cloud aggiorna lo stato del problema a Chiuso.