WAF nedir?
Bir ''web uygulaması güvenlik duvarı (WAF)'' HTTP uygulamaları için bir uygulama güvenlik duvarıdır. Bir WAF, genellikle politika adı verilen bir dizi kural aracılığıyla çalışır. Bu politikalar, kötü niyetli trafiği filtreleyerek uygulamadaki güvenlik açıklarına karşı koruma sağlamayı amaçlar
Bir web uygulamasının önüne bir WAF konuşlandırılarak, web uygulaması ile İnternet arasına bir kalkan yerleştirilir. Bir proxy sunucusu bir aracı kullanarak istemci makinenin kimliğini korurken, WAF bir tür ters proxy'dir ve istemcilerin sunucuya ulaşmadan önce WAF'tan geçmesini sağlayarak sunucuyu açığa çıkmaktan korur.
Web uygulamalarınıXSS, SQL injection cookie poisoning gibi çeşitli uygulama katmanı saldırılarına karşı korur. Uygulamalara yönelik saldırılar, ihlallerin önde gelen nedenidir - değerli verilerinize açılan kapıdır. Doğru WAF ile, sistemlerinizi tehlikeye atarak bu verileri dışarı çıkarmayı amaçlayan bir dizi saldırıyı engelleyebilirsiniz.
Nasıl Çalışır?
Bir WAF, web uygulamasına giden kötü amaçlı HTTP/S trafiğini filtreleyerek, izleyerek ve engelleyerek web uygulamalarınızıkorur ve yetkisiz verilerin uygulamadan çıkmasını önler. Bunu, hangi trafiğin kötü amaçlı ve hangi trafiğin güvenli olduğunubelirlemeye yardımcı olan bir dizi ilkeye bağlı kalarak yapar. Bir proxy sunucusunun bir istemcinin kimliğini korumak içinaracı görevi görmesi gibi, bir WAF da benzer şekilde çalışır, ancak ters proxy olarak adlandırılır ve web uygulamasısunucusunu potansiyel olarak kötü niyetli bir istemciden koruyan bir aracı görevi görür.
WAF'lar yazılım, cihaz veya hizmet olarak sunulabilir. Politikalar, web uygulamanızın veya web uygulamaları kümenizin benzersiz ihtiyaçlarını karşılayacak şekilde özelleştirilebilir. Birçok WAF, yeni güvenlik açıklarını ele almak için politikaları düzenli olarak güncellemenizi gerektirse de, makine öğrenimindeki gelişmeler bazı WAF'ların otomatik olarak güncellenmesini sağlar. Tehdit ortamının karmaşıklığı ve belirsizliği artmaya devam ettikçe bu otomasyon daha da kritik hale gelmektedir.
Türleri:
Bir WAF, her biri kendi yararları ve eksiklikleri olan üç farklı yoldan biriyle uygulanabilir:
Ağ tabanlı bir WAF genellikle donanım tabanlı olarak adlandırılır. Yerel olarak kuruldukları için gecikmeyi en aza indirirler, ancak ağ tabanlı WAF'lar en pahalı seçenektir.Fiziki ekipman depolanması ve bakımını gerektirir.
Ana bilgisayar tabanlı bir WAF, yazılım tabanlı olarak da adlandırılan bir uygulamanın yazılımına tamamen entegre edilebilir. Bu çözüm, ağ tabanlı bir WAF'tan daha ucuzdur ve daha fazla özelleştirilebilirlik sunar.
Bulut tabanlı WAF'lar, uygulaması çok kolay olan uygun fiyatlı bir seçenek sunar; genellikle trafiği yenidenyönlendirmek için DNS'de yapılan bir değişiklik kadar basit olan anahtar teslimi bir kurulum sunarlar. Kullanıcılar hizmet olarak güvenlik için aylık veya yıllık ödeme yaptıklarından, ön maliyet söz konusu değildir. Bulut tabanlıWAF'lar ayrıca kullanıcı tarafında herhangi bir ek çalışma veya maliyet olmadan en yeni tehditlere karşı koruma sağlamakiçin sürekli olarak güncellenen bir çözüm sunabilir.
WAF'ın Avantajları:
Bir WAF, HTTP uygulama katmanı kullanılarak iletilen hassas uygulama verilerine daha fazla görünürlük sağladığı için geleneksel güvenlik duvarlarına göre bir avantaja sahiptir. Aşağıdakiler de dahil olmak üzere, normalde geleneksel ağ güvenlik duvarlarını atlayan uygulama katmanı saldırılarını önleyebilir:
XSS saldırıları, saldırganların başka bir kullanıcının tarayıcısına kötü amaçlı komut dosyaları enjekte etmesine ve çalıştırmasına olanak tanır.
SQL enjeksiyon saldırıları, SQL veritabanı kullanan herhangi bir uygulamayı etkileyebilir ve saldırganların hassas verilere erişmesine ve potansiyel olarak değiştirmesine olanak tanır.
Web oturumu korsanlığı, saldırganların bir oturum kimliğini ele geçirmesine ve yetkili bir kullanıcı gibi davranmasına olanak tanır. Oturum kimliği normalde bir çerez veya URL içinde saklanır.
DDoS saldırıları, bir ağı kullanıcılarına hizmet veremeyecek duruma gelene kadar trafiğe boğar. Hem ağ güvenlik duvarları hem de WAF'lar bu saldırı türüyle başa çıkabilir ancak farklı katmanlardan yaklaşırlar.
WAF'ın bir diğer avantajı da web tabanlı uygulamaları, uygulamanın kaynak koduna erişmek zorunda kalmadan savunabilmesidir. Ana bilgisayar tabanlı bir WAF uygulama koduna entegre edilebilirken, bulutta barındırılan bir WAF erişim olmadan uygulamayı savunabilir. Buna ek olarak, bir bulut WAF'ın kurulumu ve yönetimi kolaydır ve kullanıcıların yeni tespit edilen tehditlere uyum sağlamak için ayarlarını hızla özelleştirmelerini sağlayan hızlı sanal yama çözümleri sunar.
WAF, çevrimiçi bankacılar, sosyal medya platformu sağlayıcıları ve mobil uygulama geliştiricileri de dahil olmak üzere internet üzerinden ürün sağlayan ve sayıları giderek artan işletmeler için önemlidir çünkü veri sızıntısını önlemeye yardımcı olur. Kredi kartı verileri ve müşteri kayıtları gibi pek çok hassas veri, web uygulamaları aracılığıyla erişilebilen arka uç veritabanlarında saklanır. Saldırganlar, ilgili verilere erişim sağlamak için sıklıkla bu uygulamaları hedef almaktadır.
WAF vs Güvenlik Duvarı ve IPS:
IPS bir saldırı önleme sistemi, WAF bir web uygulaması güvenlik duvarı ve NGFW ise yeni nesil bir güvenlik duvarıdır. Güvenlik duvarı. Aralarındaki fark nedir?
IPS daha geniş odaklı bir güvenlik ürünüdür. Tipik olarak imza ve politika tabanlıdır; yani bir imza veritabanına ve belirlenmişpolitikalara dayalı olarak iyi bilinen güvenlik açıklarını ve saldırı vektörlerini kontrol edebilir. IPS, veritabanı ve politikalara dayalı birstandart oluşturur, ardından herhangi bir trafik standarttan saptığında uyarılar gönderir. İmzalar ve politikalar, yeni güvenlik açıklarıbilindikçe zaman içinde büyür. Genel olarak IPS, DNS, SMTP, TELNET, RDP, SSH ve FTP gibi bir dizi protokol türündeki trafiği korur. IPStipik olarak 3. ve 4. katmanları çalıştırır ve korur. Bazıları uygulama katmanında (katman 7) sınırlı koruma sunabilse de ağ ve oturumkatmanları.
Yeni nesil güvenlik duvarı (NGFW), web siteleri, e-posta hesapları ve SaaS üzerinden İnternet'e giden trafiği izler. Basitçe söylemekgerekirse, kullanıcıyı korur (web uygulamasına karşı). Bir NGFW, kullanıcı tabanlı politikaları uygular ve URL filtreleme, anti-virüs/anti-malware ve potansiyel olarak kendi saldırı önleme sistemleri (IPS) gibi özellikler eklemenin yanı sıra güvenlik politikalarına bağlamekler. Bir WAF tipik olarak bir ters proxy (sunucular tarafından kullanılır) iken, NGFW'ler genellikle ileri proxy'lerdir (tarayıcı gibiistemciler tarafından kullanılır).
Bir web uygulaması güvenlik duvarı (WAF) uygulama katmanını korur ve uygulama katmanındaki her HTTP/S isteğini analiz etmekiçin özel olarak tasarlanmıştır. Genellikle kullanıcı, oturum ve uygulama farkındadır, arkasındaki web uygulamalarının ve hangihizmetleri sunduklarının bilincindedir. Bu nedenle, bir WAF'ı kullanıcı ile uygulamanın kendisi arasında aracı olarak düşünebilirsiniz,tüm iletişimleri uygulamaya veya kullanıcıya ulaşmadan önce analiz eder. Geleneksel WAF'lar yalnızca izin verilen eylemlerin(güvenlik politikasına dayalı olarak) gerçekleştirilebilmesini sağlar. Birçok kuruluş için WAF'lar, özellikle en çok görülen uygulamagüvenlik açıklarının temel listesi olan OWASP Top 10'a karşı koruma sağlamak için uygulamalar için güvenilir, ilk savunma hattıdır. BuTop 10 şu anda şunları içermektedir:
Injection attacks
Broken Authentication
Sensitive data exposure
XML External Entities (XXE)
Broken Access control
Security misconfigurations
Cross Site Scripting (XSS)•
Insecure Deserialization
WAF Saldırıları Nasıl Azaltır?
Peki bir WAF tüm bu güvenlik açıklarını tam olarak nasıl azaltır? Bir WAF'ın web saldırılarını tespit etmek ve önlemek için kullandığı üç temel yöntem vardır: istekleri reddetme/izin verme, inceleme ve reddetme ve imzalar. Her birini inceleyelim, olur mu?
Talepleri Reddetme/İzin Verme
İstekleri reddet/izin ver yöntemi, ağ güvenlik duvarları tarafından kullanılan geleneksel kapı modeline çok benzer. İstekler mevcut bilgilere göre reddedilir ya da izin verilir. Bu bilgi IP adresi gibi basit bir bilgi olabileceği gibi OPTIONS veya METHODS gibi daha karmaşık ve HTTP'ye özgü bir bilgi de olabilir.
İmzalar
İmzalar, birçok farklı güvenlik çözümünde ortak olan bir başka koruma yöntemidir. Anti-virüs ve anti-malware hizmetleri, virüs ve kötü amaçlı yazılım kanıtlarını hızlı bir şekilde taramalarını ve işaretlemelerini sağlayan imzalara güvenir. IPS/IDS de WAF gibi büyük ölçüde bu yönteme dayanır. İki tür imza vardır: kullanıcı tanımlı ve satıcı tarafından yönetilen.
Teftiş
Son olarak, istekler (ve yanıtlar) üzerinde tam kontrol sağlamak için denetim dahil edilmiştir. İsteklerin incelenmesi, WAF'ın istektekibilgileri bilinen iyi/kötü dizeler ve değerlerle karşılaştırarak isteğin kötü amaçlı mı yoksa meşru mu olduğunu belirlemesini sağlar.HTTP uygulamaları için (yani bugün internetteki çoğu uygulama için) bu, bir WAF'ın sağlaması gereken en önemli özelliktir. Bir WAFprogramlanabilir denetim sunmuyorsa, bu seçimi yeniden gözden geçirmek isteyeceksiniz. HTTP metin tabanlı ve genişletilebilirolduğundan, istekleri denetlemek için kullanabileceğiniz seçenek ve yöntemlerin kapsamlı bir "onay kutusu" listesini sağlamanınneredeyse hiçbir yolu yoktur. Çok az HTTP başlığı kısıtlı seçeneklere sahiptir, bu da içine neyin doldurulup neyin doldurulamayacağınısınırlamayı çok zorlaştırır. Bu da başlıklara ya da yükün kendisine gömülü kötü amaçlı kodları ortaya çıkarmak için genellikledenetimin gerekli olduğu anlamına gelir. İncelemeyi kullanmanın iki yolu vardır: bilinen başlıklar ve Payload.
WAF Araçlar Listesi:
GitHub - Ekultek/WhatWaf: Detect and bypass web application firewalls and protection systems
Detect and bypass web application firewalls and protection systems - Ekultek/WhatWaf
github.com
GitHub - sqlmapproject/sqlmap: Automatic SQL injection and database takeover tool
Automatic SQL injection and database takeover tool - sqlmapproject/sqlmap
github.com
GitHub - LandGrey/abuse-ssl-bypass-waf: Bypassing WAF by abusing SSL/TLS Ciphers
Bypassing WAF by abusing SSL/TLS Ciphers. Contribute to LandGrey/abuse-ssl-bypass-waf development by creating an account on GitHub.
github.com
GitHub - vincentcox/bypass-firewalls-by-DNS-history: Firewall bypass script based on DNS history records. This script will search for DNS A history records and check if the server replies for that domain. Handy for bugbounty hunters.
Firewall bypass script based on DNS history records. This script will search for DNS A history records and check if the server replies for that domain. Handy for bugbounty hunters. - vincentcox/byp...
github.com
GitHub - migolovanov/libinjection-fuzzer: This tool was written as PoC to article https://waf.ninja/libinjection-fuzz-to-bypass/
This tool was written as PoC to article https://waf.ninja/libinjection-fuzz-to-bypass/ - migolovanov/libinjection-fuzzer
github.com
GitHub - khalilbijjou/WAFNinja: WAFNinja is a tool which contains two functions to attack Web Application Firewalls.
WAFNinja is a tool which contains two functions to attack Web Application Firewalls. - khalilbijjou/WAFNinja
github.com
GitHub - wallarm/gotestwaf: An open-source project in Golang to asess different API Security tools and WAF for detection logic and bypasses
An open-source project in Golang to asess different API Security tools and WAF for detection logic and bypasses - wallarm/gotestwaf
github.com
GitHub - vincentcox/bypass-firewalls-by-DNS-history: Firewall bypass script based on DNS history records. This script will search for DNS A history records and check if the server replies for that domain. Handy for bugbounty hunters.
Firewall bypass script based on DNS history records. This script will search for DNS A history records and check if the server replies for that domain. Handy for bugbounty hunters. - vincentcox/byp...
github.com
GitHub - andresriancho/w3af: w3af: web application attack and audit framework, the open source web vulnerability scanner.
w3af: web application attack and audit framework, the open source web vulnerability scanner. - andresriancho/w3af
github.com
GitHub - EnableSecurity/wafw00f: WAFW00F allows one to identify and fingerprint Web Application Firewall (WAF) products protecting a website.
WAFW00F allows one to identify and fingerprint Web Application Firewall (WAF) products protecting a website. - EnableSecurity/wafw00f
github.com
GitHub - stamparm/identYwaf: Blind WAF identification tool
Blind WAF identification tool. Contribute to stamparm/identYwaf development by creating an account on GitHub.
github.com