Storie dalla Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register


Search And Destroy

E' un tranquillo (penso io) lunedi' mattina quando comincio a controllare tutti i log dei vari server. E noto subito una cosa poco bella: c'e' un server che ha cercato di inviare una paccata di mail mentre non dovrebbe inviarne per niente ed ha anche cercato di contattare via ssh una serie di server di cui io non so niente.

Dato che il server ospita l'ennesima PHPorkeria sviluppata dai soliti PHProgrammatroti comincio gia' a sospettare il peggio. Ed infatti noto subito che nel log c'e' anche una bella fila di imbufaliti che cercano il solito rompica$$p phpmyadmin. E indovina un po': LO TROVANO!

Ed ovviamente il phprogrammatroto non ha pensato di rimuovere il merdacchioso script di setup no eh... anzi, e' aperto e disponibile al mondo. Grrr...

Ok, zanza via il server dal firewall e comincia a vedere cosa gli e' successo. A quanto pare adesso questa merdaccia sta facendo funzionare un qualche demone ssh con privilegi di root. Ranza via quel coso subito. E gia' che ci siamo ranziamo via tutto il phmycrapshot che andiamo anche meglio.

Poi, dopo aver inviato una mailla di spiegazione al PHProgrammatroto faccio un bel giro sul resto delle schifezze che sono installate.

E trovo un altra versione del phpmycrapshot in una directory diversa. Pure quella con la directory di installazione aperta all'universo. Zanza via anche quello. Poi scopro che la directory di /tmp e' scrivibile da Apache (ovviamente). In effetti, ben poco NON E' scrivibile da Apache.

A questo punto decido che la cosa migliore sarebbe reinstallare tutto il server e basta, altro che mettersi a patchare le cose. Riporto per tanto a DB.

IO - ...quindi, dato che non c'e' modo di capire esattamente cosa sia successo e cosa sia ancora decente, la cosa migliore e' zappare via tutto e ripartire da capo.
DB - E CL che dice?
IO - CL non lo ho ancora sentito. Ma dato che le versioni (plurale) di software che CL ha installato sono antidiluviane, non mi pare che CL sia la persona piu' indicata per decidere come gestire la sicurezza di quella macchina.
DB - Ma non hai detto che hai rimosso le versioni bacate?
IO - Ho rimosso quello che ho trovato, molto rapidamente, ma come ho appena detto, non possiamo essere sicuri.
DB - Allora fai un altro giro, poi rimetti il server nel firewall e sentiamo CL.
IO - ??? "rimetti il server nel firewall"?? Quale parte di "non sappiamo cosa e' buono e cosa no" non era chiara?
DB - Ma abbiamo un contratto che dice che il server deve essere disponibile
IO - Dice anche che CL (che si e' assunto la responsabilita' del sistema) deve aggiornare il software che usa ed e' responsabile per le cazzate che fanno.

La discussione e' andata avanti per un bel pezzo, anche perche' il solito rompimarroni di P si e' aggiunto. Ondepercui cio' alla fine la decisione e' stata di "rimuovere tutto cio' che potrebbe essere compromesso e rimettere il server on-line".

IO - Rimuovere tutto?
P - Quello che potrebbe essere compromesso.
IO - E con CL ci parli tu suppongo...

Il che significa che la serie di madonne che avevo in programma di passare a CL non saranno passate... Grrr...

Ok, rimuovere tutto cio' che potrebbe essere compromesso.

find / -type f -name '*.php' -exec rm -f {} \;

Ohhhh.... adesso mi sento gia' meglio...

Davide
25/07/2011 08:00

Precedente Successivo

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

23 messaggi this document does not accept new posts

Anonymous coward

Di Anonymous coward postato il 25/07/2011 08:06

brrrrrr

mi sono corsi i brividi lungo la schiena, ho avuto una visione:

CL: " ma porc non ho i backup dei file php installati"

P:"Noi dovevamo cmq fare copia prima blablabla" (qui il brivido)

-- Anonymous coward

ARM_

Di ARM_ postato il 25/07/2011 08:37

e un bel # rm -fr /

 

dopotutto potrebbe essere compromesso anche altro...

-- ARM_

Nicholas

Di Nicholas postato il 25/07/2011 09:02

Nella mia testa "rimuovere tutto ciò che potrebbe essere compromesso" viene tradotto in una serie di deluser. :\)

-- Nicholas

Dacav

Di Dacav postato il 25/07/2011 09:08

LOL php programmers!

Grazie Davide! Non conoscevo l'opzione "-exec" di find! Di solito mi lanciavo in avventure con "-print0" e "xargs -0"... interessante!

-- Dacav

Alberto

Di Alberto postato il 25/07/2011 09:16

Certo che DB e P sono proprio degli ingenui o dei beati.

Dalle tue domande (e dalle tue storie precedenti), era ABBASTANZA CHIARO che avresti spianato tutto il PHP.

Onestamente però, mi aspettavo la stessa cosa anche nei confronti di Apache. smiley

-- Alberto

Anonymous coward

Di Anonymous coward postato il 25/07/2011 09:26

Io avrei fatto un bel rm -rf *... per essere ancora più sicuro smiley

-- Anonymous coward

Spooky

Di Spooky postato il 25/07/2011 09:55

Questa era veramente da Bofh :-D

-- Spooky

Lex

Di Lex postato il 25/07/2011 10:50

E con questo comandino "chi s'è visto s'è visto" :D

-- Lex

Anonymous coward

Di Anonymous coward postato il 25/07/2011 11:13

Tolto il dente, tolto il dolore...

-- Anonymous coward

Marco Colombo

Di Marco Colombo postato il 25/07/2011 11:24

Ma come, dimentichi che se qualcuno ha messo le mani nel server, può aver alterato anche i vari HTML inserendo virus in Javascript! Per cui ogni .html che trovi potrebbe essere compromesso!

find / -type f -name '*.html' -exec rm -f {} \;

Ovviamente occorre fotografare la faccia di CL quando riceve la notizia. In realtà, oggi ci sono rootkit molto sofisticati che arrivano ad inserire moduli stealth nel kernel, per cui non puoi essere sicuro di niente se hanno avuto accesso a root.

E la prossima volta vai di selinux.



-- .TM.

Mte90

Di Mte90 postato il 25/07/2011 14:02

Zappiamo via tutto LOL

Sei un grande! Sono un tuo fan e aspetto il lunedì solo per leggere la prossima storia!!

Buon lavoro!

-- Mte90

Edoardo Mantovani

Di Edoardo Mantovani postato il 25/07/2011 19:28

Hahahaha Stupenda!!! Grandissimo D.

-- Se il problema non ha soluzione perche' ti arrabbi?
Se il problema ha soluzione perche' ti arrabbi?
Ma soprattutto, se non sei parte della soluzione
Allora sei parte del problema.

Massimo Bacilieri

Di Massimo Bacilieri postato il 25/07/2011 20:06

Draconiano ma efficiente come metodo :-\)

CL poi come l'ha presa?! :-D

-- Massimo Bacilieri

guido

Di guido postato il 25/07/2011 21:56

Non so perché ma me Lo aspettavo :\) -- guido

Alessandro Porcu

Di Alessandro Porcu postato il 25/07/2011 22:36

Niente male, una soluzione proprio radicale yes

Io avrei risolto con un bel "mke2fs -j /dev/sda[1..4] (a seconda di quali partizioni c'erano su quel disco. E poi vai di reinstall. E se CL si lamentava, un grosso e nodoso randello di noce.

-- Alessandro Porcu

Anonymous coward

Di Anonymous coward postato il 26/07/2011 12:06

ahahahahahahah... ma che mitooo!!!  :D

Mi viene in mente solo un'altra frase, ora: "quale parte di rm -f ... non era chiara?" :D

Da vero BOFH

-- Anonymous coward

Anonymous coward

Di Anonymous coward postato il 26/07/2011 12:43

Il problema non è php e sempre che chi programma (mi è capitato di recente) non usa tre strumenti fondamentali per la programmazione :

Matita (o penna)

foglio

Cervello.

Rimuovi tutto ciò che è compromesso !

Facile, rimovere l'orifizio anale a CL.

-- Anonymous coward

Panzer

Di Panzer postato il 26/07/2011 14:41

Rimuovere tutto quello che potrebbe essere compromesso... dopo che il mondo ha avuto accesso come root... per me è roba da fdisk... per fortuna di CL non sono io a decidere...

anche se sono convinto che un reboot del server da DVD e con con dischi NUOVI (o ricondizionati ;-P) non sarebbe stata male...

-- io so di non sapere, ma quello che so... lo so!

Anonymous coward

Di Anonymous coward postato il 26/07/2011 18:21

Anch'io, come altri che hanno scritto prima di me, avrei pensato a qualcos'altro di compromesso,, oltre ai file PHP.

Il mio comando preferito, in questi casi, è

 

for device in /dev/sd* /dev/hd*; do dd if=/dev/urandom of=$device bs=10240 count=1024; done; reboot

 

e poi si vede ...

-- Anonymous coward

Anonymous coward

Di Anonymous coward postato il 26/07/2011 18:29

Hm ma se i processi ssh giravano come root significa che c'è qualche vulnerabilità al sistema, oltre che il php:)

-- Anonymous coward

Anonymous coward

Di Anonymous coward postato il 26/07/2011 23:40

Io per essere sicuro avrei fatto un wipe del disco... comunque è sempre bello vedere quanto si rendono conto che una macchina compromessa è una macchina da rifare da zero - e quanto tenerla attiva è un rischio, anche dopo qualsiasi tentativo di ripulirla.

-- Anonymous coward

Alessandro

Di Alessandro postato il 29/07/2011 09:48



>Ohhhh.... adesso mi sento gia' meglio...

NOn potevi scrivere : godo??? :-\)

-- Alessandro

Alquanole

Di Alquanole postato il 30/07/2011 12:43

Mi è capitato di dover giocare con un server compromesso che CL voleva patchare a tutti i costi... Da allora l'opzione "togli solo i file sospetti" -> FDISK

-- Alquanole

23 messaggi this document does not accept new posts

Precedente Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gojira