Close

Integrazione di Snyk in Atlassian Open DevOps

Primo piano di Warren Marusiak
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).

Immagine dell'aggiunta dell'integrazione di Snyk in Bitbucket

Concedi l'accesso e clicca su Connect Bitbucket with Snyk (Connetti Bitbucket con Snyk).

Connessione di Bitbucket a Snyk

Dopo aver configurato l'integrazione, chiudi la scheda.

Guida all'integrazione di successo

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.

Schermata Snyk

Per maggiori informazioni su come correggere ogni vulnerabilità, clicca su Visit Snyk (Visita Snyk) per accedere al sito Web di Snyk.

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

Screenshot del sito Web Snyk

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.

Screenshot dei dettagli delle vulnerabilità

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.

Passaggio runsnyktest 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.

Warren Marusiak
Warren Marusiak

Warren is a Canadian developer from Vancouver, BC with over 10 years of experience. He came to Atlassian from AWS in January of 2021.


Condividi l'articolo

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