Demystify web application vulnerability assessment
- 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
- 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, …)
- 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