Aspetti di sicurezza per l`innovazione nel Web

Transcript

Aspetti di sicurezza per l`innovazione nel Web
Security Summit 2010
Aspetti di sicurezza per l’innovazione nel Web
Attacchi tipo Drive-by Downloads e x-Morphic
Simone Riccetti
IBM Security Services – Sr. IT Security Architect
© 2010 IBM Corporation
Security Summit 2010
Agenda
Web 2.0: Evoluzione delle minacce
Attacchi tipo drive-by download
Tecnica x-Morphic
Tecnologie di protezione
© 2010 IBM Corporation
Security Summit 2010
L’evoluzione del “mercato” underground
© 2010 IBM Corporation
Security Summit 2010
Malicious Web Links aumentati del 345%
Dal primo half del 2009, Professional “bad” Web
sites tipo pornografia, gambling, o drugs Web
sites hanno incrementato il contenuto di malware
Anche Blogs e bulletin boards hanno incrementato
il numero di malware link
© 2010 IBM Corporation
Security Summit 2010
Commercial Web defacement tools
5
© 2010 IBM Corporation
Security Summit 2010
Social Engineering per la distribuzione del
Malware
I Social networks reppresentano un ottimo
vettore per distribuire il malware
• Koobface Worm in Facebook e Myspace e
altri social network.
• Jahlav Trojan utilizzato in Twitter per
infettare gli utenti Mac.
© 2010 IBM Corporation
Security Summit 2010
Attacchi tipo drive-by download
© 2010 IBM Corporation
Security Summit 2010
Processo Drive-by Download (1/2)
E’ uno dei metodi in crescita per inserire codice malware nei
sistemi degli utenti
Avviene tipicamente durante la navigazione web
Si sfruttano le vulnerabilità del browser o dei suoi
componenti
Spesso si utilizzano tecniche di Social Engineering
8
© 2010 IBM Corporation
Security Summit 2010
Processo Drive-by-download (2/2)
Il browser carica
il link verso il
malicious site
Shellcode progettato per
scaricare il package
La pagina include lo
shellcode che viene
scaricato dal browser
Il package viene
scaricato in modo
“stealth”
Il malware package
viene installato
Host
compromesso
9
© 2010 IBM Corporation
Security Summit 2010
Tecnica x-Morphic
© 2010 IBM Corporation
Security Summit 2010
Tecniche di malware morphing
Olimorfismo
E’ la forma più semplice, dove l’autore del malware genera diversi
decryption codes per decifrare il “body” del malware
Polimorfismo
E’ un’evoluzione della tecnica di olimorfismo. Il malware Polimorfico
può mutare i decryptor inserendo del “rumore”. Il risultato è un
incremento notevole di decryptor codes.
Metamorfismo
Fa si che anche il malware body muti. Questo può essere fatto
sfruttando la presenza di compilatori sui sistemi attaccati e
ricompilando, mediante il methamorfic engine, il codice originale con
l’aggiunta di “junk code”.
11
© 2010 IBM Corporation
Security Summit 2010
Tecniche tipo x-morphic
Applicazione dei principi oligomorfico, polimorfico e metamorfico
Il codice malware viene offuscato in modo diverso per ogni utente che carica
la pagina web
Si sfruttano diversi layer di offuscamento:
– Livello di rete (es. tecniche di frammentazione ridondante)
– Livello content delivery layer (es. base 64 encoding)
– Application content layer (es. JavaScript)
Lo scopo della tecnica x-morphic è di:
– Eludere i sistemi di protezione basati su signature
– Eludere i sistemi di protezione di rete
– Proteggere il codice di exploit
E’ realizzato da due componenti:
– X-Morphic Engine: genera, modifica e distribuisce il codice malware in
funzione di diversi parametri (es. tipo e vulnerabilità del browser, IP etc.)
– Obfuscator: serve a nascondere il codice in uno o più livelli di
offuscamento, personalizzando il malware per la specifica macchina
vittima.
© 2010 IBM Corporation
Security Summit 2010
X-Morphic Engine
© 2010 IBM Corporation
Security Summit 2010
Obfuscation: Application Layer (1)
© 2010 IBM Corporation
Security Summit 2010
Obfuscation: Application Layer (2)
© 2010 IBM Corporation
Security Summit 2010
Obfuscation: Application Layer (3)
© 2010 IBM Corporation
Security Summit 2010
Il meshup nel futuro degli Attack Engines
© 2010 IBM Corporation
Security Summit 2010
XSOX – Botnet Anonymizer
© 2010 IBM Corporation
Security Summit 2010
Tecnologie di protezione
© 2010 IBM Corporation
Security Summit 2010
Progettare codice con enbedded security
Software Development Life Cicle
Security strategy & metrics
Requirements
Design
Security
requirements
Secure
design
principles
Abuse cases
& anti
requirements
Code
Architectural
risk analysis
Secure
coding
Test
Deploy
Vulnerability
management
Risk analysis
Code review
Secure
deployment
Security
testing
Operational
enablement
Security
testing
Security education & guidance
© 2010 IBM Corporation
Security Summit 2010
Tipologie di Analisi
Runtime Analysis utilizza sia la
Static che Dynamic Analysis
correlandone i risultati
I potenziali
Problemi di sicurezza
• Null Pointer Dereference
•Problemi di qualità del codice
• Problemi di Dead Code
• Crypto Functions non sicure
• Problemi nel codice delle BackEnd Application (Applicazioni
Multi-Tier)
Application Logic Issues
Static
Analysis
Runtime Analysis
Dynamic
Analysis
• Problemi di configurazione
• Problemi di Patch Level
• Problemi di privilegi
• Problemi di autenticazione
• Problemi in external 3rd party
components
• SQL Injection
• Cross Site Scripting
• HTTP Response Splitting
• OS Commanding
• LDAP Injection
•…
© 2010 IBM Corporation
Security Summit 2010
Analisi Statica - Taint Analysis
Costruzione del modello dell’applicazione
–
Rappresentazione grafica dei data-flow e control-flow
Analisi degli Entry Point
–
Si analizzano i punti di ingresso che possono dar luogo a “taint string”,
stringhe che contengono valori arbitrari decisi dall’utente
Identificazione dei SINK: metodi potenzialmente pericolosi se eseguono
una taint-string
Identificazione di come le taint-string arrivano ai SINK
© 2010 IBM Corporation
Security Summit 2010
Static Analysis – Sistemi di scansione (1/2)
Source – un metodo che
restituisce una tainted string
// ...
String username = request.getParameter("username");
String password = request.getParameter("password");
// ...
String query = "SELECT * from tUsers where " +
"userid='" + username + "' " +
"AND password='" + password + "'";
L’utente potrebbe
// ...
ResultSet rs = stmt.executeQuery(query);modificare i comandi SQL
che vengono eseguiti
Sink – metodi
potenzialmente pericolosi
© 2010 IBM Corporation
Security Summit 2010
Static Analysis – Sistemi di scansione (2/2)
String username = request.getParameter("username");
// ...
String username = request.getParameter("username");
String password = request.getParameter("password");
// ...
String query = "SELECT * from tUsers where " +'
"userid='" + username + "' " +
"AND password='" + password + "'";
query = "SELECT …" + username
// String
...
ResultSet rs = stmt.executeQuery(query);
ResultSet rs = stmt.executeQuery(query);
© 2010 IBM Corporation
Security Summit 2010
Es. Inserimento di sanitizer
// ...
String username = request.getParameter("username");
String password = request.getParameter("password");
// ...
String query = "SELECT * from tUsers where " +
+ "' " ++ "' " +
"userid='" + username
Encode(username)
+ "'"; + "'";
"AND password='" + password
Encode(password)
// ...
ResultSet rs = stmt.executeQuery(query);
Sanitizer:
un metodo che restituisce
una stringa “non-tainted”
© 2010 IBM Corporation
Security Summit 2010
Dynamic Analysis (1/3)
Analizza l’applicazione Web durante il normale
funzionamento
E’ nota anche come test Black Box perché non ha nessuna
conoscenza di come sia fatta l’applicazione
Si inizia esplorando l’applicazione per realizzare il modello
del sito Web e determinare il tipo di test da effettuare
Invia una serie di richieste test HTTP(S) e, attraverso le
risposte, si identificano le vulnerabilità.
© 2010 IBM Corporation
Security Summit 2010
Dynamic Analysis (2/3)
Stage 1: Crawling dell’applicazione come un normale utente
http://mySite/
http://mySite/login.jsp
http://mySite/feedback.jsp
http://mySite/editProfile.jsp
http://mySite/logout.jsp
© 2010 IBM Corporation
Security Summit 2010
Dynamic Analysis (3/3)
Es. Per verificare se l’applicazione è vulnerabile a SQL Injection,
vengono inviati diversi parametri nei punti di ingresso
dell’applicazione
–username=jsmith’
–username=jsmith\’
–username=jsmith;
–username=jsmith having 1=1-–etc
Il test ha successo se viene generata una risposta di database
exception
© 2010 IBM Corporation
Security Summit 2010
Esempio di Architettura Web
Internet Zone
Web Server Zone
Application Zone
Data Zone
© 2010 IBM Corporation
Security Summit 2010
Assessment vulnerabilità applicative (2/2)
Analisi statica del codice
(APPSCAN STATIC)
© 2010 IBM Corporation
Security Summit 2010
Assessment vulnerabilità applicative (1/2)
© 2010 IBM Corporation
Security Summit 2010
Tecnologie e soluzioni di protezione
Proventia Desktop
Database
activity
monitorng
(GUARDIUM)
Attacchi attraverso
HTTPS
Attacchi da Console
Buffer Overflow
etc. (TIVOLI ISS)
Application Attack (SQLi,
XSS, Directory traversal etc.)
Denial of Service
etc.(TIVOLI ISS)
Application Firewall
Network IPS/IDS
Network Firewall
Web Services FW
HIPS
Protezione dei
servizi Web
(Websphere
Datapower)
Denial of Service
Filtraggio sui
protocolli (es. permit
HTTP, HTTPS)
etc. (TIVOLI ISS)
Attacchi ai servizi
esposti (es. Brute
Force, malware etc.)
(TIVOLI ISS)
Integrazione security nel
processo di sviluppo
(APPSCAN STATIC)
© 2010 IBM Corporation
Security Summit 2010
IBM X-Force Web Intelligence Lifecycle
• Deep Crawl of Known
Malicious Websites
• Analyze New Exploit
Techniques
• Provide New Protection
• Develop Protection
• Deliver Updates
Guidance
• Classify MSS Links
• Apply Updates
• Find Related Websites
• Monitor Browsing of:
(Deep Crawl)
•Million of End-users
• Search for Malware
•Thousands of
• Find New Malicious Websites
Customers
• Block All Malicious Domains
•Hundreds of
Countries
• Block Malicious Links
• Send Links to Cobion
© 2010 IBM Corporation
Security Summit 2010
Conclusioni
Nel web 2.0, la complessità delle architetture
applicative introduce nuove vulnerabilità e
metodologie di attacco.
La forte partecipazione degli utenti, tipico nel web
2.0, richiede controlli sofisticati sui contenuti inseriti.
La necessità di superare i controlli (es. Same Origin
Policy), introduce nuove minacce lato client.
Le tecniche di attacco continuano a migliorare,
grazie anche ai guadagni che questo “modello di
business” genera.
La protezione contro le nuove minacce è molto
complessa e richiede continui investimenti in
ricerca, sia nel lato applicativo, sia per la protezione
dei client.
Nuovi canali per il Social Engineering……
© 2010 IBM Corporation
Security Summit 2010
GRAZIE!
[email protected]
35
© 2010 IBM Corporation