PHP è la tecnologia che sottende all'esecuzione di codice server-side ed alla creazione delle pagine HTML che saranno inviate dal Web server (Apache) al client (browser come Firefox, Opera, IE) conformemente al protocollo HTTP.
Nella maggioranza dei casi a subire exploit non sono i Web server in senso stretto, ma le applicazioni (soprattutto Web) che grazie ad esso vengono eseguite. In questo scenario, se l'applicazione non è sicura, avere firewall ben impostati, sistemi Linux ad hoc configurati e via discorrendo non serve assolutamente a nulla (o quasi), al fine della protezione dai cracker.
Si dà in questa sede per scontata una buona e robusta progettazione del programma Web PHP in esecuzione sul server e suggerisco la Guida sicurezza di PHP pubblicata su Html.it come prima (ma non sufficiente) e semplice illustrazione delle tecniche da usarsi.
Bene. Avendo quindi installato nella directory www di Apache il programma PHP ci occuperemo ora di:
Php.ini;Ciò è utile al fine di preservare la proprietà intellettuale dell'autore in caso di furto dei sorgenti ed al fine di nascondere le password contenute (in chiaro) negli script.
Esistono anche tool per creare, da script PHP, programmi standalone (compilati), che però non tratteremo.
Una corretta installazione del modulo PHP protegge sia dallo sfruttamento di possibili bug di moduli aggiuntivi ("se non c'è non si rompe") sia da denial of service (DoS) del programma o modifica dei servizi attraverso la manomissione del file php.ini o di componenti fondamentali per il funzionamento di PHP, ad opera di utenti (reali o virtuali, quindi programmi bucati) interni.
A meno di necessità particolari, non devono esser installati sul server moduli PHP non usati (es.: modulo per database PostgreSQL, modulo GD,...) né la versione cli dello stesso.
Verifichiamo quanto installato tramite il gestore di pacchetti Synaptic (grafico) o, sempre come root, da shell tramite il comando:
dpkg -l | grep php libapache2-mod-php5 5.1.6-1 php5-cli 5.1.6-1 php5-common 5.1.6-1 php5-mysql 5.1.6-1
In questo caso, ad esempio, possiamo disinstallare il pacchetto php5-cli sempre tramite Synaptic (con l'opzione "marca per la rimozione completa") o via shell:
apt-get remove php5-cli
seguito da:
dpkg --purge php5-cli
in modo da rimuovere anche i file di configurazione.
Nessuno tra i moduli disinstallati dovrà essere richiamato dal file php.ini cosa che il processo di disinstallazione dovrebbe già provvedere a fare.
A "pulizia di primavera" completata, dobbiamo ora semplicemente assicurarci che il file php.ini non sia modificabile da tutti gli utenti del sistema; di default, il proprietario è root (che vi ha permessi rw) ed i rimanenti permessi sono solo in lettura per tutti gli altri. Sse così non fossero, è bene impostarli in tal maniera o, alternativamente, fare appartenere il file all'utente con cui gira il Web server e renderlo leggibile e scrivibile solo a questi, logica che Debian però non usa.
Verifichiamo ora i permessi del file, da shell con il comando
ls -l /etc/php5/apache2/php.ini -rw-r--r-- 1 [644] root root
Infine, i moduli PHP in /usr/lib/apache2/modules/ ed /etc/apache2/mods-available devono avere permessi: -rw-r--r-- [644] root root.
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 |