AWS WAF (Web Application Firewall), web uygulamalarınızı SQL Injection, Cross-Site Scripting (XSS) gibi yaygın saldırılara karşı koruyan bulut tabanlı bir güvenlik hizmetidir. AWS WAF, Application Load Balancer (ALB), CloudFront ve API Gateway gibi hizmetlerle entegre çalışarak, özelleştirilebilir kurallar sayesinde kötü niyetli trafiği engeller. Bu yazıda, AWS WAF'in temel yapı taşlarını, SQL Injection ve XSS koruması için nasıl kural oluşturacağınızı ve sık yapılan hataları ele alacağız.
AWS WAF'in Temel Bileşenleri: Web ACL, Kural ve Kural Grupları
AWS WAF, trafiği filtrelemek için üç ana bileşen kullanır: Web ACL (Web Access Control List), kural (rule) ve kural grubu. Web ACL, belirli bir kaynağa (ALB, CloudFront dağıtımı, API Gateway) uygulanan kurallar kümesidir. Her kural, eşleşme koşulları ve bir aksiyon (Allow, Block, Count) içerir. Kural grupları ise birden fazla kuralı bir araya getirerek yeniden kullanılabilirliği artırır. AWS, yönetilen kural grupları sunar; bunlar arasında SQL Injection ve XSS için hazır kurallar da bulunur.
Adım Adım AWS WAF Kuralı Oluşturma
SQL Injection ve XSS saldırılarını engellemek için AWS Management Console üzerinden aşağıdaki adımları izleyin:
1. Web ACL Oluşturma
AWS WAF konsolunda "Create web ACL" seçeneğine tıklayın. Web ACL'ye bir ad verin (ör. WebAppACL) ve ilişkilendirilecek kaynağı seçin (ör. bir ALB veya CloudFront dağıtımı). Bölge seçiminde, CloudFront için global, ALB için ise ilgili bölgeyi seçin.
2. Yönetilen Kural Gruplarını Ekleme
AWS, SQL Injection ve XSS dahil birçok tehdit için yönetilen kural grupları sağlar. Web ACL oluşturma sihirbazında "Add managed rule groups" adımında AWS Core Rule Set (CRS) ve AWS Anonymous IP list gibi grupları seçin. CRS içinde SQL Injection ve XSS kuralları varsayılan olarak aktif gelir. Bu grupları etkinleştirerek temel korumayı anında elde edebilirsiniz.
3. Özel Kural Oluşturma (SQL Injection ve XSS)
Yönetilen kurallar yeterli gelmezse, kendi kurallarınızı oluşturabilirsiniz. Örneğin, bir SQL Injection kuralı oluşturmak için:
- Web ACL düzenleyicide "Add my own rules and rule groups" seçeneğine tıklayın.
- Kural tipi olarak "Regular rule" seçin.
- İfade (statement) olarak SQL Injection Attack koşulunu seçin. Bu koşul, gelen isteklerin sorgu dizesi, gövde veya başlık gibi alanlarını SQL enjeksiyon kalıplarına karşı tarar.
- Benzer şekilde Cross-Site Scripting Attack koşulu için de ayrı bir kural oluşturun.
- Aksiyon olarak Block seçin. Test aşamasında Count kullanarak istekleri engellemeden izleyebilirsiniz.
4. Kural Önceliğini Ayarlama
Kurallar, web ACL içinde belirli bir sırayla değerlendirilir. Genel kural, daha spesifik kuralları üstte, genel kuralları altta tutmaktır. Örneğin, SQL Injection kuralını XSS'den önce yerleştirebilirsiniz. AWS, yönetilen kural gruplarını otomatik olarak uygun öncelikle ekler.
Sık Yapılan Hatalar ve Dikkat Edilmesi Gerekenler
AWS WAF yapılandırmasında karşılaşılan yaygın sorunlar şunlardır:
- Yanlış kaynak seçimi: Web ACL yalnızca ALB, CloudFront veya API Gateway ile kullanılabilir; EC2 instance'larına doğrudan bağlanamaz.
- Aşırı agresif kurallar: Bazı SQL Injection veya XSS kuralları meşru trafiği de engelleyebilir. Bu nedenle önce Count modunda test yapın ve logları inceleyin.
- Güncellemeleri ihmal etmek: AWS yönetilen kural grupları düzenli olarak güncellenir. Varsayılan ayarları kullanmak yerine, periyodik olarak kural sürümlerini kontrol edin.
- Rate-based kuralları unutmak: SQL Injection ve XSS korumasına ek olarak, DDoS benzeri saldırıları önlemek için rate-based kurallar (ör. IP başına istek limiti) eklemeyi unutmayın.
AWS WAF'ı Diğer Güvenlik Çözümleriyle Entegre Etme
AWS WAF, tek başına yeterli değildir; bunu bir SIEM sistemi veya EDR/XDR çözümleri ile tamamlayarak katmanlı bir güvenlik mimarisi oluşturabilirsiniz. Örneğin, AWS WAF loglarını AWS CloudWatch'a gönderip bir SIEM aracında analiz edebilirsiniz. Ayrıca Zero Trust prensipleriyle uyumlu olarak, WAF kurallarınızı mikro segmentasyonla destekleyebilirsiniz.
AWS WAF Kuralları için Örnek Tablo
| Kural Adı | Koşul | Aksiyon | Açıklama |
|---|---|---|---|
| SQLI_Block | SQL Injection Attack | Block | İstekteki sorgu parametrelerini SQL enjeksiyon kalıplarına karşı kontrol eder. |
| XSS_Block | Cross-Site Scripting Attack | Block | İstek gövdesi ve URL'deki XSS vektörlerini filtreler. |
| Rate_Limit | Rate-based (2000 istek/5 dk) | Block | Aynı IP'den gelen aşırı istekleri engelleyerek DDoS'u hafifletir. |
AWS WAF Performans ve Maliyet Optimizasyonu
AWS WAF'in maliyeti, web ACL sayısı, kural sayısı ve istek hacmine bağlıdır. Kural sayısını gereksiz yere artırmak maliyeti yükseltir. Yönetilen kural gruplarını kullanmak genellikle daha ekonomiktir. Ayrıca, istekleri ölçeklendirmek için CloudFront ile birlikte kullanmak, edge locations sayesinde gecikmeyi azaltır. Logları AWS S3'e yönlendirerek analiz maliyetlerini düşürebilirsiniz.
Sıkça Sorulan Sorular
Bu bölümde AWS WAF ile ilgili en çok sorulan sorulara yanıt veriyoruz.
S: AWS WAF sadece AWS hizmetleriyle mi çalışır?
Evet, AWS WAF yalnızca Application Load Balancer, Amazon CloudFront ve Amazon API Gateway ile entegre çalışır. Diğer kaynaklar için üçüncü taraf WAF çözümleri kullanmanız gerekir.
S: SQL Injection kuralı yanlış pozitifleri nasıl azaltabilirim?
Kuralı önce Count modunda çalıştırın, logları inceleyin ve meşru trafiği engelleyen kalıpları tespit edin. Ardından, istisnalar ekleyerek veya kural koşullarını daraltarak doğruluk oranını artırabilirsiniz.
S: AWS WAF ile DDoS koruması yeterli mi?
AWS WAF, uygulama katmanı DDoS saldırılarına karşı yardımcı olur, ancak daha büyük ölçekli saldırılar için AWS Shield Advanced gibi ek hizmetlere ihtiyaç duyabilirsiniz.
S: Özel SQL Injection kuralları yazmalı mıyım?
Çoğu durumda AWS'nin yönetilen kural grupları yeterlidir. Ancak uygulamanıza özgü parametreler varsa, özel kurallar ekleyerek korumayı derinleştirebilirsiniz. Örneğin, belirli bir POST parametresini daha sıkı taramak için.
Sık Sorulan Sorular
AWS WAF sadece AWS hizmetleriyle mi çalışır?
Evet, AWS WAF yalnızca Application Load Balancer, Amazon CloudFront ve Amazon API Gateway ile entegre çalışır. Diğer kaynaklar için üçüncü taraf WAF çözümleri kullanmanız gerekir.
SQL Injection kuralı yanlış pozitifleri nasıl azaltabilirim?
Kuralı önce Count modunda çalıştırın, logları inceleyin ve meşru trafiği engelleyen kalıpları tespit edin. Ardından, istisnalar ekleyerek veya kural koşullarını daraltarak doğruluk oranını artırabilirsiniz.
AWS WAF ile DDoS koruması yeterli mi?
AWS WAF, uygulama katmanı DDoS saldırılarına karşı yardımcı olur, ancak daha büyük ölçekli saldırılar için AWS Shield Advanced gibi ek hizmetlere ihtiyaç duyabilirsiniz.
Özel SQL Injection kuralları yazmalı mıyım?
Çoğu durumda AWS'nin yönetilen kural grupları yeterlidir. Ancak uygulamanıza özgü parametreler varsa, özel kurallar ekleyerek korumayı derinleştirebilirsiniz. Örneğin, belirli bir POST parametresini daha sıkı taramak için.






