Model Based Testing and Penetration Testing Mazzi Andrea 25 agosto 2013 Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 1 / 43
1 Model-Based Testing 2 Penetration Testing 3 Web Vulnerability Scanners: WackoPicko 4 Conclusioni 5 Bibliografia Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 2 / 43
Approcci Model Based testing Penetration testing Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 3 / 43
Model-Based Testing Model-Based testing[2] Variante di test che si basa su modelli di comportamento espliciti che codificano il comportamento previsto di un sistema ed, eventualmente, il comportamento del suo ambiente. Obbiettivo Rilevamento dei fallimenti tramite l osservazione delle differenze tra il comportamento dell implementazione e le aspettative delle specifiche Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 4 / 43
Model-Based Testing Modalità di creazione test al di fuori del Model-based testing non-strutturata scarsamente motivata nei dettagli spesso non riproducibile scarsamente documentata legata alle ingenuità dei singoli ingegneri Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 5 / 43
Model-Based Testing Model-based testing: processo generico Costruzione del modello da requisiti o specifiche codifica del comportamento voluto vari livelli di astrazione (trascurate funzionalità come il tempo) Definizione dei criteri di selezione dei test Formalizzazione dei criteri in test case specification Generazione della test suite (set finito di test case) Esecuzione dei test cases (struttura finita di input e output) Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 6 / 43
Model-Based Testing Principali attributi riguardo il model-based testing: 1 Soggetto 2 Livello di ridondanza 3 Paradigmi 4 Caratteristiche 5 Criteri di selezione dei test 6 Test Generation Technology 7 On-line or Off-line Test Generation Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 7 / 43
Model-Based Testing 1 Soggetto del modello: si intende il comportamento del SUT o il possibile comportamento dell ambiente del SUT. L astrazione è un componente cruciale del model-based testing Funzioni Dati Comunicazione Quality-of-Service 2 Livello di ridondanza: il modello può essere applicato in differenti scenari. Il livello di ridondanza è diverso per il testing e per l implementazione Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 8 / 43
Model-Based Testing 3 Paradigmi: prospetti e notazioni descriventi il modello State-based (or Pre/Post) Notations Transition-based Notations History-based Notations Functional Notations Operational Notations Stochastic Notations Data-Flow Notations 4 Caratteristiche del modello: riferite al non determinismo, all incorporazione di problemi di temporizzazione e alla natura continua o discreta del modello Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 9 / 43
Model-Based Testing 5 Criteri di selezione dei test: strutture usate per il controllo della generazione di test Structural Mode Coverage Criteria Data Coverage Criteria Requirements-Based Coverage Criteria Ad-hoc Test Case Specification Random and Stochastic Criteria Fault-based Criteria Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 10 / 43
Model-Based Testing 6 Test Generation Technology: tecnologia utilizzata durante la generazione dei test. Avendo a disposizione le test case specifications è possibile derivare dei test cases tramite: Stocastic Dedicated graph search algorithms(es: Chinese Postman algorithm) Model checking Symbolic execution Deductive theorem proving Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 11 / 43
Model-Based Testing 7 On-line or Off-line Test Generation: concerne la relativa tempistica di generazione ed esecuzione di test case On-Line: gli algoritmi di test generation reagiscono agli attuali outputs del sistema (A volte necessario quando il sistema è non-deterministico) Off-Line: i test cases vengono generati strettamente prima dell esecuzione. Molto difficile se il sistema è non-deterministico. Vantaggi: Uso di tools per gestione ed esecuzione test Esecuzione e generazione test in macchine diverse Divisione del test in parti Se il processo di generazione è più lento dell esecuzione, è utile che la generazione venga fatta una sola volta Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 12 / 43
Penetration Testing Penetration testing [2] Test sulla sicurezza consistente nell attaccare un applicazione tentando di penetrarne le difese sfruttando vulnerabilità, funzionalità mancanti o effetti collaterali del sistema Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 13 / 43
Penetration Testing Ragioni dell esecuzione di un network penetration test Aiuta a capire lo stato della sicurezza identificando difetti Giustifica possibili incrementi nel budget riservato alla sicurezza Soddisfa i requisiti normativi e legislativi Garantisce che le entità collegate alla rete(partner, fornitori, committenti) abbiano una linea standard di base per la sicurezza rilevando i link più deboli Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 14 / 43
Penetration Testing Fattori chiave di buon pen-test Determinazione parametri Selezione di un set test suite adeguato Metodologia: pianificazione, documentazione, controllo esecuzione. Risultati: Necessaria cura nella documentazione ( user-friendly ) Basilare mettere in evidenza le carenze e indicare un percorso di bonifica in base alle pratiche di sicurezza migliori Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 15 / 43
Penetration Testing Principali scenari in cui può essere necessario Creazione di nuove attività La distribuzione di nuove infrastrutture di rete Modifica o aggiornamento vecchie infrastrutture di rete Il lancio di una nuova applicazione Modifica o aggiornamento di un applicazione esistente Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 16 / 43
Penetration Testing Strategie di test External testing strategy Internal testing strategy Blind testing strategy Double-blind testing strategy Targeted testing strategy Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 17 / 43
Penetration Testing Tecniche di penetrazione(1) Passive Research: raccolta di informazioni su un sistema da fonti di pubblico dominio DNS (Domain Name Service) RIPE (Réseaux IP Européens) USENET (newsgroup) ARIN (American Registry for Internet Numbers) Open source monitoring: Ricerche multiple, mirate su parole chiave importanti siti web agenzie di stampa newsgroup Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 18 / 43
Penetration Testing Tecniche di penetrazione(2) Mappatura della rete e OS fingerprinting ping traceroute port-scanning (nmap) POf (Passive OS fingerprinting) Spoofing Network sniffing Trojan attack Brute force attack Vulnerability scanning/analysis Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 19 / 43
Penetration Testing Tipi di penetration-test(1) Denial of Service (DoS) test Si può classificare in 2 attacchi: 1 Exploit software 2 Flooding attacks Resource overload Flood attacks Half open SYN attack Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 20 / 43
Penetration Testing Tipi di penetration-test(2) Out-of-band attacks: Tentativo di mandare in crash gli obiettivi rompendo gli standard di intestazione IP Oversized packets (ping of death) Fragmentation (teardrop attack) IP source address spoofing (land attack) Malformed UDP packet header (UDP bomb) Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 21 / 43
Penetration Testing Standard di penetration-testing ISACA (Standards for Information Systems Auditing-1967) CHECK (CESG IT Health Check) OSSTMM (Open Source Security Testing Methodology Manual) OWASP (The Open Web Application Security Project) Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 22 / 43
Penetration Testing Application security testing Le applicazioni web sono soggette a vulnerabilità di vario tipo e, quindi, possibili obbiettivi di attacchi automatizzati. Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 23 / 43
Penetration Testing Accorgimenti di sicurezza Code review Authorization testing Input validation of login fields (username,password) Cookie security Lockout testing Functionality testing Input validation (es: barra di ricerca) Transaction testing Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 24 / 43
Penetration Testing Possibili falle del sistema poco conosciute War dialing: Consiste nel chiamare sistematicamente una serie di numeri telefonici a per identificare modem dispositivi di accesso remoto connessioni tra computer che possono esistere sulla rete Social engineering: Raccogliere informazioni tramite tecniche di sfruttamento della natura umana (es: il senso di fiducia e il gesto di aiutare) a Il sottovalutare la rete telefonica come possibile punto di accesso, è uno dei principali fattori di crescita di questi attacchi Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 25 / 43
Web Vulnerability Scanners: WackoPicko Black-box Web Vulnerability Scanners I Web Scanners sono un classe di tools utilizzati per l identificazione di problemi di sicurezza nelle applicazioni web. Indipendenti da una specifica tecnologia web Facili da usare Automatizzabili Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 26 / 43
Web Vulnerability Scanners: WackoPicko Svantaggi Non fornita alcuna garanzia di validità Fallimenti nella rilevazione di un significativo numero di vulnerabilità Falsi allarmi Date queste limitazioni, è necessario rilevare le cause di fondo che determinano i fallimenti dei Web Scanners: Gestiscono correttamente il codice JavaScript? Possono rilevare errori radicati nell applicazione? Possono tenere traccia dello stato dell applicazione? Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 27 / 43
Web Vulnerability Scanners: WackoPicko Web Application Scanners design Crawler Attacker Analysis Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 28 / 43
Web Vulnerability Scanners: WackoPicko Problematiche di scanning HTML Parsing Multi-Step Process Infinite Web Site Authentication Client-Side Code Link Extraction Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 29 / 43
Web Vulnerability Scanners: WackoPicko Principali vulnerabilità (in ordine di pericolosità secondo l OWASP) 1 Cross-Site Scripting(XSS) 2 SQL Injection 3 Code Injection 10 Broken Access Controls Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 30 / 43
Web Vulnerability Scanners: WackoPicko WackoPicko [8] Applicazione web costruita ad-hoc, utilizzata per testare web application scanners. Presenta le principali funzionalità delle moderne applicazioni web (JavaScript, HTML forms, Flash code,etc.), nel cui codice sorgente sono stati introdotti i principali bugs delle applicazioni commerciali. Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 31 / 43
Web Vulnerability Scanners: WackoPicko The WackoPicko Web Site design Sito di photo sharing e photo purchasing. Funzionalità: caricare foto cercare foto commentare foto di altri utenti acquistare diritti su foto di alta qualità tramite carrello della spesa Autenticazione: sistema di registrazione utenti Admin Area: l amministratore può cancellare un utente o cambiare tag di una foto Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 32 / 43
Web Vulnerability Scanners: WackoPicko Vulnerabilità precedenti al login Reflected XSS Stored XSS Session ID Weak password Reflected SQL Injection Command Line Injection File Inclusion Unauthorized File Exposure Reflected XSS Behind Javascript Parameter Manipulation Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 33 / 43
Web Vulnerability Scanners: WackoPicko Vulnerabilità successive al login Stored SQL Injection Directory Traversal Multi-Step Stored XSS Forceful Browsing Logic Flaw Reflected XSS Behind Flash Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 34 / 43
Web Vulnerability Scanners: WackoPicko Test svolti sull applicazione WackoPicko La WackoPicko web application è stata eseguita in una LAMP machine con: Apache 2.2.9 MySQL 5.0.67 PHP 5.2.6 allow url fopen allow url include X magic quotes X Essendo eseguito in una macchina virtuale, il WackoPicko server si trova, prima di ogni test, nel medesimo stato Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 35 / 43
Web Vulnerability Scanners: WackoPicko Scanner valutati I Web Scanners sono stati testati sulla WackoPicko con tre differenti settaggi corrispondenti a un sempre maggiore intervento manuale: INITIAL CONFIG MANUAL Name Reflected Stored Reflected Command File File XSS XSS XSS XSS SQL line Inclusion Exposure via via injection injection javascript Flash Acunetix INITIAL INITIAL INITIAL INITIAL INITIAL INITIAL AppScan INITIAL INITIAL INITIAL INITIAL INITIAL Burp INITIAL MANUAL INITIAL INITIAL INITIAL MANUAL Grendel-Scan CONFIG Hailstorm INITIAL CONFIG CONFIG MANUAL Milescan INITIAL MANUAL CONFIG N-Stalker INITIAL MANUAL MANUAL INITIAL INITIAL MANUAL NTOSpider INITIAL INITIAL INITIAL Paros INITIAL INITIAL CONFIG MANUAL w3af INITIAL INITIAL INITIAL MANUAL Webinspect INITIAL INITIAL INITIAL INITIAL INITIAL MANUAL Tabella: Risultati del rilevamento. Ogni cella vuota indica nessun rilevamento in ogni modalità Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 36 / 43
Web Vulnerability Scanners: WackoPicko Figura: Rilevamento delle prestazioni (true positives e false negatives) Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 37 / 43
Web Vulnerability Scanners: WackoPicko Tempo di scanning Parte da un minimo di 74 secondi (Burp), ad un massimo di 6 ore (N-stalker). Molte vulnerabilità non sono state rilevate da nessun web scanner Name Detection INITIAL CONFIG MANUAL Reachability Reachability Reachability XSS Reflected 1 0 0 0 XSS Stored 2 0 0 0 SessionID 4 0 0 0 SQL Injection Reflected 1 0 0 0 Commandline Injection 4 0 0 0 File Inclusion 3 0 0 0 File Exposure 3 0 0 0 XSS Reflected behind 1 3 3 0 JavaScript Parameter Manipulation 8 0 0 0 Weak password 3 0 0 0 SQL Injection Stored Login 7 7 3 3 Directory Traversal Login 8 8 6 4 XSS Stored Login 2 8 7 6 Forceful Browsing Login 8 7 6 3 Logic Flaws - Coupon 9 9 8 6 XSS Reflected behind Flash 1 9 7 1 Tabella: Vulnerabilità rilevate Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 38 / 43
Web Vulnerability Scanners: WackoPicko Name Score Acunetix 14 Webinspect 13 Burp 13 N-Stalker 13 AppScan 10 w3af 9 Paros 6 Hailstorm 6 NTOSpider 4 Milescan 4 Grendel-Scan 3 Tabella: Classifica finale Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 39 / 43
Conclusioni Dopo un attenta valutazione si evince che gli attuali Web scanner non sono in grado di rilevare vulnerabilità specifiche (o logiche ) dell applicazione. Sfortunatamente, più un progetto diventa complesso e più questo tipo di problemi diventeranno rilevanti. Nonostante lo scopo di molte ricerche sia l automatizzazione del rilevamento di vulnerabilità specifiche, si è ancora molto distanti da tool del tipo point-and-click, fruibili da chiunque. Per un corretto ed effettivo utilizzo di questi strumenti, è necessaria una profonda conoscenza, sia dell applicazione sotto test, sia delle limitazioni del software di controllo. Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 40 / 43
Conclusioni Per il testing dei requisiti di sicurezza è d obbligo capire quali sono i rischi da cui il sistema deve essere salvaguardato. Importante conoscere cosa un applicazione dovrebbe fare e cosa non dovrebbe fare. Quest ultimo fattore rientra in un insieme pressochè infinito, che rende impossibile raggiungere un completo test di copertura, ma permette solo un alto grado di sicurezza. Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 41 / 43
Bibliografia 1 D. Scott and R. Sharp, Abstracting application-level web security. in WWW 02: Proceedings of the eleventh international conference on World Wide Web. ACM Press, 2002, pp. 396-407 2 M. Felderer, B. Agreiter, P. Zech, R. Breu, A Classification for Model-Based Security Testing in 11: The Third International Conference on Advances System Testing and Validation Lifecycle 3 SearchNetworking.com, Introduction to penetration testing 2011, http://searchnetworking.techtarget.com/tutorial/networkpenetration-testing-guide 4 SearchNetworking.com, Performing a penetration test 2011, http://searchnetworking.techtarget.com/tutorial/performing-apenetration-test Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 42 / 43
Bibliografia 5 SearchNetworking.com, Penetration testing strategies, 2011, http://searchnetworking.techtarget.com/tutorial/penetration-testingstrategies 6 SearchNetworking.com, Types of penetration tests 2011, http://searchnetworking.techtarget.com/tutorial/types-ofpenetration-tests 7 SearchNetworking.com, Penetration testing methodology and standards 2011, http://searchnetworking.techtarget.com/tutorial/penetration-testingmethodology-and-standards 8 A. Doupè, M. Cova, G. Vigna Why Johnny Can t Pentest: An Analysis of Black-box Web Vulnerability Scanners Mazzi Andrea () Model Based Testing and Penetration Testing 25 agosto 2013 43 / 43