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