‫Tutto ok.
‫Il prossimo, la scansione del repository di codice.
‫Questo non è nemmeno specifico per Docker, ma
‫ci sono strumenti là fuori e Sneak è uno
‫di questi. Sneak, eseguirà la
‫scansione delle dipendenze del codice all'interno dei repository.
‫Se hai open source, se stai sviluppando un open
‫source, faranno un sacco di queste cose gratuitamente.
‫Scansioneranno il tuo repository GitHub, il tuo repository Bitbucket
‫e guarderanno le dipendenze.
‫Ricevo loro rapporti ogni settimana sui miei repository open source
‫e su eventuali vulnerabilità rilevate.
‫Al giorno d'oggi, GitHub fa molto anche questo
‫gratuitamente. Lo sneak è
‫in circolazione da più tempo e lo fa da più tempo, quindi
‫in un certo senso ho entrambi. Ho GitHub che mi sta inviando
‫e-mail e ho Sneak. Puoi pagare Sneak per scansionare roba.
‫Ora hanno anche più funzioni in cui fanno anche immagini e altre
‫cose, non solo repository di codice.
‫Ma questa è una riga: scansiona i tuoi
‫repository all'inizio del processo.
‫Non aspettare che tu costruisca immagini e
‫poi abbia elementi in CI, sai, nei test in cui
‫stai scannerizzando. Scansione il prima possibile.
‫Questo è uno dei principi fondamentali di qualcosa
‫chiamato sicurezza ShiftLeft.
‫Se immagini una Kanban Board in cui tutto il tuo lavoro è sulla sinistra
‫e l'output è sulla destra, il movimento
‫di sicurezza ShiftLeft, se cerchi semplicemente la ricerca della sicurezza di
‫ShiftLeft, consiste nel spostare la responsabilità della sicurezza prima e
‫prima in il tuo flusso di
‫lavoro di sviluppo.
‫Quindi, un modo per farlo è fare in modo che questi scanner automatici eseguano
‫la scansione delle dipendenze del codice all'interno dei repository git prima
‫ancora di arrivare allo stadio di eseguire roba sui
‫server, giusto. Io lo farei.
‫Non specificamente una cosa Docker, ma lo farei.
‫Il passo successivo è la scansione delle immagini stessa, che
‫è molto simile a quella. Ma qui abbiamo più funzionalità.
‫Non stiamo solo analizzando le dipendenze del codice.
‫Siamo in grado di scansionare il contenitore stesso.
‫L'immagine, giusto. Possiamo scansionare
‫tutte le dipendenze lì che non sono
‫solo come i tuoi pacchetti npm o
‫i tuoi pacchetti Python. Ora stai analizzando i pacchetti
‫YUM e APK, o apt, o questo tipo di
‫gestori di pacchetti per il sistema operativo.
‫Questo è ciò che intendo per scanner di immagini,
‫perché può scansionare anche le dipendenze del codice.
‫Quindi, ci sono molti strumenti qui.
‫Un gruppo molto popolare è in circolazione da un po 'di
‫tempo, ma ne sono emersi un paio di nuovi di
‫cui voglio parlarti.
‫Il primo qui è Trivy, e ne ho appena saputo questo
‫mese, in realtà ad ottobre.
‫Trivy è realizzato da Aqua Security, la stessa azienda
‫che costruisce MicroScanner.
‫MicroScanner era uno degli strumenti, insieme
‫a molti altri, anche Anchor, un altro popolare.
‫Questi sono tutti strumenti open source che scansionano la tua immagine
‫alla ricerca di vulnerabilità CVE.
‫Il CVE è quel database di tutte le vulnerabilità dei donatori
‫open source di cui tutti sentiamo parlare nelle notizie.
‫Viene da Mitre, una società che gestisce quel database.
‫Questa è una cosa di comunità, giusto.
‫Ogni volta che qualcuno trova una vulnerabilità nel software, la inserisce
‫e ottiene un numero CVE.
‫È vulnerabilità e exploit comuni, qualcosa
‫del genere.
‫Non ricordo esattamente cosa rappresenti CVE.
‫Sono sicuro che uno di voi me lo dirà in chat.
‫Ma CVE ottiene un numero, giusto.
‫Vediamo un numero assegnato a quel
‫bug noto nella comunità. Uno scanner CVE scansionerà le tue immagini
‫per quella vulnerabilità.
‫Una volta che hai preso l'implementazione di questi,
‫ci sono tutti i tipi di minutia, come fa lo scanner
‫che devi eseguire nell'immagine Docker durante il tempo di costruzione?
‫O esegue la scansione di un'immagine già costruita?
‫Quello scanner supporta la tua
‫distribuzione di base? Supporta Red Hat?
‫Supporta Alpine?
‫Qualsiasi tipo di altre immagini di distribuzione che hai
‫scelto di utilizzare supporterà quelle?
‫Supporta anche il tuo gestore di pacchetti per la tua app
‫come npm o
‫pip, o una delle altre dozzine di gestori di
‫pacchetti là fuori, giusto. Supporta anche quelli?
‫MicroScanner non
‫ha fatto tutto questo. Ne ha fatto una
‫parte, ma come molti di questi altri strumenti nell'ecosistema, non hanno fatto tutto.
‫In questo momento, questo di Aqua Security chiamato Trivy,
‫arriva fino
‫in cima a questa cosa.
‫Trivy afferma di essere lo
‫scanner gratuito open source più completo in circolazione.
‫Quaggiù vedrai cosa supportano.
‫Noterai che supportano tutte queste immagini basate.
‫Quindi, se si scende effettivamente, c'è un confronto che
‫li mostra confrontando con tutti gli altri strumenti,
‫o almeno con le popolari versioni open source
‫di questi strumenti. Ci sono sicuramente più strumenti di questo.
‫Ci sono molte scelte che devi fare qui.
‫Una scelta è dove voglio scansionare?
‫Voglio che il mio repository di immagini li scannerizzi da solo,
‫come fa Docker Enterprise DTR?
‫Se hai un registro che contiene le tue immagini
‫e quel registro esegue scansioni sulle immagini nel registro
‫stesso tutto in una volta.
‫Anche Quay lo fa. Quay è un
‫repository di immagini di hosting cloud e scansionerà, giusto.
‫Ognuno di questi scanner non esegue sempre la scansione di tutti i tipi di immagine
‫e di tutte le dipendenze delle app.
‫Quindi, è piuttosto bello qui che mostrano ... fondamentalmente la X
‫significa che non lo fanno.
‫Lo 0 o la O lì, il cerchio, indicano che
‫lo fanno. Quindi, penso
‫che il doppio OO qui significhi il
‫meglio, e il triangolo significa che ci sono problemi,
‫ci sono preoccupazioni lì.
‫Quindi, sostengono che Trivy, che hanno comprato quest'anno,
‫credo.
‫Trivy fa tutto. Fa pacchetti OS, dipendenze dalle applicazioni.
‫Sostengono che sia facile da usare.
‫Sostengono che sia più preciso. Se inizi a
‫leggere questo, ti rendi conto che uno dei grandi problemi di
‫cui continuo a parlare è che l'immagine di base di Alpine non
‫funziona con quasi tutti questi scanner.
‫Semplicemente non ha il database delle vulnerabilità collegato correttamente in
‫modo che quando si eseguono questi scanner,
‫rileva le vulnerabilità in Alpine.
‫Trivy afferma di averlo risolto con
‫un nuovo metodo che stanno implementando e vedremo se anche
‫altre persone lo implementeranno.
‫Sostengono di essere il più completo.
‫Molti dei miei amici del Capitano Docker stanno tutti dicendo che lo stanno usando
‫e lo stanno usando alla grande.
‫Una delle altre decisioni, oltre a quale scanner, è dove
‫eseguirai la scansione?
‫Mi piace scansionare durante la creazione di immagini.
‫Preferirei eseguire la scansione durante la creazione
‫dell'immagine automatizzata CI piuttosto che eseguirne la scansione in seguito dopo la creazione dell'immagine.
‫Sono solo io.
‫Potresti anche avere sistemi diversi che scansionano
‫in momenti diversi, solo per sicurezza, giusto,
‫solo per essere sicuri. Potresti avere sistemi che eseguono la scansione
‫sui server in esecuzione in produzione, a seconda del
‫tuo ambiente. Non è molto comune.
‫Ma, se ti trovi in un ambiente super sicuro in
‫cui vuoi scansionare le cose in esecuzione dal vivo, puoi sicuramente farlo con
‫alcuni di questi strumenti.
‫Una demo che do spesso
‫su MicroScanner. In sostanza, tutto
‫ciò che devi fare in MicroScanner, così come questo
‫altro strumento, è in MicroScanner, puoi aggiungerlo al tuo Dockerfile.
‫Credo che l'app Tivey esegua la scansione dopo la
‫creazione dell'immagine.
‫Se sei super paranoico, potresti semplicemente usare
‫un MicroScanner all'interno dell'immagine Docker.
‫Quindi potresti eseguire qualcosa come Tivey dopo il fatto
‫sulle immagini prima che vengano inviate al
‫registro, lo sai. Puoi sempre scaricarli in un secondo
‫momento, ma mi piace sapere che la mia immagine è priva di
‫vulnerabilità prima di inviarla.
‫Quindi, è quello che potresti fare lì. Adesso.
‫Voglio solo dirti un avvertimento.
‫Probabilmente non avrai alcun ... probabilmente
‫non avrai alcuna immagine, o forse solo
‫poche immagini, con zero vulnerabilità su
‫tutta la linea. Ciò è dovuto
‫solo alla natura dell'open source. In genere, se si esegue la scansione
‫di qualsiasi immagine, in genere, se si esegue la scansione di qualsiasi
‫immagine là fuori, avrà vulnerabilità.
‫È il tuo lavoro lavorare con il tuo team di
‫sicurezza su ciò che è accettabile, non possiamo non avere mai vulnerabilità.
‫Perché alcune vulnerabilità potrebbero non essere applicabili anche a te.
‫Solo perché sono nella tua immagine non significa che
‫saranno automaticamente un problema, giusto.
‫Dovrai fare un po
‫'di lavoro. Penso che ciò che suggerirei è
‫di implementarli ora, ma
‫disattivare il tipo di errore e dire di continuare
‫su un errore qui, il che significa che tutto ciò che farò
‫è avvertirti che ci sono vulnerabilità. Non fermerò la build solo
‫perché c'è una vulnerabilità.
‫Questa è la chiave, perché se inizi
‫a implementare tutti questi strumenti automaticamente, il processo fallirà.
‫Falliranno il tuo CI o falliranno le tue build,
‫se le accendi. Vuoi assicurarti di
‫averli in una sorta di modalità di solo controllo in cui non
‫riescono a trovare una vulnerabilità.
‫In questo modo puoi almeno sapere quali sono le
‫vulnerabilità prima di iniziare, sai, prima di passare
‫all'hardcore, giusto? Prima di andare hardcore.