SlideShare una empresa de Scribd logo
1 de 28
High Security PHP Applications
International PHP Conference 2008 - Spring Edition
Who is talking

 David Soria Parra
 PHP-Entwickler bei der Mayflower GmbH
 Developer of PHProjekt 6
 PHP Source Committer
Agenda
Wo Security passiert
Distributed Denial of Service
Server Hardening
Apache Verbesserung
MySQL Hardening
PHP Hardening
Applikation sichern
Architektur einer Web-
Applikation
     PHP-Application

Apache MySQL       PHP

          Linux

        Network
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)
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
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.
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
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
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
SELinux
Security Enhanced Linux
von der NSA entwickelt
technisch sehr sicher
            Linux
kompliziertes Rechtesystem
Teil vom Mainline Kernel 2.6,
  Redhat, Fedora, OpenSUSE, Debian
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
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
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
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)
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
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
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
PHP Security


safe_mode hilft nicht PHP

open_basedir pro VHOST
php_admin_flags, php_flags in VHOST declaration
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
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
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
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
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
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.
Input / Output Flow in PHP

  Traue keinem Inhalt
                    PHP
    $_SESSION
   Environment Variable ($_ENV)
   auch keiner $_SERVER Variable
   (HTTP_USER_AGENT, REMOTE_ADDR, etc)
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
Fragen?


      soria_parra@mayflower.de

Más contenido relacionado

Destacado

Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...Sebastian Schally
 
PHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework IntroductionPHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework Introductionmaexpower
 
Access and Backhaul Consolidation with NG-PON2
Access and Backhaul Consolidation with NG-PON2Access and Backhaul Consolidation with NG-PON2
Access and Backhaul Consolidation with NG-PON2ADVA
 
Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg
Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg
Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg Ralf Eggert
 
Entwicklercamp responive web design
Entwicklercamp   responive web designEntwicklercamp   responive web design
Entwicklercamp responive web designHenning Schmidt
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesMark Roden
 
Webentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLWebentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLKerstin Puschke
 
Transport network strategies at Telekom Austria Group- January 2014
Transport network strategies at Telekom Austria Group- January 2014Transport network strategies at Telekom Austria Group- January 2014
Transport network strategies at Telekom Austria Group- January 2014Wi-Fi 360
 
MPLS in Mobile Backhaul
MPLS in Mobile BackhaulMPLS in Mobile Backhaul
MPLS in Mobile BackhaulScott Foster
 
The Skeleton And Joints Wk3
The Skeleton And Joints Wk3The Skeleton And Joints Wk3
The Skeleton And Joints Wk3MrHall
 
PHP Optimization
PHP OptimizationPHP Optimization
PHP Optimizationdjesch
 
Css Frameworks - Ein Überblick (04/2008)
Css Frameworks - Ein Überblick (04/2008)Css Frameworks - Ein Überblick (04/2008)
Css Frameworks - Ein Überblick (04/2008)djesse
 
High performance mit PHP
High performance mit PHPHigh performance mit PHP
High performance mit PHPThomas Burgard
 
WordPress und die Sprachen
WordPress und die SprachenWordPress und die Sprachen
WordPress und die Sprachenfrankstaude
 
Eclipse PHP Tool Integration (IPC Spring 2010)
Eclipse PHP Tool Integration (IPC Spring 2010)Eclipse PHP Tool Integration (IPC Spring 2010)
Eclipse PHP Tool Integration (IPC Spring 2010)Sven Kiera
 

Destacado (20)

Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
Ich dachte, meine Website ist responsive. Aber was ich dann sah, war unglaubl...
 
PHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework IntroductionPHP UG Karlsruhe - Zend Framework Introduction
PHP UG Karlsruhe - Zend Framework Introduction
 
Baustein 07 grundlagen-html-css-php
Baustein 07 grundlagen-html-css-phpBaustein 07 grundlagen-html-css-php
Baustein 07 grundlagen-html-css-php
 
Access and Backhaul Consolidation with NG-PON2
Access and Backhaul Consolidation with NG-PON2Access and Backhaul Consolidation with NG-PON2
Access and Backhaul Consolidation with NG-PON2
 
Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg
Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg
Framework Auswahlkriterin, PHP Unconference 2009 in Hamburg
 
Entwicklercamp responive web design
Entwicklercamp   responive web designEntwicklercamp   responive web design
Entwicklercamp responive web design
 
jQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPagesjQuery - the world's most popular java script library comes to XPages
jQuery - the world's most popular java script library comes to XPages
 
Webentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLWebentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQL
 
Transport network strategies at Telekom Austria Group- January 2014
Transport network strategies at Telekom Austria Group- January 2014Transport network strategies at Telekom Austria Group- January 2014
Transport network strategies at Telekom Austria Group- January 2014
 
MPLS in Mobile Backhaul
MPLS in Mobile BackhaulMPLS in Mobile Backhaul
MPLS in Mobile Backhaul
 
The Skeleton And Joints Wk3
The Skeleton And Joints Wk3The Skeleton And Joints Wk3
The Skeleton And Joints Wk3
 
PHP Optimization
PHP OptimizationPHP Optimization
PHP Optimization
 
Css Frameworks - Ein Überblick (04/2008)
Css Frameworks - Ein Überblick (04/2008)Css Frameworks - Ein Überblick (04/2008)
Css Frameworks - Ein Überblick (04/2008)
 
Web Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 BetaWeb Entwicklung mit PHP - Teil 3 Beta
Web Entwicklung mit PHP - Teil 3 Beta
 
High performance mit PHP
High performance mit PHPHigh performance mit PHP
High performance mit PHP
 
AJAX
AJAXAJAX
AJAX
 
PHP mit Paul Bocuse
PHP mit Paul BocusePHP mit Paul Bocuse
PHP mit Paul Bocuse
 
Web Entwicklung mit PHP - Teil 2
Web Entwicklung mit PHP - Teil 2Web Entwicklung mit PHP - Teil 2
Web Entwicklung mit PHP - Teil 2
 
WordPress und die Sprachen
WordPress und die SprachenWordPress und die Sprachen
WordPress und die Sprachen
 
Eclipse PHP Tool Integration (IPC Spring 2010)
Eclipse PHP Tool Integration (IPC Spring 2010)Eclipse PHP Tool Integration (IPC Spring 2010)
Eclipse PHP Tool Integration (IPC Spring 2010)
 

Similar a High Security PHP Applications

Webanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und AdministrationWebanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und AdministrationThomas Siegers
 
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware MonitoringOSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware MonitoringNETWAYS
 
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-MonitoringsOSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-MonitoringsNETWAYS
 
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...NETWAYS
 
Sicherheitsprüfung für HP NonStop Systeme
Sicherheitsprüfung für HP NonStop SystemeSicherheitsprüfung für HP NonStop Systeme
Sicherheitsprüfung für HP NonStop SystemePeter Haase
 
CryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschCryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschcynapspro GmbH
 
CryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschCryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschcynapspro GmbH
 
Interprozesskommunikation mit PHP
Interprozesskommunikation mit PHPInterprozesskommunikation mit PHP
Interprozesskommunikation mit PHPStephan Schmidt
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...inovex GmbH
 
Webinar: Online Security
Webinar: Online SecurityWebinar: Online Security
Webinar: Online Securitykuehlhaus AG
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeAndreas Schreiber
 
Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Andreas Schulte
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführungnodeio
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenChristian Münch
 
Sicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-AnwendungenSicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-AnwendungenPhilipp Burgmer
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Teambrandts
 
ANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat AnsibleANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat AnsibleCarolineAuerMarcher
 

Similar a High Security PHP Applications (20)

Webanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und AdministrationWebanwendungen - Installation, Konfiguration und Administration
Webanwendungen - Installation, Konfiguration und Administration
 
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware MonitoringOSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
OSMC 2016 - Hello Redfish, Goodbye IPMI - The future of Hardware Monitoring
 
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-MonitoringsOSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
OSMC 2016 | Hello Redfish, goodbye IPMI - Die Zukunft des Hardware-Monitorings
 
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
OSDC 2013 | Enterprise open source virtualization with oVirt and RHEV by René...
 
Sicherheitsprüfung für HP NonStop Systeme
Sicherheitsprüfung für HP NonStop SystemeSicherheitsprüfung für HP NonStop Systeme
Sicherheitsprüfung für HP NonStop Systeme
 
CryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschCryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutsch
 
CryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutschCryptionPro HDD Flyer deutsch
CryptionPro HDD Flyer deutsch
 
PHP auf IBM Plattformen
PHP auf IBM PlattformenPHP auf IBM Plattformen
PHP auf IBM Plattformen
 
Interprozesskommunikation mit PHP
Interprozesskommunikation mit PHPInterprozesskommunikation mit PHP
Interprozesskommunikation mit PHP
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
 
Webinar: Online Security
Webinar: Online SecurityWebinar: Online Security
Webinar: Online Security
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle Versionsmanagementsysteme
 
Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1Lotus Foundations Workshop Teil1
Lotus Foundations Workshop Teil1
 
node.js - Eine kurze Einführung
node.js - Eine kurze Einführungnode.js - Eine kurze Einführung
node.js - Eine kurze Einführung
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
Sicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-AnwendungenSicherheit in Single-Page-Web-Anwendungen
Sicherheit in Single-Page-Web-Anwendungen
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Team
 
Cryption proflyer de
Cryption proflyer deCryption proflyer de
Cryption proflyer de
 
ANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat AnsibleANEO | Automatisierung mit RedHat Ansible
ANEO | Automatisierung mit RedHat Ansible
 
ESET - Remote-Administrator
ESET - Remote-AdministratorESET - Remote-Administrator
ESET - Remote-Administrator
 

High Security PHP Applications

  • 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