SlideShare uma empresa Scribd logo
1 de 10
Web Uygulama Güvenliği
Denetim Metodu
blog.btrisk.com @btrisk /btrisktv /btrisk
1
i. Web Uygulama Güvenliği Denetim
Yaklaşım Özeti
Takip eden bölümlerde web uygulamalarına yönelik uygulama
mantığını hedef alanlar dahil “tüm” tehdit türlerine karşı güvence
verebilmek için BTRisk tarafından uygulanan denetim adımları
bulunabilir.
Tüm tehditleri göz önüne almayı güvece altına alan adımların
izlenmesinde yoğunluk, tekrar ve sıralama konusunda şu prensipler
göz önüne alınmaktadır:
 Uygulama fonksiyonalitesi, mimarisi ve teknolojisi’nin
anlaşılması: Yaklaşımımızın da ilk adımını oluşturan uygulamanın
anlaşılması ve haritalanması bize muhtemel hedef noktalarını
daha net görme imkanı sunmakta, dolayısıyla uygulamaya özgü
belli alanlara daha fazla odaklanmamıza izin vermektedir.
 Denetim sırasında tespit edilen açıklıkların önceki adımlara ve
diğer açıklık türlerine etkisinin değerlendirilmesi: Denetim
sırasında tespit edilen her açıklık tamamlanmış olsa dahi daha
önceki adımların daha etkin gerçekleştirilmesine (örneğin bir
erişim kontrolü açıklığı nedeniyle kullanıcı adlarının öğrenilmesi
parola saldırısını etkinleştirebilir), veya bir açıklık tespitinin diğer
açıklıkların kullanılmasına katkı sağlamasına (örneğin girdi
filtrelemedeki bir açıklık uygulamanın geneline etki ediyorsa
diğer enjeksiyon saldırıları bu bilgi ile daha etkin
gerçekleştirilebilir) imkan tanıyabilir.
 Yukarıda sayılan prensipler, ağ güvenlik denetiminde de olduğu
gibi seri adımlar olarak ifade edilen denetim yaklaşımının
denetlenen uygulamanın niteliklerine uygun olarak
özelleştirilmesine neden olabilecektir.
blog.btrisk.com @btrisk /btrisktv /btrisk
2
ii.Web Uygulama Güvenliği Denetim
Yaklaşım Detayı
Uygulama İçeriğinin Haritalanması
 Link’lenmiş içeriğin tespiti
o Uygulamanın kendi içinde linklerle erişilebilen görünen
içeriğinin tespiti
o Arama motorlarının hizmetinden faydalanılarak siteye
başka sitelerden linklerin ve arama motoru tarafından
belirlenmiş linklerin tespiti
 Diğer içeriğin tespiti
o Linklerle ulaşılamayan saklı içeriğin araştırılması
o Öntanımlı içeriğin araştırılması ve tespiti
 Standart dışı erişim metodları ile içeriğe erişim araştırması
o URL içeriğinde veya POST verisi içinde fonksiyonaliteye
ve içeriğin sunulmasına ilişkin kontrol amacıyla kullanılan
parametrelerin değiştirilmesi yöntemi ile normalde
sunulmayan içerik ve fonksiyonalitenin araştırılması
o “Debug” parametrelerinin araştırılması ve bu
blog.btrisk.com @btrisk /btrisktv /btrisk
3
parametrelerin değiştirilmesi suretiyle “debug” içeriğine
erişilmeye çalışılması
Uygulama Fonksiyonalite ve Teknoloji Analizi
 Uygulamanın tüm fonksiyonlarının gözden geçirilmesi suretiyle
kendisinin sağladığı ve diğer destek sistemlerinden temin ettiği
(e-posta, loglama, vb. Gibi) fonksiyonalitenin anlaşılması
 Uygulamanın veri girdi noktalarının belirlenmesi
 Kullanılan teknolojilerin tüm katmanlar (web sunucusu,
uygulama sunucusu, istemci betik ve uygulamaları, vd.) için
belirlenmesi
 Tespit edilen fonksiyonalite, girdi noktaları ve teknolojilere
yönelik saldırı yüzeyinin haritalanması
İstemci Tarafı Kontrollerinin Testi
 İstemci ile sunucu arasında kullanılan veri iletim yöntemlerinin
belirlenmesi
o Saklı alanlar (hidden fields)
o Çerezler (cookies)
o URL linklerinin içine gömülü önceden belirlenmiş
parametreler
o ASP.NET ViewState içeriği (ViewState alanına programcı
tarafından parametre eklenmesi mümkündür)
 İstemci tarafında uygulanan girdi kontrollerinin tespiti, bu
kontrollerin sunucu tarafında da gerçekleştirilip
gerçekleştirilmediğinin kontrolü
o Uzunluk limit kontrollerinin testi
o JavaScript ile yapılan kontrollerin tespiti ve saldırı
proxy’leri aracılığıyla geçersiz kılınması
o Disable edilmiş form elemanlarının değiştirilerek
sunucuya gönderilmesi ve uygulama üzerindeki etkisinin
gözlenmesi
 İstemci tarayıcısında çalışan mobil uygulamaların incelenmesi
o Java Applet kullanımının tespit edilmesi, bu bileşen
aracılığıyla yapılan kontrollerin geçersiz kılınması,
applet’in sunduğu metodlar kullanılarak istenilen
verilerin kodlanması, applet’in decompile edilerek
kaynak kodunun incelenmesi
o ActiveX kullanımının tespit edilmesi, metodlarının ve
blog.btrisk.com @btrisk /btrisktv /btrisk
4
kullanım amaçlarının analiz edilerek farklı amaçlarla
kullanılması, gerçekleştirdiği kontrollerin geçersiz
kılınması
o Flash nesnelerinin tespiti, ActionScript kaynak koduna
disassemble edilerek fonksiyonalitesinin anlaşılması,
flash nesnesi ile yapılan kontrollerini saldırı proxy’si ile
geçersiz kılınması
Kullanıcı Tanılama Testleri
 Kullanıcı tanılama mekanizmalarının anlaşılması
 Doğrudan saldırı testi
o Parola kalitesinin testi (yeni kullanıcı yaratma ve parola
değişikliği ile)
o Kullanıcı kodu tespit etme saldırıları (uygulamanın
mevcut ve mevcut olmayan kullanıcı kodlarına verdiği
yanıt farklılıklarından yola çıkarak)
o Sözlük ve kaba kuvvet saldırılarıyla parola tahmin
saldırıları
 Özel kullanıcı hesap yönetim ve kullanıcı tanılama
fonksiyonalitesine yönelik testler
o Kilitlenme veya parola unutma durumunda hesap
kurtarma (reset) fonksiyonalitesinin açıklıklar açısından
testi
o “Beni hatırla” fonksiyonalitesinin istemci tarafında,
tahmin edilebilir veya log bilgilerinden dolayı ortaya
çıkabilecek riskler açısından incelenmesi
o Başka kullanıcı haklarıyla çalışan fonksiyonalitenin
araştırılması
o Kullanıcı kodlarının tekliğinin araştırılması
o Erişim bilgilerinin (kullanıcı kodu, parola, diğer) tahmin
edilebilirliğinin değerlendirilmesi
o Erişim bilgileri iletim yöntemlerinin güvenliğinin
denetlenmesi
o Kullanıcı erişim bilgilerinin kullanıcılara iletim
yöntemlerinin güvenliğinin denetlenmesi
 Kullanıcı tanılama mantığına yönelik testler
o Uygulamaya çeşitli girdi manipülasyonlarıyla (kontrol
mantığını bozan, uygulamaya hafıza taşma hatası
blog.btrisk.com @btrisk /btrisktv /btrisk
5
yaşatan, vd.) hata aldırılması durumunda kullanıcı
tanılama adımının geçilip geçilemediğinin denetimi
o Çok aşamalı kullanıcı tanılama yöntemlerinde ara
aşamaların atlanıp atlanamayacağının denetimi. Aynı
zamanda ara aşamalarda oturum yönetim
parametrelerinin değiştirilip değiştirilmediğinin denetimi
 Yukarıdaki adımlar neticesinde tespit edilen açıklıkların
kullanılması ve yetkisiz erişim gerçekleştirilmeye çalışılması
Oturum Yönetimi Testleri
 Oturum yönetim mekanizmasının anlaşılması
 “Token” üretim güvenliğinin denetlenmesi
o Token’ın içeriğinin anlamlandırılıp
anlamlandırılamadığının incelenmesi
o Token’ın tahmin edilebilirliğinin denetlenmesi
 “Token” iletim ve kullanımındaki güvenlik açıklıklarının
denetlenmesi
o Token’ların iletim güvenliğinin incelenmesi
o Token’ların iz kayıtlarında (log kayıtlarında) görülüp
görülmeyeceğinin incelenmesi (örneğin URL içinde
iletilmesi sonucunda proxy, ISP ve web sunucusu iz
kayıtlarında görülmesi)
o Token’ların oturumlarla ilişkilendirilme yönteminin
incelenmesi (aynı token’ın aynı kullanıcıyla farklı
oturumlarda ilişkilendirilip ilişkilendirilmediğinin, aynı
anda 2 oturum açılması durumunda farklı oturum
token’ları üretilip üretilmediğinin denetimi)
o Oturum sonlandırmanın güvenli biçimde yapılıp
yapılmadığının denetimi
o “Session Fixation” açıklığının test edilmesi (tanılama
sonrası oturum token’ının tazelenmemesine karşın
denetlenmesi)
o “XSRF – Cross Site Request Forgery” açıklığının test
edilmesi (XSRF özellikle çok kullanıcılı ve bir kullanıcının
yüklediği içeriğe diğer kullanıcıların erişmesi durumunda
oturum yönetimi için sadece token’a güvenilmesi
durumunda ortaya çıkan bir açıklıktır)
o Çerez (cookie) kapsamlarının yeterli biçimde kısıtlanıp
kısıtlanmadığının incelenmesi
blog.btrisk.com @btrisk /btrisktv /btrisk
6
Erişim Kontrol Testleri
 Uygulamanın erişim kontrol ihtiyaçlarının anlaşılması (yatay
olarak farklı kullanıcıların erişim kontrol ihtiyaçları ve dikey
olarak sistem yöneticisi ve kullanıcı erişim kontrol ihtiyaçlarının
anlaşılması)
 Birden fazla farklı kullanıcı koduyla uygulamaya erişilerek erişim
kontrol yeterliliğinin denetlenmesi
 Sistem yöneticisi haklarıyla erişilebilen fonksiyonalite ve içeriğe
kısıtlı haklara sahip kullanıcı olarak erişilip erişilemediğinin
denetlenmesi
 Güvensiz erişim kontrol mekanizmalarının (örneğin saklı bir form
sahasında gönderilen bir parametreye veya HTTP referer
başlığındaki değere dayanarak yapılan kontrollerin)
denetlenmesi
Tüm Parametrelerin “Fuzz” Edilmesi
 İstemciden sunucuya giden tüm istek parametrelerinin belli
saldırı tiplerine uygun olarak “fuzz” edilmesi, yani beklenmeyen
değerler gönderilerek hatalı bir yanıt gelip gelmediğinin
incelenmesi yöntemiyle açıklık tespiti yapılması
o SQL enjeksiyonuna yönelik girdilerin gönderilmesi
o XSS (Cross Site Scripting) saldırılarına yönelik girdilerin
gönderilmesi
o İşletim sistemi komut enjeksiyonuna yönelik girdilerin
gönderilmesi
o Dizin aşım saldırılarına yönelik girdilerin gönderilmesi
o Web sunucusunda çalışan (PHP, ASP.NET gibi) betik
enjeksiyonuna yönelik girdilerin gönderilmesi
o Dosya dahil etme (file inclusion) komut enjeksiyonuna
yönelik girdilerin gönderilmesi
Fonksiyonalite’ye Özgü Saldırı Testleri
 Bilgi toplama ve fonksiyonalite analizi bölümündeki aktiviteler
sırasında tespit edilen aşağıdaki türde destek sistemlerine
ulaşarak ek fonksiyonalite sağlayan uygulama alanlarına yönelik
olarak aşağıdaki testlerin gerçekleştirilmesi
o SMTP enjeksiyonu (e-posta fonksiyonalitesi için arka
tarafta bir e-posta sunucusuna ulaşılıyorsa)
o Yine işletim sistemi veya veritabanı sunucuları üzerinde
blog.btrisk.com @btrisk /btrisktv /btrisk
7
çalışan yüksek fonksiyonalite sağlayan destek
uygulamalarında yer alabilecek hafıza taşma, “integer”,
“format string” açıklıklarının (fonksiyonelitenin tespit
edildiği alanlara odaklanılarak) denetlenmesi
o SOAP enjeksiyonu (ek fonksiyonalite için web servisi
kullanılıyorsa)
o LDAP enjeksiyonu (uygulama bir dizin sunucusundan
sorgulama yapıyorsa)
o XPATH enjeksiyonu (uygulama bir XML veri kaynağından
sorgulama yapıyorsa)
Mantık Hatalarının Testi
 Uygulama mantık hataları testleri her uygulamaya özel bir
yaklaşım gerektirmekte, uygulama fonksiyonalitesi ve işlem
akışları anlaşıldıktan sonra uygulama geliştiricinin varsayımlarını
tahmin etme ve bu varsayımlardaki güvenlik açıklarını
değerlendirme şeklinde gerçekleştirilmektedir. Mantık
hatalarının aranacağı temel alanlar şunlardır:
o Çok aşamalı işlemler ve bu işlemlerin her aşamasında bir
önceki aşamadaki kontrollerin uygulandığı varsayımı
o İstemci tarafında yapılan kontroller sonrası tamlığı
sağlanan ancak saldırı proxy’si aracılığıyla bu kontrollerin
geçersiz kılındığı durumlarda uygulamanın beklediği
girdilerin tamamının gönderilmemesi durumunda
uygulama davranışındaki değişiklikler
o Güven sınırlarının oluşturulmasındaki hatalar, örneğin bir
kullanıcı belli bir kontrolü geçerek belli bir işlem için
güvenilir statüsüne geçebilir ve bu statü ile erişmemesi
gereken başka bir kaynağa da ulaşabilir
o İşlem mantığında bulunan hatalar, örneğin bir işlem için
üst limit konulan bir forma negatif girdi girerek uygulama
davranışının değiştirilmesi, veya aynı sonuca ulaşmak
üzere bir miktar limiti konmasına rağmen çok sayıda
işlemle aynı miktar için işlem yapılması gibi
Web Sunucusunun Testi
 Web uygulama katmanını destekleyen HTTP sunucusuna yönelik
test adımları HTTP sunucusunun model ve versiyonunu tespit
etmeyi ve aşağıdaki aktiviteleri içerir:
o Öntanımlı kullanıcılar ve parolalarının denetimi
blog.btrisk.com @btrisk /btrisktv /btrisk
8
o Öntanımlı içeriğin tespiti
o Tehlikeli HTTP metodlarının desteklenip
desteklenmediğinin denetimi
o Proxy fonksiyonalitesinin varlığı ve ağdaki başka
kaynaklara yönelik saldırı amaçlı kullanıp
kullanılamayacağının tespiti
o Sanal makine (virtual host) ayarlarındaki açıklıkların
denetimi (Host HTTP başlık alanına doğru, hatalı ve IP
adresleri girilmesi yöntemleriyle)
o Web sunucu yazılımındaki açıklıkların denetlenmesi
(sunucu model ve versiyonuna yönelik bilinen açıklıkların
araştırılması ve denenmesi yoluyla)
Diğer Testler
 Daha önce sayılanların dışında aşağıdaki testler de web uygulama
güvenlik denetiminin parçasıdır:
o Kullanılan tüm JavaScript betiklerinin Document Object
Model (DOM)’i hedef alan bir XSS saldırısına imkan
tanıyıp tanımayacakları açısından incelenmesi (JavaScript
kodu URL içinde yer alan bir parametreyi tehlikeli DOM
metodlarıyla işliyorsa DOM temelli bir XSS açıklığı
doğabilir)
o Çerezler (cookies) nedeniyle oluşabilecek lokal
mahremiyet açıklıklarının incelenmesi
o Denetim sırasında tespit edilecek bilgi sızmalarının
(örneğin çok detay içeren hata mesajları, uygulama kodu,
dizin listesi gibi) sağladığı bilgilerin değerlendirilmesi ve
diğer saldırılara girdi sağlaması
o Zayıf SSL kriptolama ve özet algoritmalarının desteklenip
desteklenmediğinin denetlenmesi
o İsimli “frame”ler kullanılıyorsa frame enjeksiyon
açıklığının test edilmesi
blog.btrisk.com @btrisk /btrisktv /btrisk
9
BTRİSK Hakkında
2009 yılında kurulmuş ve sadece bilgi güvenliği hizmetlerine
odaklanmış olan BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
bilgi güvenliği problemine yönetim kurulu seviyesinden sistem odası
uygulamasına kadar uzanan alanda çözüm üretmektedir.
BTRisk bilgi güvenliği problemini görünür hale getirerek
algılanmasını, anlaşılmasını ve dolayısıyla ele alınmasını mümkün
hale getirmektedir.
BTRisk bilgi güvenliği problemine karşı geliştirdiği yaklaşımları gerçek
hayat koşullarında test etmiş ve uygulanabilir hale getirmiştir.
Bilgi güvenliği ve BT yönetişim hizmet alanlarımız aşağıdaki gibidir:
 Pentest Hizmetleri
 Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 Bilgi Güvenliği Operasyon Hizmetleri
 Bilgi Güvenliği Eğitimleri
Özgün ürünlerimiz aşağıdaki gibidir:
 BTRWATCH Bilgi Güvenliği Risk Analizi ve Denetim Uygulaması
 BTRMON 5651 Uyumlu Wi-Fi ve Kablolu Ağ Hotspot Çözümü
 BTROTP Tek Kullanımlık Parola Çözümü
Pentest & BT
Denetimi
ISO27001
Danışmanlık
Hizmetleri
BG Operasyon
Hizmetleri

Mais conteúdo relacionado

Mais de BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri

Mais de BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri (20)

BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-3
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-1
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
 
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMUBTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
BTRISK ISO27001 UYGULAMA EGITIMI SUNUMU
 
Kali Linux Hakkında Herşey
Kali Linux Hakkında HerşeyKali Linux Hakkında Herşey
Kali Linux Hakkında Herşey
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
 
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi EğitimiBTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
 
Unix Denetim Dokümanı
Unix Denetim DokümanıUnix Denetim Dokümanı
Unix Denetim Dokümanı
 
BTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi EğitimiBTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi Eğitimi
 
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi EğitimiBTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
 
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
BTRisk Android Uygulamalara Malware Yerleştirme SunumuBTRisk Android Uygulamalara Malware Yerleştirme Sunumu
BTRisk Android Uygulamalara Malware Yerleştirme Sunumu
 
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi SunumuBTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
BTRisk ISO 27001:2013 Bilgilendirme ve İç Denetim Eğitimi Sunumu
 
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi SunumuBilgi Güvenliği Farkındalık Eğitimi Sunumu
Bilgi Güvenliği Farkındalık Eğitimi Sunumu
 
BTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi SunumuBTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi Sunumu
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi EğitimiBTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
 
BTRWATCH ISO27001 Yazılımı
BTRWATCH ISO27001 YazılımıBTRWATCH ISO27001 Yazılımı
BTRWATCH ISO27001 Yazılımı
 
Jmeter ile uygulama katmanında yük testi gerçekleştirme
Jmeter ile uygulama katmanında yük testi gerçekleştirmeJmeter ile uygulama katmanında yük testi gerçekleştirme
Jmeter ile uygulama katmanında yük testi gerçekleştirme
 
ISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişikliklerISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişiklikler
 

BTRisk Web Uygulama Güvenliği Denetim Metodu

  • 2. blog.btrisk.com @btrisk /btrisktv /btrisk 1 i. Web Uygulama Güvenliği Denetim Yaklaşım Özeti Takip eden bölümlerde web uygulamalarına yönelik uygulama mantığını hedef alanlar dahil “tüm” tehdit türlerine karşı güvence verebilmek için BTRisk tarafından uygulanan denetim adımları bulunabilir. Tüm tehditleri göz önüne almayı güvece altına alan adımların izlenmesinde yoğunluk, tekrar ve sıralama konusunda şu prensipler göz önüne alınmaktadır:  Uygulama fonksiyonalitesi, mimarisi ve teknolojisi’nin anlaşılması: Yaklaşımımızın da ilk adımını oluşturan uygulamanın anlaşılması ve haritalanması bize muhtemel hedef noktalarını daha net görme imkanı sunmakta, dolayısıyla uygulamaya özgü belli alanlara daha fazla odaklanmamıza izin vermektedir.  Denetim sırasında tespit edilen açıklıkların önceki adımlara ve diğer açıklık türlerine etkisinin değerlendirilmesi: Denetim sırasında tespit edilen her açıklık tamamlanmış olsa dahi daha önceki adımların daha etkin gerçekleştirilmesine (örneğin bir erişim kontrolü açıklığı nedeniyle kullanıcı adlarının öğrenilmesi parola saldırısını etkinleştirebilir), veya bir açıklık tespitinin diğer açıklıkların kullanılmasına katkı sağlamasına (örneğin girdi filtrelemedeki bir açıklık uygulamanın geneline etki ediyorsa diğer enjeksiyon saldırıları bu bilgi ile daha etkin gerçekleştirilebilir) imkan tanıyabilir.  Yukarıda sayılan prensipler, ağ güvenlik denetiminde de olduğu gibi seri adımlar olarak ifade edilen denetim yaklaşımının denetlenen uygulamanın niteliklerine uygun olarak özelleştirilmesine neden olabilecektir.
  • 3. blog.btrisk.com @btrisk /btrisktv /btrisk 2 ii.Web Uygulama Güvenliği Denetim Yaklaşım Detayı Uygulama İçeriğinin Haritalanması  Link’lenmiş içeriğin tespiti o Uygulamanın kendi içinde linklerle erişilebilen görünen içeriğinin tespiti o Arama motorlarının hizmetinden faydalanılarak siteye başka sitelerden linklerin ve arama motoru tarafından belirlenmiş linklerin tespiti  Diğer içeriğin tespiti o Linklerle ulaşılamayan saklı içeriğin araştırılması o Öntanımlı içeriğin araştırılması ve tespiti  Standart dışı erişim metodları ile içeriğe erişim araştırması o URL içeriğinde veya POST verisi içinde fonksiyonaliteye ve içeriğin sunulmasına ilişkin kontrol amacıyla kullanılan parametrelerin değiştirilmesi yöntemi ile normalde sunulmayan içerik ve fonksiyonalitenin araştırılması o “Debug” parametrelerinin araştırılması ve bu
  • 4. blog.btrisk.com @btrisk /btrisktv /btrisk 3 parametrelerin değiştirilmesi suretiyle “debug” içeriğine erişilmeye çalışılması Uygulama Fonksiyonalite ve Teknoloji Analizi  Uygulamanın tüm fonksiyonlarının gözden geçirilmesi suretiyle kendisinin sağladığı ve diğer destek sistemlerinden temin ettiği (e-posta, loglama, vb. Gibi) fonksiyonalitenin anlaşılması  Uygulamanın veri girdi noktalarının belirlenmesi  Kullanılan teknolojilerin tüm katmanlar (web sunucusu, uygulama sunucusu, istemci betik ve uygulamaları, vd.) için belirlenmesi  Tespit edilen fonksiyonalite, girdi noktaları ve teknolojilere yönelik saldırı yüzeyinin haritalanması İstemci Tarafı Kontrollerinin Testi  İstemci ile sunucu arasında kullanılan veri iletim yöntemlerinin belirlenmesi o Saklı alanlar (hidden fields) o Çerezler (cookies) o URL linklerinin içine gömülü önceden belirlenmiş parametreler o ASP.NET ViewState içeriği (ViewState alanına programcı tarafından parametre eklenmesi mümkündür)  İstemci tarafında uygulanan girdi kontrollerinin tespiti, bu kontrollerin sunucu tarafında da gerçekleştirilip gerçekleştirilmediğinin kontrolü o Uzunluk limit kontrollerinin testi o JavaScript ile yapılan kontrollerin tespiti ve saldırı proxy’leri aracılığıyla geçersiz kılınması o Disable edilmiş form elemanlarının değiştirilerek sunucuya gönderilmesi ve uygulama üzerindeki etkisinin gözlenmesi  İstemci tarayıcısında çalışan mobil uygulamaların incelenmesi o Java Applet kullanımının tespit edilmesi, bu bileşen aracılığıyla yapılan kontrollerin geçersiz kılınması, applet’in sunduğu metodlar kullanılarak istenilen verilerin kodlanması, applet’in decompile edilerek kaynak kodunun incelenmesi o ActiveX kullanımının tespit edilmesi, metodlarının ve
  • 5. blog.btrisk.com @btrisk /btrisktv /btrisk 4 kullanım amaçlarının analiz edilerek farklı amaçlarla kullanılması, gerçekleştirdiği kontrollerin geçersiz kılınması o Flash nesnelerinin tespiti, ActionScript kaynak koduna disassemble edilerek fonksiyonalitesinin anlaşılması, flash nesnesi ile yapılan kontrollerini saldırı proxy’si ile geçersiz kılınması Kullanıcı Tanılama Testleri  Kullanıcı tanılama mekanizmalarının anlaşılması  Doğrudan saldırı testi o Parola kalitesinin testi (yeni kullanıcı yaratma ve parola değişikliği ile) o Kullanıcı kodu tespit etme saldırıları (uygulamanın mevcut ve mevcut olmayan kullanıcı kodlarına verdiği yanıt farklılıklarından yola çıkarak) o Sözlük ve kaba kuvvet saldırılarıyla parola tahmin saldırıları  Özel kullanıcı hesap yönetim ve kullanıcı tanılama fonksiyonalitesine yönelik testler o Kilitlenme veya parola unutma durumunda hesap kurtarma (reset) fonksiyonalitesinin açıklıklar açısından testi o “Beni hatırla” fonksiyonalitesinin istemci tarafında, tahmin edilebilir veya log bilgilerinden dolayı ortaya çıkabilecek riskler açısından incelenmesi o Başka kullanıcı haklarıyla çalışan fonksiyonalitenin araştırılması o Kullanıcı kodlarının tekliğinin araştırılması o Erişim bilgilerinin (kullanıcı kodu, parola, diğer) tahmin edilebilirliğinin değerlendirilmesi o Erişim bilgileri iletim yöntemlerinin güvenliğinin denetlenmesi o Kullanıcı erişim bilgilerinin kullanıcılara iletim yöntemlerinin güvenliğinin denetlenmesi  Kullanıcı tanılama mantığına yönelik testler o Uygulamaya çeşitli girdi manipülasyonlarıyla (kontrol mantığını bozan, uygulamaya hafıza taşma hatası
  • 6. blog.btrisk.com @btrisk /btrisktv /btrisk 5 yaşatan, vd.) hata aldırılması durumunda kullanıcı tanılama adımının geçilip geçilemediğinin denetimi o Çok aşamalı kullanıcı tanılama yöntemlerinde ara aşamaların atlanıp atlanamayacağının denetimi. Aynı zamanda ara aşamalarda oturum yönetim parametrelerinin değiştirilip değiştirilmediğinin denetimi  Yukarıdaki adımlar neticesinde tespit edilen açıklıkların kullanılması ve yetkisiz erişim gerçekleştirilmeye çalışılması Oturum Yönetimi Testleri  Oturum yönetim mekanizmasının anlaşılması  “Token” üretim güvenliğinin denetlenmesi o Token’ın içeriğinin anlamlandırılıp anlamlandırılamadığının incelenmesi o Token’ın tahmin edilebilirliğinin denetlenmesi  “Token” iletim ve kullanımındaki güvenlik açıklıklarının denetlenmesi o Token’ların iletim güvenliğinin incelenmesi o Token’ların iz kayıtlarında (log kayıtlarında) görülüp görülmeyeceğinin incelenmesi (örneğin URL içinde iletilmesi sonucunda proxy, ISP ve web sunucusu iz kayıtlarında görülmesi) o Token’ların oturumlarla ilişkilendirilme yönteminin incelenmesi (aynı token’ın aynı kullanıcıyla farklı oturumlarda ilişkilendirilip ilişkilendirilmediğinin, aynı anda 2 oturum açılması durumunda farklı oturum token’ları üretilip üretilmediğinin denetimi) o Oturum sonlandırmanın güvenli biçimde yapılıp yapılmadığının denetimi o “Session Fixation” açıklığının test edilmesi (tanılama sonrası oturum token’ının tazelenmemesine karşın denetlenmesi) o “XSRF – Cross Site Request Forgery” açıklığının test edilmesi (XSRF özellikle çok kullanıcılı ve bir kullanıcının yüklediği içeriğe diğer kullanıcıların erişmesi durumunda oturum yönetimi için sadece token’a güvenilmesi durumunda ortaya çıkan bir açıklıktır) o Çerez (cookie) kapsamlarının yeterli biçimde kısıtlanıp kısıtlanmadığının incelenmesi
  • 7. blog.btrisk.com @btrisk /btrisktv /btrisk 6 Erişim Kontrol Testleri  Uygulamanın erişim kontrol ihtiyaçlarının anlaşılması (yatay olarak farklı kullanıcıların erişim kontrol ihtiyaçları ve dikey olarak sistem yöneticisi ve kullanıcı erişim kontrol ihtiyaçlarının anlaşılması)  Birden fazla farklı kullanıcı koduyla uygulamaya erişilerek erişim kontrol yeterliliğinin denetlenmesi  Sistem yöneticisi haklarıyla erişilebilen fonksiyonalite ve içeriğe kısıtlı haklara sahip kullanıcı olarak erişilip erişilemediğinin denetlenmesi  Güvensiz erişim kontrol mekanizmalarının (örneğin saklı bir form sahasında gönderilen bir parametreye veya HTTP referer başlığındaki değere dayanarak yapılan kontrollerin) denetlenmesi Tüm Parametrelerin “Fuzz” Edilmesi  İstemciden sunucuya giden tüm istek parametrelerinin belli saldırı tiplerine uygun olarak “fuzz” edilmesi, yani beklenmeyen değerler gönderilerek hatalı bir yanıt gelip gelmediğinin incelenmesi yöntemiyle açıklık tespiti yapılması o SQL enjeksiyonuna yönelik girdilerin gönderilmesi o XSS (Cross Site Scripting) saldırılarına yönelik girdilerin gönderilmesi o İşletim sistemi komut enjeksiyonuna yönelik girdilerin gönderilmesi o Dizin aşım saldırılarına yönelik girdilerin gönderilmesi o Web sunucusunda çalışan (PHP, ASP.NET gibi) betik enjeksiyonuna yönelik girdilerin gönderilmesi o Dosya dahil etme (file inclusion) komut enjeksiyonuna yönelik girdilerin gönderilmesi Fonksiyonalite’ye Özgü Saldırı Testleri  Bilgi toplama ve fonksiyonalite analizi bölümündeki aktiviteler sırasında tespit edilen aşağıdaki türde destek sistemlerine ulaşarak ek fonksiyonalite sağlayan uygulama alanlarına yönelik olarak aşağıdaki testlerin gerçekleştirilmesi o SMTP enjeksiyonu (e-posta fonksiyonalitesi için arka tarafta bir e-posta sunucusuna ulaşılıyorsa) o Yine işletim sistemi veya veritabanı sunucuları üzerinde
  • 8. blog.btrisk.com @btrisk /btrisktv /btrisk 7 çalışan yüksek fonksiyonalite sağlayan destek uygulamalarında yer alabilecek hafıza taşma, “integer”, “format string” açıklıklarının (fonksiyonelitenin tespit edildiği alanlara odaklanılarak) denetlenmesi o SOAP enjeksiyonu (ek fonksiyonalite için web servisi kullanılıyorsa) o LDAP enjeksiyonu (uygulama bir dizin sunucusundan sorgulama yapıyorsa) o XPATH enjeksiyonu (uygulama bir XML veri kaynağından sorgulama yapıyorsa) Mantık Hatalarının Testi  Uygulama mantık hataları testleri her uygulamaya özel bir yaklaşım gerektirmekte, uygulama fonksiyonalitesi ve işlem akışları anlaşıldıktan sonra uygulama geliştiricinin varsayımlarını tahmin etme ve bu varsayımlardaki güvenlik açıklarını değerlendirme şeklinde gerçekleştirilmektedir. Mantık hatalarının aranacağı temel alanlar şunlardır: o Çok aşamalı işlemler ve bu işlemlerin her aşamasında bir önceki aşamadaki kontrollerin uygulandığı varsayımı o İstemci tarafında yapılan kontroller sonrası tamlığı sağlanan ancak saldırı proxy’si aracılığıyla bu kontrollerin geçersiz kılındığı durumlarda uygulamanın beklediği girdilerin tamamının gönderilmemesi durumunda uygulama davranışındaki değişiklikler o Güven sınırlarının oluşturulmasındaki hatalar, örneğin bir kullanıcı belli bir kontrolü geçerek belli bir işlem için güvenilir statüsüne geçebilir ve bu statü ile erişmemesi gereken başka bir kaynağa da ulaşabilir o İşlem mantığında bulunan hatalar, örneğin bir işlem için üst limit konulan bir forma negatif girdi girerek uygulama davranışının değiştirilmesi, veya aynı sonuca ulaşmak üzere bir miktar limiti konmasına rağmen çok sayıda işlemle aynı miktar için işlem yapılması gibi Web Sunucusunun Testi  Web uygulama katmanını destekleyen HTTP sunucusuna yönelik test adımları HTTP sunucusunun model ve versiyonunu tespit etmeyi ve aşağıdaki aktiviteleri içerir: o Öntanımlı kullanıcılar ve parolalarının denetimi
  • 9. blog.btrisk.com @btrisk /btrisktv /btrisk 8 o Öntanımlı içeriğin tespiti o Tehlikeli HTTP metodlarının desteklenip desteklenmediğinin denetimi o Proxy fonksiyonalitesinin varlığı ve ağdaki başka kaynaklara yönelik saldırı amaçlı kullanıp kullanılamayacağının tespiti o Sanal makine (virtual host) ayarlarındaki açıklıkların denetimi (Host HTTP başlık alanına doğru, hatalı ve IP adresleri girilmesi yöntemleriyle) o Web sunucu yazılımındaki açıklıkların denetlenmesi (sunucu model ve versiyonuna yönelik bilinen açıklıkların araştırılması ve denenmesi yoluyla) Diğer Testler  Daha önce sayılanların dışında aşağıdaki testler de web uygulama güvenlik denetiminin parçasıdır: o Kullanılan tüm JavaScript betiklerinin Document Object Model (DOM)’i hedef alan bir XSS saldırısına imkan tanıyıp tanımayacakları açısından incelenmesi (JavaScript kodu URL içinde yer alan bir parametreyi tehlikeli DOM metodlarıyla işliyorsa DOM temelli bir XSS açıklığı doğabilir) o Çerezler (cookies) nedeniyle oluşabilecek lokal mahremiyet açıklıklarının incelenmesi o Denetim sırasında tespit edilecek bilgi sızmalarının (örneğin çok detay içeren hata mesajları, uygulama kodu, dizin listesi gibi) sağladığı bilgilerin değerlendirilmesi ve diğer saldırılara girdi sağlaması o Zayıf SSL kriptolama ve özet algoritmalarının desteklenip desteklenmediğinin denetlenmesi o İsimli “frame”ler kullanılıyorsa frame enjeksiyon açıklığının test edilmesi
  • 10. blog.btrisk.com @btrisk /btrisktv /btrisk 9 BTRİSK Hakkında 2009 yılında kurulmuş ve sadece bilgi güvenliği hizmetlerine odaklanmış olan BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri bilgi güvenliği problemine yönetim kurulu seviyesinden sistem odası uygulamasına kadar uzanan alanda çözüm üretmektedir. BTRisk bilgi güvenliği problemini görünür hale getirerek algılanmasını, anlaşılmasını ve dolayısıyla ele alınmasını mümkün hale getirmektedir. BTRisk bilgi güvenliği problemine karşı geliştirdiği yaklaşımları gerçek hayat koşullarında test etmiş ve uygulanabilir hale getirmiştir. Bilgi güvenliği ve BT yönetişim hizmet alanlarımız aşağıdaki gibidir:  Pentest Hizmetleri  Bilgi Güvenliği ve BT Yönetişim Hizmetleri  Bilgi Güvenliği Operasyon Hizmetleri  Bilgi Güvenliği Eğitimleri Özgün ürünlerimiz aşağıdaki gibidir:  BTRWATCH Bilgi Güvenliği Risk Analizi ve Denetim Uygulaması  BTRMON 5651 Uyumlu Wi-Fi ve Kablolu Ağ Hotspot Çözümü  BTROTP Tek Kullanımlık Parola Çözümü Pentest & BT Denetimi ISO27001 Danışmanlık Hizmetleri BG Operasyon Hizmetleri