Hoşgeldin Misafir

#STHM-Web Saldırılarını Tespit Etme

CW-ommah

17 Ocak 2022
905 Mesaj
TIM Görevleri
1

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Allah’ın Rahmeti Ve Bereketi Üzerinize Olsun
Selamun aleyküm dostlarım. Bu makalemizde beraber Allah’ın izniyle yaygın olan saldırıların birkaç tanesine göz atacağız ondan sonra bu saldırıları genel olarak nasıl tespit edebileceğiz buna bakacağız.

istemci tarafı saldırıları

1776047206982.png
İstemci taraflı saldırılar, kullanıcı davranışlarındaki zayıflıkları veya kullanıcının cihazındaki açıkları istismar etmeye dayanır. Bu saldırılar genellikle tarayıcılardaki güvenlik açıklarından yararlanır ya da kullanıcıyı güvensiz işlemler yapması için kandırarak hesaplara erişim sağlar ve hassas bilgileri çalar. Değerli veriler bir kullanıcının cihazında saklanabildiğinden, başarılı bir istemci taraflı saldırı veri kaybına yol açabilir. Dinamik ve çok yönlü web uygulamalarına olan talep arttıkça, şirketler daha fazla üçüncü taraf eklenti entegre etmekte, bu da tarayıcılardaki saldırı yüzeyini genişletmekte ve istemci taraflı saldırılar için daha fazla fırsat yaratmaktadır.
En sevdiğiniz e-ticaret sitesinde gezindiğinizi ve ilgilendiğiniz bir ürünün görseline tıkladığınızı hayal edin. Siz farkında olmadan, bir saldırgan sayfanın içine gizlenmiş görünmez kötü amaçlı bir pencere yerleştirmiştir ve bu pencere arka planda başka bir siteyi yükler. Bu gizli site, oturum çerezlerinizi çalan zararlı kodlar çalıştırır. Her şey normal görünür, ancak saldırgan artık sizi taklit edebilir ve hesabınıza erişebilir!

SOC Sınırlamaları
Bir analistin kullanabileceği araçlar, örneğin sunucu tarafı günlükleri ve ağ trafiği kayıtları, bir kullanıcının tarayıcısı içinde neler olup bittiğine dair çok az ya da hiç görünürlük sağlamaz. Yukarıda da belirtildiği gibi, istemci taraflı saldırılar kullanıcının sisteminde gerçekleşir; bu da saldırganların kötü amaçlı kod çalıştırmasına, bilgi çalmasına veya ortamı manipüle etmesine, SOC’un görebileceği şüpheli HTTP istekleri ya da ağ trafiği oluşturmadan olanak tanır. Bu nedenle, ek tarayıcı tarafı güvenlik kontrolleri veya uç nokta izleme çözümleri olmadan, bu tür saldırıları SOC bakış açısından tespit etmek çoğu zaman zor hatta imkânsızdır.

1776047329726.png

Yaygın İstemci Taraflı Saldırılar
Cross-Site Scripting (XSS) en yaygın istemci taraflı saldırıdır; bu saldırıda kötü amaçlı komut dosyaları güvenilir bir web sitesine enjekte edilir ve kullanıcının tarayıcısında çalıştırılır. Örneğin, web sitenizde kullanıcı girdisini filtrelemeyen bir yorum kutusu varsa, bir saldırgan şu şekilde bir yorum bırakabilir:
Hello <script>alert('You have been hacked');</script>.
Ziyaretçiler sayfayı yüklediğinde, bu komut dosyası tarayıcılarında çalışır ve bir açılır pencere görünür. Gerçek bir saldırıda ise, zararsız bir açılır pencere yerine saldırgan çerezleri veya oturum verilerini çalabilir.


Cross-Site Request Forgery (CSRF): Tarayıcı, güvenilir kullanıcı adına yetkisiz istekler göndermesi için kandırılır.
Clickjacking: Saldırganlar, görünmez öğeleri meşru içeriklerin üzerine yerleştirerek kullanıcıların güvenli bir şeyle etkileşimde bulunduklarını sanmalarını sağlar.

Sunucu Tarafı Saldırıları

1776047427040.png
Sunucu Taraflı Saldırılar
Sunucu taraflı saldırılar, bir web sunucusundaki, uygulama kodundaki veya bir web sitesi ya da web uygulamasını destekleyen arka uç sistemlerdeki güvenlik açıklarının istismar edilmesine dayanır. İstemci taraflı saldırılar kullanıcıların siteyle etkileşimini manipüle ederken, sunucu taraflı saldırılar doğrudan sistemlerin kendisini hedef alır. Saldırganlar; hataları, güvenlik açıklarını, sunucu mantığını, yanlış yapılandırmaları veya girdi işleme süreçlerindeki zafiyetleri kullanarak erişim elde edebilir, bilgi çalabilir ve çalışan hizmetlere zarar verebilir.
En sevdiğiniz web sitesi büyük olasılıkla kullanıcı girdisi alan formlarla doludur. Bunlar, kullanıcı adı ve parola kabul eden giriş formları ya da geçmiş siparişleri veya belirli ürünleri aramak için kullanılan arama formları olabilir. Bu formlardan yalnızca birinde bile kullanıcı girdisinin hatalı şekilde işlenmesi durumunu hayal edin. Bu tür bir zafiyet, bir saldırganın arka uç veritabanında saklanan hassas müşteri veya finansal bilgilere erişmesine olanak tanıyabilir.

Sunucu Taraflı Saldırıları Tespit Etme
Sunucu taraflı saldırılarla başa çıkarken savunucular için bir avantaj, nerede bakılması gerektiğini biliyorsanız bu saldırıların geride kanıt izleri bırakmasıdır. Bir uygulamaya gönderilen her web isteği sunucu tarafından işlenir ve günlüklerde (loglarda) veya diğer izleme sistemlerinde kaydedilir. Bu istekler aynı zamanda ağ üzerinden iletildiğinden, ağ trafiği de şüpheli davranışları ortaya çıkarabilir.

1776047570406.png

Yaygın Sunucu Taraflı Saldırılar
Brute-force (Kaba Kuvvet) saldırıları
, bir saldırganın yetkisiz erişim elde etmek amacıyla farklı kullanıcı adı veya parola kombinasyonlarını tekrar tekrar denemesiyle gerçekleşir. Bu süreçte genellikle otomatik araçlar kullanılır; bu da saldırganların büyük kimlik bilgisi listelerini ve yaygın parolaları hızlı bir şekilde denemesine olanak tanır. 2021 yılında T-Mobile, bir kaba kuvvet saldırısından kaynaklanan bir veri ihlali yaşamış ve bu saldırı sonucunda 50 milyondan fazla müşterinin kişisel olarak tanımlanabilir bilgileri (PII) açığa çıkmıştır.

SQL Injection (SQLi), bir web sitesinin arkasındaki veritabanını hedef alır ve uygulamaların parametreli sorgular yerine string birleştirme yöntemiyle sorgu oluşturması durumunda ortaya çıkar. Bu zafiyet, saldırganların SQL komutlarını değiştirmesine ve verilere erişmesine veya verileri manipüle etmesine olanak tanır. 2023 yılında, bir dosya transfer yazılımı olan MOVEit’teki bir SQLi açığı istismar edilmiş ve ABD devlet kurumları, BBC ve British Airways dahil olmak üzere 2.700’den fazla kuruluş etkilenmiştir.


Command Injection (Komut Enjeksiyonu), bir web sitesinin kullanıcı girdisini kontrol etmeden doğrudan sisteme iletmesiyle ortaya çıkan yaygın bir saldırıdır. Saldırganlar bu durumu kullanarak zararlı komutlar ekleyebilir ve sunucunun bu komutları uygulamanın sahip olduğu yetkilerle çalıştırmasını sağlayabilir.

Log Tabanlı Algılama
Loglar, web saldırılarını tespit etmek için değerli bir araç olabilir. Bir web sunucusuna gönderilen her istek, erişim (access) ve hata (error) loglarında iz bırakabilir. Savunucular, log kayıtlarını inceleyerek tarama faaliyetlerini, istismar girişimlerini veya diğer saldırıları ortaya çıkaran kalıpları fark edebilir.

Erişim Logu Formatı
Aşağıda örnek bir erişim logu kaydı verilmiştir. Bağlama bağlı olarak, her bir alan hem normal (zararsız) hem de kötü amaçlı trafiği gösterebilir. Tüm erişim logları tam olarak bu formatı takip etmese de, genellikle aşağıdaki bilgileri içerir:

Log AlanıÖrnek Gösterge
1. İstemci IP AdresiBilinen kötü amaçlı bir adres veya beklenen coğrafi aralığın dışında olması
2. Zaman Damgası ve İstenen SayfaAlışılmadık saatlerde yapılan istekler veya kısa sürede tekrarlanan istekler
3. Durum KoduBir sayfanın bulunamadığını gösteren tekrarlanan 404 yanıtları
4. Yanıt BoyutuNormal yanıt boyutlarına kıyasla belirgin şekilde daha küçük veya daha büyük olması
5. Yönlendiren (Referrer)Normal site gezintisine uymayan yönlendiren sayfalar
6. User-AgentEski tarayıcı sürümleri veya yaygın saldırı araçları (örneğin: sqlmap, wpscan)
1776047742563.png

Loglarda Saldırılar
Şimdi, özetlenmiş bir saldırı dizisi örneğini inceleyeceğiz. Bu log kayıtları yalnızca saldırganın isteklerini gösterecektir; ancak gerçek dünyada, log kayıtlarının büyük çoğunluğunu normal (zararsız) trafik oluşturur. Bu nedenle, normal aktiviteler arasında kötü amaçlı kalıpları fark edebilmek için dikkatli bir göz geliştirmek oldukça önemlidir. Ayrıca aşağıdaki örnekte, SQLi saldırısındaki sorgu parametreleri (query string) loglanmıştır; bu sayede SQLi yüklerinin (payload) tamamını görebileceksiniz.
Saldırgan, dizin taraması (directory fuzzing) yaparak istismar edilebilecek olası dizinleri ve formları test eder. 200 durum kodları, saldırgan için geçerli (bulunmuş) hedefleri ifade eder.
Daha sonra saldırgan, bulduğu login.php formunu kaba kuvvet (brute-force) saldırısıyla istismar eder. Kısa süre içinde art arda gönderilen POST isteklerine dikkat edin. Son POST isteği farklı bir durum koduna sahiptir: 302 Found. Bu durum, bu senaryoda başarılı bir giriş denemesini ifade eder. Ardından sayfa, kullanıcının /account sayfasına yönlendirilir.
Saldırgan hesaba erişim sağladıktan sonra, /search formu üzerinde iki SQLi yükü dener: ' OR '1'='1 ve 1' OR 'a'='a. Eğer uygulama SQL sorgularını parametreli (parameterized) şekilde oluşturmak yerine dinamik olarak oluşturuyorsa, saldırgan veritabanını ele geçirebilir.

1776047865814.png

Log Sınırlamaları
Erişim logları yararlı olsa da, özellikle POST veya GET isteklerinin gövde (body) kısmı olmak üzere bir isteğin tüm içeriğini her zaman kaydetmezler. Örneğin, bir giriş denemesi erişim loglarında şu şekilde görünebilir:
Kod:
10.10.10.100 [12/Aug/2025:14:32:10] "POST /login HTTP/1.1" 200 532 "/home.html" "Mozilla/5.0"
Yukarıdaki örnek log, istek yöntemini, istenen sayfayı ve durum kodunu gösterir; ancak istekte gönderilen gerçek kimlik bilgilerini veya payload içeriğini göstermez. Önemli olarak, erişim logları gönderilen kimlik bilgileri gibi gerçek POST gövde verilerini kaydetmez; bu nedenle araştırmacılar yalnızca isteğin gerçekleştiğini görebilir. GET istekleri tam yolları ve sorgu dizelerini (query string) loglayabilir, ancak bazı log formatları bunları hiç içermeyebilir. Bu tamamen kullanılan sunucu yazılımına ve loglama yapılandırmasına bağlıdır.

Ağ Temelli Tespit
Ağ trafiği analizi
, analistlerin bir istemci ile sunucu arasında değiş tokuş edilen ham verileri incelemesine olanak tanır. Paketler yakalanıp incelenerek, analistler saldırı davranışlarını daha ayrıntılı bir seviyede gözlemleyebilir; buna temel taşıma (transport) protokolleri ve uygulama verilerinin kendisi de dahildir. Ağ yakalamaları (network capture), sunucu loglarına kıyasla daha ayrıntılıdır ve her isteğin ve yanıtın arkasındaki verileri ortaya çıkarır. Bu; örneğin tam HTTP başlıklarını, POST gövdelerini, çerezleri (cookies) ve yüklenen veya indirilen dosyaları içerebilir.
HTTPS ve SSH gibi şifrelemeye dayalı protokoller ise, şifre çözme anahtarlarına erişim olmadan paket içeriğinde görülebilecek bilgileri sınırlar. Bu örneklerde ise özellikle HTTP trafiğine odaklanacağız.

Ağ Trafiğinde Saldırılar
İlgilendiğiniz alanları öne çıkarmak için kullanabileceğiniz birçok farklı filtre bulunmaktadır. Aşağıda, 10.10.20.200 hedef IP adresi ve User-Agent alanı için http.user_agent filtresi kullanılarak bir filtreleme yapılmıştır.
Olayların sırasını hatırlayalım:

  • Geçerli dizinleri veya formları bulmak için dizin taraması (directory fuzzing)
  • Kaba kuvvet (brute-force) denemesi; 13. paketin başarılı bir giriş olduğu
  • SQL enjeksiyonu (SQL injection) denemeleri
1776048112720.png

Şimdi olayların sırasını incelediğimize göre, saldırıya dair daha fazla kanıt toplamak için paket ayrıntılarını inceleyelim. Öncelikle kaba kuvvet (brute-force) denemelerine bakalım. Hatırlarsanız, loglarda login.php formuna tekrar eden POST istekleri görmüştük. Şimdi ise saldırganın giriş yapmak için denediği gerçek kullanıcı adı ve şifreyi görebileceğiz. Forma gönderilen son isteği (13. paket) incelediğimizde, bunun başarılı giriş olduğunu biliyoruz ve saldırganın geçerli şifreyi bulduğunu görebiliyoruz: password123. Özellikle bir yönetici hesabı için oldukça zayıf bir şifre!

1776048170234.png

Şimdi saldırının ilk SQLi denemesini çok daha ayrıntılı şekilde inceleyelim. HTTP paketini incelemek, saldırganın kullandığı payload’ı ve saldırının sonuçlarını net bir şekilde görmemizi sağlar. Bu durumda, ' OR '1'='1 payload’u, Users tablosunun dökülmesine (dump edilmesine) olanak sağlamış ve saldırganın First name (Ad) ve Surname (Soyad) bilgilerini açık metin (clear text) olarak görmesini sağlamıştır. Ayrıca MySQL protokol trafiği de Wireshark kullanılarak analiz edilebilir ve hem payload’ı hem de dönen sonucu gösterebiliriz dostlarım.

1776048229544.png

Web Uygulamaları Güvenlik Duvarı(WAF)

1776048248976.png
Web Uygulama Güvenlik Duvarları (WAF’lar), genellikle web siteleri ve web uygulamaları için ilk savunma hattıdır.WAF’lar, web uygulamalarınız için birer kapı bekçisi gibi çalışır; Wireshark’a benzer şekilde tam istek paketlerini inceler, TLS trafiğini çözme ve sunucuya ulaşmadan önce filtreleme yapabilme yeteneğine'de sahiptir.

Kurallar
WAF’lar, bir web isteğini önceden tanımlanmış kurallara göre inceleyerek izin verme veya tamamen engelleme kararı verir. Şimdi birkaç güvenlik duvarı kuralı kategorisini inceleyelim dostlarım.

Kural TürüAçıklamaÖrnek Kullanım Senaryosu
Yaygın saldırı kalıplarını engellemeBilinen kötü amaçlı payload’ları ve göstergeleri engellerKötü amaçlı User-Agent’ları engelleme: sqlmap
Bilinen kötü amaçlı kaynakları reddetmeIP itibarı, tehdit istihbaratı veya coğrafi engelleme kullanarak riskli trafiği durdururSon botnet kampanyalarından gelen IP’leri engelleme
Özel olarak oluşturulmuş kurallarUygulamanızın özel ihtiyaçlarına göre uyarlanırYalnızca /login için GET/POST isteklerine izin verme
Hız sınırlama ve kötüye kullanım önlemeKötüye kullanımı önlemek için istek sıklığını sınırlarIP başına dakikada 5 giriş denemesine izin verme

Diyelim ki /changeusername adresine sqlmap/1.9 User-Agent dizesiyle tekrar eden GET istekleri fark ediyorsunuz. SQLMap, SQL enjeksiyon açıklarını tespit etmek ve istismar etmek için kullanılan otomatik bir araçtır. Ağ trafiğini inceledikten sonra, bu isteklerin SQLi payload’ları içerdiğini görüyorsunuz.

Şöyle bir kural oluşturabilirsiniz: sqlmap User-Agent’ını içeren tüm istekleri engellemek:
Kod:
if User-Agent "sqlmap" contains
içeriyorsa
o zaman ENGELLE
Bu oldukça basit bir örnektir ve modern WAF’lar bilinen şüpheli User-Agent’ları genellikle otomatik olarak tespit edip engeller. Ancak bu tür kurallar, belirli bir uygulamaya veya tehdit senaryosuna göre özelleştirilebilir ve böylece normal site trafiğini etkilemeden kötü amaçlı aktiviteleri englemenize olanak tanır.

Zorlama-Yanıt (Challenge-Response) Mekanizmaları
WAF’lar şüpheli istekleri her zaman doğrudan engellemek zorunda değildir. Örneğin, bir isteğin gerçek bir kullanıcıdan mı yoksa bir bottan mı geldiğini doğrulamak için CAPTCHA ile kullanıcıyı teste tabi tutabilirler. Kötü amaçlı bot trafiğinin küresel web trafiğinin %37’sini oluşturduğu düşünüldüğünde bu özellik oldukça değerlidir. Bu yaklaşım, meşru web trafiğini engelleme ihtimali daha yüksek olan güvenlik duvarı kuralları için oldukça faydalıdır.

1776048502468.png

Bilinen Göstergelerin ve Tehdit İstihbaratının Entegrasyonu
Birçok modern WAF çözümü, daha önce ele aldığımız bazı güvenlik risklerini de içeren OWASP Top 10 güvenlik açıklarını azaltmak için tasarlanmış yerleşik kural setleri içerir. WAF’lar ayrıca, bilinen kötü amaçlı IP adreslerinden ve şüpheli User-Agent’lardan gelen istekleri otomatik olarak engellemek için tehdit istihbaratı (threat intelligence) kaynaklarını kullanır. Bilinen APT grupları ve yeni keşfedilen CVE’ler dahil olmak üzere yeni ve ortaya çıkan tehditlerle mücadele etmek için düzenli olarak güncellenirler. Cloudflare’ın, botnetler, VPN’ler, anonimleştiriciler ve kötü amaçlı yazılımlar gibi kaynaklardan elde edilen küresel tehdit istihbaratına dayanarak hazırlanmış IP listelerini nasıl yönettiğine göz atabilirsiniz dostlarım :).
1776048596913.png
Okuduğunuz için teşekkür ederim


CW-Ommah
Bug Researchers Tim Sundu...

1776048631888.png