Introduzione alla sicurezza nel Web Simone Riccetti, IBM ISS Sr. IT Security Architect [email protected] Agenda Analisi del Problema Security Landscape Vulnerabilità e Minacce Metodologie e Architetture Analisi del Codice Controlli di Sicurezza Architetture di Sicurezza 2 © 2009 IBM Corporation © 2009 IBM Corporation Le vulnerabilità delle Web Application sono in continua crescita Il 50.4% delle vulnerabilità totali sono relative alle Web application SQL injection e Cross-Site Scripting sono gli attacchi più diffusi © 2009 IBM Corporation Top Ten I Top ten vendors totalizzano il 24% delle vulnerabilità scoperte, (19% nel 2008) © 2009 IBM Corporation La disponibilità delle patch di sicurezza? Il 49% delle vulnerabilità scoperte nella prima metà del 2009 non ha ancora una patch Percentage of Critical and High Percentage of All OS Vulnerabilities Microsoft 39% 14% Apple 18% 24% Sun Solaris 14% 26% Linux 14% 20% IBM AIX 7% 3% BSD 2% 4% Others 7% 11% Operating S ys tem © 2009 IBM Corporation Valore dell’informazione… $30 Social security number Incremental Identity Detail Each additional piece of identity Information adds to the value of the Tradable identity. Mothers maiden name Date of Birth PIN number Credit card number, Card holders name, Issue/expiry date $0.5 Holder phone number CVV2 code Address details (Street, City, ZIP) © 2009 IBM Corporation Nuove tipologie di attacco: Man-in-the-browser Man-in-the-browser Il malware si trova nel browser System Reconfiguration DNS Settings, Local HOST file, Routing tables, WPAD and Proxy settings Trojan Application Local Proxy Agent OS Hooking Traditional Malware Keyloggers, Screen grabber TCP/IP Stack Interception Packet inspection, pre/post SSL logging © 2009 IBM Corporation Man-in-the-browser Sistema non infettato Application Sistema infettato Application The Web browser The Web browser WinInet Malware httpsendrequest(), navigateto() Proxying Web browser data . Winsock WinInet TCP/IP stack httpsendrequest(), navigateto() Internet Winsock TCP/IP stack Internet © 2009 IBM Corporation Esempio di attacco Man-in-the-browser Form originale Form modificata © 2009 IBM Corporation Trojan Creator Kits Constructor/Turkojan V.4 New features Remote Desktop Webcam Streaming Audio Streaming Remote passwords MSN Sniffer Remote Shell Advanced File Manager Online & Offline keylogger Information about remote computer Etc.. © 2009 IBM Corporation OWASP TOP 10 © 2009 IBM Corporation Cross-Site Scripting (XSS) Permette di: Intercettare il Session Tokens Modificare il contenuto della pagina …e molto altro! Esistono tre tipologie di Cross Site Scripting (XSS): Reflected XSS Stored XSS DOM Based XSS © 2009 IBM Corporation Esempio: Reflected XSS[7] utilizzo del cookie/token rubato per accedere al Dalla risposta l’attacker capisce che l’applicazione è vulnerabile servizio con i privilegi della vittima attacker [1] Richiesta DataBase [2] Risposta [6] [3] Invio link all’utente vittima Web server [4] www.mybanca.it/VulnApp.jsp?e=<script “malevolo”> App. Zone WebApp vulnerabile al XSS Utente vittima [6] Invio del cookie di autenticazione all’attaccante [5] Risposta: pagina voluta dall’attaccante eseguita sul browser dell’utente © 2009 IBM Corporation XSS Esempio di Virtual Defacement. Vulnerabilità scoperta nel 2004 da Jim Ley © 2009 IBM Corporation SQL Injection (1/3) SQL sta per Structured Query Language Con SQL è possibile fare diverse operazioni sui database, per esempio: Eseguire query al database Recuperare dati da un database Inserire nuovi record nel database Cancellare record dal database Aggiornare i record del database Creare ed eliminare tabelle del database © 2009 IBM Corporation SQL Injection (2/3) Fa parte di una categoria di attacchi chiamati Injection Flaws Diretto ad architetture Web che connettono, attraverso un’applicazione, il database all’interfaccia Web Permette di inviare comandi al database attraverso l’imput dell’utente © 2009 IBM Corporation SQL Injection (3/3) Lo user input è embedded negli statement SQL: Stmt = "SELECT * from tUsers where username='" +iUsername + "' AND password='" +iPassword + "'"; adish qqq Username Name SELECT * fromUserID tUsers where Password 1824 adish qqq Adi Sharabani usename=‘adish' AND password=‘qqq' Gli Hacker possono inserire input che generano risultati inaspettati, per esempio: ' or ' 1=1-- username UserID= Username SELECT * from tUsers where 1 Admin username=' Password Name $#kaoeFor56 Administrator AND password='' password='bar' '' AND © 2009 IBM Corporation Agenda Analisi del Problema Security Landscape Vulnerabilita’ e Minacce Metodologie e Architetture Analisi del Codice Controlli di Sicurezza Architetture di Sicurezza 19 © 2009 IBM Corporation Esempio di Architettura Web Internet Zone Web Server Zone Application Zone Data Zone Database Internet Intranet Database AAA Server/ LDAP Management Zone © 2009 IBM Corporation Progettare Codice Sicuro Software Development Life Cicle Security strategy & metrics Security education & guidance © 2009 IBM Corporation Tipologie di Analisi del codice Runtime Runtime Analysis Analysis utilizza utilizza sia sia la Static che Dynamic la Static che Dynamic Analysis Analysis correlandone correlandone ii risultati risultati I potenziali Problemi di sicurezza •• Null Null Pointer Pointer Dereference Dereference •Problemi di qualità •Problemi di qualità del del codice codice •• Problemi Problemi di di Dead Dead Code Code •• Crypto Crypto Functions Functions non non sicure sicure •• Problemi Problemi nel nel codice codice delle delle BackBackEnd End Application Application (Applicazioni (Applicazioni Multi-Tier) Multi-Tier) Application Application Logic Logic Issues Issues Static Analysis Runtime Analysis Dynamic Analysis •• Problemi Problemi di di configurazione configurazione •• Problemi di Patch Problemi di Patch Level Level •• Problemi di privilegi Problemi di privilegi •• Problemi Problemi di di autenticazione autenticazione rd •• Problemi in external Problemi in external 33rd party party components components •• SQL SQL Injection Injection •• Cross Cross Site Site Scripting Scripting •• HTTP Response HTTP Response Splitting Splitting •• OS OS Commanding Commanding •• LDAP LDAP Injection Injection •• … … © 2009 IBM Corporation Es. Analisi delle vulnerabilità System Vulnerability Analysis Internet Zone Web Server Zone Application Zone Internet Data Zone Database Management Zone Application Vulnerability Analysis AAA Server/ LDAP © 2009 IBM Corporation Esempio di Controlli di Sicurezza Attacchi attraverso HTTPS Attacchi da Console Buffer Overflow etc. Application Attack (SQLi, XSS, Directory traversal etc.) Denial of Service etc. Web Server Zone Internet Zone Application Zone Network Firewall Application Firewall Network IPS/IDS Network Firewall Internet Intranet Attacchi Interni Forza il traffico a provenire solo dal web server HIPS Database activity monitorng Data encryption Data Zone HIPS Database HIPS Management Zone Denial of Service Filtraggio sui protocolli (es. permit HTTP, HTTPS) etc. Attacchi ai servizi esposti (es. Brute Force, malware etc.) Attacchi attraverso HTTPS Attacchi da Console Buffer Overflow etc. Attacchi interni, Attacchi da console etc. © 2009 IBM Corporation Esempio di Controlli di Sicurezza Log analysis Session Identification Session Encryption Cookie management Modelli di controllo accessi Encryption …….. …..e il web 2.0 ? © 2009 IBM Corporation Referenze IBM ISS X-Force Research IBM Rational Team OWASP – Cross site scripting, http://www.owasp.org/index.php/Cross_Site_Scripting CIS 551 / TCOM 401 Computer and Network Security (Lecture University of Pensilvania) The Web Application Hacker’s Handbook - Dafydd Stuttard and Marcus PintoWiley Publishing, Inc. DOM Based Cross Site Scripting or XSS of the Third Kind A look at an overlooked flavor of XSS Amit Klein, July 2005 © 2009 IBM Corporation Grazie! © 2009 IBM Corporation