bezpečnost webových aplikací web inkognito vŠe 05/2013

58
Michal Špaček, @iz228 VŠE, květen 2013 www.michalspacek.cz @spazef0rze Slajdy jsou bez mých poznámek, nedávají tedy moc smysl pro toho, kdo na semináři nebyl.

Upload: michal-spacek

Post on 19-Jun-2015

361 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček, @iz228 VŠE, květen 2013www.michalspacek.cz @spazef0rze

Slajdy jsou bez mých poznámek,nedávají tedy moc smysl pro toho, kdo na semináři nebyl.

Page 2: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Útoky na web

SQL Injection

Cross-Site Scripting

Full Path Disclosure…

a stovky dalších

Page 3: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Full Path Disclosure (FPD)

Vyzrazení plné cesty ke skriptuhttp://devblog.cz/2012/04/fpd-aneb-full-path-disclosure/

Page 4: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 5: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 6: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 7: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Řešení?

display_errors = Off

Page 8: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

log_errors = On

Page 9: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Cross-Site Scripting (XSS)

Útočník vloží na naši stránkuvlastní HTML nebo JS kód

Page 10: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 11: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 12: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 13: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

hledej?search=a“><img src=“…

HTML Injection (Hi)

value=“a“><img src=“…“>

Page 14: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Page 15: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Řešení?

htmlspecialchars($string)

Page 16: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

htmlspecialchars($string, ENT_QUOTES)

Page 17: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Nepoužívat

strip_tags()

proti XSS

Page 18: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

SQL Injection

Útočník modifikuje SQL dotaz

Page 19: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 20: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 21: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

"… WHERE znacka = '{$_GET['znacka']}'"

Page 22: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 23: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

'… WHERE id = ' . $_GET['id']

Page 24: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Page 25: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 26: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

' OR 1=1; --

Page 27: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

SELECT jmeno, adresa FROM vozidla

WHERE rz =

'$prectena';

Page 28: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

SELECT jmeno, adresa FROM vozidla

WHERE rz = '1AM 1337';

1AM 1337

Page 29: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

SELECT jmeno, adresa

FROM vozidla

WHERE rz = '' OR 1=1;

--';

' OR 1=1; --

Page 30: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Page 31: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Řešení?

Prepared statements (PDO)

Page 32: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

SELECT jmeno, adresa

FROM vozidla

WHERE rz = ?;

' OR 1=1; --

Page 33: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 34: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

mysql_set_charset()

mysql_real_escape_string()

Page 35: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Nepoužívat

addslashes()

proti SQLIA

Page 36: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

2012 …

Page 37: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

2012 … 56

Page 38: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

2011 … 51

2010 … 59

2009 … 82

Page 39: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Cross-SitePort Attack

(XSPA)

Page 40: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 41: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 42: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

DistributedDenial-of-Service

(DDoS)

Page 43: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Page 44: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013
Page 45: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Hashování hesel

Nepoužívat MD5

Ani SHA-1

Page 46: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 47: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Řešení?

SHA-512 a salt?

hash_hmac()

Page 48: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

oclHashcat

md5($pass.$salt)

md5($salt.$pass)

sha1($pass.$salt)

sha1($salt.$pass)

Page 49: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Lepší řešení?

scrypt

Page 50: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

bcryptBlowfish hashing

Page 51: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

crypt() salt=$2y$…

password_hash()password_verify()

Page 52: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 53: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 54: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

robots.txt

Page 55: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

Page 56: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

/.svn/entries

Page 57: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

Michal Špaček @spazef0rze www.michalspacek.cz

http://hostname/.svn/text-base/index.php.svn-base

Page 58: Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

That's it. That's me.

Michal Špačekwww.michalspacek.cz

@spazef0rze

Přijďte na školeníhttp://www.michalspacek.cz/skoleni