Netscaler HTTP Dos Koruması Internet hacker`ları bir siteye dalgalar
Transkript
Netscaler HTTP Dos Koruması Internet hacker`ları bir siteye dalgalar
Netscaler HTTP Dos Koruması Internet hacker’ları bir siteye dalgalar halinde GET istekleri veya diğer HTTP seviyesinde istekleri göndererek aşağı indirebilirler. HTTP Denial-of-Service (HTTP Dos) konunan Web sunucularınıza yönlendirilen böyle saldırıları önlemek için etkili bir yol sağlar. HTTP Dos özeliği ayrıca internet cloud ve Web sunucularınız arasında kalan Netscaler cihazının bir HTTP Dos atağı tarafından aşağı indirilmesini önler. Internetteki çoğu saldırganlar hesaplama maliyetini azaltmak için web sunucularına geri yanıt dönmezler ve tespit edilmelerini önlemek için ebatlarını en aza indirgerler.Bu saldırganlar atak paketlerini göndermek, bağlantı kurmak veya olabildiğince hızlı HTTP isteklerini göndermek için hız üzerinde odaklanırlar. Internet Explorer, Firefox veya NetScape browser’lar gibi gerçek HTTP istemcileri HTML Refresh meta tag’larını, Java script’leri ve cookie’leri anlayabilir. Standart HTTP istemcilerde bu özelliklerin çoku aktif durumdadır. Bu arada Dos saldırılarında kullanılan sahte istemciler sunucudan istemciye geri dönen yanıtları çözümleyemezler (pars edemezler). Eğer kötü niyetli istemciler istekleri çözümlemeye ve akıllıca göndermeye kalkışırlarsa saldırıları agresif başlatmak onlar için zor olur. Netscaler bir saldırıyı tespit ettiğinde , gelen isteklerin belli bir yüzdesine cookie veya basitce sayfanın yenilenmesini içeren Java veya HTML döner. (Client Detect Rate parametresi’yle bu yüzde yi ayarlıyoruz). Gerçek Web tarayıcıları ve diğer Web tabanlı istemci programları sunucudan dönen yanıtı çözümleyebilir ve ondan sonra cookie ile bir POST isteğini tekrar gönderebilir. Dos istemcileri Netscaler’ın yanıtını çözümlemek yerine drop’lar ve onların istekleri de bu yüzden drop’lanır. Meşru bir istemci Netscaler’ın yenileme yanıtına (refresh response) doğru şekilde cevap verdiği zaman bile istemcinin POS isteğinde ki cookie aşağıda ki koşullarda geçersiz olabilir. Eğer orjinal istek Netscaler Dos saldırsını saptamadan önce yapıldıysa, ama tekrar gönderme isteği Netscaler saldırı altındaykenken yapıldıysa. Cookie geçersiz hale geldikten sonra ,İstemcinin düşünme zamanı dört dakikayı aştığından Yukarda ki senaryoların ikiside çok nadirdir. Ek olarak HTTP Dos özelliğinin aşağıda ki sınırlamaları bulunmaktadır. Saldırı altında, Bütün POST istekleri düşürülür ve cookie ile bir hata sayfası gönderilir. Saldırı altında, cookie bulundurmayan bütün gömülü nesneler düşürülür ve bir cookie ile hata sayfası gönderilir. HTTP Dos özelliği belki Netscaler’ın diğer özelliklerini etkileyebilir. Belirli bir contect switching kuralı için Dos korumasınıın kullanımı bu arada ekstra yük oluşturur. Çünkü Netscaler’ın policy motoru eşleştirmek için policy’yi bulmalıdır. Bu arada kriptolu verinin SSL kripto çözümünden dolayı SSL isteklerinde ekstra yük oluşturur Eğer Netscaler üzerinde priority queuing kuralı devreye aldıysanız, saldırı altındayken bile Netscaler cookie’siz istekleri low-priority queue’e koyar. Bu sizin için ekstra bir yük oluştursa bile, bu Web sunucularınızı sahte istemcilerden korur. Test JavaScript’leri isteklerin küçük bir yüzdesine gönderildiğinden dolayı HTTP Dos korumasının tipik olarak throughput üzerinde minimal etkisi vardır.İsteklerde gecikme artar çünkü istemci JavaScript’I aldıktan sonra tekrar istek yapmalıdır. Bu istekler ayrıca kuyruğa atılır. HTTP Dos korumasını kullanmak için , bu özellik aktif edilmeli ve bu özelliği uygulamak için bir kural tanımlanmalıdır.Daha sonra HTTP Dos için gerekli ayarlarla hizmetleriniz ayarlanmadır. Ayrıca her bir hizmete TCP monitor atanabilir ve TCP monitor’ü yürürlüğe koymak için her bir hizmete oluşturduğunuz kural atanır. Layer 3-4 SYN Denial-of-Service Koruması Netscaler varsayılan olarak SYN Dos saldırılarına karşı koruma sağlıyor. Böyle bir saldırı düzenlemek için saldırgan büyük sayılarda TCP bağlantıları başlatır faka maüdur Sunucu tarafından gönderilen SYN-ACK mesajlarına cevap vermez. Sunucu tarafından alınana SYN mesajlarında ki kaynak ip adresi genellikle sahtedir. Çünkü yeni SYN mesajları bir önceki SYN mesajları tarafından başlatılan yarı açık bağlantılar zaman aşımına uğramadan önce ulaşır. Böyle bağlantı sayıları Sunucu yeni bağlantıları kabul edecek yeterli kullanılabilir memory’si kalmayana kadar artar. Aşırı durumlarda sistem hafıza kümesi overflow olabilir. Netscaler SYN flood saldırılarına karşı kendini sistem hafıza kümesinde yarı açık bağlantı tutmak yerine SYN cookie kullanarak korur. Netscaler TCP bağlantı isteyen herbir istemciye a cookie gönderir. Fakat yarı açık bağlantıların durumunu tutmaz. Onun yerine Netscaler sadece en son ACK paketini alması üzerine veya bir HTTP isteği alması üzerine HTTP trafik için bir bağlantıya sistem hafızasında yer ayırır. Bu SYN ataklarını önler ve meşru istemcilerin kesintisiz olarak devam edebilmeleri için normal TCP bağlantılarına izin verir. Netscaler üzerinde ki SYN Dos koruması aşağıda ki’leri garanti eder: Sahte SYN paketleri ile Netscaler hafızası boşa harcanmaz. Onun yerine hazıza sadece meşru istemcilere hizmet etmek için kullanılır. Saldırı altındayken bile meşru istemcilerin normal TCP bağlantıları kesilmeksizin devam eder. Ek olarak, Netscaler hafızasını sadece, HTTP isteğini aldıktan sonra HTTP bağlantı durumu için ayırır. Bu Web suncularını idle bağlantı ataklarından korur. Netscaler üzerinde ki SYN Dos koruması harici bir konfigürasyon gerektirmez.Varsayılan olarak üzerinde aktiftir. HTTP Dos korumasının aktif edilmesi HTTP Dos korumasını ayarlamak için öncelikle bu özelliği aktif etmeliyiz. Netscaler CLI ile HTTP Dos özelliğinin aktfi edilmesi > enable ns feature HttpDoSProtection Done > show ns feature Feature Acronym Status ------- ------- ------ 1) Web Logging WL ON 2) Surge Protection SP OFF 10) Global Server Load Balancing GSLB ON 11) Http DoS Protection HDOSP ON 12) Content Filtering CF ON 23) HTML Injection HTMLInjection ON 24) NetScaler Push push OFF . . . . . Done > Netscaler GUI ile HTTP Dos özelliğinin aktif edilmesi 1. System>Settings gidelim. 2. Configure Advance Features etay panosunu açalım . HTTP Dos özelliğini aktif edelim ve Ok butonuna tıklayalım. HTTP Dos Policy tanımlama Netscaler CLI add dos policy <name> -qDepth <positive_integer> [-cltDetectRate <positive_integer>] set dos policy <name> -qDepth <positive_integer> [-cltDetectRate <positive_integer>] Örnek > add dos policy pol-HTTP-DoS -qDepth 30 Done > set dos policy pol-HTTP-DoS -qDepth 40 Done > show dos policy 1) Done Policy: pol-HTTP-DoS QDepth: 40 > Netscaler GUI 1. Security > Protection Features > HTTP DoS’a gidelim 2. Detay panosundan Add butonuna tıklayalım 3. Name alanına oluşturmak istediğimiz HTTP Dos policy’sinin ismini verelim. Queue Depth kutusuna Dos korumasının atanacağı servis üzerinde Dos koruması aktif edilmeden önce kuyruk büyüklüğünü (servis’in kuyruğunda bekleyen istek sayısı) girmeliyiz. Client detect rate kutusuna servisin kuyruğunda ki bekleyen istek sayısı Queue Depth kutusunda ki değere eşit veya ondan büyük olduğunda istemciye gönderilecek olan yanıt yüzdesi girilmeli. Son olarak Create butonuna tıklayıp HTTP Dos policy’sini oluşturalım. HTTP Dos Kuralının Servis’e Atanması Netscaler CLI bind service <serviceName> -policyName <policyname> Primary> bind service Service-HTTP-DoS -policyName HTTP_DoS_Policy Done Primary> show service Service-HTTP-DoS Service-HTTP-DoS (192.168.3.81:80) - HTTP State: UP Last state change was at Sun Jan 10 00:32:10 2016 Time since last state change: 0 days, 00:02:45.470 Server Name: Red_Server Server ID : None Monitor Threshold : 0 Max Conn: 0 Max Req: 0 Max Bandwidth: 0 kbits Use Source IP: NO Client Keepalive(CKA): NO Access Down Service: NO TCP Buffering(TCPB): NO HTTP Compression(CMP): NO Idle timeout: Client: 180 sec Server: 360 sec Client IP: DISABLED Cacheable: NO SC: OFF SP: ON Down state flush: ENABLED Appflow logging: ENABLED Process Local: DISABLED Traffic Domain: 0 1) Monitor Name: tcp-default State: UP Weight: 1 Passive: 0 Probes: 34 Failed [Total: 0 Current: 0] Last response: Success - TCP syn+ack received. Response Time: 0.0 millisec 1) DoS Policy :HTTP_DoS_Policy Done Netscaler GUI 1. Traffic Management>Load Balancing>Services’e gidelim. 2. Detay panosundan HTTP Dos kuralını atamak istediğimiz servis’I seçelim ve Open’a tıklayalım. 3. Policies tab’ını seçelim ve daha sonra HTTP Dos kuralını seçelim 4. Policy listesinden HTTP Dos policy’mizi seçelim ve Select’e tıklayalım. Policy Policy Binding’de görülecektir. Bind’a tıklayalım ve Policy’yi servis’e atayalım. HTTP Dos Koruması’nı Konumlandırmak için Ana Prensipler HTTP Dos korumasını test edilerek planlı bir şekilde devreye alınmalı ve sonrasında yakından performansı izlenmelidir. HTTP Dos korumasını devreye alırken bulunduğunuz ortama göre ince ayar yapmak için aşağıda ki bilgileri kullanabilirsiniz. Suncularınız tarafından desteklenen maksimum eş zamanlı bağlantı sayısı Sunucularınız tarafından desteklenen normal ve ortalama eş zamanlı bağlantı değerleri. Sunucunuzun oluşturacağı maksimum yanıt oranı (responses/sec) Sunucunuzun üstesinden gelebileceği maksimum trafik Ağ’ınızın tipik trafiği. Maksimum elverişli upstream bantgenişliği. Bantgenişliğini etkileyen limitler (harici linkler, router, trafik dalgalanmasından mağdur olan bir yol üzerinde ki diğer kıritik cihazlar ) Daha fazla sayıda istemcinin bağlanmasına izin vermenin upstream ağ cihazlarını korumaktan daha önemli olup olmaması. Bir HTTP Dos saldırılarısının karektiristiğini belirlemek için aşağıda ki konuları gözönünde bulundurmalısınız. Geçmişte deneyimlediğiniz gelen sahte isteğin oranı nedir? Aldığın isteklerin tipleri nelerdir? (tamamlanmış POST, tamamlanmamış GET) Bir önceki saldırı downstream link’leri sature etti mi? Hayır ise bantgenişliği neydi? HTTP istekleri hangi tip kaynak IP adresleri ve kaynak port’lara sahipti? (tek bir subnetten IP adresi, sabit IP,birer birer artan port’lar) Gelecekte hangi tip atakları bekliyorsun ? Geçmişte hangi tip ataklara maruz kaldın? Dos saldırı korumasını en uygun değerine ayarlamak için size yardımcı olacak bütün bilgiler. Client Detection/JavaScript Yanıt Oranının Ayarlanması HTTP Dos koruması ayarlandıktan ve aktfif edildikten sonra eğer Surge Queue’de bekleyen istemci sayısı HTTP Dos için QDepth alanında belirtilen maksimum istemciden daha fazlası ise HTTP Dos koruması tetiklenir. İstemciye Netscaler tarafından JavaScript olarak gönderilen varsayılan JavaScript yanıtlarının oranı sunucu yanıt oranının yüzdebiri’dir. HTTP Dos için varsayılan yanıt oranı çoğu gerçek saldırı senaryoları için yetersizdir ve müşteri ortamına göre ince ayar yapılmalıdır. Örneğin farzedelim ki Web sunucusu saniyede maksimum 500 yanıt dönebilme kapasitesine sahip ama saniyede 10,000 istek alıyor. Eğer sunucu yanıtının yüzde biri JavaScipt olarak gönderilirse Netscaler saldırı kontrülü yapmak için istemcilere gönderielcek JavaScript yanıtı neredeyse yok denecek kadar azdır: Onbin bekleyen istemci isteğine karşın sadece beş istemciye (500*0.01) JavaScript olarak yanıt gönderilecektir. Bu durumda gerçek istemcilerin sadece yüzde 0.05’i civarı JavaScript yanıtı alır. Bu arada eğer client detection/JavaScript yanıt oranı çok yüksekse (Örneğin yüzde 10, saniyede 1000 JavaScript olarak yanıt istemcilere göndermek için oluşturulur.) belki upstream link satüre olabilir ve upstream ağ cihazlarına zarar verebilir. Varsayılan Client Detect Rate’i değiştirirken dikkatli çalışma yapılmalıdır. Eğer surge queue korumasını tetiklemek için ayarlanan surge queue dip eşik değeri örneğin 200 ise ve HTP Dos için QDepth değeri 200 girilmişse Netscaler attack ve no-attack mod’ları arasında gidip gelir. Bu arzu edilmeyen bir durumdur. HTTP Dos özelliği bu durum için bir windows mekanizmasına sahiptir. Surge queue büyüklüğü HTTP Dos koruması için tasarlanan QDepth değerine ulaştığında atak mod tetiklenir. Surge Queue büyüklüğü QDepth değerinden aşağı düştüğü zaman ise no-attack moda girer. Burda bahsi geçen senaryoda eğer WINDOW_SIZE 20 olarak ayarlanmışsa Netscaler’ın no-attack moda girmesi için surge queue büyüklüğü 180 değerinden aşağıda düşmelidir. Dos policy ayarlanırken konfigürayon esnasında QDepth değeri için WINDOW_SIZE’dan daha büyük bir değer belirtilmelidir. Tetikleyici surge queue eşik değeri HTTP Dos Koruması’nı Konumlandırmak için Ana Prensipler kısımında ki gözlemlere dayanarak belirlenmelidir. Güncelleme Geçmişi Revizyon Değişiklik Açıklaması 1.0 Orjinal Versiyon Güncelleme Tatih Veli Anlama Ocak 2016