Ce este Suhosin ?Suhosin prin functiile disponibile vrea sa fie un inlocuitor al PHP Hardening-Patch.
Are avantajul disponibilitatii ca extensie si poate fi rulat in mod de simulare, astfel scutind recompilarea php si observarea problemelor existente fara a afecta functionarea site-urilor de pe server.
Sa aruncam o privire
aiciDaca nu v-ati convins de ce ar trebui sa folositi Suhosin va astept cu
intrebari.
Pentru alte detalii accesati
link-ul oficialInstalarea am realizat-o pe un server cu CentOS 4.4, PHP 5.1.6 si Apache 1.3.37, instalare ca extensie, fara patch.
Teoretic ar trebui sa functioneze si cu alte versiuni PHP, Apache, Unix.
Pe site-ul oficial mai sunt prezentate metode de instalare pe Unix in general, Gentoo si FreeBSD
1. Pasi de instalare:Download suhosin de aici:
http://www.hardened-php.net/suhosin/download.htmlDupa dezarhivare (tar -zxvf [arhiva].tgz) intram in directorul nou creat
(suhosin) si executam urmatoarele comenzi (asemanator cu instalarea mod_security de exemplu):
> phpize
> ./configure
> make
> make installDupa executarea acestor comenzi ar trebui sa avem
suhosin.so (extensia) creata in directorul de extensii php. Recomand o verificare pentru siguranta. In cazul meu directorul php pentru extensii este /usr/local/lib/php/extensions.
Ne mai ramane sa adaugam in fisierul de configurare php, php.ini urmatoarele linii:
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
extension=suhosin.so
; alte extensii...iar la sfarsitul fisierului, unde am de exemplu si configurarile
eaccelerator si Zend :
suhosin.simulation=onpentru a folosi doar modul de simulare pana ma asigur ca totul este in regula.
Dupa restart Apache suhosin ar trebui sa fie incarcat.
Pentru verificare se poate apela functia php, phpinfo().
Daca, dupa apelarea phpinfo() nu gasim nicaieri extensia suhosin atunci trebuie verificate logurile de eroare php, cel mai probabil calea catre extensie este gresita.
Daca suhosin s-a incarcat corect, la apelarea phpinfo() vom observa
setarile default iar modul de simulare activ.
2. Pasi de configurarePentru modificarea setarilor default este de ajuns sa adaugam in fisierul php.ini variabila pe care dorim sa o modificam cu valoarea dorita. De exemplu, pentru activarea protectiei e-mail am adaugat suhosin.mail.protect=1, sub suhosin.simulation=on setat mai sus, la pasul de instalare:
suhosin.simulation=on
suhosin.mail.protect=1Toate variabilele ce apar la extensia suhosin, la apelul phpinfo() se pot modifica in functie de nevoi. Nu uitati, daca ati urmat toti pasii corect ne aflam in modul de simulare si astfel se pot testa toate variabilele fara probleme.
3. NotePentru explicatii mai detaliate ale variabilelor avem site-ul oficial:
Configurare SuhosinModul de simulare "is a must" deoarece pot exista site-uri care includ fisiere php din alte domenii de exemplu, lucru pe care suhosin nu il permite decat daca scriptul se afla in whitelist
Este bine ca avem si un whitelist. Variabila
suhosin.executor.include.whitelist ne poate ajuta destul de mult, astfel se pot adauga scripturile care stim sigur ca nu sunt vulnerabile la aceasta variabila, despartite prin
; (tot in php.ini). Exemplu:
suhosin.executor.include.whitelist=http://www.exemplu.com/include.php;http://www.exemplu2.com/script.php;In cazul meu suhosin logheaza default in /var/log/messages. Pentru alte optiuni se poate studia link-ul de configurare suhosin
Cel mai bine este sa-l lasam 2-3 zile in modul de simulare iar dupa verificarea alertelor (
grep ALERT /var/log/messages) sa adaugam in whitelist scripturile care stim ca nu sunt vulnerabile.
Pentru alte detalii, nelamuriri si propuneri legate de suhosin va stau la dispozitie.
Succes !