Web 2.0 Saldırı Dili: Javascript

Download Report

Transcript Web 2.0 Saldırı Dili: Javascript

Web Savunma
2.0 Saldırı Dili: Javascript
Bedirhan URGUN
Web Güvenlik Topluluğu
Tübitak – UEKAE
[email protected]
OWASP-TR
Copyright © The OWASP Foundation
Permission is granted to copy, distribute and/or modify this document
under the terms of the OWASP License.
The OWASP Foundation
http://www.owasp.org
İçerik
Amaç
Motivasyon
Javascript Temelleri
Javascript ve İki Sıradışı Özelliği
Javascript ile Saldırı Tespit - Demo
Sonuç
OWASP Türkiye
Amaç
Javascript ile Web 2.0 güvenliği farkındalığı
OWASP Türkiye
Motivasyon
OWASP Türkiye
Motivasyon
devam
Javascript Malware (kötücül yazılım)
Bilgi hırsızlığı




Oturum korsanlığı
Clipboard çalma
Tuş yakalama
Ekran çalma
İçerik değişikliği (tahrifat)
OWASP Türkiye
Geçmiş Tarama
Motivasyon
www.gnucitizen.org
OWASP Türkiye
Port Tarama
Motivasyon
www.gnucitizen.org
OWASP Türkiye
Dahili IP Çalma
Motivasyon
www.gnucitizen.org
OWASP Türkiye
Web Spidering
Motivasyon
www.gnucitizen.org
OWASP Türkiye
XSS Bot(net)
Motivasyon
www.gnucitizen.org
OWASP Türkiye
Açıklık Tarama
Motivasyon
www.spidynamics.com
OWASP Türkiye
Web Solucanı
Motivasyon
www.webguvenligi.org
OWASP Türkiye
Javascript Temelleri
1995 Netscape, Brendan Eich
1996 Microsoft, JScript
1997 ECMA-262, ECMAScript
Lehçeler;
Mozilla Firefox, Spider Monkey, Rhino
IE, Opera, Konqueror, Safari
.NET Framework
Adobe: Flash, Flex, Acrobat
OWASP Türkiye
Javascript Temelleri
devam
Dinamik
Prototip tabanlı
Zayıf yapısal (loose typing)
Statik kapsamlı (lexical scoping)
Birinci sınıf nesneler olarak fonksiyonlar
Açık kod dağıtımı (source code delivery)
OWASP Türkiye
Javascript Temelleri
devam
Global ve lokal değişkenler
tat = “tuzsuz”;
function tuzkoy(){
var tat = “tuzlu”;
}
tuzkoy()
alert(tat);
Komut sonu karakteri ; veya yeni satır
Büyük küçük harf hassasiyeti
OWASP Türkiye
Javascript Temelleri
devam
Veri tipleri
Number
Boolean
String
null
undefined
 ve diğer herşey Object
OWASP Türkiye
Javascript ve Farklı Özellikleri
Programlama Dilleri – 3xx
Buyurucu (Imperative) programlama
 komutlarla durumun değişmesi
 örn:
for(var i=0; i < myarray.length; i++)
square( myarray[i] )
Bildirimsel (Declarative) programlama
 fonksiyonların uygulanması
 örn:
myarray.map( square, null )
OWASP Türkiye
Javascript ve Farklı Özellikleri
Bildirimsel programlamanın 2 temeli
Lambda (birinci sınıf nesneler : fonksiyonlar)
var ikiEkle = function (x) {
return x + 2;
}
ikiEkle(3);
// sonuç 5
Bir kez oluştur ve bir kez çalıştır
OWASP Türkiye
Javascript ve Farklı Özellikleri
Bildirimsel programlamanın 2 temeli
devam
Closure (Kuşatma)
function birEkle (y) {
return function() {
return y + 1;
};
}
var x = birEkle(5);
x();
// sonuç 6
OWASP Türkiye
DEMO
Depolanmış XSS
Javascript ile Saldırı Tespit Stratejisi
Atlatma
Daha İyi Saldırı Tespit Stratejisi
OWASP Türkiye
Depolanmış XSS
OWASP Türkiye
Sonuç
Javascript
Web 2.0 güvenliği için temel,
Web 2.0 uygulama geliştirilmesi için temel,
Göründüğünden daha karmaşık ve güçlü,
Her açıdan incelenmeye değer bir dil
OWASP Türkiye
Kaynaklar
Yahoo! UI Library: YUI Theater
Douglas Crockford
 http://developer.yahoo.com/yui/theater/
Javascript: The Definitive Guide
David Flanagan
 http://books.google.com
OWASP Türkiye