Christopher Kunz. Stefan Esser. PHP-Sicherheit. PHP/MySQL-Webanwendungen sicher programmieren. 3., Oberarbeitete Auflage. dpunkt.

Ähnliche Dokumente
vii Inhaltsverzeichnis 1 Einleitung 1

PHP-Sicherheit. PHP/MySQL-Webanwendungen sicher programmieren. von Christopher Kunz, Stefan Esser, Peter Prochaska. überarbeitet

PHP-Sicherheit. PHP/MySQL-Webanwendungen sicher programmieren. Ifl dpunkt.verlag. Christopher Kunz Stefan Esser Peter Prochaska

vii Inhaltsverzeichnis 1 Einleitung 1

Inhaltsverzeichnis. Einleitung... 11

Tobias Wassermann. Sichere Webanwendungen mit PHP

PHP-5-Zertifizierung. Block 12 Security.

suhosin PHP-Patch und PHP-Security Extension Peter Prochaska -

Web 2.0 (In) Security PHPUG Würzburg Björn Schotte

Web Hacking - Angriffe und Abwehr

Typo3 - Schutz und Sicherheit

PHP-(Un-)Sicherheit. Hacker-Seminar Herbstsemester 2006 Laboratory for Dependable Distributed Systems Universität Mannheim.

PHP-Security. Aleksander Paravac. Aleksander Paravac (GNU/Linux User Group Bamberg/Forchheim) 1 / 27

Christopher Kunz Stefan Esser

PHP-Sicherheit. Christopher Kunz Regionales Rechenzentrum für Niedersachsen

PHP Sicherheit für Administratoren

Sicherheit von Webapplikationen Sichere Web-Anwendungen

Session Management und Cookies

Sicherheit Web basierter Anwendungen

Zusammenfassung Web-Security-Check ZIELSYSTEM

Was eine WAF (nicht) kann. Mirko Dziadzka OWASP Stammtisch München

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

V10 I, Teil 2: Web Application Security

Schwachstellenanalyse 2012

Web Applications Vulnerabilities

Carsten Eilers. Ajax Security. Sichere Web-2.0-Anwendungen. ntwickier

Web Application Security und der Einsatz von Web Application Firewalls

Sicherheit in Webanwendungen CrossSite, Session und SQL

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Schwachstellenanalyse 2013

Christopher Kunz Stefan Esser

Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5.

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

PHP sicher, performant und skalierbar betreiben

Inhaltsverzeichnis. Inhaltsverzeichnis. Vorwort 9

HÄRTUNG VON WEB-APPLIKATIONEN MIT OPEN-SOURCE-SOFTWARE. Münchener Open-Source-Treffen, Florian Maier,

PHP-Schwachstellen und deren Ausnutzung

XSS for fun and profit

Welche Gefahren gehen vom Firmenauftritt im Internet aus?

Aktuelle Sicherheitsprobleme im Internet

OWASP Top 10. im Kontext von Magento. Mittwoch, 21. November 12

Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10

verstehen lernen, wie der Angreifer denkt diese Methoden selbst anwenden Allerdings: Mitdenken, nicht nur blindes ausprobieren Außerdem:

Audit von Authentifizierungsverfahren

Grundlagen der Web-Sicherheit

Netzwerksicherheit Übung 9 Websicherheit

SZENARIO. ausgeführt Command Injection: Einschleusen (Injizieren) bösartiger Befehle zur Kompromittierung der Funktionsschicht

Aktuelle Angriffstechniken auf Web-Applikationen. Andreas Kurtz cirosec GmbH, Heilbronn

Secure Programming vs. Secure Development

Informationssicherheit und Datenschutz

Apache. O'REILLY Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo. Das umfassende Handbuch. Ben Laurie und Peter Laurie 2.

Ruby on Rails Sicherheit. Heiko Webers

Grundlagen der sicheren PHP Programmierung

Web Application Security mit phion airlock. Walter Egger Senior Sales Web Application Security

Einführung in Web-Security

OpenWAF Web Application Firewall

Datenbanken und Netzanbindung

Was eine WAF (nicht) kann. Ausgabe 2013

Markus Dopler Rainer Ruprechtsberger. Security und Trust Aspekte in Service-Orientierten Web-Applikationen

Secure Coding & Live Hacking von Webapplikationen. Conect Informunity

Sicherheitsaspekte von PHP und deren Umsetzung in TYPO3. Alexander Weidinger FH STP, IT Security

Paper: Automated Discovery of Parameter Pollution Vulnerabilities in Web Applications

Datensicherheit. Vorlesung 7: Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Geschichte Der Aufbau des Buchs Danksagung und Widmung Der Autor

ESA SECURITY MANAGER. Whitepaper zur Dokumentation der Funktionsweise

PHP-Sicherheit Gefahren und Lösungsansätze. Christopher Kunz

Dem Hack keine Chance LAMP im Shared Hosting sicher betreiben

Security-Webinar. September Dr. Christopher Kunz, filoo GmbH

Webapplikationssicherheit (inkl. Livehack) TUGA 15

Advanced Web Hacking. Matthias Luft Security Research

Grundlagen der Web-Entwicklung

Webapplikationen wirklich sicher?! 10. Mai 2006 IT-TRENDS Sicherheit Zentrum für IT-Sicherheit, Bochum

Carsten Eilers / Sicherheit von Anfang an

Aktuelle Bedrohungen im Internet

RIPS. Automatisierte Schwachstellenerkennung in PHP-Software mittels statischer Quellcode-Analyse. BSI Deutscher IT-Sicherheitskongress

Joomla! und Mambo. Open Source-CMS einsetzen und erweitern. von Tobias Hauser, Christian Wenz. 2., aktualisierte Auflage. Hanser München 2006

Literatur und Links. Webtechnologien WS 2015/16 Teil 1/Entwicklung

Unix Friends and User Campus Kamp Aktuelle Angriffstechniken auf Web-Applikationen

Schwachstellen in Web- Applikationen: Was steckt dahinter und wie nutzt man sie aus?

Jakarta Turbine Ein Open Source Framework fÿr Webanwendungen. KNF Kongre 2001 Henning P. Schmiedehausen

Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink

FileBox Solution. Compass Security AG. Cyber Defense AG Werkstrasse 20 Postfach 2038 CH-8645 Jona

Destructive AJAX. Stefan Proksch Christoph Kirchmayr

am Beispiel - SQL Injection

TYPO3 Security. Jochen Weiland TYPO3camp Berlin 2016

PHPIDS Vortrag. PHP Usergroup Frankfurt am Main 14. Februar Autor: Tom Klingenberg. Web & Applikation

PCI Security Scan. Beweisen Sie Ihre Sicherheit! Ihre Vorteile auf einen Blick:

BSI IT-Grundschutztag, , Regensburg 2013 by sic[!]sec GmbH in Groebenzell, Germany. - For personal use only. -

Inhalt. Vorwort Zusammenfassung 48

Sicherheit in Webanwendungen

DAS EINSTEIGERSEMINAR PHP 5.3 LERNEN ÜBEN ANWENDEN. Oliver Leiss Jasmin Schmidt. 3. Auflage

Sicherheit im Internet Empfehlungen für den Aufbau von sicheren E-Commerce Systemen

Mambo - mit Joomla! Das Open Source-CMS einsetzen und erweitern. von Tobias Hauser, Christian Wenz. 1. Auflage. Hanser München 2005

IHK: Web-Hacking-Demo

am Beispiel - SQL Injection

Avoiding the bad guys

itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH

PHP und MySQL. Formulare - Datenübertragung mit PHP. Zellescher Weg 12 Willers-Bau A109 Tel

Transkript:

Christopher Kunz Stefan Esser PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren 3, Oberarbeitete Auflage dpunktverlag

InhaItsverzeichnis 1 Einleitung 11 Dber dieses Buch 1 12 Was ist Sicherheit? 4 13 Wichtige Begriffe 5 14 Sicherheitskonzepte 7 15 ISO 17799 9 16 Wie verkaufe ich Sicherheit? 10 17 Wichtige Informationsquellen 12 171 Mailinglisten 12 172 Full Disclosure " 13 173 BugTraq 14 174 WebAppSec 15 18 OWASP 15 19 PHP-Sicherheitde 16 2 Informationsgewinnung 17 21 Grundlagen 17 22 Webserver erkennen 18 221 Server-Banner erfragen 19 222 Webserver-Verhalten interpretieren 21 223 Tools fur Webserver-Fingerprinting 22 23 Betriebssystem erkennen 22 24 PHP-Installation erkennen 23 25 Datenbanksystem erkennen 26

26 27 28 29 210 211 212 Datei-Altlasten 27 261 Ternporare Dateien 28 262 Include- und Backup-Dateien 29 263 Dateien von Entwicklungswerkzeugen 30 264 Vergessene oder»versteckte«php-dateien 31 265 Ternporare CVS-Dateien 32 Pfade 32 271 mod_speling 32 272 robotstxt 33 273 Standardpfade 34 274 Pfade verkiirzen 37 Kommentare aus HTML-Dateien 37 Applikationen erkennen 38 291 Das Aussehen/Layout 39 292 Typische Dateien bekannter Applikationen 39 293 Header-Felder 39 294 Bestimmte Pfade 39 295 Kornmentare im Quellcode 40 296 HTML-Metatags 41 Default-User 41 Coogle Dork 42 Fazit 42 3 Parametermanipulation 45 31 32 33 Grundlagen 45 Werkzeuge zur Parametermanipulation 48 321 Parametermanipulation mit dem Browser 48 322 Einen Proxy benutzen 51 Angriffsszenarien und Losungen 53 331 Fehlererzeugung 53 332 HTTP Response Splitting 55 333 Remote Command Execution 59 334 Angriffe auf Dateisysternfunktionen 61 335 Angriffe auf Shell-Ebene 62 336 Cookie Poisoning 63 337 Manipulation von Formulardaten 64 338 Vordefinierte PHP-Variablen manipulieren " 65 339 Spam iiber Mailformulare 65

34 35 36 Variablen richtig prufen 341 Auf Datentyp prufen 68 342 Datenlange priifen 69 343 Inhalte priifen 70 344 Whitelist-Priifungen 72 345 Blacklist-Priifung 74 346 Clientseitige Validierung 75 registetglobals Fazit 79 67 75 4 Cross-Site Scripting 81 41 42 43 44 45 46 47 48 49 410 411 412 413 414 415 416 417 Grenzenlose Angriffe Was ist Cross-Site Scripting? Warum XSS gefahrlich ist Erhohte Gefahr dank Browserkomfort 84 Forrnularvervollstandigung verhindern 85 XSS in LANs und WANs XSS - einige Beispiele 87 Ein klassisches XSS Angriffspunkte fiir XSS Angriffe verschleiern - XSS Cheat Sheet 91 Einfache Cegenrnafsnahmen 94 XSS verbieten, HTML erlauben - wie? 97 4121 BBCode 97 4122 HTML-Filter mit XSS-Blacklist 98 4123 Whitelist-Filtern mit»html Purifier" 101 Die Zwischenablage per XSS auslesen XSS-Angriffe iiber DOM 81 82 83 86 88 90 103 104 XSS in HTTP-Headern 107 4151 Angriffe der ersten Ordnung mit Headern 107 4152 Second Order XSS per Header 107 Attack API 110 Second Order XSS per RSS 111

418 Cross-Site Request Forgery (CSRF) 112 4181 4182 4183 4184 4185 4186 CSRF als Firewall-Brecher CSRF in BBCode Ein erster Schutz gegen CSRF, CSRF-Schutzmechanismen Formular-Token gegen CSRF Unheilige Allianz: CSRF und XSS 114 115 116 117 118 119 5 SQL-Injection 121 51 Grundlagen 121 52 Auffinden von SQL-Injection-Moglichkeiten 123 521 GET-Parameter 124 522 POST-Parameter 125 523 Cookie-Parameter 126 524 Servervariablen 127 53 Syntax einer SQL-Injection 130 531 Sonderzeichen in SQL 130 532 Schliisselworter in SQL 131 533 Einfache SQL-Injection 131 534 UNION-Injections 133 54 Advanced SQL-Injection 136 55 541 LOAD_FILE 542 Denial of Service mit SQL-Injection 543 ORDER BY Injection Schutz vor SQL-Injection 551 Sonderzeichen maskieren 552 1st Schliisselwort-Filterung ein wirksamer Schutz? Parameter BindinglPrepared Statements Stored Procedures 553 554 56 Fazit 143 136 137 138 139 139 140 140 142 6 Authentisierung undauthentifizierung 145 61 Wichtige Begriffe 145 611 612 613 Authentisierung Authentifizierung Autorisierung 145 146 146

62 Authentisierungssicherheit 147 621 SSL 147 622 Behandlung von Passwortern 149 623 Benutzernamen und Kennungen 151 624 Sichere Passworter 152 625 Passwort-Sicherheit bestimmen 155 626 Vergessene Passworter 158 63 Authentifizierungssicherheit 163 631 Falsche Request-Methode 163 632 Falsche SQL-Abfrage 164 633 SQL-Injection 165 634 XSS 165 64 Spamvermeidung mit CAPTCHAs 166 65 Fazit 170 7 Sessions 171 71 Grundlagen 171 72 Permissive oder strikte Session-Systerne 173 73 Session-Speicherung 174 74 Schwache Algorithmen zur Session-ID-Generierung 177 75 Session-Timeout " 178 76 Bruteforcing von Sessions 179 77 Session Hijacking 180 78 Session Fixation 182 79 Zusatzliche Abwehrmethoden 182 791 Page-Ticket-System 182 792 Session-Dateien mittels Cronjob loschen 184 793 Session-ID aus dem Referrer loschen 184 710 Fazit 185 8 Upload-Formulare 187 81 Grundlagen 187 82 Aufbau eines Upload-Forrnulars 187 83 PHP-interne Verarbeitung 188 84 Speicherung der hochgeladenen Dateien 189 85 Bildiiberpriifung 190 86 PHP-Code in ein Bild einfiigen 191

87 Andere Dateitypen uberprufen 192 88 Gefahrliche Zip-Archive 193 89 Fazit 193 9 Variablenfilter mit ext/filter 195 91 Oberblick 195 92 Installation 196 93 Die Filter-API 196 94 Verfiigbare Filter 197 941 Validierende Filter 198 942 Reinigende Filter 199 95 Zahlen prufen und filtern 200 96 Boolesche Werte 201 97 URLs validieren 201 98 IP-Adressen prufen 203 99 Syntaxcheck fur E-Mail-Adressen 204 910 Reinigende Filter 205 911 Prufung externer Daten 205 912 Callback-Funktionen 206 913 Fazit 207 10 PHPintern 209 101 Fehler in PHP 209 1011 Month of PHP Bugs 209 1012 File-Upload-Bug 210 1013 Unsichere (De-)Serialisierung 210 1014 Verwirrter Speichermanager '" 210 1015 Speicherproblem dank htmlentities 211 1016 Bewertung 211 102 Bestandteile eines sicheren Servers 211 103 Unix oder Windows? 213 104 BIeiben Sie aktuell! 213 105 Installation 214 1051 Installation als Apache-Modul 214 1052 CGI 216 106 suexec 217

107 108 109 1010 1011 1012 11 111 Safe Mode 219 1071 Einrichtung des Safe Mode 220 1072 safe_mode_exec_dir 221 1073 safe_mode_include_dir 221 1074 Umgebungsvariablen im Safe Mode 222 1075 Safe Mode considered harmful? 222 Weitere PHP-Einstellungen 224 1081 1082 1083 1084 1085 1086 1087 1088 1089 open_basedir 224 disable_functions 225 disable_classes 226 max_execution_time 226 maxjnputjirne 226 memory_limit 226 Upload-Einstellungen 227 allow_urlfopen 228 allowjirljnclude 229 10810 registerglobals 229 Code-Sandboxing mit runkit 229 Externe Ansatze 231 10101 suphp 231 10102 FastCGI 235 10103 Das Apache-Modul mod_suid 237 Roo~ai~Lbsungen 241 10111 10112 10113 10114 Fazit PHP-Hardening 245 Warum PHP harten? 245 1111 1112 1113 1114 1115 1116 1117 1118 BSD-Rootjails 241 User Mode Linux 242 mod_security 242 mod_chroot 242 243 Buffer Overflows 246 Schutz vor Pufferuberlaufen im Suhosin-Patch 247 Schutz vor Format-String-Schwachstellen 248 Simulationsmodus 249 Include-Schutz gegen Remote-Includes und N ullbytes 250 Funktions- und Evaluationsbeschrankungen 251 Schutz gegen Response Splitting und Mailheader Injection 252 Variablenschutz 252

1119 SQL Intrusion Detection 253 11110 Logging 253 11111 Transparente Cookie- und Session-Verschlusselung 253 11112 Hartung des Speicherlimits 11113 Transparenter phpinfot) Schutz 254 254 11114 Kryptografische Funktionen 254 112 Prinzipien hinter Suhosin 255 113 Installation 255 1131 Installation des Patch 255 1132 Installation der Extension 258 114 Zusammenarbeit mit anderen Zend-Extensions 259 115 Konfiguration 260 1151 1152 1153 Generelle Optionen Log-Dateien Alarmskript 260 263 266 1154 Transparente Verschlusselung 267 1155 Variablenfilter 268 1156 Upload-Konfiguration 271 116 Beispielkonfiguration 273 117 Fazit und Ausblick 274 12 Webserver-Filter fur Apache 275 121 Einsatzgebiet von Filtermodulen 275 122 Blacklist oder Whitelist? 276 123 mod_security 277 1231 1232 So funktioniert's Gefahren durch mod_security 278 278 1233 Installation 279 1234 Konfiguration 280 1235 Regelwerk von mod_security 283 1236 Alarmskript fur mod_security 293 1237 Rootjail-Umgebungen mit mod_security 293 1238 mod_security 2 296 124 mod_parmguard 299 1241 So funktioniert's 299 1242 Installation 300 1243 Webserver-Konfiguration 301 1244 XML-Whitelist manuell erstellen 303 1245 Automatische Erzeugung 308 125 Fazit 309

Anhang 310 A Checkliste fur sichere Webapplikationen 311 B B1 B2 B3 B4 Bo5 B6 Bo7 Bo8 B9 sio Wichtige Optionen in phpini variables_order register_globals 0 register_long_arrays 0 0 0 0 0 0 0 0 0 0 register_argc_argv o' 0 0 0 0 0 0 0 0 post_max_size 0 magicquotesgpc 0 magic_quotes_runtime 0 always_populatcraw_poscdata 0 allow_urlfopen 0 allow_uri_include 0 0 0 0 0 0 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 315 315 316 316 316 317 317 317 317 318 318 C e1 e2 e3 e4 e5 e6 e7 e8 D E Liste aller Schwachstellen mit Gefahrenpotenzial-Bewertung Cross-Site Scripting 0 Information Disclosure 0 Full Path Disclosure 0 SQL-Injection 0 HTIP Response Splitting 0 Cross-Site Request Forgery 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Remote Command Execution 0 Mail-Header Injection Quellen Glossar 0 0 0 0 0 0 0 0 0 0 0 0 319 319 319 320 320 320 321 321 321 322 323 Stichwortverzeichnis 331