Upload
rodolfo-tedesco
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
A. Dal Pos - R. Marcon
Bridging the Gap Between Web Application Firewalls
and Web Applications
Seminario AVP 2007docente A. Cortesi
A. Dal Pos - R. Marcon
Cosa vedremo
In teoria: Introduzione Background Problematiche Soluzione
In pratica: Soluzione proposta Implementazione prototipo Risultati e limiti Conclusioni
A. Dal Pos - R. Marcon
Introduzione (1)
Sempre maggiore diffusione di web application (e-commerce) ricche di bug.
Introduzione dei Web Application Firewall. Problema: Loose Coupling tra la
configurazione del WAF e l’implementazione dell’applicazione.
A. Dal Pos - R. Marcon
Introduzione (2)
Obiettivo: garantire l’assenza di alcuni tipi di comportamenti erronei tramite: Combinazione di verifica statica e dinamica Arricchimento della semantica dei contratti
Come: costruzione di un prototipo che assicuri che nessuna interazione c/s porti a interazioni non volute con repository.
A. Dal Pos - R. Marcon
Background
A. Dal Pos - R. Marcon
Background – Web Application
Applicazioni server-side invocate da un thin client attraverso il protocollo http.
Navigazione tramite link o URL, form. HTTP è un protocollo request/reply stateless,
a livello applicazione. Sessione utente: cookies, URL rewriting,
hidden field form.
A. Dal Pos - R. Marcon
Background – Servlet
Servlet: forniscono meccanismi per estendere le funzionalità di un web server.
Container: gestisce le richieste e le processa tramite le servlet.
Filtri: utilizzati per processare le informazioni contenute nelle richieste/risposte.
A. Dal Pos - R. Marcon
Background – Firewall & WAF
Firewall : Agisce a livello transport e network. Consente/nega l’accesso a risorse protette. Controlla a cosa si vuole accedere, ma non cosa si
vuole fare.
A. Dal Pos - R. Marcon
Background – Firewall & WAF
Web Application Firewall: Agiscono a livello applicazione Controllo degli accessi in tempo reale analizzando
URL richiesti, credenziali, parametri in input e la history di sessione dell’utente.
A. Dal Pos - R. Marcon
WAF: Modelli di sicurezza
Negative Security Model Positive Security Model
Concept The WAF knows what traffic is an attack, and allows any other traffic to go through
The WAF learns what traffic profile is legitimate, and blocks anything else
Advantages
No need for customization
Protection out-of-the-box
Simple, straight-forward
Accurate detection
Unknown attacks
Not dependant on updates
Disadvantages Highly dependant on updates
Not very accurate
Need for learning process
More prone to false positives
A. Dal Pos - R. Marcon
Il “nostro” WAF - Modello
Basato su
Modello di sicurezza positivo
Implementa loStrict Request Flow Enforcement:
monitorizza le singole sessioni utenti e tiene traccia dei link già seguiti e che possono essere seguiti.
A. Dal Pos - R. Marcon
Il “nostro” WAF - Attacchi
Broken Access Controlscavalcando il controllo degli accessi è possibile accedere ad account di altri utenti,
visualizzare file sensibili ed utilizzare funzionalità non autorizzate.
Insecure ID, Path Traversal, Forceful Browsing, Client Side Caching.
Accedere direttamente a pagine web (URL), scavalcando il normale flusso logico dell’applicazione, a cui non si potrebbe avere accesso. Può portare ad accesso non autorizzato a risorse o comportamenti
non previsti dell’applicazione.
A. Dal Pos - R. Marcon
Problematiche:
A causa della configurazione euristica del WAF
si ha un accoppiamento lasco tra la sua configurazione
e l’implementazione dell’applicazione.
Non da garanzie verso alcuni tipi di bug implementativi.
Prototipo per garantire la
protezione attraverso verifica statica, dinamica e contratti.
A. Dal Pos - R. Marcon
Duke’s BookShop (1)
Type Interaction String Identifier
Conditional Defensive
A. Dal Pos - R. Marcon
Duke’s BookShop (2)
Le interazioni con il repository della sessione condivisa impongono delle restrizioni sul protocollo di interazione c/s.
Inizio sessione da un path diverso da /bookstoreOrderFilter chiamato prima che i valori di cart e currency siano
memorizzati nello shared repository.
NullPointerException: Comportamento non previsto dell’applicazione
Perdita di informazioni dovuta a una scorretta gestione degli erroriPerdita dell’integrità dei dati, dovuta al salvataggio di stringhe nulle nel DB
Non esecuzione del codice di clean-up
A. Dal Pos - R. Marcon
Precondizioni (1)
ESC/Java2 tool di analisi statica, supporta il design by
contract, utilizza il Theorem Proving
Dal codice sorgente + JML genera un set di predicati da verificare
Predicati + modello logico elaborati per verificare l’assenza di errori
I bug vengono segnalati all’utente
A. Dal Pos - R. Marcon
Precondizioni (2)
JML linguaggio di specifica di programmi java. Utilizza
pre e post-condizioni ed invarianti
Sintassi: //@ <JML specification> oppure /*@ <JML specification> @*/
Keyword:• Requires: definisce una precondizione sul metodo che segue
• Ensures: definisce una postcondizione sul metodo che segue
• Also: dichiara che il metodo eredita le condizioni dal supertipo
A. Dal Pos - R. Marcon
Soluzione proposta
A. Dal Pos - R. Marcon
Verifiche statiche e dinamiche
La verifica statica assicura che il protocollo client/server soddisfi le condizioni sul repository.
Le interazioni con il repository vengono specificate nel componente attraverso un contratto, per poi essere validate.
Le politiche sono utilizzate a runtime per garantire che solo le richieste web che rispettano il WAF, possano essere processate
Verifiche statiche e dinamiche per garantire che l’interazione c/s non porti alla violazione di alcune proprietà
A. Dal Pos - R. Marcon
Specifica della verifica server side
Ogni componente viene estesa da uno specifico contratto.
A. Dal Pos - R. Marcon
Verifica del protocollo applicazione
Espressione regolare EBNF
Specifica di un automa
Specifica della politica di rinforzo del WAF
A. Dal Pos - R. Marcon
Implementazione a runtime
Per rendere operativo il protocollo di client/server
verificato, esso viene caricato (“installato”) nel WAF
A. Dal Pos - R. Marcon
Implementazione prototipo
A. Dal Pos - R. Marcon
Specifica e verifica server side
Specifichiamo per ogni metodo sottoposto a verifica, le interazioni permesse, utilizzando un contratto
Vogliamo implementare le assunzioni proposte al fine di creare un prototipo, basato su DukesBook
A. Dal Pos - R. Marcon
Verifica protocollo con check
Per verificare staticamente che ogni interazione client/server non violi le proprietà desiderate, viene generato un check a partire dalla specifica del protocollo
La verifica del protocollo è ridotta alla verifica statica del metodo check con ESC
A. Dal Pos - R. Marcon
Verifica protocollo/1
A. Dal Pos - R. Marcon
Implementazione a runtime
Violazione protocollo
Blocco IP Invalidamento sessione
Caricamento specifiche nella web-app
A. Dal Pos - R. Marcon
Risultati
A. Dal Pos - R. Marcon
Overhead staticoQuantificato in base alle codeline
aggiunte. Nel prototipo al più 4 per le interazioni con il repository.
Overhead a runtimeApplicazione eseguita con e senza filtro, 1000 visitatori con max
overhead di 1,3%
PerformanceVerifica del protocollo in 11 sec.
A. Dal Pos - R. Marcon
Limiti
Processo sequenziale
Aspetti di contorno
Assumiamo che le richieste in una sessione web vengano processate sequenzialmente
Invece di lasciare ad ESC/Java2 il compito di verificare tutte le clausole modifies, limitiamo la verifica alle sole clausole realmente modificate
Scopo: ridurre la complessità
A. Dal Pos - R. Marcon
Limiti - Aspetti di contorno
A. Dal Pos - R. Marcon
Conclusioni
Soluzione accettabile in relazione alle performance del prototipo
Il WAF garantisce attraverso una combinazione di verifichestatiche e dinamiche, l’assenza di certi tipi di
errore nelle applicazioni
La verifica proposta è limitata ad un certo tipo di errori, è possibileestendere ragionevolmente la soluzione
anche ad altri tipi di attacchi?
A. Dal Pos - R. Marcon
Bibliografia
[1] OWASP Web Application Security Top Ten List http://www.clusit.it/whitepapers/OWASPTopTen2004-ITA.pdf
[2] Web Application Firewall – Owasphttp://www.owasp.org/index.php/Web_Application_Firewall
[3] WAF Evaluation Criteria http://www.webappsec.org/projects/wafec/
[4] The Ten Most Common Application-Level Hacker Attackshttp://whitepapers.techrepublic.com.com/whitepaper.aspx?docid=31824
[5] WAFEC, or how to choose WAF technology http://www.webappsec.org/projects/wafec/WAFEC-by-Rafael_San_Miguel_Carrasco.ppt
[6] Why Firewalls Fail To Protect Web Sites http://www.lockstep.com/webagain/why-firewalls-fail.pdf
[7] The Essentials of Filters, SUN, http://java.sun.com/products/servlet/Filters.html
[8] BNF and EBNF, Lars Marius Garshol, 2003, http://www.garshol.priv.no/download/text/bnf.html