SlideShare a Scribd company logo
1 of 49
Download to read offline
Web 2.0 Güvenliği
@2014
Örnek Eğitim Notu
bilgi@bga.com.tr

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Javascript
• 1995 Netscape, Brendan Eich tarafından
geliştirildi.
• Dinamik olmasının yanında en önemli iki
özelliği;
– Lambda
– Closure

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Javascript - Lambda

var ikiEkle = function (x) {
return x + 2;
}
ikiEkle(3); // sonuç 5

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Javascript - Closure
function birEkle (y) {
return function() {
return y + 1;
};
}
var x = birEkle(5);
x(); // sonuç 6

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Mashup
• Diğer servislerin verilerinin birleştirilmesi ve
sunulması ile oluşturulan servis tipidir.
• Başkasının aklını kullanmak
• Mashup tipleri;
– İstemci taraflı
– Sunucu taraflı
Mashup’larda Kullanılabilen
Popüler Servisler

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
İstemci Taraflı Mashup

JSON

REST

XML

Uygulama
Browser

proxy

AJAX Kütüphanesi

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Sunucu Taraflı Mashup

JSON

REST

XML

Browser
Uygulama

AJAX Kütüphanesi

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
AJAX
• Asynchronous JavaScript and XML
• Asenkron web uygulamaları geliştirmek için
kullanılan birbirleri ile uzaktan ilgili web
geliştirme teknolojileridir;
– Javascript
– DOM, HTML, CSS
– XMLHttpRequest nesnesi
– JSON (XML daha azınlıkta)

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
BEKLEME ZAMANI

İSTEMCİ

1. Kullanıcı linke tıklar

2. Uygulama cevap döner

WEB
UYGUALAMA

Senkron

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Asenkron

Kullanıcı butona basar

WEB
UYGUALAMA

AJAX uygulama kodları

İSTEMCİ

Kullanıcı linke tıklar

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
AJAX Örneği
<script type="text/javascript">
function sH(str){
// kod
}
</script>
<form>
İsim: <input type="text" onkeyup="sH(this.value)" />
</form>
Öneriler: <span id="txtHint"></span>
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
AJAX Örneği – İstek / Cevap

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
AJAX Veri Transfer Şekilleri
• XML
– Yarı yapısal dil
– Javascript kullanılan istemciler için anlamsız

• JSON
– Javascript tabanlı bir notasyon şekli
– Javascript kullanılan istemciler işlemeye hazır yapı

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
JSON
• Javascript tabanlı hafif sıklet veri iletişim
formatıdır.
• XML ile karşılaştırıldığında, daha okunaklı ve
anlaşılır ve daha kolay parse edilebilir.
{ “name” : “hagi” , “name” : “ronaldo” }
[“ulvi” , “rıza”, “metin”, “cevat” ]
{ “names” : [“feyyaz”, “cüneyt”, “müjdat”] }
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
XML vs. JSON
<menu id="file" value="File">
<popup>
<menuitem value="New" onclick="CreateNewDoc()" />
<menuitem value="Open" onclick="OpenDoc()" />
</popup>
</menu>
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"}
] }}

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Güvensiz Callback’ler
• Dinamik script’ler ile yapılan asenkron veri
aktarımı
istek
/insecurecallback/cntcts.php?callback=showContacts&q=a

cevap
showContacts([“ahmet”,”veli”,“cevdet”]);

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Güvensiz Callback’ler - Saldırı
• CSRF kullanılarak kontak listesinin çalınması
<script type="text/javascript">
function hijacked (contacts){
alert(contacts);
}
</script>
<script src="http://hedef/cntcts.php?callback=hijacked&q=*">
</script>

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Güvenli JSON Yönetimi
• JSON verisinin işlenebilmesi için model
nesnelere dönüştürülmesi gerekir.
• Dönüştürme işlemi sırasında oluşabilecek
injection problemleri engellemek için JSON
verileri mutlaka yapısal olarak denetlenmelidir.
– Sunucu tarafında JSON veriyi alırken
– Sunucu tarafında JSON veriyi istemciye
gönderirken
– İstemci tarafında JSON veriyi alırken
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
JSON Denetim Noktaları
JSON kontrolü

İstemci

Uygulama

JSON kontrolü

İstemci

Uygulama

JSON kontrolü

İstemci

Uygulama

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
JSON Denetimi - Java
JSONParser jsonParser = new JSONParser();

try{
JSONObject json = (JSONObject)jsonParser.parse(jsonString);
}
catch(ParseException pe){
// invalid JSON
}

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
JSON Denetimi - Javascript
isValid = true;
try{
obj = JSON.parse(json);
}
catch(e){
// Invalid JSON
isValid = false;
}

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
JSON Hijacking
• 2006’da Gmail’de bulunan bir zafiyet ile
popüler olan bir zafiyettir.
• Modern browser’lar ile beraber günümüzde
düşük seviyeli bir zafiyettir.

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
JSON Hijacking – Senaryo
SALDIRGANIN WEB
SİTESİ

GET / HTTP/1.0

[‘ahmet’, ‘veli’, ‘cevat’, ‘şeyhmus’]

3

HTML

1

GET /ArkadaslarimiGetir.do HTTP/1.0
Cookie: JESSIONID=3asdkasdja

SOSYAL AĞ WEB
UYGULAMASI

kullanıcı

2

[‘ahmet’, ‘veli’, ‘cevat’, ‘şeyhmus’]

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
JSON Hijacking - Kod
function Array(){
var orjinalArray = this;
var yeniArray = function(){
for(var x in orjinalArray)
calinanListe += orjinalArray[x] + “,”;
// çalınanListe’yi gönder
}
// this nesnesinin dolmasını bekle
setTimeout(yeniArray, 150);
}
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
JSON Hijacking - Exploit
<html>
<head>
<script> {Array OVERRIDE} </script>
</head>
<body>
<script src=“http://sosyalag.com/ArkadaslarimiGetir.do”>
</script>
</body>
</html>

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
JSON/Javascript Önlemler
• Eski tarayıcılar için;
– Hassas bilgi dönen AJAX isteklerinin GET yerine
sadece POST ile çalıştırılması
– JSON array yerine JSON object dönülmesi {…}
– CSRF token’ları
– Hassas bilgi;
• Kullanıcı listesi, profili, mesajları, geçmişi v.b.
• Kişisel bilgiler; adres, telefon, isim soyisim, v.b.
• Sağlık bilgileri, finansal bilgiler v.b.

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Cross Domain Access - CORS
• SOP’un yani Aynı Kaynak Politikası’nın
uyguladığı cross domain istek kısıtlamalarına
karşı geliştirilen bir W3C standardıdır.
• Kaynak: {protokol, alan ismi, port}

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
SOP
istemci

sunucu

abc.com

browser
http://abc.com/one.js

xyz.com

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
SOP ByPass

http://abc.com/one.js

browser

abc.com

xyz.com

proxy istekleri

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
CORS Örnek

GET / HTTP/1.1
Host: xyz.com
Origin: abc.com

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *

xyz.com

browser

http://abc.com/one.js

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
CORS - Browser Desteği

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Güvenli CORS Stratejileri
• Access-Control-Allow-Origin: * değeri dikkatli
kullanılmalıdır.
Access-Control-Allow-Origin: *

Access-Control-Allow-Origin: www.izinverilendomain.com

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Güvenli CORS Stratejileri
• Origin: domainismi değeri klasik yetkilendirme
kontrolleri için kullanılmamalıdır.
String origin = request.getHeader(“Origin”);
if(origin!=null && origin.equals(“www.abc.com”))
// hassas bilgileri istemciye dön
else
// normal sayfayı göster

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Güvenli CORS Stratejileri
• Origin başlığının değeri hedef uygulamalarda
mutlaka kontrol edilmelidir.
response.setHeader(“Access-Control-Allow-Origin”, “www.abc.com”);
// isteği işlemeye devam et
String origin = request.getHeader(“Origin”);
if(origin!=null && origin.equals(“www.abc.com”))
response.setHeader(“Access-Control-Allow-Origin”, “www.abc.com”);
else
return; // isteği işlemeden dön
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
DOM Tabanlı XSS
• Javascript’in neden olduğu XSS çeşididir.
<script>
function printName(){
var index = length = document.URL.length;
if(document.URL.indexOf("name=") != -1)
index = document.URL.indexOf("name=") + 5;
var substr = document.URL.substring(index,length);
document.write(unescape(substr));
}
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
DOM Tabanlı XSS - Senaryo

Sunucuya giden parametre

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
DOM Tabanlı XSS - Senaryo

Sunucuya giden parametre yok!

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
DOM Tabanlı XSS - Senaryo

Sunucuya giden XSS String yok!

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
DOM Tabanlı XSS - Önlemler
• HTML Kodlama kullanılması
element.innerHTML = “<%= HTMLEncode(param) %>”;
element.outerHTML = “<%= HTMLEncode(param) %>”;
document.write(“<%= HTMLEncode(param) %>”);
document.writeln(“<%= HTMLEncode(param) %>”);

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
DOM Tabanlı XSS - Önlemler
• Javascript Kodlama kullanılması
var x = document.createElement(“input”);
x.setAttribute(“name”, “cname”);
x.setAttribute(“value”, “<%= JSEncode(param) %>”);
var form1 = document.forms[0];
form1.appendChild(x);

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
İstemci Taraflı Kodlama
• Browser’da, güvensiz mashup kaynaklarını
çağıran javascript uygulamalarının alması
gereken önlemler
• Sunucu taraflı XSS koruma yöntemlerinin
istemci tarafındaki versiyonu
• JQEncoder

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
İstemci Taraflı Kodlama

Uygulama

İstemci

CSS/URL/Javascript
HTML/HTMLAttribute
kodlama

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
HTML ve HTML Attribute Kodlama
HTML Kodlama:
$('#item1').html(data[0]);
$('#item1').html($.encoder.encodeForHTML(data[0]));
HTML Attribute Kodlama:
$('#item2').html('<div width="' + data[1] + '">');
ec = $.encoder.encodeForHTMLAttribute('width', data[1], false);
$('#item2').html('<div ' + ec+ '>);
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Javascript ve URL Kodlama
Javascript Kodlama:
$('#item4').html('<div onclick="s='' + data[3] + ''">');
ec = $.encoder.encodeForJavascript(data[3]);
$('#item4').html('<div onclick="s='' + ec + ''">');

URL Kodlama:
$('#item5').html('<a href="?a=' + data[4] + '">link</a>');
ec = $.encoder.encodeForURL(data[4]);
$('#item5').html('<a href="?a=' + ec + '">link</a>');
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
CSS Kodlama
CSS Kodlama:
$('#item3').html('<div style="color:' + data[2] + ';">');
ec = $.encoder.encodeForCSS('background-color', data[2], false);
try{
$('#item3').html('<div style="' + ec + '">');
}
catch(e){
alert('encodeForCSS throws exception: ' + e);
}

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
SOA Güven Karmaşası
• Servis tabanlı mimaride karşılaşılan en büyük
dizayn problemlerinde biri güven karmaşasıdır.
• Servis veren veya tüketen bileşenler güvenlik
kontrollerini birbirlerinin sorumluluğu olarak
görmektedirler.
• Bu "yanlış sorumluluk transferi" ciddi güvenlik
problemlerine yol açmaktadır.

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
SOA Güven Karmaşası
istemci

sunucu

A

Ben intranet’teyim,
uygulama tarafına
güveniyorum!
Ekim 2009

Zamanım az,
web servis tarafı
kontrolleri
yapmıştır!

B
intranet web servis

Kasım 2012

Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
Kontrol Stratejisi
• SOA’nın mantığına uygun olarak her servis
aldığı parametre değerleri ile yapabileceği
maximum kontrolü gerçekleştirmelidir.
function paraOde(int id, String tamisim, String tckno, int miktar,
DateTime odemeTarihi, String ccNo){
// tckno ile tamisim örtüşüyor mu?
// odemeTarihi uygun mu?
// ccNo ile tamisim örtüşüyor mu?
// miktar doğru mu?
// ...
}
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
BGA İletişim
www.bga.com.tr
blog.bga.com.tr
twitter.com/bgasecurity

facebook.com/BGAkademisi

bilgi@bga.com.tr

egitim@bga.com.tr
Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr

More Related Content

What's hot

Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101
Mehmet Ince
 
Derinlemesine Paket İnceleme (Deep Packet Inspection)
Derinlemesine Paket İnceleme (Deep Packet Inspection)Derinlemesine Paket İnceleme (Deep Packet Inspection)
Derinlemesine Paket İnceleme (Deep Packet Inspection)
BGA Cyber Security
 
Ddos analizi
Ddos analiziDdos analizi
Ddos analizi
fangjiafu
 
DDoS Saldırıları ve Korunma Yolları
DDoS Saldırıları ve Korunma YollarıDDoS Saldırıları ve Korunma Yolları
DDoS Saldırıları ve Korunma Yolları
BGA Cyber Security
 
Hosting Firmalarına Yönelik DDoS Saldırıları ve Çözüm Önerileri
Hosting Firmalarına Yönelik DDoS Saldırıları ve Çözüm ÖnerileriHosting Firmalarına Yönelik DDoS Saldırıları ve Çözüm Önerileri
Hosting Firmalarına Yönelik DDoS Saldırıları ve Çözüm Önerileri
BGA Cyber Security
 
Snort IPS(Intrusion Prevention System) Eğitimi
Snort IPS(Intrusion Prevention System) EğitimiSnort IPS(Intrusion Prevention System) Eğitimi
Snort IPS(Intrusion Prevention System) Eğitimi
BGA Cyber Security
 

What's hot (20)

Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101
 
Derinlemesine Paket İnceleme (Deep Packet Inspection)
Derinlemesine Paket İnceleme (Deep Packet Inspection)Derinlemesine Paket İnceleme (Deep Packet Inspection)
Derinlemesine Paket İnceleme (Deep Packet Inspection)
 
BackTrack Linux-101 Eğitimi
BackTrack Linux-101 EğitimiBackTrack Linux-101 Eğitimi
BackTrack Linux-101 Eğitimi
 
Ddos analizi
Ddos analiziDdos analizi
Ddos analizi
 
DDoS Saldırıları ve Korunma Yolları
DDoS Saldırıları ve Korunma YollarıDDoS Saldırıları ve Korunma Yolları
DDoS Saldırıları ve Korunma Yolları
 
Mail Sniper Nedir?
Mail Sniper Nedir?Mail Sniper Nedir?
Mail Sniper Nedir?
 
Siber Dünyada Modern Arka Kapılar
Siber Dünyada Modern Arka KapılarSiber Dünyada Modern Arka Kapılar
Siber Dünyada Modern Arka Kapılar
 
Web Uygulama Güvenliği
Web Uygulama GüvenliğiWeb Uygulama Güvenliği
Web Uygulama Güvenliği
 
Siber Güvenlik Kış Kampı'18 Soruları
Siber Güvenlik Kış Kampı'18 SorularıSiber Güvenlik Kış Kampı'18 Soruları
Siber Güvenlik Kış Kampı'18 Soruları
 
Kablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli AnalizKablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli Analiz
 
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab KitabıBeyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
 
Pentest Çalışmalarında Kablosuz Ağ Güvenlik Testleri
Pentest Çalışmalarında Kablosuz Ağ Güvenlik TestleriPentest Çalışmalarında Kablosuz Ağ Güvenlik Testleri
Pentest Çalışmalarında Kablosuz Ağ Güvenlik Testleri
 
Hosting Firmalarına Yönelik DDoS Saldırıları ve Çözüm Önerileri
Hosting Firmalarına Yönelik DDoS Saldırıları ve Çözüm ÖnerileriHosting Firmalarına Yönelik DDoS Saldırıları ve Çözüm Önerileri
Hosting Firmalarına Yönelik DDoS Saldırıları ve Çözüm Önerileri
 
Bilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma Testleri
 
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
 
Ofansif ve Defansif Powershell
Ofansif ve Defansif PowershellOfansif ve Defansif Powershell
Ofansif ve Defansif Powershell
 
Mobil Pentest Örnek Not
Mobil Pentest Örnek NotMobil Pentest Örnek Not
Mobil Pentest Örnek Not
 
Snort IPS(Intrusion Prevention System) Eğitimi
Snort IPS(Intrusion Prevention System) EğitimiSnort IPS(Intrusion Prevention System) Eğitimi
Snort IPS(Intrusion Prevention System) Eğitimi
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
 

Viewers also liked

Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyeti
BGA Cyber Security
 
Adli Bilişim Açısından E-posta Sistemi
Adli Bilişim Açısından E-posta SistemiAdli Bilişim Açısından E-posta Sistemi
Adli Bilişim Açısından E-posta Sistemi
BGA Cyber Security
 
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma  ve Alınacak DerslerGüvenlik Sistemlerini Atlatma  ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
BGA Cyber Security
 
DOS, DDOS Atakları ve Korunma Yöntemleri
DOS, DDOS Atakları ve Korunma YöntemleriDOS, DDOS Atakları ve Korunma Yöntemleri
DOS, DDOS Atakları ve Korunma Yöntemleri
BGA Cyber Security
 
DoS ve DDoS Saldırıları ve Korunma Yöntemleri
DoS ve DDoS Saldırıları ve Korunma YöntemleriDoS ve DDoS Saldırıları ve Korunma Yöntemleri
DoS ve DDoS Saldırıları ve Korunma Yöntemleri
BGA Cyber Security
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
BGA Cyber Security
 
SynFlood DDOS Saldırıları ve Korunma Yolları
SynFlood DDOS Saldırıları ve Korunma YollarıSynFlood DDOS Saldırıları ve Korunma Yolları
SynFlood DDOS Saldırıları ve Korunma Yolları
BGA Cyber Security
 
Yazılım Güvenliği Temelleri
Yazılım Güvenliği TemelleriYazılım Güvenliği Temelleri
Yazılım Güvenliği Temelleri
BGA Cyber Security
 

Viewers also liked (20)

BGA Eğitim Sunum
BGA Eğitim SunumBGA Eğitim Sunum
BGA Eğitim Sunum
 
Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyeti
 
Adli Bilişim Açısından E-posta Sistemi
Adli Bilişim Açısından E-posta SistemiAdli Bilişim Açısından E-posta Sistemi
Adli Bilişim Açısından E-posta Sistemi
 
10 Adımda Sızma Testleri
10 Adımda Sızma Testleri10 Adımda Sızma Testleri
10 Adımda Sızma Testleri
 
Sızma Testine Giriş - Fuat Ulugay
Sızma Testine Giriş  - Fuat UlugaySızma Testine Giriş  - Fuat Ulugay
Sızma Testine Giriş - Fuat Ulugay
 
Sosyal Medyada Anonim Hesaplar Nasıl Tespit Edilir? - NETSEC
Sosyal Medyada Anonim Hesaplar Nasıl Tespit Edilir? - NETSECSosyal Medyada Anonim Hesaplar Nasıl Tespit Edilir? - NETSEC
Sosyal Medyada Anonim Hesaplar Nasıl Tespit Edilir? - NETSEC
 
DDoS Saldırıları ve Korunma Yöntemleri ile E-posta ve ATM Güvenliği
DDoS Saldırıları ve Korunma Yöntemleri ile E-posta ve ATM GüvenliğiDDoS Saldırıları ve Korunma Yöntemleri ile E-posta ve ATM Güvenliği
DDoS Saldırıları ve Korunma Yöntemleri ile E-posta ve ATM Güvenliği
 
Web Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liğiWeb Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liği
 
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma  ve Alınacak DerslerGüvenlik Sistemlerini Atlatma  ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
 
DOS, DDOS Atakları ve Korunma Yöntemleri
DOS, DDOS Atakları ve Korunma YöntemleriDOS, DDOS Atakları ve Korunma Yöntemleri
DOS, DDOS Atakları ve Korunma Yöntemleri
 
Pfsense Firewall ve Router Eğitimi
Pfsense Firewall ve Router EğitimiPfsense Firewall ve Router Eğitimi
Pfsense Firewall ve Router Eğitimi
 
DoS ve DDoS Saldırıları ve Korunma Yöntemleri
DoS ve DDoS Saldırıları ve Korunma YöntemleriDoS ve DDoS Saldırıları ve Korunma Yöntemleri
DoS ve DDoS Saldırıları ve Korunma Yöntemleri
 
WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ
 
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıZararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
 
Temel Kavramlar, DoS/DDoS Saldırıları ve Çeşitleri
Temel Kavramlar, DoS/DDoS Saldırıları ve ÇeşitleriTemel Kavramlar, DoS/DDoS Saldırıları ve Çeşitleri
Temel Kavramlar, DoS/DDoS Saldırıları ve Çeşitleri
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
 
SynFlood DDOS Saldırıları ve Korunma Yolları
SynFlood DDOS Saldırıları ve Korunma YollarıSynFlood DDOS Saldırıları ve Korunma Yolları
SynFlood DDOS Saldırıları ve Korunma Yolları
 
Yazılım Güvenliği Temelleri
Yazılım Güvenliği TemelleriYazılım Güvenliği Temelleri
Yazılım Güvenliği Temelleri
 
Gerçek Dünyadan Siber Saldırı Örnekleri
Gerçek Dünyadan Siber Saldırı Örnekleri Gerçek Dünyadan Siber Saldırı Örnekleri
Gerçek Dünyadan Siber Saldırı Örnekleri
 

Similar to Web 2.0 Güvenliği

Joomla kursu-kayseri
Joomla kursu-kayseriJoomla kursu-kayseri
Joomla kursu-kayseri
sersld62
 
Silverlight ve Sharepoint 2010
Silverlight ve Sharepoint 2010Silverlight ve Sharepoint 2010
Silverlight ve Sharepoint 2010
Evren Ayan
 
Oylg2013 web uygulamalari sizmatesti
Oylg2013 web uygulamalari sizmatestiOylg2013 web uygulamalari sizmatesti
Oylg2013 web uygulamalari sizmatesti
Mehmet Ince
 
Balkanay Web Sunum
Balkanay Web SunumBalkanay Web Sunum
Balkanay Web Sunum
eroglu
 
Apache Htaccess Güvenlik Testleri
Apache Htaccess Güvenlik TestleriApache Htaccess Güvenlik Testleri
Apache Htaccess Güvenlik Testleri
BGA Cyber Security
 
Oracle kursu-gaziosmanpasa
Oracle kursu-gaziosmanpasaOracle kursu-gaziosmanpasa
Oracle kursu-gaziosmanpasa
sersld83
 
Java me kursu-kayseri
Java me kursu-kayseriJava me kursu-kayseri
Java me kursu-kayseri
sersld61
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Security
mtimur
 
Joomla kursu-bahcelievler
Joomla kursu-bahcelievlerJoomla kursu-bahcelievler
Joomla kursu-bahcelievler
sersld62
 

Similar to Web 2.0 Güvenliği (20)

.Net ile yazılım güvenliği
.Net ile yazılım güvenliği.Net ile yazılım güvenliği
.Net ile yazılım güvenliği
 
Java Web Uygulama Geliştirme
Java Web Uygulama GeliştirmeJava Web Uygulama Geliştirme
Java Web Uygulama Geliştirme
 
Güvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptxGüvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptx
 
Joomla kursu-kayseri
Joomla kursu-kayseriJoomla kursu-kayseri
Joomla kursu-kayseri
 
Asp.net ajax
Asp.net ajaxAsp.net ajax
Asp.net ajax
 
[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...
[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...
[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ...
 
Ajax
Ajax Ajax
Ajax
 
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİCRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
 
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİCRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
CRYPTTECH NG ÜRÜNLERİ ÖZELLİKLERİ
 
Silverlight ve Sharepoint 2010
Silverlight ve Sharepoint 2010Silverlight ve Sharepoint 2010
Silverlight ve Sharepoint 2010
 
Siber Güvenlikte Ofansif Yaklaşımlar
Siber Güvenlikte Ofansif YaklaşımlarSiber Güvenlikte Ofansif Yaklaşımlar
Siber Güvenlikte Ofansif Yaklaşımlar
 
Oylg2013 web uygulamalari sizmatesti
Oylg2013 web uygulamalari sizmatestiOylg2013 web uygulamalari sizmatesti
Oylg2013 web uygulamalari sizmatesti
 
Microsoft Azure Sertifikasyon Sınavlarıyla alakalı Bilgi Edinin!
Microsoft Azure Sertifikasyon Sınavlarıyla alakalı Bilgi Edinin!Microsoft Azure Sertifikasyon Sınavlarıyla alakalı Bilgi Edinin!
Microsoft Azure Sertifikasyon Sınavlarıyla alakalı Bilgi Edinin!
 
Web Technolojileri
Web TechnolojileriWeb Technolojileri
Web Technolojileri
 
Balkanay Web Sunum
Balkanay Web SunumBalkanay Web Sunum
Balkanay Web Sunum
 
Apache Htaccess Güvenlik Testleri
Apache Htaccess Güvenlik TestleriApache Htaccess Güvenlik Testleri
Apache Htaccess Güvenlik Testleri
 
Oracle kursu-gaziosmanpasa
Oracle kursu-gaziosmanpasaOracle kursu-gaziosmanpasa
Oracle kursu-gaziosmanpasa
 
Java me kursu-kayseri
Java me kursu-kayseriJava me kursu-kayseri
Java me kursu-kayseri
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Security
 
Joomla kursu-bahcelievler
Joomla kursu-bahcelievlerJoomla kursu-bahcelievler
Joomla kursu-bahcelievler
 

More from BGA Cyber Security

More from BGA Cyber Security (20)

WEBSOCKET Protokolünün Derinlemesine İncelenmesi
WEBSOCKET Protokolünün Derinlemesine İncelenmesiWEBSOCKET Protokolünün Derinlemesine İncelenmesi
WEBSOCKET Protokolünün Derinlemesine İncelenmesi
 
Tatil Öncesi Güvenlik Kontrol Listesi.pdf
Tatil Öncesi Güvenlik Kontrol Listesi.pdfTatil Öncesi Güvenlik Kontrol Listesi.pdf
Tatil Öncesi Güvenlik Kontrol Listesi.pdf
 
Ücretsiz Bilgi Güvenliği Farkındalık Eğitimi
Ücretsiz Bilgi Güvenliği Farkındalık EğitimiÜcretsiz Bilgi Güvenliği Farkındalık Eğitimi
Ücretsiz Bilgi Güvenliği Farkındalık Eğitimi
 
3. parti firma risklerinden nasıl korunulur?
3. parti firma risklerinden nasıl korunulur?3. parti firma risklerinden nasıl korunulur?
3. parti firma risklerinden nasıl korunulur?
 
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware SaldırılarıBir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
 
Webinar: Popüler black marketler
Webinar: Popüler black marketlerWebinar: Popüler black marketler
Webinar: Popüler black marketler
 
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım SenaryolarıWebinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
 
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
 
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm ÖnerileriDNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
 
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini ArttırmakWebinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
 
Open Source Soc Araçları Eğitimi 2020-II
Open Source Soc Araçları Eğitimi 2020-IIOpen Source Soc Araçları Eğitimi 2020-II
Open Source Soc Araçları Eğitimi 2020-II
 
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner GüvenliğiWebinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
 
Hacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem AnaliziHacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem Analizi
 
Open Source SOC Kurulumu
Open Source SOC KurulumuOpen Source SOC Kurulumu
Open Source SOC Kurulumu
 
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİRAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
 
Siber Fidye 2020 Raporu
Siber Fidye 2020 RaporuSiber Fidye 2020 Raporu
Siber Fidye 2020 Raporu
 
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing RaporuBGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
 
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu ÇözümlerSOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
 
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of SecretsVeri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
 
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi Toplama
Aktif Dizin (Active Directory) Güvenlik Testleri - I:  Bilgi ToplamaAktif Dizin (Active Directory) Güvenlik Testleri - I:  Bilgi Toplama
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi Toplama
 

Web 2.0 Güvenliği

  • 1. Web 2.0 Güvenliği @2014 Örnek Eğitim Notu bilgi@bga.com.tr Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 2. Javascript • 1995 Netscape, Brendan Eich tarafından geliştirildi. • Dinamik olmasının yanında en önemli iki özelliği; – Lambda – Closure Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 3. Javascript - Lambda var ikiEkle = function (x) { return x + 2; } ikiEkle(3); // sonuç 5 Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 4. Javascript - Closure function birEkle (y) { return function() { return y + 1; }; } var x = birEkle(5); x(); // sonuç 6 Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 5. Mashup • Diğer servislerin verilerinin birleştirilmesi ve sunulması ile oluşturulan servis tipidir. • Başkasının aklını kullanmak • Mashup tipleri; – İstemci taraflı – Sunucu taraflı Mashup’larda Kullanılabilen Popüler Servisler Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 6. İstemci Taraflı Mashup JSON REST XML Uygulama Browser proxy AJAX Kütüphanesi Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 7. Sunucu Taraflı Mashup JSON REST XML Browser Uygulama AJAX Kütüphanesi Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 8. AJAX • Asynchronous JavaScript and XML • Asenkron web uygulamaları geliştirmek için kullanılan birbirleri ile uzaktan ilgili web geliştirme teknolojileridir; – Javascript – DOM, HTML, CSS – XMLHttpRequest nesnesi – JSON (XML daha azınlıkta) Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 9. BEKLEME ZAMANI İSTEMCİ 1. Kullanıcı linke tıklar 2. Uygulama cevap döner WEB UYGUALAMA Senkron Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 10. Asenkron Kullanıcı butona basar WEB UYGUALAMA AJAX uygulama kodları İSTEMCİ Kullanıcı linke tıklar Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 11. AJAX Örneği <script type="text/javascript"> function sH(str){ // kod } </script> <form> İsim: <input type="text" onkeyup="sH(this.value)" /> </form> Öneriler: <span id="txtHint"></span> Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 12. AJAX Örneği – İstek / Cevap Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 13. AJAX Veri Transfer Şekilleri • XML – Yarı yapısal dil – Javascript kullanılan istemciler için anlamsız • JSON – Javascript tabanlı bir notasyon şekli – Javascript kullanılan istemciler işlemeye hazır yapı Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 14. JSON • Javascript tabanlı hafif sıklet veri iletişim formatıdır. • XML ile karşılaştırıldığında, daha okunaklı ve anlaşılır ve daha kolay parse edilebilir. { “name” : “hagi” , “name” : “ronaldo” } [“ulvi” , “rıza”, “metin”, “cevat” ] { “names” : [“feyyaz”, “cüneyt”, “müjdat”] } Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 15. XML vs. JSON <menu id="file" value="File"> <popup> <menuitem value="New" onclick="CreateNewDoc()" /> <menuitem value="Open" onclick="OpenDoc()" /> </popup> </menu> {"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"} ] }} Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 16. Güvensiz Callback’ler • Dinamik script’ler ile yapılan asenkron veri aktarımı istek /insecurecallback/cntcts.php?callback=showContacts&q=a cevap showContacts([“ahmet”,”veli”,“cevdet”]); Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 17. Güvensiz Callback’ler - Saldırı • CSRF kullanılarak kontak listesinin çalınması <script type="text/javascript"> function hijacked (contacts){ alert(contacts); } </script> <script src="http://hedef/cntcts.php?callback=hijacked&q=*"> </script> Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 18. Güvenli JSON Yönetimi • JSON verisinin işlenebilmesi için model nesnelere dönüştürülmesi gerekir. • Dönüştürme işlemi sırasında oluşabilecek injection problemleri engellemek için JSON verileri mutlaka yapısal olarak denetlenmelidir. – Sunucu tarafında JSON veriyi alırken – Sunucu tarafında JSON veriyi istemciye gönderirken – İstemci tarafında JSON veriyi alırken Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 19. JSON Denetim Noktaları JSON kontrolü İstemci Uygulama JSON kontrolü İstemci Uygulama JSON kontrolü İstemci Uygulama Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 20. JSON Denetimi - Java JSONParser jsonParser = new JSONParser(); try{ JSONObject json = (JSONObject)jsonParser.parse(jsonString); } catch(ParseException pe){ // invalid JSON } Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 21. JSON Denetimi - Javascript isValid = true; try{ obj = JSON.parse(json); } catch(e){ // Invalid JSON isValid = false; } Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 22. JSON Hijacking • 2006’da Gmail’de bulunan bir zafiyet ile popüler olan bir zafiyettir. • Modern browser’lar ile beraber günümüzde düşük seviyeli bir zafiyettir. Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 23. JSON Hijacking – Senaryo SALDIRGANIN WEB SİTESİ GET / HTTP/1.0 [‘ahmet’, ‘veli’, ‘cevat’, ‘şeyhmus’] 3 HTML 1 GET /ArkadaslarimiGetir.do HTTP/1.0 Cookie: JESSIONID=3asdkasdja SOSYAL AĞ WEB UYGULAMASI kullanıcı 2 [‘ahmet’, ‘veli’, ‘cevat’, ‘şeyhmus’] Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 24. JSON Hijacking - Kod function Array(){ var orjinalArray = this; var yeniArray = function(){ for(var x in orjinalArray) calinanListe += orjinalArray[x] + “,”; // çalınanListe’yi gönder } // this nesnesinin dolmasını bekle setTimeout(yeniArray, 150); } Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 25. JSON Hijacking - Exploit <html> <head> <script> {Array OVERRIDE} </script> </head> <body> <script src=“http://sosyalag.com/ArkadaslarimiGetir.do”> </script> </body> </html> Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 26. JSON/Javascript Önlemler • Eski tarayıcılar için; – Hassas bilgi dönen AJAX isteklerinin GET yerine sadece POST ile çalıştırılması – JSON array yerine JSON object dönülmesi {…} – CSRF token’ları – Hassas bilgi; • Kullanıcı listesi, profili, mesajları, geçmişi v.b. • Kişisel bilgiler; adres, telefon, isim soyisim, v.b. • Sağlık bilgileri, finansal bilgiler v.b. Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 27. Cross Domain Access - CORS • SOP’un yani Aynı Kaynak Politikası’nın uyguladığı cross domain istek kısıtlamalarına karşı geliştirilen bir W3C standardıdır. • Kaynak: {protokol, alan ismi, port} Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 28. SOP istemci sunucu abc.com browser http://abc.com/one.js xyz.com Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 29. SOP ByPass http://abc.com/one.js browser abc.com xyz.com proxy istekleri Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 30. CORS Örnek GET / HTTP/1.1 Host: xyz.com Origin: abc.com HTTP/1.1 200 OK Access-Control-Allow-Origin: * xyz.com browser http://abc.com/one.js Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 31. CORS - Browser Desteği Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 32. Güvenli CORS Stratejileri • Access-Control-Allow-Origin: * değeri dikkatli kullanılmalıdır. Access-Control-Allow-Origin: * Access-Control-Allow-Origin: www.izinverilendomain.com Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 33. Güvenli CORS Stratejileri • Origin: domainismi değeri klasik yetkilendirme kontrolleri için kullanılmamalıdır. String origin = request.getHeader(“Origin”); if(origin!=null && origin.equals(“www.abc.com”)) // hassas bilgileri istemciye dön else // normal sayfayı göster Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 34. Güvenli CORS Stratejileri • Origin başlığının değeri hedef uygulamalarda mutlaka kontrol edilmelidir. response.setHeader(“Access-Control-Allow-Origin”, “www.abc.com”); // isteği işlemeye devam et String origin = request.getHeader(“Origin”); if(origin!=null && origin.equals(“www.abc.com”)) response.setHeader(“Access-Control-Allow-Origin”, “www.abc.com”); else return; // isteği işlemeden dön Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 35. DOM Tabanlı XSS • Javascript’in neden olduğu XSS çeşididir. <script> function printName(){ var index = length = document.URL.length; if(document.URL.indexOf("name=") != -1) index = document.URL.indexOf("name=") + 5; var substr = document.URL.substring(index,length); document.write(unescape(substr)); } Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 36. DOM Tabanlı XSS - Senaryo Sunucuya giden parametre Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 37. DOM Tabanlı XSS - Senaryo Sunucuya giden parametre yok! Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 38. DOM Tabanlı XSS - Senaryo Sunucuya giden XSS String yok! Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 39. DOM Tabanlı XSS - Önlemler • HTML Kodlama kullanılması element.innerHTML = “<%= HTMLEncode(param) %>”; element.outerHTML = “<%= HTMLEncode(param) %>”; document.write(“<%= HTMLEncode(param) %>”); document.writeln(“<%= HTMLEncode(param) %>”); Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 40. DOM Tabanlı XSS - Önlemler • Javascript Kodlama kullanılması var x = document.createElement(“input”); x.setAttribute(“name”, “cname”); x.setAttribute(“value”, “<%= JSEncode(param) %>”); var form1 = document.forms[0]; form1.appendChild(x); Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 41. İstemci Taraflı Kodlama • Browser’da, güvensiz mashup kaynaklarını çağıran javascript uygulamalarının alması gereken önlemler • Sunucu taraflı XSS koruma yöntemlerinin istemci tarafındaki versiyonu • JQEncoder Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 42. İstemci Taraflı Kodlama Uygulama İstemci CSS/URL/Javascript HTML/HTMLAttribute kodlama Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 43. HTML ve HTML Attribute Kodlama HTML Kodlama: $('#item1').html(data[0]); $('#item1').html($.encoder.encodeForHTML(data[0])); HTML Attribute Kodlama: $('#item2').html('<div width="' + data[1] + '">'); ec = $.encoder.encodeForHTMLAttribute('width', data[1], false); $('#item2').html('<div ' + ec+ '>); Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 44. Javascript ve URL Kodlama Javascript Kodlama: $('#item4').html('<div onclick="s='' + data[3] + ''">'); ec = $.encoder.encodeForJavascript(data[3]); $('#item4').html('<div onclick="s='' + ec + ''">'); URL Kodlama: $('#item5').html('<a href="?a=' + data[4] + '">link</a>'); ec = $.encoder.encodeForURL(data[4]); $('#item5').html('<a href="?a=' + ec + '">link</a>'); Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 45. CSS Kodlama CSS Kodlama: $('#item3').html('<div style="color:' + data[2] + ';">'); ec = $.encoder.encodeForCSS('background-color', data[2], false); try{ $('#item3').html('<div style="' + ec + '">'); } catch(e){ alert('encodeForCSS throws exception: ' + e); } Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 46. SOA Güven Karmaşası • Servis tabanlı mimaride karşılaşılan en büyük dizayn problemlerinde biri güven karmaşasıdır. • Servis veren veya tüketen bileşenler güvenlik kontrollerini birbirlerinin sorumluluğu olarak görmektedirler. • Bu "yanlış sorumluluk transferi" ciddi güvenlik problemlerine yol açmaktadır. Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 47. SOA Güven Karmaşası istemci sunucu A Ben intranet’teyim, uygulama tarafına güveniyorum! Ekim 2009 Zamanım az, web servis tarafı kontrolleri yapmıştır! B intranet web servis Kasım 2012 Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr
  • 48. Kontrol Stratejisi • SOA’nın mantığına uygun olarak her servis aldığı parametre değerleri ile yapabileceği maximum kontrolü gerçekleştirmelidir. function paraOde(int id, String tamisim, String tckno, int miktar, DateTime odemeTarihi, String ccNo){ // tckno ile tamisim örtüşüyor mu? // odemeTarihi uygun mu? // ccNo ile tamisim örtüşüyor mu? // miktar doğru mu? // ... } Güvenli Web 2.0 Eğitimi© 2014 |Bilgi Güvenliği AKADEMİSİ | www.bga.com.tr