Hoşgeldin Misafir

#STHM-Web Güvenliği Temelleri

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 ise Beraber Web Güvenliğinin temellerine bir başlangıç yapacağız bu seride Web uygulamalarının neden saldırganlar için yaygın hedefler olduğunu. Web altyapısını ve web'i korumak için kullandığımız araçları inceleyeceğiz


Neden Web
Masaüstü uygulamalardan web tabanlı uygulamalara geçiş, onlarca yıldır devam etmektedir. 1990’larda, hız ve bağlantı sınırlamaları nedeniyle masaüstü uygulamalar yaygındı. Web teknolojisi geliştikçe, 2000’lerde e-posta, sosyal medya ve bankacılık gibi dinamik web uygulamaları çok daha yaygın hale geldi. 2010’larda bulut bilişim ve yazılım hizmeti (SaaS) kullanımında büyük bir artış yaşandı ve günümüzde neredeyse her şey bir tarayıcı üzerinden yapılabiliyor.

1775983666072.png

Güvenlik Perspektifinden

Web uygulamalarına geçiş, artırılmış erişilebilirlik, daha hızlı güncellemeler, daha iyi uyumluluk ve kullanıcının tarafında daha az kaynak kullanımı gibi bazı harika avantajlar sunar. Düşünün ki, çevrimiçi pazaryerlerini ve sosyal ağları gezebilir, oyun oynayabilir, resim ve video düzenleyebilir, hatta sanal makineleri tarayıcınız üzerinden çalıştırabilirsiniz. Ancak, bu faydalar güvenlik açısından bazı ödünlerle gelir. Web ne kadar güçlü ve yaygın hale gelirse, saldırganlar için o kadar çok fırsat ortaya çıkar.
Web uygulamaları, her zaman erişilebilir ve açık oldukları için saldırganların en yaygın giriş noktalarından biridir. Genellikle veri tabanları ve diğer altyapılar gibi arka uç sistemlerle bağlantı kurarlar ve bu da saldırganlara yüksek etkili fırsatlar sunar. Zayıf bir web uygulaması genellikle daha büyük bir saldırı dizisinin ilk aşamasıdır. Şimdi hem web uygulama sahiplerinin hem de kullanıcılarının karşılaştığı risklere bir göz atalım dostlarım.

Web Uygulama Sahibi OlarakWeb Uygulama Kullanıcısı Olarak
Web uygulamanız her zaman çevrimiçi olup 7/24 güvence altında olmalıdırVerileriniz bir web uygulamasında, potansiyel olarak güvensiz bir şekilde saklanıyor olabilir
Dünyanın herhangi bir yerindeki herkes uygulamanıza her zaman erişebilirTarayıcınız ele geçirildiğinde, tüm hesaplarınız risk altına girer
Bu kadar çok yeni tehdide karşı güncel kalmak zordurBir ihlal, kimlik hırsızlığı veya finansal kayıpla sonuçlanabilir
Kullanıcılarınızın verilerini güvence altına alma sorumluluğu sizdedirGizliliğiniz kalıcı olarak tehlikeye girebilir

Gerçek Dünya Örnekleri
2017 yılında, Equifax’ın yaklaşık 150 milyon Amerikalı müşterisine ait hassas verileri, bir Apache güvenlik açığı nedeniyle ele geçirildi. Saldırganlar bu güvenlik açığını kullanarak değerli müşteri verilerini barındıran iç veri tabanlarına erişim sağladı.
2019 yılında, Capital One benzer ölçekli bir güvenlik ihlaliyle karşılaştı; yanlış yapılandırılmış bir web uygulama güvenlik duvarı (WAF), 100 milyondan fazla müşterinin hassas kişisel ve finansal bilgilerini açığa çıkardı. Bu yanlış yapılandırma, şirketin bulut altyapısı ve veri tabanlarına iç erişime olanak tanıdı.

Web Altyaısı
Bir web sitesini ziyaret ettiğinizde, tarayıcınız web sunucusuna bir istek gönderir. Sunucu bu isteği işler, erişimi doğrular ve kullanıcıya bir yanıt döner. Bu yanıt bir web sayfası, bir resim veya arama sonuçları ya da hesap bilgileriniz gibi veriler olabilir. Bu istek-yanıt döngüsü, web’in nasıl çalıştığının temelini oluşturur. Saldırganlar, sunucuları aşırı isteklerle boğmak, erişim kontrollerini atlatmak veya sunucuyu zararlı komutları çalıştırmaya ikna etmek gibi yollarla bu istek-yanıt döngüsünü kötüye kullanabilirler.

Bir Web Servisinin Bileşenleri

Örneğin, turkhacks.com gibi herhangi bir web servisinin çalışabilmesi için üç temel bileşene ihtiyacı vardır:
  • Uygulama (Application): Web sitesinin görünümünü ve işleyişini belirleyen kodlar, resimler, stiller ve simgeler.
  • Web Sunucusu (Web Server): Uygulamayı barındıran bileşen. İstekleri dinler ve kullanıcıya yanıt döner.
  • Barındırıcı Makine (Host Machine): Web sunucusu ve uygulamayı çalıştıran temel işletim sistemi, Linux veya Windows gibi.
1775983802145.png

Web Sunucuları

Daha önce bahsedildiği gibi, bir web sitesini ziyaret ettiğinizde tarayıcınız web sunucusuna bir istek gönderir. Web sunucuları gelen istekleri dinler ve uygun bir yanıt döner. Web sunucuları, web sitelerinin ve uygulamaların önünde konumlanır ve internetin temelinin kritik bir parçasını oluşturur. Kamuya açık oldukları ve tüm gelen web isteklerini işledikleri için, web sunucuları saldırganlar için yaygın bir hedef haline gelir.
İşte karşılaşabileceğiniz en yaygın web sunucularından bazıları:

  • Apache: Basit web siteleri ve blogları barındırmak için en popüler web sunucusudur, en yaygın olarak WordPress tarafından kullanılır.
  • Nginx: Yüksek performanslı web uygulamaları için endüstri standardıdır. Netflix, Airbnb ve GitHub gibi şirketler tarafından kullanılır.
  • Internet Information Services (IIS): Microsoft tarafından geliştirilen ve genellikle kurumsal ortamlarda kullanılan bir web sunucusudur.
1775983819780.png

Web’i Korumak

En İyi Uygulamalar

Web siteleri ve web uygulamalarını güvence altına alırken çeşitli güvenlik önlemleri mevcuttur. Bazı çözümler görünürlük sağlar, bazıları ise bir saldırıyı aktif olarak durdurabilir veya sınırlayabilir; buna genellikle “hafifletme” (mitigation) denir

Uygulamayı Koruma

  • Güvenli Kodlama: Güvensiz fonksiyonlardan kaçının, hataları düzgün şekilde yönetin ve hassas bilgileri kaldırın.
  • Girdi Doğrulama ve Temizleme: Kullanıcı girdilerini doğrulayın ve temizleyin, enjeksiyon saldırılarını önleyin.
  • Erişim Kontrolü: Erişimi kullanıcı rollerine göre kısıtlayın.

Web Sunucusunu Koruma

  • Kayıt Tutma (Logging): Tüm web isteklerini ayrıntılı olarak erişim günlüklerinde tutun.
  • Web Uygulama Güvenlik Duvarı (WAF): Tanımlı kurallara göre zararlı trafiği filtreleyin ve engelleyin.
  • İçerik Dağıtım Ağı (CDN): Sunucunuza doğrudan erişimi azaltın ve entegre WAF’ları kullanın.

Barındırıcı Makineyi Koruma

  • En Az Yetki (Least Privilege): Servisler için düşük yetkili kullanıcılar kullanın.
  • Sistem Sertleştirme (System Hardening): Gereksiz servisleri devre dışı bırakın ve kullanılmayan portları kapatın.
  • Antivirüs: Bilinen kötü yazılımları engelleyen uç nokta düzeyinde koruma ekleyin.

Üç Bileşen İçin Güvenlik İpuçları

  • Güçlü Kimlik Doğrulama: Kodunuza, yönetici panellerine veya barındırıcı makineye herkesin erişmesine izin vermeyin.
  • Yama Yönetimi (Patch Management): Uygulama bağımlılıklarınızı, web sunucunuzu ve barındırıcı makinenizi güncel tutun.

Kayıt Tutma (Logging)

Web sunucuları aldıkları her istek için günlükler oluşturabilir. Bunlara erişim günlükleri (access logs) denir ve güvenlik açısından son derece değerlidir. Çünkü sunucu ile yapılan her etkileşimin bilgilerini kaydederler: istemcinin IP adresi, zaman damgası, istenen sayfa veya veri, sunucudan gelen yanıt durumu ve kullanıcı aracısı (user agent). Bu alanlar, potansiyel kötü niyetli etkinlikleri tespit etmek ve saldırgan davranışını izlemek için analizciler açısından önemli bir rol oynar.
Örnek olarak, erişim günlüklerinde görebileceğimiz zararsız bir olay dizisine bakalım:

Not:

  • GET istekleri, sunucudan bir kaynağı almak için kullanılır (örneğin bir web sayfası).
  • POST istekleri, sunucuya veri göndermek için kullanılır (örneğin giriş bilgileri).
  1. Kullanıcı, 10.10.10.100 IP adresinden, web sitesinin ana sayfasını /index.html adresinde ziyaret eder.
  2. Daha sonra, /login.html adresindeki giriş sayfasına gider.
  3. Kullanıcı giriş bilgilerini girer ve formu gönderir, bu POST isteği ile gösterilir.
  4. Son olarak, /myaccount.html adresindeki hesap sayfasına erişir.
Bu olay dizisi beklenen ve olağan bir durum olsa da, günlüklerin ayrıntılılığı, analizcilerin ve olay müdahale ekiplerinin olası bir saldırı dizisini yeniden oluşturmasına yardımcı olabilir dostlarım.
1775983852941.png

Savunma Sistemleri

İçerik Dağıtım Ağı (CDN)[Content Delivery Network]

CDN’ler, önbelleğe alınmış içeriği kullanıcıya daha yakın sunuculardan depolayıp sunarak gecikmeyi azaltır. Ana sunucunuzun merkezi bir konumda bulunduğunu düşünün. Bu ana sunucu, dünya genelindeki kenar sunuculara bilgi sağlar, böylece müşterileriniz verilere daha hızlı ve güvenli bir şekilde erişebilir. Hızın yanı sıra, CDN’ler güvenlik açısından da kullanıcı ile orijinal sunucu arasında bir tampon görevi görerek yardımcı olur.

Güvenlik Faydaları

  • IP Maskeleme: Orijinal sunucunun IP adresini gizler, bu da saldırganların hedef almasını zorlaştırır.
  • DDoS Koruması: CDN’ler büyük miktarda trafiği absorbe edebilir, böylece hizmet engelleme (denial-of-service) saldırılarını daha az etkili hale getirir.
  • Zorunlu HTTPS: Çoğu CDN, varsayılan olarak TLS üzerinden şifreli iletişimi uygular.
  • Entegre WAF: Cloudflare CDN, Amazon CloudFront ve Azure Front Door gibi birçok CDN, web uygulama güvenlik duvarlarını entegre eder.
Özetle, CDN’ler web uygulamalarının müşterilere veriyi daha verimli ve güvenli bir şekilde sunmasını sağlar.
1775983872717.png


Web Uygulama Güvenlik Duvarı (WAF)
WAF’lar, web siteleri ve web uygulamaları için başka bir koruma katmanı olarak entegre edilebilen güçlü araçlardır. Gelen HTTP trafiğini inceler ve güvenlik kurallarına göre potansiyel olarak zararlı istekleri engeller veya kaydeder. Bunu bir bar veya kulüpteki kapı görevlisine (bouncer) benzetebiliriz. İçeri girmek isteyen her kişi (web isteği) kapı görevlisi (firewall) tarafından kontrol edilir. Standart gereklilikleri karşılamayan herkes (herhangi bir istek) reddedilir.
Şimdi, savunma yapan bizler için mevcut WAF türlerine daha yakından bakalım ve ardından işlevselliklerine derinlemesine göz atalım.

WAF Türleri

  • Bulut tabanlı (Ters Proxy): Web sunucusunun önünde konumlanır. Bu WAF’lar kolay dağıtılır ve yüksek ölçeklenebilirlik sunar.
  • Sunucu tabanlı (Host-based): Doğrudan web sunucusuna kurulan yazılımlardır ve her uygulama için kontrol imkânı sağlar.
  • Ağ tabanlı (Network-based): Ağ çevresinde bulunan fiziksel veya sanal cihazlardır. Daha çok kurumsal ortamlar için uygundur.

İşlevsellik
Yukarıda belirtildiği gibi, WAF’lar HTTP isteklerini anormallikleri, saldırıları veya bilinen şüpheli kalıpları tespit etmek için inceler. Aşağıda kullanılan bazı yöntemler ve engellenebilecek örnek istekler verilmiştir.

WAF ÖzelliğiTespit YöntemiÖrnek
İmza Tabanlı TespitBilinen saldırı kalıpları veya yükleriyle eşleştirirBilinen bir araçla eşleşen User-Agent içeren bir istek, sqlmap/1.8.1
Heuristik Tabanlı Tespitİsteklerin bağlamını ve davranışını analiz ederÖzel karakterler içeren uzun bir sorgu dizisi, search?q=%3Cscript%20(1)
Anomali ve Davranış AnaliziNormal trafik davranışından sapmaları işaretlerTek bir IP adresinin kısa sürede tekrar tekrar giriş denemeleri yapması
Konum ve IP İtibar FiltrelemeKonum ve tehdit istihbaratını kullanarak IP’leri engellerNormal iş alanınızın dışında bir IP adresinden gelen bir istek
Yukarıdaki tablo kapsamlı değildir, çünkü tespit yöntemleri sürekli gelişmektedir ve web uygulaması sahibinin özel ihtiyaçlarına göre özel kurallar oluşturulabilir.

Aşağıda, tryhackme.thm için Cloudflare kontrol panelinin güvenlik paneline odaklanan bir ekran görüntüsü bulunmaktadır. Bu panelde, entegre web uygulama güvenlik duvarı tarafından engellenen istekler de dahil olmak üzere son 24 saatteki tüm istekleri görebiliyoruz.

1775983912518.png

Antivirüs (AV)
AV’ler genellikle genel bir koruma önlemi olarak yanlış anlaşılır, ancak esas olarak masaüstü bilgisayarlar, dizüstü bilgisayarlar ve sunucular gibi uç noktaları bilinen zararlı dosya ve programlardan korumak için tasarlanmıştır. Çoğu AV, imza tabanlı tespiti kullanır; bu, dosyaları bilinen kötü amaçlı yazılımlar veya kalıplar veritabanıyla karşılaştırdıkları anlamına gelir.
Web saldırıları genellikle uygulama katmanını hedef alırken, host (sunucu/istemci) makineyi değil, AV’ler hâlâ host korumasında önemli bir rol oynar. AV’ler, web shell’ler, post-exploitation araçları ve diğer zararlı yazılımlar gibi kötü amaçlı dosya yüklemelerini tespit etmeye yardımcı olabilir. Antivirüsler, daha geniş bir katmanlı savunma stratejisinde yalnızca bir katmandır ve daha güçlü bir koruma sağlamak için diğer güvenlik önlemleriyle birleştirilmelidir.

1775983957682.png







Okuduğunuz için teşekkür ederim


CW-Ommah
Bug Researchers Tim Sundu...

1775983998144.png