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