Azure Web Uygulaması Güvenlik Duvarı (WAF) ile Web Uygulamalarının Güvenliğini Sağlama

Azure Web Uygulaması Güvenlik Duvarı (WAF) ile Web Uygulamalarının Güvenliğini Sağlama

01/14/2025

Bu teknik ve eğitici makale, web uygulamalarını yaygın saldırılara karşı korumak için Azure Web Uygulaması Güvenlik Duvarı'nı (WAF) uygulama ve yapılandırma konusunda güvenlik analistlerine, BT yöneticilerine ve sistem mühendislerine rehberlik etmeyi amaçlamaktadır. Web uygulamalarının birçok işletmenin giriş kapısı olduğu dijital ortamda, SQL enjeksiyonu, siteler arası komut dosyası oluşturma (XSS) ve diğer OWASP Top 10 güvenlik açıkları gibi çeşitli siber saldırıların sık sık hedefi haline geldiler. Azure WAF, bu riskleri azaltmak için önemli bir koruma katmanı sağlayarak veri kullanılabilirliğini, bütünlüğünü ve gizliliğini sağlar [1].

Giriş

Web uygulamaları hemen hemen tüm kuruluşların BT altyapısının kritik bileşenleridir. Ancak internete maruz kalmaları, verileri tehlikeye atabilecek, hizmetleri kesintiye uğratabilecek ve şirketin itibarına zarar verebilecek saldırılara karşı onları savunmasız hale getiriyor. Web Uygulaması Güvenlik Duvarı (WAF), ters proxy görevi görür, web uygulamasına gelen ve çıkan HTTP/HTTPS trafiğini denetler, kötü amaçlı istekleri uygulama sunucusuna ulaşmadan önce tespit edip engeller. Azure Application Gateway veya Azure Front Door'un bir özelliği olarak sunulan Azure WAF, Azure'da ve hatta hibrit ortamlarda barındırılan web uygulamalarınız için merkezi ve ölçeklenebilir koruma sağlar [2].

Bu pratik kılavuz, Azure WAF'ın temel kavramlarını, çalışma modlarını (Algılama ve Önleme), yönetilen kural kümeleriyle WAF ilkelerinin yapılandırılmasını (OWASP Temel Kural Kümesi - CRS) ve özel kuralları kapsayacaktır. WAF'ın Azure Application Gateway ile dağıtılması, yaygın saldırılara karşı etkinliğinin test edilmesi ve sonuçların doğrulanmasının yanı sıra en iyi uygulamalar ve sorun giderme ipuçlarının tartışılması için adım adım talimatlar sağlanacaktır. Amaç, okuyucunun Azure WAF'ı bağımsız, profesyonel ve güvenilir bir şekilde yapılandırıp yönetmesine olanak tanıyarak web uygulamalarını en yaygın tehditlere karşı korumaktır.

Web uygulaması koruması için Azure WAF neden önemlidir?

  • Kapsamlı Koruma: SQL enjeksiyonu, siteler arası komut dosyası oluşturma (XSS), dosya ekleme, bot saldırıları ve diğer OWASP İlk 10 güvenlik açığı dahil olmak üzere yaygın web saldırılarına karşı savunma sağlar [3].
  • Yönetilen Kurallar: Microsoft tarafından otomatik olarak güncellenen yönetilen kural kümelerini (OWASP CRS gibi) kullanır ve manuel müdahaleye gerek kalmadan en son tehditlere karşı koruma sağlar.
  • Özel Kurallar: Uygulamaya özel güvenlik gereksinimlerini karşılamak, belirli trafik modellerini engellemek veya yönetilen kuralların kapsamadığı güvenlik açıklarına karşı koruma sağlamak için özel kurallar oluşturulmasına olanak tanır.
  • Esnek Çalışma Modları: "Algılama" modunda (yalnızca saldırıları izler ve kaydeder) veya "Önleme" (saldırıları aktif olarak engeller) modunda çalışarak uygulamanın kademeli olarak kontrol edilmesine olanak tanır.
  • Azure ile Yerel Entegrasyon: Azure Application Gateway (dahili uygulamalar için) ve Azure Front Door (global uygulamalar için) ile sorunsuz bir şekilde bütünleşerek yerleşik güvenlikle eksiksiz bir uygulama teslim çözümü sunar.
  • Ölçeklenebilirlik ve Yüksek Kullanılabilirlik: Azure uygulama dağıtım hizmetlerinin ölçeklenebilirliğinden ve yüksek kullanılabilirliğinden yararlanarak korumanın her zaman etkin ve performanslı olmasını sağlayın.
  • Uyumluluk: Kuruluşların, web uygulamalarının korunmasını gerektiren düzenleyici gereksinimleri ve güvenlik standartlarını karşılamalarına yardımcı olur.

Önkoşullar

Azure WAF'ı uygulamak için aşağıdaki öğelere ihtiyacınız olacak:

  1. Etkin Azure Aboneliği: Kaynakları oluşturmaya ve yönetmeye yönelik bir Azure aboneliği.
  2. Yönetici Erişimi: Uygulama Ağ Geçitleri, Ön Kapılar ve WAF politikaları (ör. "Ortak Çalışan" veya "Ağ Yöneticisi") gibi kaynakları oluşturmak ve yönetmek için gerekli izinlere sahip bir hesap.
  3. Mevcut Web Uygulaması: Korumak istediğiniz bir web uygulaması (Azure'de veya başka bir yerde barındırılan). Bu kılavuz için Application Gateway aracılığıyla erişilecek basit bir web uygulaması varsayacağız.
  4. Sanal Ağ (VNet) ve Alt Ağlar: Application Gateway ve web uygulaması için yapılandırılmış bir sanal ağ ve alt ağlar.

Adım Adım: Azure WAF'ı Application Gateway ile Uygulama

Azure WAF'ı korumak için yapılandıralımAzure Application Gateway'i kullanan web uygulaması.

1. WAF ile Azure Uygulama Ağ Geçidi Oluşturma

  1. Tarayıcınızı açın ve Azure portalına gidin: https://portal.azure.com.
  2. Gerekli izinlere sahip bir hesapla oturum açın.
  3. Üstteki arama alanına 'Application Gateway' yazın ve sonuçlardan seçin.
  4. '+ Oluştur'u tıklayın.

  5. Temel Bilgiler:

    • Abonelik: Aboneliğinizi seçin.
    • Kaynak grubu: Yeni bir kaynak grubu oluşturun (ör. rg-waf-appgw) veya mevcut bir kaynak grubunu seçin.
    • Uygulama Ağ Geçidi Adı: Bir ad verin (ör. appgw-waf-01).
    • Bölge: Bölgeyi seçin.
    • Katman: "Standart v2"yi seçin (WAF yalnızca katman v2'de mevcuttur).
    • WAF'yi Etkinleştir: 'Evet'i seçin.
    • WAF politikası adı: WAF politikasına bir ad verin (ör. wafpolicy-appgw-01).
    • WAF Modu: "Önleme"ye geçmeden önce kuralları izlemek ve ayarlamak için "Algılama" ile başlayın.
  6. 'Sonraki: Ön Uçlar'ı tıklayın.

  7. Ön uçlar:

    • Ön Uç IP Adresi Türü: 'Genel'i seçin.
    • Genel IP adresi: "+Yeni Ekle"yi tıklayın ve genel IP'ye bir ad verin (ör. "pip-appgw-waf").
  8. 'Sonraki: Arka Uçlar'ı tıklayın.

  9. Arka uçlar:

    • '+Arka uç havuzu ekle'yi tıklayın.
    • Arka uç havuzu adı: Ona bir ad verin (ör. "uygulama-arka uç havuzu").
    • Hedefler olmadan arka uç havuzu ekle: 'Hayır'ı seçin.
    • Hedef Türü: IP Adresi veya FQDNyi seçin.
    • IP Adresi/FQDN: Web uygulamanızın IP adresini veya FQDN'sini girin (ör. VNet'teki bir VM için '10.0.0.4' veya bir Uygulama Hizmetinin FQDN'si).
    • 'Ekle'yi tıklayın.
  10. 'Sonraki: Yapılandırma'yı tıklayın.

  11. Kurulum:

    • Yönlendirme Ayarları: +Yönlendirme Kuralı Ekleyi tıklayın.
    • Kural adı: Ona bir ad verin (ör. "kural-http").
    • Öncelik: Varsayılanı bırakın.
    • Dinleyici:
      • Dinleyici adı: Bir ad verin (ör. dinleyici-http).
      • Ön Uç IP Adresi: Oluşturulan genel IP'yi seçin.
      • Protokol: 'HTTP'yi seçin (başlamak için HTTPS'yi daha sonra ekleyebilirsiniz).
      • Bağlantı noktası: 80.
    • Arka uç hedefleri:
      • Hedef Türü: 'Arka Uç Havuzu'nu seçin.
      • Arka uç havuzu: "Uygulama-arka uç havuzu"nu seçin.
      • Arka uç yapılandırması: "+Yeni Ekle"yi tıklayın.
        • Arka uç ayarı adı: Bir ad verin (ör. "http-setting").
        • Arka uç protokolü: 'HTTP'.
        • Arka uç bağlantı noktası: 80 (veya web uygulama bağlantı noktanız).
        • Özel sonda kullan: "Hayır"ı seçin (bu basit örnek için).
        • 'Ekle'yi tıklayın.
    • Yönlendirme kuralında 'Ekle'yi tıklayın.
  12. 'Sonraki: Etiketler'i tıklayın.

  13. 'Sonraki: İncele + oluştur'u tıklayın.
  14. Ayarları gözden geçirin ve 'Oluştur'a tıklayın.

    • Açıklama: Bu işlem, ilişkili bir WAF ile bir Uygulama Ağ Geçidi oluşturur. WAF, trafiği 'Algılama' modunda incelemeye başlayacaktır.

2. Yönetilen ve Özel WAF Kurallarını Yapılandırma

Dağıtımdan sonra WAF ilkesini ayarlayabilirsiniz.

  1. Azure portalında Uygulama Ağ Geçidinize ("appgw-waf-01") gidin.
  2. Sol gezinme bölmesinde, "Ayarlar"ın altında Web Uygulaması Güvenlik Duvarı'nı seçin.
  3. WAF politikanızın adına tıklayın (wafpolicy-appgw-01).

  4. Politika Modu: "Genel Bakış" bölümünde, kurallarınızın meşru trafiği engellemediğinden emin olduğunuzda "Mod"u "Algılama" yerine "Önleme" olarak değiştirebilirsiniz.

  5. Yönetilen Kurallar:

    • WAF politikasının sol gezinme bölmesinde Yönetilen Kurallar'ı seçin.
    • 'OWASP Varsayılan Kural Kümesi'nin (örn. 'OWASP_CRS/3.2') 'Etkin' olduğundan emin olun.
    • Yanlış pozitiflere neden oluyorlarsa, yönetilen küme içindeki belirli kuralları devre dışı bırakabilirsiniz, ancak bunu dikkatli bir şekilde ve yalnızca dikkatli bir şekilde değerlendirdikten sonra yapın.
  6. Özel Kurallar:

    • WAF politikasının sol gezinme bölmesinde Özel Kurallar'ı seçin.
    • '+Özel kural ekle'yi tıklayın.
    • Kural adı: Buna bir ad verin (ör. BloquearIPMalicioso).
    • Öncelik: Bir öncelik belirleyin (küçük sayılar daha yüksek önceliğe sahiptir).
    • Tipkural: "Eşleşme".
    • Durum:
      • Değişken türü: 'UzakAdres'.
      • Operatör: 'IPMatch'.
      • Değer: Engellemek istediğiniz IP adresini veya CIDR aralığını girin (ör. "192.168.1.10/32").
    • Eylem: 'Engelle'yi seçin.

    • Açıklama: Özel kurallar, IP adresleri, HTTP üstbilgileri, sorgu dizeleri vb. gibi belirli ölçütlere göre engelleme mantığını tanımlamanıza olanak tanır.

  7. WAF politikasına Ekle'yi ve ardından Kaydet'i tıklayın.

3. WAF'ı İzleme ve Günlükleri İnceleme

WAF'ın etkinliğini anlamak ve politikaları ayarlamak için izleme önemlidir.

  1. Azure portalında Uygulama Ağ Geçidinize ("appgw-waf-01") gidin.
  2. Sol gezinme bölmesinde, 'İzleme'nin altında Tanılama Günlükleri'ni seçin.
  3. '+Tanılama yapılandırması ekle'yi tıklayın.
  4. Tanılama yapılandırması adı: Ona bir ad verin (ör. diag-waf).
  5. Günlük Kategorileri: 'ApplicationGatewayAccessLog' ve 'ApplicationGatewayFirewallLog'u kontrol edin.
  6. Hedef Ayrıntıları: "Log Analytics çalışma alanına gönder"i seçin ve çalışma alanınızı seçin.
  7. Kaydet'i tıklayın.

  8. Birkaç dakika sonra Log Analytics çalışma alanınıza gidin.

  9. Sol gezinme bölmesinde Günlükler'i seçin.
  10. WAF günlüklerini analiz etmek için KQL (Kusto Sorgu Dili) sorgularını kullanın:
    • Tüm WAF etkinliklerini görmek için: "kusto" Azure Tanılama | burada ResourceProvider == "MICROSOFT.NETWORK" | burada Kategori == "ApplicationGatewayFirewallLog" | proje TimeGeneated, ana bilgisayar adı_s, requestUri_s, Mesaj, eylem_ler, politika_ler | TimeGenerate açıklamasına göre sipariş ''''
    • Engellenen saldırıları görüntülemek için (WAF 'Önleme' modundaysa): "kusto" Azure Tanılama | burada ResourceProvider == "MICROSOFT.NETWORK" | burada Kategori == "ApplicationGatewayFirewallLog" | burada action_s == "Engellendi" | proje TimeGenerate, ana bilgisayar adı_s, requestUri_s, Mesaj, ruleId_s | TimeGenerate açıklamasına göre sipariş ''''

Doğrulama ve Test Etme

WAF'ın test edilmesi, beklenen saldırıları engellediğinden ve meşru trafiği (yanlış pozitifler) engellemediğinden emin olmak için çok önemlidir.

1. Yaygın Saldırıları Test Etme (SQL Enjeksiyonu, XSS)

  1. Senaryo: Web uygulamanıza Application Gateway (genel IP veya FQDN kullanarak) aracılığıyla erişmeyi deneyin ve URL'ye veya form parametresine yönelik bir SQL ekleme saldırısının simülasyonunu yapın.

    • SQL enjeksiyon girişimini içeren örnek URL (izinsiz olarak üretimde çalıştırmayın): http://<seu_ip_publico_appgw>/index.php?id=1' VEYA '1'='1
    • XSS girişimi içeren örnek URL: http://<seu_ip_publico_appgw>/search?query=<script>alert('XSS')</script>
  2. Beklenen Eylem (Algılama Modu): WAF "Algılama" modundaysa isteğe izin verilmesi gerekir ancak Log Analytics'teki WAF günlüklerinin saldırıyı ve onu algılayan kuralı kaydetmesi gerekir.

  3. Beklenen Eylem (Önleme Modu): WAF "Önleme" modundaysa, istek engellenmeli ve tarayıcı bir WAF hata sayfası (genellikle bir HTTP 403 Yasak hatası) görüntülemelidir.

  4. Doğrulama: Saldırıların algılandığını (Algılama modunda) veya engellendiğini (Önleme modunda) doğrulamak için Log Analytics'teki WAF günlüklerini kontrol edin.

2. Özel Kuralları Test Etme (IP Engelleme)

  1. Senaryo: Web uygulamanıza, IP engelleme özel kuralında yapılandırdığınız IP adresinden erişmeyi deneyin.
  2. Beklenen Eylem: Erişim engellenmeli ve tarayıcıda bir WAF hata sayfası görüntülenmelidir.
  3. Doğrulama: IP'nin özel kural tarafından engellendiğini doğrulamak için Log Analytics'teki WAF günlüklerini kontrol edin.

Güvenlik İpuçları ve En İyi Uygulamalar

  • Algılama Modunda Başlat: WAF'ı her zaman başlangıçta "Algılama" modunda dağıtın. Yanlış pozitifleri tespit etmek için günlükleri dikkatlice izleyin ve 'Önleme' moduna geçmeden önce kuralları ayarlayın.
  • WAF Ayarı: İnce ayar çok önemlidir. Yanlış pozitifler oluşturan (meşru trafiği engelleyen) belirli kuralları devre dışı bırakın veya belirli parametreler için hariç tutma kuralları ekleyin. Kural kümelerinin tamamını devre dışı bırakmaktan kaçının.
  • Özel Kurallar: Uygulamanızın belirli güvenlik gereksinimlerini karşılamak için özel kurallar kullanıno veya yönetilen kurallar güncellenmeden önce yeni keşfedilen güvenlik açıklarını azaltmak için.
  • CRS Güncellemeleri: En son tehditlere karşı koruma sağlamak için yönetilen kural kümenizi (OWASP CRS) güncel tutun. Azure WAF genellikle otomatik olarak güncelleştirilir ancak sürümü kontrol edin.
  • Azure Front Door ile entegrasyon: Genel web uygulamaları veya performans optimizasyonu ve gelişmiş yönlendirme gerektiren uygulamalar için, WAF'ı Azure Front Door'da dağıtmayı düşünün. Bu, Microsoft'un küresel ağının ucunda koruma sağlar.
  • İzleme ve Uyarı: Engellenen saldırılar veya anormallikler gibi WAF güvenlik olayları için Azure İzleyici'de uyarıları yapılandırın. Merkezi bir görünüm için WAF günlüklerini SIEM'inizle (örn. Microsoft Sentinel) entegre edin.
  • Düzenli Güvenlik Testi: Yeni güvenlik açıklarını belirlemek ve WAF'ın etkinliğini doğrulamak için web uygulamalarınızda düzenli olarak sızma testleri ve güvenlik açığı taramaları gerçekleştirin.
  • En Az Ayrıcalık Prensibi: Yalnızca yetkili kullanıcıların WAF politikalarını yapılandırma ve yönetme izinlerine sahip olduğundan emin olun.

Genel Sorun Giderme

  • WAF beklenen saldırıları engellemiyor:
    • WAF'ın 'Algılama' modunda değil, 'Önleme' modunda olup olmadığını kontrol edin.
    • Yönetilen kural kümesinin (OWASP CRS) etkinleştirildiğinden emin olun.
    • Saldırının tespit edilip edilmediğini ve hangi kuralın tetiklendiğini görmek için Log Analytics'teki WAF günlüklerini inceleyin. CRS duyarlılığını ayarlamanız veya özel bir kural eklemeniz gerekebilir.
    • Kötü niyetli trafiğe izin veren herhangi bir hariç tutma kuralı veya beyaz liste olmadığından emin olun.
  • WAF meşru trafiği engelliyor (Yanlış Pozitifler):
    • Hangi kuralın meşru trafiği engellediğini belirlemek için Log Analytics'te WAF günlüklerinizi analiz ederek başlayın.
    • Tanımlanan kural için şunları yapabilirsiniz:
      • Belirli kuralı devre dışı bırakın (son çare).
      • Yanlış pozitife neden olan belirli parametre veya başlık için bir hariç tutma kuralı ekleyin.
      • Anormallik puanlama eşiğini ayarlayın (eğer anormallik puanlama modunda CRS kullanılıyorsa).
    • Kuralları ayarlamak için geçici olarak "Algılama" moduna dönmeyi düşünün.
  • WAF etkinleştirildikten sonra uygulama performansı düştü:
    • WAF, trafik denetimi nedeniyle az miktarda gecikme ekler. Application Gateway veya Ön Kapının uygun boyutta olduğundan emin olun.
    • Azure Monitor'de Application Gateway performans günlüklerini kontrol edin.
  • WAF doğru uygulamayla ilişkili değildir:
    • WAF ilkesinin doğru Uygulama Ağ Geçidi veya Ön Kapı ile ilişkilendirildiğini doğrulayın.
    • Web uygulamanıza gelen trafiğin gerçekte WAF etkinken Uygulama Ağ Geçidi/Ön Kapıdan geçtiğinden emin olun.

Sonuç

Azure Web Uygulaması Güvenlik Duvarı (WAF), web uygulamalarını sayısız siber saldırıya karşı korumak için önemli bir savunmadır. WAF, ağ ucunda bir trafik denetimi ve filtreleme katmanı sağlayarak bir kalkan görevi görerek bilinen güvenlik açıklarına ve sıfır gün tehditlerine karşı koruma sağlar. Yönetilen ve özel kural kümelerini kullanmanın esnekliği ve Azure uygulama dağıtım hizmetleriyle yerel entegrasyon, Azure WAF'ı her kuruluş için sağlam ve ölçeklenebilir bir çözüm haline getirir. Dikkatli uygulama, politikaların ince ayarı ve sürekli izleme ile güvenlik uzmanları, web uygulamalarının güvenli, kullanılabilir ve uyumlu kalmasını sağlayarak, sürekli gelişen tehdit ortamına karşı kuruluşun genel güvenlik duruşunu güçlendirebilir.


Referanslar:

[1] Microsoft Learn. Azure Web Uygulaması Güvenlik Duvarı nedir?. Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/web-application-firewall/overview [2] Microsoft Learn. Azure Application Gateway'de Web Uygulaması Güvenlik Duvarı (WAF). Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/ag-overview [3] OWASP Vakfı. OWASP İlk 10. Şu adreste bulunabilir: https://owasp.org/www-project-top-ten/ [4] Microsoft Learn. Güvenlik duvarı politikaları oluşturunl Azure Application Gateway için Web Application Gateway (WAF). Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/create-waf-policy-ag [5] Microsoft Learn. WAF CRS kuralları ve kural grupları. Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/application-gateway-waf-collection-rules [6] Microsoft Learn. WAF izleme ve günlüğe kaydetme. Şu adreste bulunabilir: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/waf-diagnostics