Security testing semi-automatico di applicazioni basate su ...
Transcript of Security testing semi-automatico di applicazioni basate su ...
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Tesi di laurea magistrale in Ingegneria del Software II
Relatori
Ch.mo Prof. Porfirio Tramontana
Ch.ma Prof.ssa Alessandra De Benedictis
Ch.ma Prof.ssa Valentina Casola
Candidato
Giuseppe D’Alterio
matr. M63000880
Security testing semi-automatico di applicazioni basate su containerAnno Accademico 2019 / 2020
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Le recenti metodologie di sviluppo software agile diventano sempre più popolari,
specialmente nel campo delle applicazioni container-based, poiché riducono
drasticamente il time-to-market
La progettazione e la valutazione della sicurezza sono difficilmente integrabili in
tali metodologie, poiché richiedono pratiche che impattano negativamente sulle
timeline di sviluppo
L'obiettivo della tesi è proporre una metodologia, ispirata ai principi di Security
by Design, per facilitare l'assessment di sicurezza di una applicazione nel
contesto dei moderni processi di sviluppo software, con particolare riferimento
alle applicazioni container-based
Contesto e contributo
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
• I principali approcci esistenti per lo sviluppo di applicazioni sicure prevedono,
oltre che un'analisi delle possibili minacce all'inizio del processo di
sviluppo, l'assessment e il testing continuo della sicurezza in tutte le fasi
dello sviluppo, in accordo con i principi della Security-by-Design
• Tali approcci richiedono tipicamente elevate competenze nel campo della
sicurezza e impattano negativamente sulle timeline di sviluppo
➢ Necessità di semplificare ed automatizzare il più possibile le operazioni di
analisi e testing
La sicurezza nei moderni processi di sviluppo software
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
E’ stata estesa una metodologia proposta in alcuni recenti studi*, volta alla
semi-automatizzazione del processo di security testing, ed è stato realizzato
un tool a supporto di tale metodologia, per valutare e monitorare la
sicurezza di un sistema in via di sviluppo
1. Descrizione del System under Test− Mediante un formalismo basato su grafo (MACM)
2. Scansione del SuT e arricchimento del SuT model
3. Preparazione ed esecuzione dei test− sulla base del SuT model e di una base di conoscenza (threat catalogue)
Security testing semi-automatico basato su Security-by-Design
*: Casola, V., De Benedictis, A., Rak, M. and Villano, U. (2020)
A methodology for automated penetration testing of cloud applications
Int. J. Grid and Utility Computing, Vol. 11, No. 2, pp.267–277
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Il modello di sicurezza collega tra loro diversi concetti introdotti dagli standard di
sicurezza
Modello di Sicurezza di riferimento esteso per assessment NIST 800-53
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Il formalismo MACM (Multi-cloud Application Composition Model) descrive i
componenti logici che costituiscono il sistema e le loro relazioni mediante un
grafo
E’ stato esteso con i nodi «Container as a Service» e «Cluster», e l’arco
«manages», per modellare meglio i contesti basati su container
Descrizione del sistema mediante MACM esteso per container
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Progettato e sviluppato uno strumento, integrabile in un workflow di CI/CD, che
implementa la metodologia proposta.
Strumento di testing automatico
L’output è un report di sicurezza che riporta una valutazione, a grana grossa,
della sicurezza del sistema, e propone delle mitigazioni per le rilevazioni ritenute
exploitabili in fase di test.
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Juice Shop è un'applicazione web volutamente vulnerabile: l'utente è invitato a
scoprire le vulnerabilità del sistema e ad escogitare un modo per exploitarle.
L'applicazione, opportunamente dockerizzata, viene utilizzata come caso di
studio per lo strumento proposto.
Caso di studio – Juice Shop 1/4
L'obiettivo è quello di mostrare come lo strumento possa essere un
valido supporto, automatico, per semplificare la gestione della
sicurezza di un sistema in sviluppo.
Come prima cosa si descrive il sistema secondo il formalismo MACM
esteso.
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Una prima esecuzione dello strumento è effettuata automaticamente al verificarsi
del push della versione di Juice Shop v11.1.3, presente sul repository ufficiale.
Caso di studio – Juice Shop 2/4
Estratto report di sicurezza Statistiche e controlli NIST falliti
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Il report consente agli sviluppatori di applicare specifiche mitigazioni, tra quelle
proposte. A valle di un nuovo push e building del sistema, con relativa
generazione di una nuova versione dell'immagine Docker, si esegue nuovamente
il tool.
Caso di studio – Juice Shop 3/4
Estratto report di sicurezza Statistiche e controlli NIST falliti
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Vengono introdotte nuove funzionalità e viene
volutamente reintrodotto l’SQL Injection su di un
endpoint fixato in precedenza. La regressione è
rilevata e segnalata.
Caso di studio – Juice Shop 4/4
Estratto report di sicurezza Storico statistiche Juice Shop
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Con l'intento di mostrare la flessibilità dello strumento, si propone un ulteriore
esempio d’uso.
L’obiettivo è quello di utilizzare lo strumento anche per la valutazione della
sicurezza di sistemi il cui sviluppo è da intendersi come integrazione e
configurazione di componenti già sviluppati.
Caso di studio – Sito web basato su Joomla! 1/2
Modello MACM del sistema
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Il report segnala i componenti vulnerabili, a livello del container, rilevati da
Anchore. Pertanto è possibile procedere con il loro aggiornamento.
Caso di studio – Sito web basato su Joomla! 2/2
Estratto report di sicurezza
Storico statistiche sito web
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
✓ Grazie all'automazione introdotta, un team di sviluppo con limitate security
skills è in grado di valutare e monitorare la sicurezza di un sistema in via di
sviluppo
✓ L'integrazione della metodologia con i moderni processi di sviluppo software è
semplice, lo strumento non necessita di configurazioni poiché sfrutta
strumenti terzi sia per la fase di scansione, sia per la fase di testing in cui i
testing tools sono orchestrati automaticamente
✓ Il mapping tra le weakness ed i controlli del NIST 800-53 si mostra di
notevole aiuto in contesti di security assessment: è possibile tenere traccia di
quali controlli vengono meno e quali sono le weakness correlate. La
contromisura proposta (MITRE CWE) suggerisce delle strategie per mitigarle.
✓ Lo storico generale produce delle ulteriori metriche che possono essere
prese in considerazione in contesti valutativi
Conclusioni
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
❑ Per la fase di testing si potrebbe progettare una logica più robusta di
generazione dinamica degli attacchi, dipendente dall'architettura del
sistema, oltre che definire logiche di prioritizzazione dei test
❑ Nell'ottica di integrazione della metodologia in un processo di security
assessment, si potrebbe prevedere un sondaggio iniziale per richiedere quali
controlli NIST 800-53 si vuole soddisfare. Così facendo, lo strumento potrebbe
stabilire se esistono motivazioni note tali per cui uno o più controlli richiesti
non risulterebbero rispettati
❑ Estensione al modello di sicurezza per supportare molteplici standard di
sicurezza e non solo il NIST Control Framework SP-800-53, o in altri ambiti
applicativi
Sviluppi futuri
Security testing semi-automatico di applicazioni basate su container
Scuola Politecnica e delle Scienze di Base
Corso di Laurea Magistrale in Ingegneria Informatica
Grazie per l’attenzione
Candidato
Giuseppe D’Alterio
matr. M63000880
Relatori
Ch.mo Prof. Porfirio Tramontana
Ch.ma Prof.ssa Alessandra De Benedictis
Ch.ma Prof.ssa Valentina Casola