Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Dicembre: mese nero per PHP

Worm, falle di sicurezza e strumenti automatici che scorrazzano per il Web alla ricerca delle più pericolose vulnerabilità. La piattaforma e le applicazioni PHP hanno bisogno di maggiore attenzione
Worm, falle di sicurezza e strumenti automatici che scorrazzano per il Web alla ricerca delle più pericolose vulnerabilità. La piattaforma e le applicazioni PHP hanno bisogno di maggiore attenzione
Link copiato negli appunti

PHP è uno dei linguaggi più utilizzati per progettare pagine Web dinamiche. La sua licenza open source e la gratuità di tutto il software utile a gestire un sito web complesso ne hanno consentito la vasta diffusione presso sviluppatori esperti e neofiti.

Durante il mese di dicembre, direttamente o indirettamente, il linguaggio ha mostrato diverse e pericolose falle di sicurezza, alcune imputabili direttamente alla programmazione della piattaforma, altre all'uso che di essa ne è stato fatto dai programmatori delle applicazioni. Falle che hanno messo in apprensione la comunità di sviluppatori e spinto i gestori del progetto a ribadire alcune tematiche di sicurezza basilari non sempre seguite.

Il worm Santy, segnalato il 21 dicembre, ha sfruttato una falla del diffuso sistema di Forum phpBB per modificare tutte le pagine, compresa la homepage, dei siti serviti da questa applicazioni. Solo alcuni giorni prima gli sviluppatori dell'Hardened-PHP Project avevano pubblicato un advisory di sicurezza in cui venivano rese note 7 falle di PHP, prontamente corrette dal team di sviluppo. Il giorno di Natale cominciava a diffondersi anche un nuovo worm, ribattezzato PhpInclude.Worm o Spyki o Lexac, che scandagliava il Web alla ricerca di versioni PHP vulnerabili ai più comuni errori di programmazione.

Dicembre non è stato un buon mese per PHP. L'ultimo dell'anno il team di sviluppo del linguaggio open source ha anche per questo pubblicato una nota sulla propria homepage in cui, oltre a precisare che il bug di phpBB con cui sono state modificate migliaia di homepage non era imputabile a PHP stesso, ribadiva alcune buone pratiche di sicurezza cui dovrebbero fare riferimento gli sviluppatori. Lo stesso hanno fatto gli esperti di sicurezza dell'istituo SANS il 17 dicembre.

Il team di PHP suddivide i suggerimenti prendendo come base le due tipologie di exploit che potrebbero sfruttare una cattiva programmazione: remoti o locali. Gli exploit remoti si possono facilmente evitare grazie ad una «accuratissima validazione dei dati di input. Se si scrive – continua la nota – un'applicazione che deve richiedere agli utenti il loro nome o la loro età, si controlli e ci si assicuri che si ricevano solamente i caratteri che ci si può aspettare [non, ad esempio, un backslash /]». E ancora: «ci si assicuri che non si ricevano troppi dati che potrebbero superare lo spazio libero del backend [il database] o delle funzioni che si andranno ad utilizzare».

L'istituto SANS mette al primo posto delle buone pratiche di sicurezza in PHP la sua disattivazione, se non necessaria. Per tutti quei siti che invece hanno bisogno del linguaggio di scripting, la nota scritta da Johannes Ullrich suggerisce alcuni punti di controllo che vertono sulla configurazione dell'infrastruttura piuttosto che sulla programmazione:

  • Disattivazione della variabile 'register_globals', da impostare nella configurazione su off
  • Attivazione dei parametri 'magic_quotes'
  • Attivazione della modalità sicura ('safe_mode')
  • Utilizzare sistemi non condivisi, ma dedicati ad una sola funzione
  • Analizzare ogni singolo modulo attivo, e disattivarlo se non necessario
  • Evitare che l'utente che esegue gli script PHP non sia abilitato ad altre funzioni vitali per il sistema, come sovrascrivere file
  • Accertarsi della sicurezza delle password con cui PHP interagisce con il database

Tutto ciò naturalmente deve andare di pari passo con una puntuale aggiornamento del sistema e con le buone pratiche di programmazione. Le vulnerabilità scoperte dal Hardened-PHP Project il 15 dicembre sono state puntualmente corrette dal Team PHP che ha rilasciato le nuove versioni 4.3.10 e 5.0.3 lo stesso giorno della pubblicazione dell'advisory. Tutte le versioni di PHP precedenti la 4.3.10 e la 5.0.3 sono da ritenersi vulnerabili.

Ancora: il worm PhpInclude.Worm (o Spyki o Lexac) cerca di sfruttare tutti i più comuni errori di programmazione commessi dagli sviluppatori e ben commentati da un noto articolo di DevShed. Gli esperti di sicurezza di K-OTik, che per primi, il giorno di Natale, hanno scoperto la natura di questo worm, rendono il tutto con un esempio lampante. Per includere una pagina si utilizza nella cattiva programmazione un codice del genere:

if(isset($page))
{
include($page);
}

Il mancato filtraggio e validazione della variabile $page potrebbe condurre all'esecuzione di diversi comandi attraverso una semplice sintassi del tipo: http://www.tuosito.it/pagina.php?page=comandi_nocivi. Proprio quello che il worm PhpInclude.Worm cerca di eseguire su tutte le pagine PHP che incontra nella sua diffusione.

I programmatori e gli amministratori di sistema sono avvisati. Ma anche i gestori di siti che utilizzano applicazioni di terze parti. Dovranno, da oggi con maggior cura, fare attenzione all'utilizzo della piattaforma PHP, verificandone la stabilità e la correttezza delle applicazioni utilizzate , avere cura di installare solo quelle di cui si conosce la buona pratica di programmazione.

Ti consigliamo anche