Un grave bug espone i dati sensibili dei siti dietro CloudFlare
Da Alessandro Giacani
- Si legge in 2 minuti - 313 paroleCloudFlare è una CDN ( content delivery network ) che ospita anche 5,5 milioni di siti anche di grandi dimensioni, ottimizzando performance e sicurezza.
Purtroppo è stato individuato un grave bug, soprannominato Cloudbleed, che espone i dati sensibili dei visitatori di siti web ed applicazioni mobili che utilizzano questo servizio,
Nello specifico Cloudbleed consiste in un difetto infrastrutturale che consente di ottenere le chiavi di sessione private.
CloudFlare è una sorta di Proxy tra il server e gli utenti, che recupera i dati dal server host originale e li memorizza per distribuirli ai visitatori.
Un problema di buffer overflow nei server CloudFlare causava il ritorno di informazioni private come cookie, token di autenticazione e i dati contenuti nelle HTTP POST … il tutto indipendentemente dal fatto che i dati viaggino o meno in HTTPS.
il bug sfrutta la feature ScrapeShield, che utilizza un codice di questo tipo:
int Length = ObfuscateEmailAddressesInHtml(&OutputBuffer, CachedPage);
write(fd, OutputBuffer, Length);
la funzione sarebbe corretta se Length fosse positivo, ma non essendoci questo controllo prima di scrivere l’output, va da se che del codice HTML malevolo, generando un valore Length negativo, poteva attingere ad aree di memoria adiacenti ( infatti i reverse proxy sono condivisi fra tutti gli utenti ) e contenti dati sensibili di qualsiasi altro utente fosse collegato tramite CloudFlare.
Il problema era dovuto quindi ad un semplice controllo non ben eseguito, infatti il raggiungimento della fine del buffer era controllato da una operazione di uguaglianza e dunque un puntatore si sarebbe potuto posizionare dopo la fine del buffer. Sarebbe bastato che la condizione di STOP fosse stata >= e non == per evitare la perdita dei dati.
Non mi soffermo nel trattare i problemi di sicurezza riguardanti i siti web che utilizzano CloudFlare, vorrei consigliare invece a tutti di
aggiornare e diversificare le proprie password in tutti i siti web ed applicazioni in cui siete iscritti