SlideShare a Scribd company logo
1ISACA VENICE Chapter
VII Venice AppSec
Venezia, Università Ca’ Foscari
3 Ottobre 2019
23/10/2019 ISACA VENICE Chapter
Demystify web application
vulnerability assessment
Antonio Parata
33/10/2019 ISACA VENICE Chapter
Agenda
1. Attività di security testing
2. Automatizzare un web vulnerability
assessment
3. Casi d’uso
43/10/2019 ISACA VENICE Chapter
Who am I
▪ Ingegnere Informatico
▪ OWASP Italy board dal 2006
▪ Senior Security Researcher per
CrowdStrike
▪ Phrack Author
▪ Passionate Developer
▪ https://github.com/enkomio
53/10/2019 ISACA VENICE Chapter
Who am I
Taipan - Web Vulnerability Scanner
https://taipansec.com
63/10/2019 ISACA VENICE Chapter
Agenda
1. Attività di security testing
2. Automatizzare un web vulnerability
assessment
3. Casi d’uso
7ISACA VENICE Chapter3/10/2019
Definizioni
Spesso si fa confusione tra le varie attività di security assessment.
Tutte hanno lo scopo di portare alla luce delle vulnerabilità nel
sistema ma a livelli diversi.
▪ Vulnerability Assessment
Hanno uno scope molto ampio e non vanno in profondità
Utile per identificare e ridurre la superficie di attacco
▪ Penetration Testing
Scope limitato ma molto dettagliato e incentrato sulla tecnologia
Utile per valutare la sicurezza di un sistema dal punto di vista di un attaccante
esterno
▪ Red Teaming
Scope basato su uno specifico scenario
Penetration Test più qualsiasi altro attacco che sia legale e autorizzato
(phishing, physical security, …)
8ISACA VENICE Chapter3/10/2019
Definizioni
Scope
Dettaglio
Vulnerability Assessment
Penetration Test
Red
Teaming
Vulnerability
Assessment
Penetration Test
Red Teaming
Esecuzione Attività
9ISACA VENICE Chapter3/10/2019
▪ Per capire l'utilità di un security testing automatizzato,
facciamo un passo indietro e parliamo di testing:
“Software testing involves the execution of a software component or system component to
evaluate one or more properties of interest...Test techniques include the process of
executing a program or application with the intent of finding software bugs (errors or other
defects), and verifying that the software product is fit for use” (Wikipedia)
▪ Tipologie di Testing
Unit Testing
❖ Identifica errori a livello do singola unità
funzionale (eg. funzioni,...)
Integration Testing
❖ Identifica errori di interazione tra
diversi moduli o componenti
End to End Testing
❖ Identifica errori nel sistema come
concetto globale. Tipicamente condotto
attraverso l’interazione con la UI
Security testing
❖ Identifica problematiche di sicurezza
Testing Vs Security Testing
Security
Testing
Testing
10ISACA VENICE Chapter3/10/2019
▪ Spesso tra le prime attività eseguite per chi vuole valutare la
sicurezza di un applicativo web
▪ Fa uso di tool Web Vulnerability Scanner
Tipicamente l’output viene analizzato da un analista per
eliminare Falsi Positivi
▪ Attività automatizzabile (con un po di
accortezze)
Inserimento nella pipeline di build
Continuous Vulnerability Scanning
Web Vulnerability Assessment
[1] Fonte Gary McGraw
[1]
11ISACA VENICE Chapter3/10/2019
OWASP Top 10 2017
▪ Fornisce una lista di quelle che sono
le vulnerabilità che maggiormente
impattano la sicurezza di
un’applicazione Web
▪ Spesso le aziende richiedono
un'attività di assessment che sia
“compliant” alla OWASP Top 10
▪ E’ possibile automatizzare i test
per l’identificazione di queste
vulnerabilità?
1. Si
2. No
3. Solo alcuni
123/10/2019 ISACA VENICE Chapter
Agenda
1. Attività di security testing
2. Automatizzare un web vulnerability
assessment
3. Casi d’uso
13ISACA VENICE Chapter3/10/2019
E’ possibile automatizzare il processo di testing?
▪ Unit Testing
Automatizzabile tramite testing framework (xUnit, jUnit,
nUnit, FsUnit, …)
▪ Integration Testing
Automatizzabile tramite testing framework (xUnit, jUnit,
nUnit,DbUnit, In Memory Database, custom tool, …)
▪ End to End Testing (BDD Testing)
Automatizzabile tramite testing framework (SpecFlow,
Cucumber, Selenium, …)
▪ Security testing
???
Testing Automation
14ISACA VENICE Chapter3/10/2019
▪ Testing at its core
Invio di dati appositamente creati per sollecitare una
particolare feature
Esecuzione da parte del sistema sotto test (SUT) dei dati
ricevuti
Invio della risposta all’oracolo
Test passato o no in base alla definizione di un’euristica
Testing Automation
15ISACA VENICE Chapter3/10/2019
▪ Gli aspetti fondamentali del Testing sono:
Copertura (in caso di security testing, si parla di
identificazione di tutti gli entry points)
Qualità dei dati inviati
Bontà dell’euristica nell’identificare problemi
▪ Dal 2001 (anno in cui OWASP e’ stata creata) ad oggi, una
enorme mole di documenti relativi al testing e’ stata prodotta.
Buona parte di esse con focus sull’identificazione di
vulnerabilità
(Qualità dati && Euristica)++
Testing Automation
TAIPAN
16ISACA VENICE Chapter3/10/2019
▪ Possiamo quindi sostituire il tester con uno strumento
automatico?
Ovviamente no, dal 2001 la tecnologia Web e’ esplosa,
producendo framework e tecnologie sempre più’
complesse da analizzare
❖ Cloud computing
❖ SPA (Single Page Application)
❖ Microservices
❖ Serverless applications
❖ ...
Testing Automation
TAIPAN
17ISACA VENICE Chapter3/10/2019
▪ Ma possiamo affiancare vulnerability scanner e security tester
Migliore definizione dello scope
Configurazione ottimale a seconda delle esigenze
Eliminazione Falsi Positivi
Forte scalabilità grazie all’automatismo
Testing Automation
TAIPAN
18ISACA VENICE Chapter3/10/2019
▪ Possiamo automatizzare il testing della OWASP Top 10?
Per la maggior parte di esse la risposta e’ SI!
▪ Purtroppo, alcune vulnerabilità non possono essere testate se
non con una profonda conoscenza dell’applicazione
(white-box)
Hardcoded password
Poor logging
OWASP TOP 10 Automation
193/10/2019 ISACA VENICE Chapter
Agenda
1. Attività di security testing
2. Automatizzare un web vvulnerability
assessment
3. Casi d’uso
20ISACA VENICE Chapter3/10/2019
▪ Fino ad adesso abbiamo visto con che modalità un Web
Vulnerability Scanner può aiutarci a mettere in sicurezza la
nostra applicazione.
▪ Vediamo di applicare questi concetti a dei possibili scenari
1. Applicazione in fase di sviluppo avanzato
2. Applicazione in stage e pronta per essere rilasciata
3. Applicazione in esercizio
Possibili scenari
1 32
21ISACA VENICE Chapter3/10/2019
▪ Scenario
Applicazione in stato di sviluppo avanzato
Esiste un ambiente di test
▪ Attori coinvolti
Sviluppatori
Security tester interni (a volte coincidono con gli
sviluppatori)
▪ Integrazione security testing
Affiancare ai test di integrazione i test di sicurezza
Se viene utilizzato un CI (Continuous Integration)
system, far avviare i security test automaticamente
Obiettivo
▪ Identificare quanto prima eventuali errori di
implementazione
Vulnerability Scanning in Verification
Automazione++
1
22ISACA VENICE Chapter3/10/2019
▪ Strumento: Taipan Community Edition
https://github.com/enkomio/Taipan/releases
Configurare il profilo Isaca2019.xml
mono Taipan.exe -p "Isaca2019" http://my-website.loca/featureA
Vulnerability Scanning in Verification1
23ISACA VENICE Chapter3/10/2019
▪ Scenario
Applicazione pronta per essere rilasciata
Esiste un ambiente di test
▪ Attori coinvolti
Security tester esterni al progetto o all’azienda
▪ Come step di un Penetration Test
Permette al tester di avere una visione iniziale della
superficie di attacco
Identifica i Low Hanging Fruit
Obiettivo
▪ Assicurarsi che il livello di sicurezza dell’applicazione sia
adeguato alle aspettative (Final Security Review)
Vulnerability Scanning in Release
Automazione
2
24ISACA VENICE Chapter3/10/2019
▪ Strumento: Taipan Community Consultant/Pro edition
https://taipansec.com
O linea di comando per gli aficionados del terminale:
mono Taipan.exe -p "Full Scan" http://my-website.loca/featureA
Vulnerability Scanning in Release2
25ISACA VENICE Chapter3/10/2019
Vulnerability Scanning in Response
Automazione++
▪ Scenario
Applicazione in esercizio
Non sempre esiste un ambiente di test
▪ Attori coinvolti
Security tester esterni al progetto o all’azienda
▪ Come step di un Vulnerability Assessment o di Penetration
Test (in caso di nuove features)
Permette al tester di avere una visione iniziale della
superficie di attacco
Identifica i Low Hanging Fruit
Obiettivo
▪ Assicurarsi che i framework utilizzati non contengono nuove
vulnerabilità
▪ Che le nuove feature implementate rispettino il livello di
sicurezza desiderato
3
26ISACA VENICE Chapter3/10/2019
Vulnerability Scanning in Response3
▪ Strumento: Taipan Community Consultant/Pro edition
https://taipansec.com
Configurazione di un profilo desiderato
mono Taipan.exe -p “Esercizio” http://my-website.local/
27ISACA VENICE Chapter3/10/2019
▪ Visibilità
Attraverso una scansione programmata e’ possibile
identificare eventuali modifiche o introduzioni di nuove
vulnerabilità
▪ Metriche
Forniscono una giustificazione al budget investito in
sicurezza
❖ Numero di vulnerabilità identificate
❖ Numero di vulnerabilità rimediate (non sempre
coincide con il parametro sopra)
❖ Tempo medio per risolvere una vulnerabilità
❖ Root-cause analysis (permette di migliorare nella
scrittura di applicazioni)
❖ Andamento della sicurezza dell’applicazione a fronte
di scansioni cadenzate
Vulnerability Management
28ISACA VENICE Chapter3/10/2019
▪ Uno strumento da solo non risolve il problema
della sicurezza della vostra applicazione
▪ Ma unito al fattore umano permette di ottenere un
effetto sinergico
Conclusioni
29ISACA VENICE Chapter3/10/2019
aparata[AT]gmail.com
https://twitter.com/s4tan
30

More Related Content

Demystify web application vulnerability assessment

  • 1. 1ISACA VENICE Chapter VII Venice AppSec Venezia, Università Ca’ Foscari 3 Ottobre 2019
  • 2. 23/10/2019 ISACA VENICE Chapter Demystify web application vulnerability assessment Antonio Parata
  • 3. 33/10/2019 ISACA VENICE Chapter Agenda 1. Attività di security testing 2. Automatizzare un web vulnerability assessment 3. Casi d’uso
  • 4. 43/10/2019 ISACA VENICE Chapter Who am I ▪ Ingegnere Informatico ▪ OWASP Italy board dal 2006 ▪ Senior Security Researcher per CrowdStrike ▪ Phrack Author ▪ Passionate Developer ▪ https://github.com/enkomio
  • 5. 53/10/2019 ISACA VENICE Chapter Who am I Taipan - Web Vulnerability Scanner https://taipansec.com
  • 6. 63/10/2019 ISACA VENICE Chapter Agenda 1. Attività di security testing 2. Automatizzare un web vulnerability assessment 3. Casi d’uso
  • 7. 7ISACA VENICE Chapter3/10/2019 Definizioni Spesso si fa confusione tra le varie attività di security assessment. Tutte hanno lo scopo di portare alla luce delle vulnerabilità nel sistema ma a livelli diversi. ▪ Vulnerability Assessment Hanno uno scope molto ampio e non vanno in profondità Utile per identificare e ridurre la superficie di attacco ▪ Penetration Testing Scope limitato ma molto dettagliato e incentrato sulla tecnologia Utile per valutare la sicurezza di un sistema dal punto di vista di un attaccante esterno ▪ Red Teaming Scope basato su uno specifico scenario Penetration Test più qualsiasi altro attacco che sia legale e autorizzato (phishing, physical security, …)
  • 8. 8ISACA VENICE Chapter3/10/2019 Definizioni Scope Dettaglio Vulnerability Assessment Penetration Test Red Teaming Vulnerability Assessment Penetration Test Red Teaming Esecuzione Attività
  • 9. 9ISACA VENICE Chapter3/10/2019 ▪ Per capire l'utilità di un security testing automatizzato, facciamo un passo indietro e parliamo di testing: “Software testing involves the execution of a software component or system component to evaluate one or more properties of interest...Test techniques include the process of executing a program or application with the intent of finding software bugs (errors or other defects), and verifying that the software product is fit for use” (Wikipedia) ▪ Tipologie di Testing Unit Testing ❖ Identifica errori a livello do singola unità funzionale (eg. funzioni,...) Integration Testing ❖ Identifica errori di interazione tra diversi moduli o componenti End to End Testing ❖ Identifica errori nel sistema come concetto globale. Tipicamente condotto attraverso l’interazione con la UI Security testing ❖ Identifica problematiche di sicurezza Testing Vs Security Testing Security Testing Testing
  • 10. 10ISACA VENICE Chapter3/10/2019 ▪ Spesso tra le prime attività eseguite per chi vuole valutare la sicurezza di un applicativo web ▪ Fa uso di tool Web Vulnerability Scanner Tipicamente l’output viene analizzato da un analista per eliminare Falsi Positivi ▪ Attività automatizzabile (con un po di accortezze) Inserimento nella pipeline di build Continuous Vulnerability Scanning Web Vulnerability Assessment [1] Fonte Gary McGraw [1]
  • 11. 11ISACA VENICE Chapter3/10/2019 OWASP Top 10 2017 ▪ Fornisce una lista di quelle che sono le vulnerabilità che maggiormente impattano la sicurezza di un’applicazione Web ▪ Spesso le aziende richiedono un'attività di assessment che sia “compliant” alla OWASP Top 10 ▪ E’ possibile automatizzare i test per l’identificazione di queste vulnerabilità? 1. Si 2. No 3. Solo alcuni
  • 12. 123/10/2019 ISACA VENICE Chapter Agenda 1. Attività di security testing 2. Automatizzare un web vulnerability assessment 3. Casi d’uso
  • 13. 13ISACA VENICE Chapter3/10/2019 E’ possibile automatizzare il processo di testing? ▪ Unit Testing Automatizzabile tramite testing framework (xUnit, jUnit, nUnit, FsUnit, …) ▪ Integration Testing Automatizzabile tramite testing framework (xUnit, jUnit, nUnit,DbUnit, In Memory Database, custom tool, …) ▪ End to End Testing (BDD Testing) Automatizzabile tramite testing framework (SpecFlow, Cucumber, Selenium, …) ▪ Security testing ??? Testing Automation
  • 14. 14ISACA VENICE Chapter3/10/2019 ▪ Testing at its core Invio di dati appositamente creati per sollecitare una particolare feature Esecuzione da parte del sistema sotto test (SUT) dei dati ricevuti Invio della risposta all’oracolo Test passato o no in base alla definizione di un’euristica Testing Automation
  • 15. 15ISACA VENICE Chapter3/10/2019 ▪ Gli aspetti fondamentali del Testing sono: Copertura (in caso di security testing, si parla di identificazione di tutti gli entry points) Qualità dei dati inviati Bontà dell’euristica nell’identificare problemi ▪ Dal 2001 (anno in cui OWASP e’ stata creata) ad oggi, una enorme mole di documenti relativi al testing e’ stata prodotta. Buona parte di esse con focus sull’identificazione di vulnerabilità (Qualità dati && Euristica)++ Testing Automation TAIPAN
  • 16. 16ISACA VENICE Chapter3/10/2019 ▪ Possiamo quindi sostituire il tester con uno strumento automatico? Ovviamente no, dal 2001 la tecnologia Web e’ esplosa, producendo framework e tecnologie sempre più’ complesse da analizzare ❖ Cloud computing ❖ SPA (Single Page Application) ❖ Microservices ❖ Serverless applications ❖ ... Testing Automation TAIPAN
  • 17. 17ISACA VENICE Chapter3/10/2019 ▪ Ma possiamo affiancare vulnerability scanner e security tester Migliore definizione dello scope Configurazione ottimale a seconda delle esigenze Eliminazione Falsi Positivi Forte scalabilità grazie all’automatismo Testing Automation TAIPAN
  • 18. 18ISACA VENICE Chapter3/10/2019 ▪ Possiamo automatizzare il testing della OWASP Top 10? Per la maggior parte di esse la risposta e’ SI! ▪ Purtroppo, alcune vulnerabilità non possono essere testate se non con una profonda conoscenza dell’applicazione (white-box) Hardcoded password Poor logging OWASP TOP 10 Automation
  • 19. 193/10/2019 ISACA VENICE Chapter Agenda 1. Attività di security testing 2. Automatizzare un web vvulnerability assessment 3. Casi d’uso
  • 20. 20ISACA VENICE Chapter3/10/2019 ▪ Fino ad adesso abbiamo visto con che modalità un Web Vulnerability Scanner può aiutarci a mettere in sicurezza la nostra applicazione. ▪ Vediamo di applicare questi concetti a dei possibili scenari 1. Applicazione in fase di sviluppo avanzato 2. Applicazione in stage e pronta per essere rilasciata 3. Applicazione in esercizio Possibili scenari 1 32
  • 21. 21ISACA VENICE Chapter3/10/2019 ▪ Scenario Applicazione in stato di sviluppo avanzato Esiste un ambiente di test ▪ Attori coinvolti Sviluppatori Security tester interni (a volte coincidono con gli sviluppatori) ▪ Integrazione security testing Affiancare ai test di integrazione i test di sicurezza Se viene utilizzato un CI (Continuous Integration) system, far avviare i security test automaticamente Obiettivo ▪ Identificare quanto prima eventuali errori di implementazione Vulnerability Scanning in Verification Automazione++ 1
  • 22. 22ISACA VENICE Chapter3/10/2019 ▪ Strumento: Taipan Community Edition https://github.com/enkomio/Taipan/releases Configurare il profilo Isaca2019.xml mono Taipan.exe -p "Isaca2019" http://my-website.loca/featureA Vulnerability Scanning in Verification1
  • 23. 23ISACA VENICE Chapter3/10/2019 ▪ Scenario Applicazione pronta per essere rilasciata Esiste un ambiente di test ▪ Attori coinvolti Security tester esterni al progetto o all’azienda ▪ Come step di un Penetration Test Permette al tester di avere una visione iniziale della superficie di attacco Identifica i Low Hanging Fruit Obiettivo ▪ Assicurarsi che il livello di sicurezza dell’applicazione sia adeguato alle aspettative (Final Security Review) Vulnerability Scanning in Release Automazione 2
  • 24. 24ISACA VENICE Chapter3/10/2019 ▪ Strumento: Taipan Community Consultant/Pro edition https://taipansec.com O linea di comando per gli aficionados del terminale: mono Taipan.exe -p "Full Scan" http://my-website.loca/featureA Vulnerability Scanning in Release2
  • 25. 25ISACA VENICE Chapter3/10/2019 Vulnerability Scanning in Response Automazione++ ▪ Scenario Applicazione in esercizio Non sempre esiste un ambiente di test ▪ Attori coinvolti Security tester esterni al progetto o all’azienda ▪ Come step di un Vulnerability Assessment o di Penetration Test (in caso di nuove features) Permette al tester di avere una visione iniziale della superficie di attacco Identifica i Low Hanging Fruit Obiettivo ▪ Assicurarsi che i framework utilizzati non contengono nuove vulnerabilità ▪ Che le nuove feature implementate rispettino il livello di sicurezza desiderato 3
  • 26. 26ISACA VENICE Chapter3/10/2019 Vulnerability Scanning in Response3 ▪ Strumento: Taipan Community Consultant/Pro edition https://taipansec.com Configurazione di un profilo desiderato mono Taipan.exe -p “Esercizio” http://my-website.local/
  • 27. 27ISACA VENICE Chapter3/10/2019 ▪ Visibilità Attraverso una scansione programmata e’ possibile identificare eventuali modifiche o introduzioni di nuove vulnerabilità ▪ Metriche Forniscono una giustificazione al budget investito in sicurezza ❖ Numero di vulnerabilità identificate ❖ Numero di vulnerabilità rimediate (non sempre coincide con il parametro sopra) ❖ Tempo medio per risolvere una vulnerabilità ❖ Root-cause analysis (permette di migliorare nella scrittura di applicazioni) ❖ Andamento della sicurezza dell’applicazione a fronte di scansioni cadenzate Vulnerability Management
  • 28. 28ISACA VENICE Chapter3/10/2019 ▪ Uno strumento da solo non risolve il problema della sicurezza della vostra applicazione ▪ Ma unito al fattore umano permette di ottenere un effetto sinergico Conclusioni
  • 30. 30