Defense in Depth Web Inkognito 12/2013

Michal Špaček
Michal ŠpačekWeb development, security and performance
DEFENSE IN DEPTH
Tisíc a jeden tip pro webovou bezpečnost

Michal Špaček

@spazef0rze

Web Inkognito VŠE

www.michalspacek.cz

@iz228

prosinec 2013

Slajdy jsou bez mých poznámek,
nedávají tedy moc smysl pro toho, kdo na semináři nebyl.
Zdroj: www.adobe.com
Říjen 2013
3 miliony karet + 38 milionů účtů
Nebo 150 milionů?
Zdrojové kódy
#

Count

Ciphertext

Plaintext

-------------------------------------------------------------1.

1911938

EQ7fIpT7i/Q=

123456

2.

446162

j9p+HwtWWT86aMjgZFLzYg==

123456789

3.

345834

L8qbAD3jl3jioxG6CatHBw==

password

4.

211659

BB4e6X+b2xLioxG6CatHBw==

adobe123

5.

201580

j9p+HwtWWT/ioxG6CatHBw==

12345678

6.

130832

5djv7ZCI2ws=

qwerty

7.

124253

dQi0asWPYvQ=

1234567

8.

113884

7LqYzKVeq8I=

111111

9.

83411

PMDTbP0LZxu03SwrFUvYGA==

photoshop

10.

82694

e6MPXQ5G6a8=

123123
Zdroj: http://stricture-group.com/files/adobe-top100.txt

Michal Špaček

www.michalspacek.cz
Zdroj: http://nakedsecurity.sophos.com/2013/11/04/anatomy-of-a-password-disaster-adobes-giant-sized-cryptographic-blunder/

Michal Špaček

www.michalspacek.cz
Hesla špatně
zašifrovaná
Hesla v nápovědě v
čitelné podobě

LOL
Michal Špaček

www.michalspacek.cz
jan.semcky@firma.seznam.cz
kwclmYX4Q9E=

Michal Špaček

www.michalspacek.cz
lumatch@seznam.cz
KwclmYX4Q9E=
emajlovej klient vole
ajohnson@mynow.co.uk
KwclmYX4Q9E=
zoznam cz

Michal Špaček

www.michalspacek.cz
SQL Injection
Útočník modifikuje SQL dotaz

Michal Špaček

www.michalspacek.cz
Michal Špaček

www.michalspacek.cz
Michal Špaček

www.michalspacek.cz
"… WHERE znacka = '{$_GET['znacka']}'"

Michal Špaček

www.michalspacek.cz
Michal Špaček

www.michalspacek.cz
'… WHERE id = ' . $_GET['id']

Michal Špaček

www.michalspacek.cz
' OR 1=1; -Michal Špaček

www.michalspacek.cz
SELECT jmeno, adresa
FROM vozidla
WHERE rz = '$prectena';

Michal Špaček

www.michalspacek.cz
1AM 1337
SELECT jmeno, adresa
FROM vozidla
WHERE rz = '1AM 1337';

Michal Špaček

www.michalspacek.cz
' OR 1=1; -SELECT jmeno, adresa
FROM vozidla
WHERE rz = '' OR 1=1; --';

Michal Špaček

www.michalspacek.cz
Defense in Depth Web Inkognito 12/2013
Řešení?
Prepared statements (PDO)

Michal Špaček

www.michalspacek.cz
SELECT jmeno, adresa
FROM vozidla
WHERE rz = ?;
' OR 1=1; -Michal Špaček

www.michalspacek.cz
Michal Špaček

www.michalspacek.cz
mysql_set_charset()
mysql_real_escape_string()

Michal Špaček

www.michalspacek.cz
Nepoužívat
addslashes()
proti SQLIA
Michal Špaček

www.michalspacek.cz
Defense in Depth Fail
=
SQL Injection
+
Špatně uložená hesla

Michal Špaček

www.michalspacek.cz
323 loginů
+
SHA-1 hashů hesel

crackstation.net
Michal Špaček

www.michalspacek.cz
crackstation.net

111 cracknutých hesel

Michal Špaček

www.michalspacek.cz
exoddus
Tbvfs1
9plams
P1ll3d
Neznašov
Michal Špaček

www.michalspacek.cz
111 cracknutých hesel

52 k loginu
…@seznam.cz

Michal Špaček

www.michalspacek.cz
52 loginů …@seznam.cz

Kolik stejných hesel jako
na Seznam?

Michal Špaček

www.michalspacek.cz
Zdroj: http://www.flickr.com/photos/77939791@N00/5721058729/
…@email.cz

2z8

…@centrum.cz

3z9

…@gmail.com

1 z 15

Michal Špaček

www.michalspacek.cz
hashcat

164 dalších cracknutých hesel

Michal Špaček

www.michalspacek.cz
164 dalších cracknutých hesel

2 také použita pro mailbox

Michal Špaček

www.michalspacek.cz
Email Password!

Zdroj: www.twitter.com
v čitelné podobě
(v plaintextu)

Michal Špaček

www.michalspacek.cz
Defense in Depth Web Inkognito 12/2013
MD5(heslo)
SHA1(heslo)
CRC32(heslo)

Michal Špaček

www.michalspacek.cz
Defense in Depth Web Inkognito 12/2013
Defense in Depth Web Inkognito 12/2013
Zdroj: http://arstechnica.com/security/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/
MD5(MD5(MD5(MD5(MD5(MD5(MD5(
MD5(MD5(MD5(MD5(MD5(MD5(MD5(
MD5(MD5(MD5(MD5(MD5(MD5(MD5(
MD5(MD5(MD5(MD5(MD5(MD5(MD5(
heslo
))))))))))))))))
))))))))))))))))
Michal Špaček

www.michalspacek.cz
Defense in Depth Web Inkognito 12/2013
Zdroj: http://www.flickr.com/photos/92154034@N00/440515255/
MD5(heslo + salt)
SHA1(heslo + salt)

Michal Špaček

www.michalspacek.cz
Defense in Depth Web Inkognito 12/2013
bcrypt!

Blowfish hashing
Michal Špaček

www.michalspacek.cz
crypt() salt=$2y$…
password_hash()
password_verify()

Michal Špaček

www.michalspacek.cz
scrypt
PBKDF2

Michal Špaček

www.michalspacek.cz
Zdroj: http://www.flickr.com/photos/40852961@N04/5439723004/
Zdroj: http://www.flickr.com/photos/59730822@N08/5701097734/
Zdroj: http://www.flickr.com/photos/reidrac/4696900602/
Cross-Site Scripting (XSS)
Útočník vloží na naši stránku
vlastní HTML nebo JS kód

Michal Špaček

www.michalspacek.cz
Michal Špaček

www.michalspacek.cz
Michal Špaček

www.michalspacek.cz
Michal Špaček

www.michalspacek.cz
Řešení?
htmlspecialchars($string)

Michal Špaček

www.michalspacek.cz
htmlspecialchars($string, ENT_QUOTES)

Michal Špaček

www.michalspacek.cz
Nepoužívat
strip_tags()
proti XSS
Michal Špaček

www.michalspacek.cz
Cross-Site Scripting
X-XSS-Protection: 0
X-XSS-Protection: 1
X-XSS-Protection: 1; mode=block

Michal Špaček

www.michalspacek.cz
X-XSS-Protection
IE 8+
Chrome
Safari 4+

Michal Špaček

www.michalspacek.cz
Michal Špaček

www.michalspacek.cz
HTTP-Only cookies

session.cookie_httponly: true
session.cookie_secure: true

Michal Špaček

www.michalspacek.cz
HttpOnly flag

IE 6 SP1+
a všechny další

Michal Špaček

www.michalspacek.cz
Content-Security-Policy
default-src 'none'
script-src 'unsafe-inline'
script-src ajax.googleapis.com

Michal Špaček

www.michalspacek.cz
Content-Security-Policy
Firefox 4+

X-Content-Security-Policy

Chrome 25+, Firefox 23+, Opera 15+
Content-Security-Policy

IE 10+
X-Content-Security-Policy

Michal Špaček

www.michalspacek.cz
I vaši aplikaci
napadnou
zlí útočníci
Jste připraveni?
Michal Špaček
www.michalspacek.cz
1 of 68

Recommended

Vyhledávače zboží 2015: Medio by
Vyhledávače zboží 2015: MedioVyhledávače zboží 2015: Medio
Vyhledávače zboží 2015: MedioBESTETO
358 views13 slides
WebTop100 Technické chyby, výkon a bezpečnost by
WebTop100 Technické chyby, výkon a bezpečnostWebTop100 Technické chyby, výkon a bezpečnost
WebTop100 Technické chyby, výkon a bezpečnostMichal Špaček
2.1K views22 slides
Bezpečnostní útoky na webové aplikace, Čtvrtkon 5 by
Bezpečnostní útoky na webové aplikace, Čtvrtkon 5Bezpečnostní útoky na webové aplikace, Čtvrtkon 5
Bezpečnostní útoky na webové aplikace, Čtvrtkon 5Michal Špaček
3.1K views36 slides
HTTP Strict Transport Security (HSTS) by
HTTP Strict Transport Security (HSTS)HTTP Strict Transport Security (HSTS)
HTTP Strict Transport Security (HSTS)Michal Špaček
5.6K views24 slides
HTTP Strict Transport Security (HSTS), English version by
HTTP Strict Transport Security (HSTS), English versionHTTP Strict Transport Security (HSTS), English version
HTTP Strict Transport Security (HSTS), English versionMichal Špaček
2.8K views27 slides
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu by
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguVíceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Víceúrovňová obrana vysvětlená na Cross-Site ScriptinguMichal Špaček
582 views30 slides

More Related Content

More from Michal Špaček

Quality of Life, Multiple Lines of Defense by
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of DefenseMichal Špaček
657 views49 slides
Jak zlepšit zabezpečení čtvrtiny celého webu by
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuMichal Špaček
1.7K views23 slides
Medvědí služba by
Medvědí službaMedvědí služba
Medvědí službaMichal Špaček
832 views36 slides
Disclosing password hashing policies by
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policiesMichal Špaček
3K views24 slides
XSS PHP CSP ETC OMG WTF BBQ by
XSS PHP CSP ETC OMG WTF BBQXSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQMichal Špaček
1.9K views33 slides
Bezpečnost e-shopů (HTTPS, XSS, CSP) by
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Michal Špaček
1K views14 slides

More from Michal Špaček(20)

Quality of Life, Multiple Lines of Defense by Michal Špaček
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of Defense
Michal Špaček657 views
Jak zlepšit zabezpečení čtvrtiny celého webu by Michal Špaček
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webu
Michal Špaček1.7K views
Disclosing password hashing policies by Michal Špaček
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policies
Michal Špaček3K views
Bezpečnost e-shopů (HTTPS, XSS, CSP) by Michal Špaček
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Michal Špaček1K views
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo) by Michal Špaček
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)
Michal Špaček843 views
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení by Michal Špaček
Password manažeři detailněji – 1Password, LastPass, 2FA, sdíleníPassword manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Michal Špaček2.7K views
Operations security (OPSEC) in IT by Michal Špaček
Operations security (OPSEC) in ITOperations security (OPSEC) in IT
Operations security (OPSEC) in IT
Michal Špaček1.2K views
HTTPS (a šifrování) všude by Michal Špaček
HTTPS (a šifrování) všudeHTTPS (a šifrování) všude
HTTPS (a šifrování) všude
Michal Špaček2.4K views
Bezpečnost na mobilních zařízeních by Michal Špaček
Bezpečnost na mobilních zařízeníchBezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeních
Michal Špaček2.3K views
Základy webové bezpečnosti pro PR a marketing by Michal Špaček
Základy webové bezpečnosti pro PR a marketingZáklady webové bezpečnosti pro PR a marketing
Základy webové bezpečnosti pro PR a marketing
Michal Špaček3K views
I forgot my password – what a secure password reset needs to have and why by Michal Špaček
I forgot my password – what a secure password reset needs to have and whyI forgot my password – what a secure password reset needs to have and why
I forgot my password – what a secure password reset needs to have and why
Michal Špaček3.8K views
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014) by Michal Špaček
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Michal Špaček830 views
Noční můry webového vývojáře by Michal Špaček
Noční můry webového vývojářeNoční můry webového vývojáře
Noční můry webového vývojáře
Michal Špaček7.5K views
The problem with the real world by Michal Špaček
The problem with the real worldThe problem with the real world
The problem with the real world
Michal Špaček2.2K views

Defense in Depth Web Inkognito 12/2013