Una possibile vulnerabilità nelle sessioni PHP
Venerdì 16 Aprile 2010 - 08:07
di Andrea Ganduglia


Secondo un advisory pubblicato su Seclists, l’entropia alla base della funzione uniqid() si baserebbe un RNG (Random Number Generation) debole, il che, in certe condizioni, potrebbe portare alla generazione di un ridotto numero di ID di sessione, rendendo gli attacchi spoofing con metodo brute force più facili se non nel regno della fattibilità.
In altre parole, sarebbe possibile falsificare le sessioni PHP, con conseguenze gravissime sotto il profilo della sicurezza, se si verificano le seguenti condizioni:
- uso del meccanismo di sessione standard di PHP;
- output di
uniqid()visibile con direttivamore_entropyimpostata sutruein PHP.ini; - uso di un qualche meccanismo per rendere persistente l’inteprete di PHP, come FCGI;
- visibilità dello stato di accesso e indirizzo dell’utente.
Il problema, in tutta evidenza esiste, anche se per portare a termine l’attacco servono davvero tanti elementi; inoltre, PHP offre nativamente un modo per superare il problema, impostando per esempio una fonte esterna come sorgente di entropia per le sessioni, come possono essere /dev/random e /dev/urandom sui sistemi Unix.
Categoria: Sicurezza, PHP e Open Source | Permalink
Commenti
1
“uso di un qualche meccanismo per rendere persistente l’inteprete di PHP, come FCGI;”
in sostanza non dovrei preoccuparmi se utilizzo mod_php di apache?
# - postato da coppermine - 16 Aprile 2010 - 12:34
2
In tutta onestà mi sembra un attacco quasi impossibile. Ci sono troppe precondizioni e comunque da quanto leggo mi sembra di capire che si tratta pur sempre di un brute force attack, quindi di una lentezza spaventosa
# - postato da Aurelio De Rosa - 16 Aprile 2010 - 21:17







