Clark's Home page

Tecnicismi vari di un Sysadmin Linux ma anche qualcosa della sua vita

Hardening PHP —

È  arrivato il momento di fare un po di  hardening di php sulla macchina che ospita il crm.
Ripeto la sicurezza sicura non esiste, ma si può rendere la vita difficile a chi non ha  niente di meglio di fare, un buon modo per farlo è rispondere a “monosillabi” o se possibile non rispondere proprio alle domande di un malintenzionato per capire l’ambiente in cui gira l’applicativo, infatti la prima fase di un attacco è la raccolta di informazioni, come ad esempio che sistema operativo ospita in questo caso il sito, che versione di apache, di php, di mysql, etc che sono informazioni molto utili per sfruttare vulnerabilità note o meno note di questi applicativi.
In /etc/php5/apache2/ c’è il file php.ini che mi interessa modificare.
La prima direttiva che andremo a modificare e a portare a Off è expose_php questa direttiva se abilitata da delle info su php negli header che il server manda al client e non esiste un solo valido motivo al mondo per fornire informazioni su cosa sta girando su una macchina ad un potenziale attacker.
[orig] expose_php = On
[mod] expose_php = Off
Per lo stesso motivo setto ad Off le direttive display_errorsdisplay_startup_errors, in quanto potrebbero dare informazioni sia sulla struttura interna del  programma che della struttura del database sottostante.
[orig] display_errors = On
[mod] display_errors = Off
[orig] display_startup_errors = On
[mod] display_startup_errors = Off
La direttiva enable_dl permette di caricare moduli aggiuntivi nel sistema, runtime, da script. In tal modo potrebbe esser caricato un modulo che modifichi il comportamento di Apache stesso, portando a superare le direttive del php.ini, quindi va portata a Off.
[orig] enable_dl = On
[mod] enable_dl = Off
[orig] allow_url_fopen = On
[mod] allow_url_fopen = Off
Giusto come ultimo passo diciamo a PHP dove può’ lavorare indicando un unica directory con la direttiva:
open_basedir = /var/www/crm.myfirm.com

Quindi giusto per completare l’opera andiamo a modificare il nostro virtual-host in /etc/apache2/sites-enable/crm.myfirm.com aggiungendo la direttiva:
php_admin_value open_basedir /var/www/crm.myfirm.com

Fatta questa ultima operazione sono ragionevolmente sicuro di aver fatto quanto in mio potere per complicare la vita a chi volesse curiosare da queste parti.

 

 


Categorised as: Linux | Sistemi operativi | Work

Comments are disabled on this post


Comments are closed.


Hide picture