High Security PHP Applications

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    7 Favorites

    High Security PHP Applications - Presentation Transcript

    1. High Security PHP Applications International PHP Conference 2008 - Spring Edition
    2. Who is talking David Soria Parra PHP-Entwickler bei der Mayflower GmbH Developer of PHProjekt 6 PHP Source Committer
    3. Agenda Wo Security passiert Distributed Denial of Service Server Hardening Apache Verbesserung MySQL Hardening PHP Hardening Applikation sichern
    4. Architektur einer Web- Applikation PHP-Application Apache MySQL PHP Linux Network
    5. Netzwerkattacken: DDoS Verteilte Denial of Service Attacken einige hundert bis mehrere Millionen kompromittierte Rechner (BotNet) Schicken udp, icmp, tcp Packete, reflektiertes DNS typ0-udp-dos Network bis zu 25 GB/s (empirisch)
    6. Distributed Denial of Service Wird vorrangig kriminell genutzt Erpressung (in-ist-drin.de 7/2007, many more) Politisch (Estland 5/2007, mehr als 1.000.000 Computer im Botnet) Kriminell (Anti-419, Anti-Dialer-Sites) War eigentlich mal ein Spass für Scriptkiddies im IRC Network
    7. DDoS Schutz Sie alleine können sich nicht schützen Ihr Firewall hilft nicht, wenn ihr Uplink kleiner als 25 GB/s ist. Ihr Provider kann, „DDos Managed Security Services“ Der Traffic für die angegriffene Seite wird verworfen (/ dev/null) oder zu einem reinigenden Router geschickt Network Blackholing ist im Weihnachtsgeschäft suboptimal, eine Cleaning Router Infrastruktur ist teuer.
    8. Schutz für das lokale Netz Eine Firewall muss sein Nur was sein muss, alles andere aus: FTP, SSH, SUN-RPC, DNS, SMTP, IMAP, POP Ein Service, den sie wirklich brauchen IP-Filterung, eigenes Management-Netz Network besser: ein VPN nutzen
    9. Linux absichern nicht benötigte Dienste deaktivieren nicht benötigte Software deinstallieren aktuell bleiben Kernel härten Linux ungebrauchte Module deaktivieren Kernel-Module global deaktivieren Mandantory Access Control wie SELinux oder AppArmor nutzen
    10. GRSecurity Patchset gegen 2.4.x un 2.6.x Kernel Beinhaltet PaX ASLR, Page NX Role Based Linux Control (RBAC) Access Chroot hardening, Signal logging, etc. Hardened Gentoo, Hardened Linux from Scratch
    11. SELinux Security Enhanced Linux von der NSA entwickelt technisch sehr sicher Linux kompliziertes Rechtesystem Teil vom Mainline Kernel 2.6, Redhat, Fedora, OpenSUSE, Debian
    12. AppArmor Wurde als „SubDomain“ von Immunix entwickelt ... die von Novell gekauft wurden Teil von Novell/SuSE Linux Open Source, unterstützt auch viele andere Linux Distributionen SELinux für Doofe Wir benutzen es gerne
    13. AppArmor Einfacher Ansatz für Mandantory Access Control Filerechte und POSIX capabilities basiert auf Filenamen Einfacher Workflow Linux die Software wird während der Nutzung profiled das Profil wird als Sammlung erlaubter Zugriffe genutzt
    14. Warum ich AppArmor mag Ihr PHP-Script soll in config.inc.php schreiben By default verbieten es beide SELinux: Label für /var/www/html is http_sys_content_t -> Linux Schreibzugriffe erlauben für /var/www/html AppArmor: /var/www/html/config.inc.php w
    15. Harte Indianer Alle nicht benötigten Module deaktivieren mod_parmguard Apache von applikationsspezifischen Filtern für Setzen Parameter mod_security freier, kleine Web Application Firewall filtert nach Whitelist mt regulären Ausdrücken Standardregelsets (gotroot.com)
    16. mod_security von Breach-Security gekauft, heute Dual-Lizensiert Filter fürs Grobe Apache Code Executions, Inclusions, SQL-Injections, XSS mod_security 2.0 Statefull Session support
    17. MySQL Sicherheit MySQL in SELinux/AppArmor laufen lassen Netzwerk deaktivieren: skip-networking MySQL Filezugriff deaktivieren: set-variable = local-infile=0 Unnötige Dinge entfernen: test datenbank default users, default rights Nur wirklich benötigte Rechte vergeben
    18. PHP Security Sichere PHP Konfiguration: Ausschalten: allow_url_fopen, allow_url_include, PHP display_errors, expose_php, file_support, file_uploads, force_redirect, magic_quotes_gpc, register_globals, use_trans_id Anschalten: memory_limit, post_max_size, session.save_path, upload_max_filesize, upload_tmp_dir
    19. PHP Security safe_mode hilft nicht PHP open_basedir pro VHOST php_admin_flags, php_flags in VHOST declaration
    20. Suhosin Engine Patches Globale Schutzmechanismen für Low-Level-Bugs PHP Memory Manager Hardening (Canary/Safe-Unlink) Hashtable Destructor Protection Protection gegen Format String Vulnerabilities Realpath() Härtung
    21. Suhosin Extension Schutz für unbekannten Bugs PHP Granular verbotene Methoden nach vhosts Schutz gegen Remote Inclusion Transparente Session/Cookie Encryption Variable und Upload Filtering
    22. Suhosin Logging Viele Ausgabekanäle PHP script, File syslog, Shell Script, PHP Mehrere Loglevel Log Message mit Datei, Zeile und Angreifer-IP Simulationsmodus zum testen und tunen
    23. Coding Guidelines E_ALL/E_STRICT safe coding keine globalen Variablen nutzen PHP verbotene Funktionen definierte Nutzung von Konstanten Parameter Binding Datenbank-API Libraries für CSRF Schutz, Eingabevalidation, -filterung, -escaping, Datenbankzugriffe
    24. Input / Output Flow in PHP Input check: Validierung in Abhängigkeit von dem erwarteten Inhalt PHP Invalider Input entweder sanitizen oder löschen Output Escaping: Es gibt 5 Escape-Methoden für HTML, 2 für SQL, 2 für Shellausführung. Es git keine Default Escaping
    25. Parameter Binding in PHP <?php $pdo = new PDO(DSN); PHP $stm = $pdo->prepare( ‘SELECT * FROM foo LIMIT :id‘); $stm->bindValue(‘:id‘, 1); $stm->execute(); Bind Parameters in Bezeichnern und Syntaxelementen geht nicht.
    26. Input / Output Flow in PHP Traue keinem Inhalt PHP $_SESSION Environment Variable ($_ENV) auch keiner $_SERVER Variable (HTTP_USER_AGENT, REMOTE_ADDR, etc)
    27. PHP-IDS Besser als nichts Irgendwie konnte manPHP es immer umgehen Keine Ausrede für mangelhafte Validierung, Filterung und Escaping Kann man zum automatische Abmeldung eines Benutzers verwenden
    28. Fragen? soria_parra@mayflower.de

    + guest0e6d5eguest0e6d5e, 2 years ago

    custom

    4118 views, 7 favs, 12 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 4118
      • 3607 on SlideShare
      • 511 from embeds
    • Comments 0
    • Favorites 7
    • Downloads 0
    Most viewed embeds
    • 395 views on http://blog.thinkphp.de
    • 63 views on http://www.planet-php.net
    • 35 views on http://www.planet-php.org
    • 6 views on http://planet-php.org
    • 3 views on http://planet-php.net

    more

    All embeds
    • 395 views on http://blog.thinkphp.de
    • 63 views on http://www.planet-php.net
    • 35 views on http://www.planet-php.org
    • 6 views on http://planet-php.org
    • 3 views on http://planet-php.net
    • 2 views on http://www.xianguo.com
    • 2 views on http://www.phpeye.com
    • 1 views on http://lj-toys.com
    • 1 views on http://www.heise.de
    • 1 views on http://www.cnzxh.net
    • 1 views on http://cnzxh.net
    • 1 views on http://66.102.9.104

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories