Linux local root exploit

Lo scorso mese di agosto ha visto fiorire una lunga serie di patch per chiudere diverse falle di diversi software trovate in molti sistemi, fioritura avvenuta guarda caso dopo le numerose presentazioni di vulnerabilità e tecniche di attacco fatte alla Black Hat Conference (http://www.blackhat.com/html/bh-usa-09/bh-usa-09-archives.html) in Las Vegas di fine luglio, appuntamento seguitissimo da una schiera di addetti ai lavori per quanto riguarda la sicurezza informatica in senso lato.
Tra i tanti, un bug molto spinoso è stato corretto anche per linux: spinoso perché consente di acquisire privilegi di root in locale. Qui trovate un articolo descrittivo del bug e anche un link, nei commenti, ad un exploit funzionante creato da Brad Spender: http://lwn.net/Articles/347006/.
Pare che questo bug sia presente in tutte le versioni di linux da diversi anni (si parla di maggio 2001 coinvolgendo quindi non solo il ramo 2.6 ma anche il 2.4) e che coinvolga anche una parte presente nel Linux Security Module, in particolare SELinux.
Il bug è stato notato e reso pubblico da Julien Tinnes e Tavis Ormandy, che fanno parte del Google Security Team, il 26 giugno scorso ma a prima vista per molti non era possibile sfruttarlo per creare un exploit. Invece a causa della complicità delle ottimizzazioni di GCC, l’exploit è possibile bypassando anche i controlli di SELinux.
Pare che Spender abbia avuto un exploit funzionante fin dal 9 luglio ma che il bug sia stato corretto solo il 13 agosto (leggete qui le opinioni di Spender dove sono riportate anche alcune conversazioni illuminanti con alcuni importanti sviluppatori di linux: http://www.milw0rm.com/exploits/9191).
La confusione e il mancato riconoscimento immediato di questo bug possono essere dati dal fatto che non sempre un errore di programmazione causa un problema di sicurezza e, come in questo caso, la lettura del solo codice sorgente può non bastare: bisogna tenere conto anche di come si comportano i compilatori in particolari circostanze.
È interessante notare in questa storia che neanche Linus Torvalds aveva all’inizio individuato correttamente il problema di sicurezza e si è arreso solo quando sono stati resi pubblici gli exploit funzionanti.
Leggendo il post al link sopra indicato di lwn.net troverete un elenco di protocolli di rete, che se abilitati nel vostro kernel daranno luogo allo sfruttamento “maligno” del bug.
Anche se sono usciti consigli su come mitigare il problema, magari per chi non ha la possibilità di aggiornare e riavviare in tempi brevi le macchine coinvolte, consiglio caldamente di aggiornare il vostro kernel tramite gli aggiornamenti di sistema della vostra distribuzione o, se lo compilate a mano, di passare alle nuove release stabili a partire dalla 2.6.30.5 o successive (se usate ancora il ramo 2.4 dovrete aggiornarvi almeno alla versione 2.4.37.5).


This entry was posted on Wednesday, September 23rd, 2009 at 1:24 PM and is filed under linux.

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.