lunedì 19 maggio 2008

'Drive by infection'

Ricevo e pubblico una interessante mail inviatami da persona che lavora per conto di un grande hoster italiano e che chiarisce alcuni aspetti delle varie tecniche utilizzate per attaccare e compromettere siti o interi server WEB
Ecco il testo della mai:

“ ............................

In breve, i vettori di attacco tipici sono tre:

- applicazioni PHP insicure
- applicazioni PHP insicure ed escalation dei privilegi
- furto delle credenziali FTP per l'aggiornamento dei siti

Nel primo caso l'attaccante può scrivere solo i file/directory scrivibili dall'utente con cui gira il server web in quel momento.
Nel caso dei server più vecchi tutto il codice PHP è eseguibile da un unico utente comune (web o www-data di solito), che però è diverso da quello che possiede le pagine, e quindi si possono modificare solo file o directory che sono stati resi scrivibili dal server (perché ci devono
scrivere le proprie pagine o per incapacità del cliente).
In quelli più recenti invece le pagine PHP di ciascun sito sono eseguite da un utente diverso per ogni cliente, che però in genere è lo stesso che possiede i file del sito: in questo caso l'attaccante ha accesso a tutto il sito da cui è entrato, ma solo a quello.
In genere questa è la tecnica usata dai defacer, raramente da chi
installa malware.

Purtroppo questi attacchi sono praticamente inevitabili perché i clienti mettono costantemente online CMS buggati (che se non lo sono ora lo saranno tra un paio di anni) o pagine PHP scritte in modo indecentemente insicuro, e soprattutto quando il server è vecchio non si possono
attivare le feature che rendono PHP leggermente più sicuro perché poi i siti già esistenti non funzionerebbero più (PHP è un linguaggio progettato in modo molto stupido, che rende facilissimo scrivere codice insicuro, e i clienti adorano usare queste feature potenzialmente
insicure).

(Perché non usare sempre server nuovi? Sono i clienti stessi che non vogliono spostarsi, per inerzia o perché magari le loro pagine non funzionano con una versione più nuova di PHP e non vogliono pagare qualcuno che le metta a posto...)

Nel secondo caso, dopo essere entrati nel server con i privilegi limitati del server web o di uno dei clienti, si sfrutta un bug del sistema operativo per ottenere i privilegi di root e potere quindi
accedere a ogni sito. Se si arriva a questo punto la colpa è proprio dell'hoster che non ha tenuto adeguatamente aggiornati i propri server.

L'ultimo problema è quello più complicato da gestire, perché le credenziali FTP sono rubate ai clienti stessi da qualche malware con cui si sono infettati.
Il problema è che, a parte ripulire automaticamente le pagine, c'è poco da fare: i clienti spesso non credono che i loro computer sono insicuri, visto che "l'antivirus non rileva niente"...
Oltre che per installare iframe ho visto casi di credenziali FTP rubate usate per installare siti di phishing e punti di distribuzione per il secondo stadio di trojan.

............................ “


Edgar

1 commento:

Unknown ha detto...

...(PHP è un linguaggio progettato in modo molto stupido, che rende facilissimo scrivere codice insicuro, e i clienti adorano usare queste feature potenzialmente
insicure)....

Mi piacerebbe venire a conoscenza di un linguaggio non stupido su...è per caso ASP? perchè a questo punto se è ASP mi piacerebbe tanto capire dove non è stupido, sicuro e quanto altro.