La verifica delle vulnerabilità applicative

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