Nella .scorsa guida abbiamo parlato di come mettere in sicurezza il server Web filtrando direttamente da Apache2 molti possibili attacchi, in questa guida ci concentreremo su come installare una protezione a più alto livello, in questo caso a livello Applicazione, utilizzando un modulo di sicurezza noto per PHP, Suhosin.
Suhosin va ad integrarsi a PHP in maniera trasparente, cercando di colmare le lacune in fatto di sicurezza di cui il linguaggio ha sempre sofferto e aggiungendo funzionalità come le funzioni SHA-256 e SHA256-file e CRYPT_BLOWFISH.
Inoltre altre funzionalità degne di nota:
- Transparent Cookie Encryption
- Supports per Virtual Host / Directory configureable function black- and whitelists
- Transparent Cookie Encryption
- Adds protection against newline attacks to mail()
- Transparent encryption of session data
Per una lista dettagliata di tutte le features:
http://www.hardened-php.net/suhosin/a_feature_list.html
L'installazione è molto semplice e segue il classico stack di compilazione da sorgenti:
wget http://download.suhosin.org/suhosin-0.9.23.tgz
tar xzf suhosin-0.9.23.tgz
cd suhosin-0.9.23
phpize && ./configure && make && make install
Ora non resta che abilitare il modulo in php.ini, editando il /etc/php5/apache2/php.ini e aggiungendo questa riga:
Ora basta riavviare Apache e suhosin inizierà a fare il lavoro sporco
Suhosin di default ha una sua configurazione standard che puo essere tranquillamente modificata seguendo queste direttive:
http://www.hardened-php.net/suhosin/configuration.html
Anche se vi consiglio di non giocare troppo con queste opzioni a meno che non sappiate esattamente cosa state toccando, altrimenti vi ritroverete con crash improvvisi dei vostri script PHP
Commenti
Inviato da paolo il Gio, 06/03/2008 - 16:23.
Per chi usa Ubuntu Dapper
Con Ubuntu Dapper la compilazione per andare a buon fine ha bisogno di ulteriori passaggi che ho lasciato nel Forum Ufficiale di Suhosin:
http://forum.hardened-php.net/viewtopic.php?pid=1481#p1481
Ciao
Paolo Mainardi
CTO Twinbit http://www.twinbit.it
Vice Presidente -- ILDN - Italian Linux DIstro Network