PHP-Sicherheit erhöhen – Teil 1

closeDieser Beitrag wurde vor mehr als drei Monaten veröffentlicht. Bedenke bitte, dass die hier angebotene Information nicht mehr aktuell und gültig sein könnte. Informiere dich daher bitte auch an anderer Stelle über dieses Thema. Sollten sich neue Informationen ergeben haben, so kannst du mich auch gerne auf diese über einen Kommentar hinweisen. Vielen Dank!

 Jeder Server welcher PHP-Skripte verarbeitet, sollte zumindest zwei Sicherheitsschlösser eingebaut haben, so dass man nicht jedem Tür & Tor öffnet. 

 

1.) suPHP oder suexec + fcgid

Wir sollten PHP-Skript nicht alle mit dem selben User-Berechtigungen (z.B. apache) laufen lassen, daher empfiehlt es sich auf kleinen Webservern suPHP und auf Webseiten mit mehr Traffic “Fast CGI” zu installieren. Alternativ kann man PHP mit “PHP-FPM” (FastCGI Process Manager) auch jeweils als eigenständigen Prozess laufen lassen. 

2.) Suhosin

Da einige PHP-Projekte nicht wirklich für Ihre Sicherheit bekannt sind, empfiehlt es sich zudem die “Suhosin” Erweiterung für PHP zu installieren. “Es wurde entworfen, um den Server und die Benutzer vor bekannten und unbekannten Fehlern in PHP-Anwendungen und im PHP-Kern zu schützen.” – Wiki

PS: auf der Webseite -> http://www.dotdeb.org <- findet man einfach zu installierende .deb-Pakete für Debian / Ubuntu in welchen die Suhosin-Erweiterung bereits integriert ist und liegt zudem als “php5-fpm” Version zur Verfügung. ;) 

 

mehr Sicherheit:

- Mod-Security und Apache

- Mod-Spamhaus und Apache

WordPress Sicherheit erhöhen

php.ini / php.net

- www.howtoforge.com | viele gute HowTo’s 

  • http://cgiesel.de Christoph

    PHP-FPM sieht ganz cool aus. Bisher hatte ich spawn-fcgi benutzt, was aber ein wenig “gefrickelt” aussieht. Muss ich morgen mal testen. :D

  • http://jscouch.de Basti

    Hi,

    welche Vorteile versprichst du dir denn von suhosin? Hash-Kollisionen/DNS-Attacken kannst du mittlerweile mit php5.3.9 per max_input_vars (glaub std ist 100) gut verhindern.

    Ich frag deswegen so doof, da Suhosin mWn. seit 2009 kein Update mehr erfahren hat, von dem her grübel ich, ob ich das wirklich noch auf meinem vserver installieren soll.

    Grüße

  • http://suckup.de Voku

    aus aktuellem Anlass weiß ich, dass nicht überall die neuste PHP-Version läuft und dass folgender Eintrag in der suhosin.ini sehr hilfreich sein kann … :P

    suhosin.executor.eval.blacklist=include,include_once,require,require_once,
    curl_init,fpassthru,file,base64_encode,base64_decode,mail,exec,system,proc_open,
    leak,syslog,pfsockopen,shell_exec,ini_restore,symlink,stream_socket_server,
    proc_nice,popen,proc_get_status,dl, pcntl_exec, pcntl_fork, pcntl_signal,
    pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled,
    pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, socket_accept,
    socket_bind, socket_connect, socket_create, socket_create_listen,
    socket_create_pair,link,register_shutdown_function,register_tick_function
  • http://jtutorial.tk Dieter

    PHP-FPM sieht ganz cool aus. Bisher hatte ich spawn-fcgi benutzt, was aber ein wenig “gefrickelt” aussieht. Muss ich morgen mal testen.

  • jga

    Hi :-)
    ich habe suexec + php schon lange mit ca. 50 Webseiten auf einem Server laufen. Und es ist von der Performance gut und einfach zu konfigurieren. Ein Tipp für euch. Benutzt in den vhost die Pfade die die Distribution in /sbin/suexec2 kompiliert hat. Ansonsten müsst ihr die Datei selbst neu kompilieren. Aus Sicherheitsgründen ist ein anpassen der original suexec2 Datei nicht möglich.

    Gruß jga

  • http://suckup.de Voku

    Kritische PHP-Lücke -> “Der Entdecker des Problems Stefan Esser merkt an, dass der Einsatz der von ihm mitentwickelten Sicherheitserweiterung Suhosin die Ausnutzbarkeit beträchtlich reduziert.” – http://www.heise.de/newsticker/meldung/Kritische-PHP-Luecke-wird-gerade-behoben-1427267.html

  • http://suckup.de Voku

    Viren-Scan via ClamAV für den PHP-Upload ->

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

    # Check all file uploads using some script.
    # The script must write "1" as a first line of standard output
    # to allow the upload, anything else to disallow.
    suhosin.upload.verification_script=/opt/check.sh

    vim /opt/check.sh

    #!/bin/bash

    if [-n "`clamscan --infected --nosummary $1`" ]; then
       echo 0;
    else
       echo 1;
    fi

    PS: nicht vergessen, die Rechte der Datei zu setzen -> chmod +x /opt/check.sh

  • http://suckup.de Voku

    PHP.INI settings: Disable exec, shell_exec, system, popen and Other Functions To Improve Security -> http://www.cyberciti.biz/faq/linux-unix-apache-lighttpd-phpini-disable-functions/

  • http://suckup.de Voku

    PHP Hardening: Einrichtung und Konfiguration der Suhosin Extension -> http://xploit.me/2012/websicherheit/php-hardening-einrichtung-und-konfiguration-der-suhosin-extension.html