Condividi tramite


Incorporare la sicurezza Zero Trust nel flusso di lavoro dello sviluppatore

Gli sviluppatori devono sentirsi sicuri e sicuri di muoversi alla velocità. La necessità di sicurezza viene avviata non appena si clona il codice. In questo articolo si apprenderà come sviluppare usando i principi Zero Trust in modo da poter innovare in modo rapido e sicuro. La strategia di sicurezza Zero Trust e l'approccio per la progettazione e l'implementazione di applicazioni includono questi principi:

  • Verificare esplicitamente. Eseguire sempre l'autenticazione e l'autorizzazione in base a tutti i punti dati disponibili.
  • Usare l'accesso con privilegi minimi. Limitare l'accesso degli utenti con JUST-In-Time e Just-Enough-Access (JIT/JEA), criteri adattivi basati sui rischi e protezione dei dati.
  • Presupporre le violazioni. Ridurre al minimo il raggio di esplosione e l'accesso segmento. Verificare la crittografia end-to-end e usare l'analisi per ottenere visibilità, guidare il rilevamento delle minacce e migliorare le difese.

L'incorporamento della sicurezza nel flusso di lavoro consente di:

  • Individuare più rapidamente le vulnerabilità di sicurezza.
  • Fornire strumenti per sviluppatori più sicuri.
  • Creare connessioni per migliorare la collaborazione tra team di sicurezza e sviluppo.

Innovare e proteggere il flusso di lavoro durante la creazione di codice

La soluzione unificata di Microsoft, illustrata nel diagramma seguente, collega i team DevOps e SecOps per accelerare e proteggere lo sviluppo da codice a cloud.

Il diagramma mostra le tecnologie che costituiscono la soluzione di sviluppo unificata da codice a cloud.

La soluzione per proteggere DevOps si basa su due componenti principali: fornire agli sviluppatori strumenti per potenziare l'innovazione e proteggere il flusso di lavoro degli sviluppatori quando gli sviluppatori creano codice. Per informazioni su come questi componenti possono proteggere l'ambiente di sviluppo del cloud, guardare la sessione Accelerate and secure your code to cloud development session from Microsoft Build 2022 .Watch the Accelerate and secure your code to cloud development session from Microsoft Build 2022 to learn how these components can secure your development environment.

Implementare le procedure consigliate seguenti che interagiscono in Azure e GitHub per proteggere la soluzione di sviluppo.

  • Poiché la sicurezza inizia quando gli sviluppatori clonano il codice, abilitare DevSecOps con Azure e GitHub per collegare i team DevOps e SecOps e proteggere gli ambienti di sviluppo.
  • Offrire strumenti di sviluppo flessibili e potenti per qualsiasi sviluppatore, linguaggio e stack con Visual Studio e Visual Studio Code.
  • Semplificare l'onboarding e la collaborazione dei nuovi sviluppatori con un intero strumento del ciclo di vita di sviluppo nel cloud usando GitHub Codespaces e Microsoft Dev Box.
  • Includere la protezione della proprietà intellettuale predefinita per il codice che non si disperde più in più posizioni. Aiutare i team a collaborare, sviluppare, automatizzare e distribuire codice ovunque si desideri con GitHub Actions e Azure Pipelines.
  • Ottenere indicazioni sulla sicurezza e feedback continuo sulla sicurezza all'interno del flusso di lavoro dello sviluppatore con analisi del codice, analisi dei segreti e revisione delle dipendenze con GitHub Advanced Security.
  • Infondere la sicurezza senza attendibilità in tutta l'organizzazione usando i servizi di gestione delle identità in Microsoft Entra ID.

Adattare la sicurezza Zero Trust al ciclo di vita di sviluppo

Dal precommit al commit tramite la distribuzione, quindi operare e monitorare, sono necessarie soluzioni di sicurezza in tutte le fasi del ciclo di vita di sviluppo.

Fase di precommit

  • Modellazione delle minacce
  • Plug-in di sicurezza dell'IDE
  • Precommit hook
  • Proteggere gli standard di codifica
  • Revisione peer

L'85% dei difetti del codice viene visualizzato durante la fase di precommissione dello sviluppo, principalmente a causa di un errore umano. Concentrarsi sulla sicurezza prima di eseguire il commit del codice scrivendo il codice in Visual Studio Code, Visual Studio o GitHub Codespaces per identificare le vulnerabilità e il codice sicuro. Usare le verifiche peer per incoraggiare procedure di codifica sicure.

Fase commit (CI)

  • Analisi statica del codice
  • Unit test di sicurezza
  • Gestione delle dipendenze
  • Analisi delle credenziali

Durante la fase di commit, usare metodi di sicurezza estesi per esaminare il codice (inclusa l'analisi statica del codice) e analizzare il codice durante la verifica nel controllo del codice sorgente. Usare l'analisi delle credenziali (nota anche come analisi dei segreti o analisi dei token) per esporre le credenziali che è possibile introdurre inavvertitamente nella codebase. Intercettare le dipendenze non sicure prima di presentarle all'ambiente con la revisione delle dipendenze.

Fase di distribuzione (CD)

  • Analisi dell'infrastruttura come codice (IaC)
  • Analisi dinamica della sicurezza
  • Controlli di configurazione cloud
  • Test di accettazione della sicurezza

Durante la fase di distribuzione, esaminare l'integrità complessiva della codebase ed eseguire l'analisi della sicurezza di alto livello per identificare i rischi. Eseguire controlli di configurazione cloud, controlli del codice delle infrastrutture e test di accettazione della sicurezza per garantire l'allineamento agli obiettivi di sicurezza dell'organizzazione.

Gestire e monitorare la fase

  • Monitoraggio continuo
  • Intelligence per le minacce
  • Postmortem senza colpevoli

Durante la fase operativa e di monitoraggio, usare il monitoraggio continuo e l'intelligence sulle minacce per attenuare le vulnerabilità complessive delle dipendenze che è possibile ereditare nel tempo. Eseguire postmortems per prendere lezioni apprese e continuare a scorrere il ciclo DevOps.

Implementare la dipendenza, il codice e l'analisi dei segreti

Per semplificare la protezione del codice per gli sviluppatori, usare funzionalità native e automatizzate per fornire feedback continuo con funzionalità di sicurezza continue per tutto il ciclo di vita dello sviluppo. Offrire sicurezza complessiva agli sviluppatori e alle community con l'analisi delle dipendenze della sicurezza avanzata di GitHub, l'analisi del codice e l'analisi dei segreti.

Analisi delle dipendenze

  • Revisione integrata delle dipendenze
  • Avvisi e aggiornamenti della sicurezza

Ottenere i livelli di rischio delle dipendenze e le correzioni automatiche per le dipendenze vulnerabili nella codebase con l'analisi continua delle dipendenze. Come processo continuo, gli sviluppatori vengono intrusi nella giusta direzione in modo descrittivo e non invadente.

Analisi del codice

  • Framework estendibile per l'analisi del codice
  • Integrazione all'interno del flusso di lavoro per sviluppatori
  • Supportato dal motore CodeQL leader del settore

Implementare l'analisi del codice durante la generazione del codice senza altri passaggi da eseguire in posizioni separate. Semplifica le correzioni all'inizio del ciclo di vita dello sviluppo visualizzando i risultati dell'analisi nell'esperienza utente di GitHub familiare.

Analisi dei segreti

  • Cercare segreti persi in repository pubblici e privati
  • Partnership con oltre 40 provider
  • Protezione push
    • Passare dalla correzione alla prevenzione
    • Verificare la presenza di segreti con attendibilità elevata
    • Abilitare la protezione con una selezione

Analizzare il codice per individuare le credenziali e i token hardcoded con l'analisi dei segreti. Eseguire l'analisi della protezione push per individuare segreti e token prima di eseguire il push nella codebase. Verificare la presenza di segreti con attendibilità elevata come codice push da parte degli sviluppatori, bloccando il push quando GitHub identifica un segreto.

Gestire e proteggere le identità del carico di lavoro

  • Gestione ciclo di vita
  • Governance degli accessi
  • Proteggere l'accesso adattivo

Ottenere visibilità sull'attività delle identità del carico di lavoro e abilitare la pulizia periodica. Determinare chi possiede le identità del carico di lavoro e come mantenere aggiornate queste informazioni nelle modifiche dell'organizzazione. Tenere traccia dell'ultima identità del carico di lavoro usata all'ultima emissione di token e alla scadenza dei token.

Per ridurre il rischio di perdite di segreti e credenziali, eseguire periodicamente verifiche di accesso. Richiedere agli utenti di esaminare le identità del carico di lavoro e rimuovere privilegi di accesso non necessari. Chiedere agli utenti di segnalare privilegi di accesso sovraprivati e sottoutilizzati. Illustrare come proteggere le identità del carico di lavoro dalle violazioni. Abilitare l'accesso condizionale per assicurarsi che l'accesso proveni dalle risorse previste.

Proteggere le identità con GitHub OIDC e ID dei carichi di lavoro di Microsoft Entra federazione

Per proteggere ulteriormente l'organizzazione, usare GitHub OpenID Connessione (OIDC) con Microsoft Entra Workload Identity Federation e ridurre al minimo la necessità di archiviare e accedere ai segreti. Gestire in modo sicuro i segreti dell'entità server di Azure e altre risorse di credenziali cloud di lunga durata per ridurre al minimo i tempi di inattività del servizio a causa delle credenziali scadute. Eseguire l'integrazione con le piattaforme per sviluppatori, ad esempio GitHub Actions, per creare in modo sicuro le app.

Il flusso di lavoro consigliato per la federazione dell'identità del carico di lavoro, illustrato nel diagramma seguente, comprende sei passaggi.

Diagramma che illustra i passaggi del flusso di lavoro della federazione dell'identità del carico di lavoro.

  1. Configurare l'attendibilità in Microsoft Entra ID e richiedere un token.
  2. Configurare il flusso di lavoro di GitHub per consentire alle azioni di ottenere il token.
  3. Il flusso di lavoro di GitHub invia una richiesta all'ID Azure.
  4. Microsoft Entra ID convalida l'attendibilità nell'applicazione e recupera le chiavi per convalidare il token.
  5. Microsoft Entra ID accede e rilascia il token.
  6. L'azione di distribuzione usa il token di accesso Microsoft Entra per la distribuzione nelle risorse in Azure.

Guarda April Edwards, Senior Cloud Advocate e DevOps Practice Lead, demo del flusso di lavoro di Workload Identity Federation. La dimostrazione inizia alle 19:14 della sessione di Microsoft Build 2022, accelerare e proteggere il codice per lo sviluppo cloud.

Passaggi successivi

  • Iscriversi all'interfaccia della riga di comando per sviluppatori di Azure, uno strumento open source che accelera il tempo necessario per iniziare a usare Azure.
  • Configurare Azure per considerare attendibile l'OIDC di GitHub come identità federata. OpenID Connessione (OIDC) consente ai flussi di lavoro di GitHub Actions di accedere alle risorse in Azure senza dover archiviare le credenziali di Azure come segreti GitHub di lunga durata.
  • Implementare i principi Zero Trust come descritto nel memorandum 22-09 (a supporto dell'ordine esecutivo degli Stati Uniti 14028, Miglioramento della sicurezza informatica nazionale) usando Microsoft Entra ID come sistema centralizzato di gestione delle identità.
  • Accelerare e proteggere il codice con Azure DevOps con strumenti che offrono agli sviluppatori il codice più veloce e sicuro per l'esperienza cloud.
  • Proteggere l'ambiente di sviluppo consente di implementare principi Zero Trust negli ambienti di sviluppo con procedure consigliate per privilegi minimi, sicurezza dei rami e strumenti di attendibilità, estensioni e integrazioni.
  • Gli ambienti DevOps sicuri per Zero Trust descrivono le procedure consigliate per proteggere gli ambienti DevOps per impedire agli hacker di compromettere le caselle degli sviluppatori, infettare le pipeline di rilascio con script dannosi e ottenere l'accesso ai dati di produzione tramite ambienti di test.
  • Personalizzare i token descrive le informazioni che è possibile ricevere nei token di Microsoft Entra. Spiega come personalizzare i token per migliorare la flessibilità e il controllo aumentando al contempo la sicurezza senza attendibilità delle applicazioni con privilegi minimi.
  • Configurare le attestazioni di gruppo e i ruoli dell'app nei token illustra come configurare le app con definizioni di ruolo dell'app e assegnare gruppi di sicurezza ai ruoli dell'app. Questi metodi consentono di migliorare la flessibilità e il controllo aumentando la sicurezza senza attendibilità delle applicazioni con privilegi minimi.