Parameter pollution: un nuovo modo di attaccare le web applications

All’ultima conferenza OWASP, gli esperti di sicurezza italiani Luca Carettoni e Stefano Di Paola hanno dimostrato un nuovo modo di manipolare le web applications e ingannare i classici meccanismi di sicurezza: HTTP Parameter Pollution (HPP).
Questa forma di attacco consiste nell’inviare parametri in GET o POST in forma o ordine “anomalo”, o usando caratteri delimitatori strani.
Una richiesta del tipo:
GET /foo?par1=val1&par2=val2 HTTP/1.1
verrà processata in maniera classica, mentre questa:
GET /foo?par1=val1&par1=val2 HTTP/1.1
con due occorrenze dello stesso parametro par1 è suscettibile a varie interpretazioni, a seconda della routine di parsing dell’application/web server destinatario.

Stando a Carettoni e Di Paola, questo può causare comportamenti anomali e indesiderati, oltre a prestarsi a potenziali attacchi di sicurezza.
Gli stessi WAFs (Web Application Firewalls) e i moduli di sicurezza dei server sarebbero vulnerabili ad attacchi di tipo HPP.
Mentre il modulo Apache’s ModSecurity è infatti in grado di riconoscere un attacco SQL-injection come questo:
/index.aspx?page=select 1,2,3 from table where id=1
non è in grado di inviduare quest’altro:
/index.aspx?page=select 1&page=2,3 from table where id=1
La tecnica HPP potrebbe altresì essere usata per lanciare attacchi di tipo Cross-Site-Scripting (XSS) a danno dei vari web browsers.
Il filtro anti-XSS di Internet Explorer 8 è infatti tra i componenti vulnerabili.

Carettoni e Di Paola come “rimedio” consigliano un filtering appropriato e rigoroso dei parametri oltre all’uso dell’URL encoding. Suggerito anche l’uso di un URL rewriting che utilizzi espressioni regolari “sicure”.

RIFERIMENTI:
New type of attack on web applications: Parameter Pollution, by Heise Security