Defense in Depth Web Inkognito 12/2013

Post on 19-Jun-2015

746 views 8 download

transcript

DEFENSE IN DEPTHTisíc a jeden tip pro webovou bezpečnost

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

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

Web Inkognito VŠE @iz228 prosinec 2013

Zdroj: www.adobe.com

Říjen 2013

3 miliony karet + 38 milionů účtůNebo 150 milionů?

Zdrojové kódy

Michal Špaček www.michalspacek.cz

# 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.czKwclmYX4Q9E=

emajlovej klient vole

ajohnson@mynow.co.ukKwclmYX4Q9E=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

SELECT jmeno, adresa FROM vozidla

WHERE rz = '1AM 1337';

1AM 1337

Michal Špaček www.michalspacek.cz

SELECT jmeno, adresa

FROM vozidla

WHERE rz = '' OR 1=1;

--';

' 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 jakona Seznam?

Zdroj: http://www.flickr.com/photos/77939791@N00/5721058729/

Michal Špaček www.michalspacek.cz

…@email.cz 2 z 8

…@centrum.cz 3 z 9

…@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

Email Password!

Zdroj: www.twitter.com

Michal Špaček www.michalspacek.cz

v čitelné podobě (v plaintextu)

Michal Špaček www.michalspacek.cz

MD5(heslo)

SHA1(heslo)

CRC32(heslo)

Zdroj: http://arstechnica.com/security/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/

Michal Špaček www.michalspacek.cz

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))))))))))))))))))))))))))))))))

Zdroj: http://www.flickr.com/photos/92154034@N00/440515255/

Michal Špaček www.michalspacek.cz

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

scryptPBKDF2

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/

Michal Špaček www.michalspacek.cz

Cross-Site Scripting (XSS)

Útočník vloží na naši stránkuvlastní 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

X-XSS-Protection: 0X-XSS-Protection: 1

X-XSS-Protection: 1; mode=block

Cross-Site Scripting

Michal Špaček www.michalspacek.cz

IE 8+

Chrome

Safari 4+

X-XSS-Protection

Michal Špaček www.michalspacek.cz

Michal Špaček www.michalspacek.cz

session.cookie_httponly: true

session.cookie_secure: true

HTTP-Only cookies

Michal Špaček www.michalspacek.cz

HttpOnly flag

IE 6 SP1+

a všechny další

Michal Špaček www.michalspacek.cz

default-src 'none'

script-src 'unsafe-inline'

script-src ajax.googleapis.com

Content-Security-Policy

Michal Špaček www.michalspacek.cz

Firefox 4+X-Content-Security-Policy

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

IE 10+X-Content-Security-Policy

Content-Security-Policy

I vaši aplikacinapadnouzlí útočníci

Jste připraveni?

Michal Špačekwww.michalspacek.cz