Articoli
Tutorial
Guide interattive
Integrazione di Snyk in Atlassian Open DevOps
Warren Marusiak
Senior Technical Evangelist
Per fornire una dimostrazione di come sviluppare, distribuire e gestire applicazioni utilizzando Jira Software e vari strumenti connessi, il nostro team ha creato ImageLabeller, una semplice applicazione demo basata su AWS che utilizza l'apprendimento automatico per applicare etichette alle immagini.
In questa pagina viene spiegato come integrare Snyk con Bitbucket. Prima di iniziare, ti consigliamo di leggere la pagina di introduzione a ImageLabeller per contestualizzare i contenuti.
Integrazione tra Bitbucket e Snyk
Esistono due modi per lavorare con Snyk in Bitbucket. Il primo prevede l'abilitazione dell'integrazione nativa di Snyk in Bitbucket tramite la scheda Security (Sicurezza) nella schermata del repository. Il secondo comporta l'aggiunta di un passaggio Snyk a un file bitbucket-pipelines.yml. È possibile utilizzarli entrambi, senza controindicazioni. L'integrazione di Synk in Bitbucket offre un accesso rapido ai dati delle vulnerabilità a chiunque visiti il repository di Bitbucket. È quindi possibile accedere al sito Web di Snyk per ulteriori informazioni su ogni vulnerabilità rilevata. Il passaggio Snyk in un file bitbucket-pipelines.yml consente di eseguire la scansione automatica di ogni commit in una pipeline.
Aggiunta dell'integrazione di Snyk in Bitbucket
Per aggiungere Snyk a un repository Bitbucket, clicca sulla scheda Security (Sicurezza), trova l'integrazione Snyk e clicca su Try now (Prova ora).
Concedi l'accesso e clicca su Connect Bitbucket with Snyk (Connetti Bitbucket con Snyk).
Dopo aver configurato l'integrazione, chiudi la scheda.
Clicca sulla nuova opzione Snyk che appare nella barra di navigazione a sinistra, quindi clicca sul file go.mod per visualizzare informazioni più dettagliate. In questo esempio il repository Golang utilizza i moduli Go per gestire le dipendenze. Per altri tipi di repository, saranno disponibili file di dipendenza diversi.
Per maggiori informazioni su come correggere ogni vulnerabilità, clicca su Visit Snyk (Visita Snyk) per accedere al sito Web di Snyk.
Questa visualizzazione dell'app Snyk è simile alla schermata di dettaglio rappresentata in Bitbucket. Questa schermata mostra un elenco di vulnerabilità, insieme a informazioni aggiuntive su ciascuna di esse.
Di seguito è riportato un esempio di report di vulnerabilità in Snyk. Una gerarchia delle origini delle vulnerabilità è mostrata nella sezione Detailed paths (Percorsi dettagliati). Nell'esempio riportato di seguito, è possibile vedere che SubmitImage eredita questa vulnerabilità dall'SDK di AWS Golang. Snyk sintetizza lo stato di tutti i ticket a sinistra. In questo caso, nessuno di essi è risolvibile. Come puoi notare, in Fixability (Possibilità di correzione) sono presenti cinque ticket per i quali non è disponibile alcuna correzione (No fix available). Ciò significa che al momento non è disponibile alcuna soluzione di mitigazione per questi ticket. Gli sviluppatori possono monitorare l'integrazione e applicare le correzioni non appena sono disponibili.
Aggiunta di un passaggio Snyk a bitbucket-pipelines.yml
Oltre ad accedere a Snyk tramite l'interfaccia utente di Bitbucket, è possibile accedere alla funzionalità di Snyk tramite Bitbucket Pipelines aggiungendo passaggi ai file bitbucket-pipelines.yml. Ciò significa che la scansione delle vulnerabilità verrà eseguita automaticamente a ogni commit e, qualora vengano rilevate vulnerabilità di sicurezza, riceverai un avviso.
Di seguito sono riportati due snippet di bitbucket-pipelines.yml per eseguire i test Snyk come parte di una pipeline.
Aggiunta di Snyk Bitbucket Pipelines per Golang
Questo esempio illustra come eseguire il test snyk per un progetto Golang utilizzando i moduli Go per la gestione delle dipendenze.
definitions:
steps:
-step: &runsnyktest
name: run snyk test
image: snyk/snyk:golang
script:
- snyk auth $SNYK_TOKEN
- cd submitImage
- go mod graph
- snyk test
pipelines:
default:
- step: *runsnyktest
Aggiunta di Snyk a Bitbucket Pipelines per Python
Questo esempio illustra come eseguire il test snyk per un progetto Python utilizzando Pip per la gestione delle dipendenze.
definitions:
steps:
-step: &runsnyktest
name: run snyk test
image: snyk/snyk:python
script:
- snyk auth $SNYK_TOKEN
- cd src
- snyk test --skip-unresolved
- cd ../tst
- snyk test --skip-unresolved
pipelines:
default:
- step: *runsnyktest
Ecco come si presenta quando il passaggio runsnyktest viene eseguito in una pipeline Bitbucket.
In conclusione...
La pratica di integrare la sicurezza nella pipeline CI/CD è un principio fondamentale di DevSecOps. Secondo DevSecOps la sicurezza dovrebbe essere applicata a ogni fase della pipeline DevOps tipica: pianificazione, programmazione, creazione della build, test, rilascio e distribuzione. Inclusa nel flusso di lavoro, la sicurezza diventa una parte attiva e integrata del processo di sviluppo, non un aspetto secondario. Ciò significa app più sicure, meno imprevisti e clienti più soddisfatti.
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.