10 Ocak 2016

HTTP Get Post Flood Güvenlik Açığı ve Layer 7 Katmanı

HTTP Get Flood Güvenlik Açığı

Günümüzde sitelere yapılan müdahaleler artık sitelerin yazılım(Script) açıklarından kaynaklanan zafiyetlerden ziyade o kurumun servislerini kitlemek ve çalıştıramaz hale getirmek üzerine yapılıyor. Kamuoyunda bu saldırı tipleri DDOS olarak biliniyor.

Sağlıklı bir DDOS testi için birçok sunucuya(bilgisayar) ihtiyacınız vardır. Son zamanlarda önemli kurumlara yapılan siber saldırılardan sonra birçok kuruluş kendi servisleri için D/DoS stres testi uygulaması yapıyor.

HTTP Get/Post Flood olarak bildiğimiz Layer 7 protokolünü etkileyen DoS testi karşısında servisleri kitleniyor. Özellikle DoS saldırısının altını çizdim çünkü yapılan test yöntemi tek bir sunucu (Tek IP Adresi) üzerinden yapılıyor ve başarılı olunuyor. Genelde 80 portu üzerinden yapılan testlerde kurumun sitesi çalışmıyor sonrasında sunucu hatası ile karşılaşılıyor.

HTTP Get Flood DoS stres testi için (GoldenEye Layer 7, RedEye, Torshammer, DoSHTTP, Slowloris gibi) Stres testi araçlarını kullanabilirsiniz. Kurumunuz üzerinde yapacağınız bu testler sonucu servisleri kontrol edebilir, bloke olup olmadığını anlık görebilirsiniz. Siber Saldırı Türleri: D/DOS konusunda da bu yazılımlara değindim. HTTP Get yöntemini diğerlerinden ayıran özelliği USER-Agent tanımlaması yaptığı için gerçek bir kişi gibi siteyi ziyaret etmesidir. Bu yapılan istekte sunucu tarafından sahte bir istek olduğu anlaşılamıyor.

HTTP isteği istemci ve sunucu arası bir bağlantı olup TCP protokolü üzerinden yapılır. İki taraf arasında yapılan bu bağlantıda ortalama 10 adet TCP paketi oluşmaktadır. Bu sayede yapılan birden fazla istek aşırı bir paket oluşturacak ve sunucunun cevap verememesi durumu doğacaktır.

Sunucuya Gelen HTTP-Get Log(Kayıt) örnekleri aşağıdaki gibidir. Sunucu üzeriden gelen istekleri görebilir ve anlık olarak gelen IP adreslerini bloke edebilirsiniz. Fakat bu bir DoS değilde birden fazla sunucu üzerinden (DDoS) geliyorsa bunun için bazı güvenlik çözümlerine gitmeniz gerekecek.

Sunucuya Gelen HTTP-Get Log Örnekleri

Layer 7 katmanına yapılan HTTP Get/Post saldırısı gibi NTP, SSDP, SNMP, Chargen, NTP-AMP, VSE gibi DoS atak türleri de çok yaygındır. Saldırıların çoğu Application Layer (Layer 4 ve 7) katmanına yapılırken aynı zamanda geliştirilen yeni teknikler ile saldırılar direk olarak Network ve Transport katmanlarına da yapılabilmektedir.

Firmalar genelde çözümü Firewall veya Firewall arkasına yapılan özel yazılım filtreleme çözümlerine gidiyor. Firewall önü için bir güvenlik çözümünü ise henüz Türkiye'de sağlayan bir firma yok. 

Peki Güvenlik için Neler Yapabiliriz?

HTTP Get Flood Güvenlik Açığı: Türkiye'de Birçok Özel ve Kamu Kurumu Tehlikede

1) HTTP Anti Flood/DoS Security Module
HTTP Get saldırılarına karşı Gökhan Muharremoğlu'nun geliştirdiği PHP tabanlı IOSEC HTTP Anti Flood/DoS yazılımını sitenizde kullanabilirsiniz.

sourceforge.net/projects/iosec adresinden yazılımı indirdikten sonra FTP programı ile dosyaları public_html dizini içerisine atın. (index.php, anasayfa.php gibi) sitenizdeki ve temanız da tüm PHP tabanlı dosyalarınıza aşağıdaki kodu ekleyiniz.

include('./iosec.php');

Uygulamayı test etmek için (Örnek: www.siteniz.com/test.php) birkaç defa siteyi yeniledikten sonra HTTP Get istekleri engellenecek ve sizden doğrulma kodu istenecektir. Sitenize aşırı yapılan HTTP Get isteklerini ise www.siteniz.com/iosec_admin/index.php yolundan izleyebilirsiniz.

Tek bir sunucudan bu doğrultuda gelen istek var sunucu tarafında bu IP adresini engelleyebilirsiniz. Sunucuya gelen istekleri görmek için;
# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
# netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n

IOSEC HTTP Anti Flood/DoS için Kaynaklar
sourceforge.net/projects/iosec
www.iosec.org/test.php (Demo, birden fazla F5 yaparak test edebilirsiniz)
Addons for IOSEC DoS HTTP Security
Video Reducing the Attack Surface Against the HTTP Flood Attacks
Hakin9 IT Security Magazine Article about IOSEC
HTTP Flood Saldırılarına Karşı Web Uygulaması Seviyesinde Yaklaşımlar TÜBİTAK

Diğer Kaynaklar
HTTP-GET DDoS Atak Engelleme TÜBİTAK BİLGEM
Prevent Denial of Service (DoS) Attacks

HTTP Get Flood Güvenlik Açığı: Türkiye'de Birçok Özel ve Kamu Kurumu Tehlikede

2) Doğru Veri Merkezi Seçimi
D/DoS saldırıları için kaliteli CDN hizmeti ve sunucu güvenlik, yapılandırma konusunda ciddi olan firmalar ile çalışmalısınız. Türkiye'deki veri merkezilerini inceleyip kaliteli veri merkezi ve Türk-Telekom gibi ciddi kurumlardan barınma hizmetinizi almayı tavsiye ediyorum. Aldığınız barınma hizmeti sonrası CDN hizmeti de alabilirsiniz.

Hizmet aldığınız veri merkezinin Firewall çözümüde önemlidir. Doğru Firewall(Güvenlik Duvarı) seçimi yapan veri merkezleri ile çalışmalısınız.

CloudFlare DDoS Protection

3) Özel Kurumlar için D/DoS Güvenliği
CloudFlare DDoS Protection: Birçok site tarafından kullanılan DDos Security çözümü olan CloudFlare, Name Server sunucularınızı CloudFlare'a devrederek onun üzerinden çalıştırıyorsunuz. Asıl DNS sunucularınızı maskelemiş oluyorsunuz. CloudFlare bir CDN hizmetidir. Ücretsiz olarak da tek bir siteniz için bu hizmetten yararlanabiliyorsunuz.

Tabi bu bilgileri söylemekte fayda var CloudFlare tam bir DDoS Protection hizmeti değildir. Paralı olan Business sürümü etkilidir ve sizi Layer 3 ve 4 ataklarına karşı korur. CloudFlare Free ve Pro paketlerinde ise sadece Layer 7 den gelen saldırılar için koruma vardır.

CloudFlare için Kaynaklar
www.cloudflare.com
www.cloudflare.com/a/sign-up (CloudFlare Kayıt)
en.wikipedia.org/wiki/CloudFlare

HTTP Get Flood Güvenlik Açığı Layer 7

4) Name Server Politikası
DDoS saldırıları ile bazı önemli kurumlar aktif sunucu sayılarını varsayılan olsan ikiden de fazlalaştırarak beş veya sekize çıkardı. Örnekle (network-tools.com sitesinden DNS Records kısmından merak ettiğiniz siteleri kontrol edebilirsiniz) NIC.TR aktif sunucu sayısını sekize çıkarmıştır. Anlık profesyonel bir saldırı geldiği zaman hazırsa 50 adet sunucu bulunmaktadır. Sistem yöneticileri gelen yoğunluğu göre sunucuları aktif ve de-aktif ederek saldırıyı önlemeye çalışırlar.

Saldırı geldiği zaman ilk olarak gelen atakların yurt içimi yoksa yurt dışından mı geldiği tespit edilmelidir. Eğer saldırı yurt dışından geliyorsa kurum yurt dışına hizmet veren veya yurt dışı hizmeti çok önemli değilse geçici güvenlik politikası olarak 1-2 saatliğine yurt dışı sunucularını kapayabilir. Tabi kurum çok önemli ve prestijli bir kurumsa yurt dışına kendini kapama hamlesi aslında basit bir hamle olarak algılanır.

Örnek ile anlatmak gerekirse; Rusya Domain servisi NIC.RU atak aldığı zaman ilk yapacağı hamle yedekteki sunucularını harekete geçirerek bir süre IP değişim politikası uygulayıp Spoof saldırıyı engellemeye çalışacaktır. Eğer ki saldırı yapan yer NIC.RU'nun yedek sunucuları hakkında  bilgi sahibi ise ve 30 dan fazla sunucusuna hazır bir saldırı geliştirdiyse o zaman kurum son çare yurt dışı sunucularını kapatarak yurt içi sitenin ayakta kalmasını sağlayacaktır. Bu karar kurum büyüdükçe vermesi zor bir karardır.

Name Server isimlendirme işlemi de önemlidir. Bir kurumun 50 adet sunucusu var ama sunucu isimleri ns1-ns50 veya lns1-lns50 bunların isimlerinin hepsi farklı olmalıdır. Bunun önemi ileri de anlaşılacaktır. Name Server politikası ve CDN hizmeti tamamen donanımsal olup şuan DDoS önleme süreci tamamen donanımsal alt yapınıza bakmaktadır.

Burak Avcıoğlu

Kaynaklar
www.incapsula.com/ddos/attack-glossary/http-flood.html
HTTP Flood Attack Radware Video
en.wikipedia.org/wiki/Application_layer_DDoS_attack
en.wikipedia.org/wiki/Stress_testing_(software)
en.wikipedia.org/wiki/Denial-of-service_attack
en.wikipedia.org/wiki/POST_(HTTP)
Ddos Saldırılarındaki Doğru Bilinen Yanlışlar
tr.wikipedia.org/wiki/Anycast (Anycast)
en.wikipedia.org/wiki/Anycast (Anycast)
en.wikipedia.org/wiki/DDoS_mitigation (DDoS mitigation)
Akamai DDoS Protection
Incapsula DDoS Protection

Hiç yorum yok:

Yorum Gönder