Cominciamo l'esame delle direttive del file php.ini esaminando le prime che ci possono garantire una configurazione più sicura del nostro motore di scripting.
[Php.ini e apache2.conf]
Limita tutte le operazioni sul filesystem ad opera di PHP all'interno degli alberi di directory che hanno per padri le directory selezionate. Se l'applicazione Web non ha necessità di accedere altrove, è una buona idea impostarla, soprattutto in caso di esistenza di più applicazioni Web sullo stesso server.
Non dovrebbe, in ogni modo, esser compito di PHP limitare l'utilizzo del filesystem per alcune sue function, bensì compito del sistema operativo: non illudersi di esser al sicuro solo per aver configurato questa direttiva, nel passato sono stati usati metodi per inficiarne l'utilità.
Esempio: open_basedir = /var/www/myapp:/tmp
[Solo php.ini]
Consente di disabilitare le funzioni PHP (non) desiderate. Un po' insensato: solitamente si nega tutto il possibile per abilitare solo in seguito quanto strettamente necessario. Inoltre, devo elencare qualche centinaio di funzioni qui di seguito? Ed ogni volta che viene introdotta una nuova function metter mano al php.ini?
Esempio: disable_functions readfile,exec
[Solo php.ini]
Se questa direttiva viene abilitata, PHP darà traccia di sé nelle intestazioni (header) HTTP inviate dal server al client in risposta alla richiesta di ogni pagina (risorsa) oppure, in altre circostanze (quali errori inerenti la mancanza della risorsa richiesta ad esempio), anche nella pagina HTML di risposta stessa. Vediamo alcuni esempi.
Informazioni inviate da Apache quali header HTTP durante la risposta alla richiesta di una pagina. Queste informazioni sono di norma nascoste all'utente finale ad opera del browser.
Se la direttiva è ad On:
HTTP/1.1 200 OK Date: Mon, 16 Oct 2006 15:23:13 GMT Server: Apache/2.0.55 (Debian) PHP/5.1.6-1 mod_ssl/2.0.55 OpenSSL/0.9.8c X-Powered-By: PHP/5.1.6-1
Se ad Off:
HTTP/1.1 200 OK Date: Mon, 16 Oct 2006 15:25:50 GMT Server: Apache/2.0.55 (Debian) mod_ssl/2.0.55 OpenSSL/0.9.8c
Informazioni inviate (sia tramite header HTTP che) nella pagina di risposta, quindi visibili anche all'utente finale inesperto a fronte di una richiesta non soddisfatta (codice di errore HTTP 404).
Se la direttiva è ad On:
The requested URL /pagina was not found on this server. Apache/2.0.55 (Debian) PHP/5.1.6-1 mod_ssl/2.0.55 OpenSSL/0.9.8c Server at <IP> Port 443
Se la direttiva è ad Off:
The requested URL /pagina was not found on this server. Apache/2.0.55 (Debian) mod_ssl/2.0.55 OpenSSL/0.9.8c Server at <IP> Port 443
Queste informazioni possono rivelarsi utilissime per un cracker o per chiunque conosca le vulnerabilità note della precisa release dell'interprete in uso.
Assieme al corretto aggiornamento delle release di PHP, impostare questa direttiva ad Off aiuta nell'evitare di incorrere in exploit dovuti alla tecnologia usata.
Impostare quindi: expose_php = Off.
Nmap: tecniche per evadere un firewallVediamo come sfuggire ai controlli di un firewall utilizzando Nmap. |
Sfruttare vulnerabilità XSS con BeEFUsiamo BeEF per automatizzare lo sfruttamento di vulnerabilità Cross... |
Trojan Flashback: rimuoverlo da Mac OS XIndividuiamo e rimuoviamo il trojan Flashback da Mac OS X |
Individuare vulnerabilità in Joomla con JoomScanUsiamo JoomScan per verificare la sicurezza di Joomla e la presenza... |
XSS: attacchi avanzatiApprofondiamo le vulnerabilità Cross Site Scripting analizzando... |
Guida SQL Injection con SqlmapScopriamo se le nostre applicazioni web sono vulnerabili alle SQL... |
Guida sicurezza applicazioni WebLe tecniche di attacco più comuni, i metodi per verificare la... |
Guida Sicurezza wirelessQuali sono i pericoli di sicurezza di una rete senza filo e quali... |
Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.
Iscriviti alla newsletter
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |