Close

Come integrare Snyk e Bitbucket Cloud per implementare l'approccio DevSecOps

Foto di Simon Maple
Simon Maple

Field CTO di Snyk

Adotta l'approccio DevSecOps integrando Snyk con Bitbucket Cloud e Jira.

Snyk si integra con più prodotti Atlassian per migliorare i flussi di lavoro e le pipeline dei team DevSecOps. Questo tutorial descrive i modelli per consentire la sicurezza shift-left sfruttando Atlassian Bitbucket e Snyk. Grazie a queste tecniche il tuo team può eseguire la scansione dei carichi di lavoro basati su applicazioni e container al ritmo di DevSecOps. Imparerai come utilizzare questi modelli per includere la sicurezza in tutte le fasi della pipeline.

Ora

15 minuti.

Pubblico

  • Sviluppatori
  • Ingegneri DevOps e DevSecOps
  • Team di sviluppo e sicurezza delle applicazioni

Prerequisiti

Devi avere un account Snyk, disponibile qui.

Devi avere un account Atlassian Bitbucket. Accedi qui o inizia qui.

Passaggio 1: configura l'ambiente

Installa l'interfaccia della riga di comando di Snyk

L'interfaccia della riga di comando (CLI) di Snyk autentica il computer in uso con l'account Snyk. Lo strumento della CLI ti aiuta a trovare e correggere le vulnerabilità note nelle dipendenze, sia manualmente che nella pipeline CI/CD. Le istruzioni complete per installare la CLI sono disponibili su Snyk in diversi formati per i sistemi operativi e gli ambienti più diffusi. Ad esempio, la CLI è disponibile con brew con questi comandi:

brew tap snyk/tap
brew install snyk

Una volta installata la CLI, effettua l'autenticazione con il seguente comando:

snyk auth

Questo comando apre una scheda del browser per completare il processo di autenticazione e potrai eseguire la scansione del repository cliccando sul pulsante Authenticate (Autentica). Una volta completata l'autenticazione, puoi tornare al terminale e continuare a lavorare.

Risorse lab aggiuntive

Gli esercizi contenuti in questo tutorial includono una combinazione di comandi o frammenti di codice che verranno condivisi nelle pagine del modulo specificate, oltre a modelli e codice sorgente disponibili in un repository Bitbucket pubblico. Una volta configurato l'account Bitbucket Cloud, dovrai copiare queste risorse nel tuo account. Per farlo, attieniti alla seguente procedura:

Esegui il fork del repository

Clicca qui per eseguire un fork del repository nell'account Bitbucket. La documentazione di Atlassian offre istruzioni dettagliate su come eseguire un fork di un repository.

Clona il fork localmente

Una volta completato il fork, è necessario clonare il repository sottoposto a fork. Consulta la documentazione di Atlassian su come clonare un repository per le istruzioni dettagliate.

Passaggio 2: collega Snyk a Bitbucket

In questa sezione collegheremo Snyk a Bitbucket per eseguire la scansione dell'applicazione Bitbucket alla ricerca di vulnerabilità open source.

Diagramma del processo di Bitbucket

Cos'è l'analisi della composizione software (SCA)?

L'analisi della composizione software (SCA) è uno strumento di gestione dei componenti open source. Genera un report che elenca tutti i componenti open source di un'applicazione, incluse le dipendenze dirette e indirette. Utilizzando uno strumento SCA, i team di sviluppo possono monitorare e analizzare rapidamente i componenti open source introdotti in un progetto.

Sebbene pratici e ampiamente utilizzati, i componenti open source sono tradizionalmente difficili da tracciare. Di conseguenza, gli sviluppatori si sono affidati a processi manuali come e-mail e fogli di calcolo per semplificare il lavoro. Tuttavia, questi processi manuali sono un ostacolo alla praticità dell'open source e sono dunque una soluzione incompleta. Un approccio più vantaggioso è quello di sfruttare uno strumento SCA in grado di fornire una visibilità immediata su ogni componente.

Perché utilizzare uno strumento SCA?

I componenti open source sono i principali elementi costitutivi dello sviluppo software praticamente in ogni verticale. Indipendentemente dalle dimensioni dell'organizzazione, SCA aiuta a identificare i componenti open source nelle applicazioni fondamentali per la tua azienda. Gli strumenti SCA consentono agli sviluppatori di:

1. Comprendere le dipendenze utilizzate nelle applicazioni.

2. Applicare policy di sicurezza e conformità per tutto il ciclo di vita dello sviluppo del software (SDLC).

3. Correggere in modo proattivo le potenziali vulnerabilità all'origine.

4. Migliorare l'efficienza del team e il livello di sicurezza aziendale.

Passaggio 3: crea una password per l'app

Dovrai creare una password per l'app per autorizzare Snyk ad accedere al repository e abilitare l'integrazione con Bitbucket Cloud di Snyk.

Per creare una password per l'app:

1. Dal tuo avatar in basso a sinistra, clicca su Personal settings (Impostazioni personali).

Finestra delle impostazioni personali

2. Clicca su App passwords (Password app) in Access management (Gestione dell'accesso).

finestra di gestione dell'accesso

3. Clicca su Create app password (Crea password per l'app).

finestra della password dell'app

4. Assegna alla password dell'app un nome correlato all'applicazione che la utilizzerà.

finestra della password dell'app

5. Seleziona l'accesso e le autorizzazioni specifici che desideri associare alla password dell'applicazione.

  • Account: lettura
  • Appartenenza al team: lettura
  • Progetti: lettura
  • Repository: lettura e scrittura
  • Pull request: lettura e scrittura
  • Webhook: lettura e scrittura

6. Copia la password generata e registrala o incollala nell'applicazione a cui desideri assegnare l'accesso. La password viene visualizzata solo questa volta.

Passaggio 4: aggiungi le variabili del repository

Dovrai definire le variabili del repository a livello di repository, a cui verrà successivamente fatto riferimento nella pipeline. Questi saranno costituiti dai seguenti elementi:

  • SNYK_TOKEN: token API di Snyk per l'autenticazione con l'account Snyk. Si tratta di una variabile protetta.
  • IMAGE: nome immagine del container. Si tratta di una variabile non protetta.

Le altre variabili riguardano le operazioni della pipeline migliorate, non descritte in questo tutorial.

Finestra delle impostazioni del repository

Passaggio 5: Ottieni il token API di Snyk

1. Ottieni il token API di Snyk

Dalla console di Snyk, vai a Settings (Impostazioni) (l'icona dell'ingranaggio nella foto) e, nel menu General (Generale), copia l'ID dell'organizzazione.

Impostazioni generali di Snyk

Dopo aver copiato il token, torna all'interfaccia utente di Bitbucket Cloud e definisci la variabile del repository SNYK_TOKEN.

Passaggio 6: Abilita l'integrazione con Bitbucket

Dalla console di Snyk, accedi a Integrations (Integrazioni) e seleziona Bitbucket Cloud.

Finestra delle integrazioni di Snyk

Nella pagina di integrazione di Bitbucket Cloud, inserisci il tuo nome utente di Bitbucket nel campo Username (Nome utente) e la password dell'app Bitbucket creata nel passaggio precedente nel campo App password (Password app). Quindi, clicca su Save (Salva).

Impostazioni: finestra delle integrazioni

Dopo aver collegato correttamente gli account Snyk e Bitbucket, vedrai un messaggio di conferma e potrai scegliere di aggiungere il repository di Bitbucket Cloud a Snyk.

Rimani su questa pagina e, nella sezione successiva, potrai scoprire come importare un repository di Bitbucket Cloud e sottoporlo a scansione con Snyk.

Sottoponi a scansione e monitora l'applicazione Bitbucket

anteprima della scansione e del monitoraggio di bitbucket

La scansione dell'applicazione alla ricerca di vulnerabilità nelle dipendenze open source inizia dall'origine. Nella sezione precedente, abbiamo abilitato l'integrazione di Snyk con Bitbucket e possiamo adesso importare il primo progetto.

Passaggio 7: aggiungi i repository di Bitbucket Cloud a Snyk

Nell'ultima schermata della sezione precedente, clicca su Add your Bitbucket Cloud repository to Snyk (Aggiungi il repository di Bitbucket Cloud a Snyk).

Aggiungi repository di Bitbucket Cloud a Snyk

Trova il repository di cui hai eseguito un fork nel modulo Configure Environment (Configura ambiente). Clicca sulla casella di spunta per selezionarlo, quindi clicca sul pulsante Add selected repository (Aggiungi repository selezionato) per importare il progetto.

Pulsante Add selected repositories (Aggiungi repository selezionati) nell'angolo in alto a destra

Passaggio 8: Rivedi il report di vulnerabilità

Dovresti vedere il numero delle vulnerabilità in base a packages.json, nonché informazioni dettagliate per ciascuna di esse. Clicca sul progetto appena sottoposto a scansione ed esamina i risultati in Snyk. Grazie a questo strumento, avrai a disposizione non solo contesto (ad esempio informazioni sulla gravità e la scadenza degli exploit per le vulnerabilità), ma anche le seguenti potenti funzionalità:

Report sulla vulnerabilità
  • Fix this vulnerability (Correggi questa vulnerabilità) ti aiuta a correggere le vulnerabilità tramite l'applicazione di patch alla vulnerabilità o l'upgrade delle dipendenze dirette.
  • Priority Score (Punteggio di priorità) ti aiuta a stabilire in modo efficace le priorità delle correzioni. Il punteggio, che va da 1 a 1000, è basato su un algoritmo proprietario che elabora una vasta gamma di fattori, come il punteggio CVSS, la disponibilità di correzioni, gli exploit noti, le informazioni sulla nuova vulnerabilità e se è raggiungibile.
  • Jira integration (Integrazione di Jira) consente di creare ticket in Jira.
Simon Maple
Simon Maple

Simon Maple is the Field CTO at Snyk, a Java Champion since 2014, Virtual JUG founder, and London Java Community co-leader. He is an experienced speaker, with a passion for community. When not traveling, Simon enjoys spending quality time with his family, cooking and eating great food.


Condividi l'articolo
Argomento successivo

Letture consigliate

Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.

Illustrazione su Devops

Community DevOps

Illustrazione su Devops

Percorso di apprendimento DevOps

Illustrazione di una mappa

Inizia gratis

Iscriviti alla nostra newsletter DevOps

Thank you for signing up