Sicurezza DevOps: strumenti OpenSource per i DevSecOps del futuro – Parte 1

Screenshot 2021 04 09 at 13.14.00

Negli ultimi 2 anni l’approccio DevSecOps, ossia DevOps con focus mirato all’ambito sicurezza, sta guadagnando sempre più attenzione e con esso i nuovi strumenti che ne facilitano l’implementazione. In questo articolo forniremo un elenco di strumenti disponibili ad oggi, illustrando lo stack di misure e pratiche che possono essere integrate in una delle fasi di Software development Life Cycle (SDLC) per i DevOps, vedremo quindi concetti quali Threat modelling, SAST, DAST, SCA, scansione delle immagini Docker, scansione Kubernetes e AWS Audit.

L’articolo sarà diviso in due parti, la prima delle quali riguarda i Dev, partendo da una delle visioni dell’approccio DevSecOps, preso da holisticsecurity:

8n nhkgXXz8rSrtIPy7AEQKImUoHnBhdq10TS4ElkuADmUsm2mQRbHRYbmJbH3pXELYj6t9DjLSQT6ayU

Threat Modeling

La modellazione delle minacce nel contesto di Secure Development Lifecycle è il processo di analisi di un’architettura software per potenziali vulnerabilità e tecnologie non sicure. Per ridurre il costo dal punto di vista della sicurezza in fase di aggiunta delle nuove funzionalità, la soluzione potrebbe essere l’implementazione di un processo di verifica della sicurezza e delle informazioni in fase di progettazione dell’architettura. In questa fase vengono formati i requisiti degli specialisti della sicurezza per le applicazioni. Questo approccio è utilizzato, infatti, in tutte le pratiche DevSecOps e ha preso un nome: Shift security to the left (sposta la sicurezza a sinistra).

Per dare la vita a questo processo nello sviluppo con un’alta frequenza di rilasci in una grande azienda IT, la modellazione delle minacce deve essere automatizzata. Ecco alcuni strumenti open-source che possono aiutare in questo senso.

OWASP Threat Dragon

Un strumento abbastanza semplice per la simulazione delle minacce. L’utente disegna l’architettura del software, evidenziando le minacce che possono seguire la metodologia STRIDE. Nessuna automazione, ma quando tutti i processi sono già strutturati, può essere utile. Questo strumento viene utilizzato in particolare per la modellazione delle minacce su GitHub.

Esempio diagramma:

ETQf0Nfl ACYc1ZXrCYeSQNNwz0TyvBD1qaIagTWFQkxxO8Op PtxjiUCgMyCR8KK naJhuz0c87k2O3YY2fWAz4OqJWZ3zsbBQOELVLWrXuNH773N15v NpPwtgJdaoNibVJBT

Materialize threats tool

Materialize-threats – è un framework Python che consente di convertire i diagrammi dell’architettura software dal servizio app.diagrams.net (draw.io) in un grafo, salvarlo in un database e quindi poter lavorare utilizzando le query SQL. Inoltre, lo strumento può generare anche i test in linguaggio Gherkin.

Per poter ottenere i test Gherkin possiamo seguire questi step:

  1. Disegnare un diagramma dell’interazione dei componenti in app.diagrams.net (draw.io), in base al flusso dei dati.
  2. Evidenziare delle zone attendibili sul diagramma, secondo la metodologia Rapid Threat Model Prototyping (c’è una spiegazione nel file readme).
  3. Salvare file .drawio
  4. Eseguire materialize.py con file di .drawio
  5. Ottenere uno scenario delle minacce nel formato Gherkin

Questo esempio dell’architettura in app.diagrams.net (draw.io), può essere usato come input Materialise Threats:

51VAiy1bdUozGjCISoRReZxJkOtwVdOOkEXbj8Km0e40ZDCCeBGpFMERQGfbOOacM61q68NMH6w4s nyGEB dJplHNP6

Il risultante test Gherkin è il seguente:

e 1Fjx4Z0TlLqh10Cp0bQTdJ6wzrpkVSH 4H1k1VBWmwtlLea la2GULpVWdJndgp9 IThFr3MKL8G1sDI8bmks8S klRNrT1vQmNjSgbIsdlHsTirCyl 4vIQ49qFJhL9e 9zo

Non ci fermeremo troppo su questo argomento, perché il principio di funzionamento è simile ovunque.

Ecco alcuni altri strumenti di modellazione delle minacce open-source:

Analisi statica delle vulnerabilità delle applicazioni (SAST)

Si passa alla fase di testing, ovvero l’analisi statica del codice. Esistano tante librerie di analizzatori di codice. Gli strumenti open-source nella maggior parte sono scritti per una particolare lingua di programmazione. Ecco una raccolta:

Ma ci sono anche alcuni strumenti piuttosto curiosi che possono essere applicati universalmente.

Salus (Security Automation as a Lightweight Universal Scanner)

Un container docker dove ci sono diversi analizzatori statici contemporaneamente, come Bandit, Gosec, Brakeman, ed anche analizzatori dei componenti open-source (Ruby, Node.js, Python, Go).

Per lanciare:

# Apri la directory dove vuoi lanciare salus
$ cd /path/to/rep # Esegui passando la directory attuale
$ docker run --rm -t -v $(pwd):/home/repo coinbase/salu

Come output, riceviamo un report  in formato JSON/YAML. Qui troverete una guida per integrare questo tool nella vostra CircleCI.

ShiftLeft Scan

Lo strumento funziona in modo simile a Salus, ma con il supporto più ampio di analizzatori statici. Nel repository potete vedere l’elenco dei analizzatori statici che sono stati inseriti nell’immagine docker (gosec, find-sec-bugs, salmo, bandit, …). Anche gli analizzatori per terraform, bash, kubernetes sono presenti nell’immagine Docker.

Esempio per avere un’analisi statica di un progetto Python:

$ docker run --rm -e "WORKSPACE=${PWD}" -v "$PWD:/app" shiftleft/sast-scan scan --src /app --type python

Questo strumento ha anche una integrazione con l’IDE:

U8M1peVn8LRImGydI eN2LxDCPQRivbWz41MT2v0j 27rlfRlwCb2PCANkSzTiPlZNVSCI6HPbgt0EoVJ85IN370E4tMopIFKeOAJwVyMl3ip yUre1U67vsMsEllK czYSuyzCo

GitLab SAST

Gitlab è una piattaforma DevOps molto popolare, ma tra l’altro ha è un set gratuito di diversi SAST open-source che possono essere collegati immediatamente alla pipeline. Gitlab offre anche la possibilità di integrare con SCA, ricerca segreti, fuzzing e altre pratiche DevSecOps, ma la gestione centralizzata di tutti gli strumenti sarà disponibile solo nella versione Gold.

Esempio integrazione SAST nella pipeline:

kpfC6 AqyLkWFrHBrIYLaP r3Fc50g T0yiS9hczVQJMDO497S9C3m9XB03k2BzcxGboK37O3wzBmh8 uCr5QyffwFTV

Ricerca segreti

Un progetto può contenere non solo le vulnerabilità nel proprio codice e nei componenti open-source, ma anche segreti come password, token, chiavi private ecc. Ovviamente, se il vostro codice contiene una password per un database critico, non è possibile mettere nel repository. A tal fine, ci sono una serie di strumenti che possono aiutarti a trovare segreti. Anche questi strumenti hanno il principio di funzionamento che è quasi lo stesso ovunque.

git-secrets

$ git secrets --scan /path/to/ file

Gitleaks

$ gitleaks --repo-path = <percorso del repository>
$ gitleaks --repo = <url di github>

Disponibile anche come azione Github.

TruffleHog

TruffleHog è lo strumento molto famoso che cerca segreti utilizzando sia espressioni regolari.

$ trufflehog [-h] [--json] [--regex] [--rules RULES] [--entropy DO_ENTROPY] [--since_commit SINCE_COMMIT] [--max_depth MAX_DEPTH] git_url

Gitguardian

Piattaforma SaaS per la ricerca dei segreti. Esiste anche una versione a pagamento.

yZMlXrJEQJN0H8SuYVd3AVQEU1zKVcVs3Rf7eUlYoVaUg5nrZFO93b2zIArK1Gbh zJXwHHCYJCqArF0WtJ4DWVk BbAmGFv1h1yf0jwTX0 2DqwTkAhgNSq37LbMoGX5rgLn2E

Nota. Per memorizzare i segreti e nasconderli nel codice sorgente o nei file di configurazione, è necessario utilizzare soluzioni come Vault (HashiCorp Vault, conjur, ecc..)

Conclusioni

E con questo è tutto per questa prima parte dedicata all’ambito Dev , nel prossimo articolo ci dedicheremo agli strumenti open-source della parte Ops, in modo da completare la copertura della metodologia DevSecOps nella sua interezza.

Appassionato di tecnologie, mi piace sperimentare
le cose nuove, sempre in ricerca di * interessante.

Fonte: https://www.miamammausalinux.org/2021/04/sicurezza-devops-strumenti-opensource-per-i-devsecops-del-futuro-parte-1/

Visited 6 times, 1 visit(s) today
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.