Gehaxelts Blog

IT-Security & Hacking

Server absichern - Teil 4

In diesem Teil 4 soll es um das “Härten” von PHP mit Hilfe von Suhosin gehen. Suhosin ist eine Erweiterung bzw. ein Patch für PHP, welches es sicherer machen soll.

Sicherheitslücken in PHP geschriebenen Anwendungen sind das eine Risiko, das andere Risiko kommt von Sicherheitslücken, welche direkt in PHP vorhanden sind.

Diese hören häufig auf den Namen “Bufferoverflows” und können das Einschleusen & Ausführen von Schadcode auf dem Hostsystem ermöglichen.

Hier möchte Suhosin ansetzen, in dem es den auf der einen Seite einen Patch für den PHP-Source anbietet und auf der anderen Seite eine Erweiterung, über die man weitere Sicherheitsvorkehrungen vornehmen kann.

Die Installation

Die Installation ist nicht wirklich schwer, denn man muss nur ein weiteres Paket installieren:

Für PHPv4

sudo apt-get install php4-suhosin

Für PHPv5

sudo apt-get install php5-suhosin

Die Konfiguration

Für die Konfiguration bietet Suhosin eine .ini Datei an, welche man unter folgendem Pfad findet:

/etc/php5/conf.d/suhosin.ini

Die Default-Einstellungen kann man soweit nutzen, jedoch empfehle ich folgende Änderungen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
gehaxelt@server:~$ cat /etc/php5/conf.d/suhosin.ini | grep -v ";suhosin" 
; configuration for php suhosin module
extension=suhosin.so

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
; the following values are the internal default settings and set implicit
; feel free to modify to your needs
; documentation can be found at:
; http://www.hardened-php.net/suhosin/configuration.html
; or have a look into /usr/share/doc/php5-suhosin/examples/suhosin.ini.gz

[suhosin]
; Logging Configuration

; Executor Options
suhosin.executor.max_depth = 1000 ; Maximal Rekursion
suhosin.executor.include.max_traversal = 4 ; Maximale Ordnertiefe ( ../../ )
suhosin.executor.disable_eval = On ; Verbietet eval()
suhosin.executor.disable_emodifier = On ; Verbiete den /e-Modifier

; Misc Options
suhosin.sql.bailout_on_error = On; Scriptabbruch bei SQL-Fehlern
suhosin.multiheader = Off; Verhindert HTTP-Header-Injection
suhosin.mail.protect = 1; Verhindert Mail-Header-Injection

; Transparent Encryption Options
suhosin.cookie.encrypt = on ; Cookie Verschlüsselung
suhosin.cookie.cryptkey = #GEHEIMER_KEY#
suhosin.cookie.cryptlist = PHPSESSID ; Nur PHPSESSID-Cookie verschlüsseln


; Filtering Options
suhosin.cookie.max_array_depth = 5; Maxmimal 5-D Cookie
suhosin.cookie.max_value_length = 200; Maximale Inhtalslänge
suhosin.cookie.max_vars = 20; Maximale Cookie-Anzahl
suhosin.post.max_value_length = 20000; Maximale Post-InhaltsLänge
suhosin.post.max_vars = 200; Maximale Post-Variablen-Anzahl
suhosin.upload.max_uploads = 10; Maximale Upload-Anzahl

Man darf natürlich auch die anderen Einstellungen nach den eigenen Bedürfnissen bearbeiten.

Nachdem man die Änderungen vorgenommen hat, sollte man mit einem Neustart des Webservers die Änderungen abschließen:

sudo /etc/init.d/lighttpd restart

Gruß

gehaxelt

Texttutorials

« Emailvalidierung per HTML-Spammail HackIT für SQL Injection && XSS »