Security testing semi-automatico di applicazioni basate su ...

16
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 container Anno Accademico 2019 / 2020

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