SlideShare une entreprise Scribd logo
1  sur  68
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
Ř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
MD5(heslo)
SHA1(heslo)
CRC32(heslo)

Michal Špaček

www.michalspacek.cz
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
Zdroj: http://www.flickr.com/photos/92154034@N00/440515255/
MD5(heslo + salt)
SHA1(heslo + salt)

Michal Špaček

www.michalspacek.cz
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

Contenu connexe

Plus de Michal Špaček

Quality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of DefenseMichal Špaček
 
Jak zlepšit zabezpečení čtvrtiny celého webu
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
 
Disclosing password hashing policies
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policiesMichal Špaček
 
XSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQXSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQMichal Špaček
 
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Michal Špaček
 
Poučte se z cizích chyb
Poučte se z cizích chybPoučte se z cizích chyb
Poučte se z cizích chybMichal Š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)
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)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í
Password manažeři detailněji – 1Password, LastPass, 2FA, sdíleníMichal Špaček
 
Operations security (OPSEC) in IT
Operations security (OPSEC) in ITOperations security (OPSEC) in IT
Operations security (OPSEC) in ITMichal Špaček
 
HTTPS (a šifrování) všude
HTTPS (a šifrování) všudeHTTPS (a šifrování) všude
HTTPS (a šifrování) všudeMichal Špaček
 
Bezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeníchBezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeníchMichal Špaček
 
Základy webové bezpečnosti pro PR a marketing
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 marketingMichal Špaček
 
I 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 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 whyMichal Š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)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)Michal Špaček
 
Noční můry webového vývojáře
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ářeMichal Špaček
 
The problem with the real world
The problem with the real worldThe problem with the real world
The problem with the real worldMichal Špaček
 

Plus de Michal Špaček (20)

Quality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of DefenseQuality of Life, Multiple Lines of Defense
Quality of Life, Multiple Lines of Defense
 
Jak zlepšit zabezpečení čtvrtiny celého webu
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
 
Medvědí služba
Medvědí službaMedvědí služba
Medvědí služba
 
Disclosing password hashing policies
Disclosing password hashing policiesDisclosing password hashing policies
Disclosing password hashing policies
 
XSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQXSS PHP CSP ETC OMG WTF BBQ
XSS PHP CSP ETC OMG WTF BBQ
 
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)Bezpečnost e-shopů (HTTPS, XSS, CSP)
Bezpečnost e-shopů (HTTPS, XSS, CSP)
 
Poučte se z cizích chyb
Poučte se z cizích chybPoučte se z cizích chyb
Poučte se z cizích chyb
 
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)
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)
 
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í
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
 
Operations security (OPSEC) in IT
Operations security (OPSEC) in ITOperations security (OPSEC) in IT
Operations security (OPSEC) in IT
 
HTTPS (a šifrování) všude
HTTPS (a šifrování) všudeHTTPS (a šifrování) všude
HTTPS (a šifrování) všude
 
Bezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeníchBezpečnost na mobilních zařízeních
Bezpečnost na mobilních zařízeních
 
Základy webové bezpečnosti pro PR a marketing
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
 
I 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 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
 
Hlava není na hesla
Hlava není na heslaHlava není na hesla
Hlava není na hesla
 
HTTP/2
HTTP/2HTTP/2
HTTP/2
 
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)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
 
Přechod na HTTPS
Přechod na HTTPSPřechod na HTTPS
Přechod na HTTPS
 
Noční můry webového vývojáře
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
 
The problem with the real world
The problem with the real worldThe problem with the real world
The problem with the real world
 

Defense in Depth Web Inkognito 12/2013