Layer 7 / Uygulama Katmanı DDoS Saldırıları
Tarih: 2019-06-28 17:35 Kategori: internet | Okundu: 2180DDoS saldırıları, online platform ve websitesi sahipleri için büyük bir sorun. Küçükten büyüğe, her ölçekteki site bu saldırıların hedefi haline gelip servis dışı kalabiliyor. Bu da hem para hem de imaj kaybına neden oluyor.
Bu konuda önlem alan siteler bile küçük bir saldırı sonucu devre dışı kalabilmektedir. Load Balancer cihazları ve Cloud altyapısının kullanıldığı sistemler dahi bu konuda kırılgan olabilmektedir. Bunun nedeni Cloud sistemlerinin çok azının DDoS saldırılarına karşı önlem alarak tasarlanmış olması ve DDoS saldırılarının birçok türde gerçekleştirilebilmesidir. Layer 3 ve Layer 4 DDoS saldırılarına odaklı güvenlik yatırımı yapan birçok kurumun Layer 7 saldırılarındaki çaresizliği sıkça duyulmaktadır. Bu nedenle Layer 7 saldırılarını iyi analiz etmek gerekmektedir.
DDoS Amplifikasyonu (Güçlendirme)
DDoS’tan her bahsettiğimizde aynı zamanda amplifikasyon (güçlendirme) işleminden de bahsetmemiz gerekir. Bir DDoS saldırısının başarılı olabilmesi için saldırganın gönderebileceği istek sayısının, hedef sunucunun kaldırabileceğinden fazla olması gerekmektedir.
Saldırganlar BOTNET adı verilen ve önceden ele geçirilmiş – zombileştirilmiş – bilgisayarlardan (internet bağlı herhangi bir cihaz olabilir, modem, akıllı TV gibi..) oluşan ağı, saldırının gücünü artırmak için kullanmaktadır. Örnek vermek gerekirse eğer bir saldırgan 1000 bilgisayarın olduğu bir BOTNET ağına sahipse, bu karşılaşma 1 Sunucuya karşı 1000 bilgisayar şeklinde olduğunda saldırganın kazanmasını kolaylaştırmaktadır. Güçlendirme işleminin bir diğer tarafı ise ağ katmanında ve yanıltılmış istekleri kullanarak yapılmasıdır. BOTNET ağındaki her bilgisayarın 100 byte cevap almak için 1 byte göndermesinin yeterli olduğunu düşünelim. İşte bu duruma 100 kat güçlendirme diyoruz.
Bunların hepsini bir araya getirdiğimizde ise durum şu şekilde oluyor: BOTNET + saniyede yüzlerce istek + ağ katmanı amplifikasyonu… Bu saldırıyı durdurmanın sunucuların çok büyük bir kısmı için ne kadar zor olduğunu görebilirsiniz. Teorik olarak 1000 bilgisayarlı BOTNET ağının doğru güçlendirici metotları kullanılarak çok kolay bir şekilde 100Gbps bant genişliği işgal edebileceğini görüyoruz.
Güçlendirme işlemi burada da bitmiyor. İnsanların çoğu bu olayı sadece GB’larca ağ trafiği olarak düşünme eğilimindeler. Ancak bu konunun bir de uygulama katmanı (application layer) boyutu bulunmakta. Eğer BOTNET üzerinden yapılacak sadece bir HTTP isteğinin (ki bu çok ucuz bir şekilde yapılabilmektedir) bile sunucuyu ne kadar çok iş yüküne mal olabileceğini söylesek… Kapsamlı bir arama veya çok kaynak yiyecek bir istek olabilir ki bu da Layer 7 (HTTP Flood) saldırılarının temelini oluşturmaktadır.
Ağ Katmanı DDoS (Network Layer DDoS)
Ağ katmanı DDoS saldırıları; sunucumuzun kaldırabileceğinden daha fazla paket göndermek veya sunucumuzun bant genişliğinden fazlasını işgal edecek saldırılardır. SYN Flood, ACK Flood ve UDP tabanlı güçlendirici saldırıları (DNS, SSDP, NTP vb. de dahil olmak üzere) ağ katmanı DDoS saldırıları olarak sınıflandırabiliriz. Verileri incelediğimizde ise tüm DDoS saldırılarının yarısının aslında bu kategoride olduğunu görüyoruz. Geri kalan %50 ise Uygulama Katmanı (Layer 7 – Application Layer) saldırıları kategorisine girmektedir.
Medyayı takip ettiğimizde ağ katmanı saldırılarının genel olarak yüksek miktarda bant genişliği yaratarak büyük sistemleri servis dışı bırakmak olarak lanse edildiğini görüyoruz. Bir güvenlik firmasının 2015/1. Çeyrek DDoS raporunu incelediğimizde görüyoruz ki saldırıların %17’sinin 1Gbps’ten büyük olduğunu ve ortalama saldırı büyüklüğünün 804Mbps/272K PPS (Packets per second) şeklinde. Büyük saldırılar ise 335 Gbps büyüklüğe kada ulaşabilmekte.
Eğer saniyede 100 bin paketin çoğu VPS sunucu tarafından sağlıklı karşılanabileceğini düşünüyorsanız, çok daha küçük çapta saldırıların bile birçok sunucuyu servis dışı bırakabileceğini bilmeniz gerekiyor. Linode, Softlayer ve hatta Amazon gibi hosting sağlayıcılar bile küçük bir DDoS saldırı tespit ettiklerinde sizin sitenizin IP adresini boş döndürmeye başlıyorlar; bu durum da sizin internet sitenizin saatlerce kapalı kalması anlamına geliyor.
Uygulama Katmanı DDoS Saldırıları (Application Layer – HTTP Flood)
Layer 7 uygulama katmanı saldırıları ise bu yazıda asıl odaklanmak istediğimiz alan oluyor. Bu saldırılar sessiz ve küçük trafik yaratarak olabiliyor; özellikle de ağ katmanlı saldırıları düşündüğümüzde. Ancak birçok kişi bu saldırıların aslında en az ağ katmanlı saldırılar kadar zarar verebiliyor olduğunu bilmiyorlar.
Linode, Digital Ocean veya AWS (Amazon) üzerinde çalışan küçük bir VPS bile kolaylıkla saniyede 200 bin paketli SYN Flood saldırısı yapabilmektedir. Ancak aynı sunucu, WordPress veya Joomla CMS çalıştırıyorsa, saniyede 500 HTTP isteğini ancak kaldırabilmektedir! Farkı gerçekten çok şaşırtıcı.
Uygulama katmanı saldırıları, aynı siteyi servis dışı bırakabilmek için genellikle çok daha az paket ve ağ genişliği istemektedir. Bunun nedeni ise bu saldırıların web uygulama katmanına odaklanmasıdır. Bu da genellikle Web sunucuya direk saldırı, PHP script kodu çalıştırma, veya direkt olarak veritabanına ulaşıp web sayfasını çalıştırmak şeklinde olabilmektedir. Ayrıca daha önce bahsettiğimiz DDoS güçlendirme işlemini de hesaba katarsak, çok ucuza maledilebilecek bir HTTP isteği bile sunucu içinde çok büyük miktarda iç isteklere neden olabilmekte ve çok sayıda dosyanın yüklenmesiyle sunucuyu meşgul edebilmektedir.
Uygulama katmanı saldırısında güçlendirme işlemci (CPU), bellek (memory) veya kaynak tabanlı olabilmektedir. Ancak ağ tabanlı olmamaktadır.
Layer 7 Kategorizasyonu
HTTP Flood (Layer 7 DDoS – Uygulama katmanı DDoS) saldırılarını 4 ana kategoriye ayırabiliriz.
1. Temel HTTP Flood: Basit ve yaygın bir saldırı çeşididir. Aynı sayfaya tekrar ve tekrar ulaşmaya çalışmak şeklinde gerçekleşmektedir. Genellikle aynı IP adresi aralığını, kullanıcı etmenini ve başvurusunu kullanmaktadır.
2. Rastgele HTTP Flood: Büyük bir IP havuzunu kullanarak ve rastgele internet adreleri, kullanıcı etmeni sayesinde yapılan karışık saldırılardır.
3. Cache-Bypass HTTP Flood: Orta bir kategori olarak değerlendirebileceğimiz bu kategori ise yine rastgele HTTP Flood saldırısı şeklinde olup aynı şekilde web uygulamaları önbelleğini atlatmaya yöneliktir.
4. WordPress XMLRPC Flood: Yine bir orta kategori olarak değerlendirdiğimiz bu kategori ise WordPress servisinin pingback özelliğini saldırıların yansıması olarak kullanmaktadır.
Bu türlerin hepsini sık sık görmekteyiz. Bunların birçoğu ise Rastgele HTTP Flood olarak gerçekleşmektedir. Hemen arkasından ise Cache-Bypass HTTP Flood saldırıları gelmektedir. Bu iki saldırı türü de web uygulamaları bakımından en tehlikeli saldırılardır. Çünkü bu iki saldırı türü de istek başına en çok iş yükü yaratabilmektedir. Bu saldırı türlerinin yüzdelerini grafik olarak şu şekilde gösterebiliriz.
Uygulama Katmanı Saldırı Ortalamaları
Geçtiğimiz 6 ay içinde görülmüş ve hala kullanımda olan HTTP Flood saldırılarını kategorize etmiş olduk. 30 dakikadan fazla süren ve saniyede en az 1000 HTTP isteği yaratan tüm saldırıları kategorize ettik. Bu zamana kadar karşılaştıklarımızı şu şekilde paylaşabiliriz.
1. Saldırı Süresi:
Ortalama olarak bir HTTP Flood saldırı süresi 34 saat olarak hesaplanmaktadır. Ayrıca 71 saate kadar sürebilmektedir. Bu aynı zamanda tüm saldırıların 1 günden fazla sürmesi ve kurban sitelerin de 1 günden fazla servis dışı kalması anlamına gelmektedir. Aynı zamanda istatistiklere baktığımızda 5-15 dk civarında sürmüş olan birçok küçük saldırı da görmekteyiz ancak bu saldırıları istatistiklere katmıyoruz.
2. Saldırı büyüklüğü
Ortalama olarak bir saldırı saniyede 7282 HTTP isteği göndermektedir. Çok büyük bazlı saldırılar yüzünden bu ortalama değer çok etkilenmektedir. Bu nedenle medyan değerine bakmak daha faydalı olabilmektedir. Medyan değeri saniyede 2822 HTTP isteği şeklindedir. Ölçülmüş en büyük saldırı değeri ise saniyede 49795 HTTP isteği şeklindedir.
3. BOTNET Büyüklüğü
Birçok saldırgan BOTNET kullanarak saldırılarının gücünü artırmaktadır. Uygulama katmanı saldırılarında BOTNET ağlarını kullanmanın en büyük avantajı saldırıların gerçek IP adreslerinden gelmesi nedeniyle durdurulamaz olmasıdır. Ortalama olarak bir saldırgan 11634 farklı IP adresi içeren BOTNET ağı kullanmaktadır. Medyan değeri ise 2274 IP adresi şeklindedir. Ölçülmüş en fazla IP adresi içeren BOTNET ağı ise 89158 IP adresi şeklindedir.
4.Hedef Kurbanların Profilleri
Güvenlikte bu tarz profillemelerin yapılması hassas bir alan olmasından dolayı zor. Özellikle devlete bağlı kamu kurum ve kuruluşların ciddi bir DDoS tehdidi altında olduğunu biliyoruz. Daha çok imaj kaybettirme amaçlı bu saldırıların hangi ülke tarafından yapıldığı konusu da belirsiz, ancak bu konuda önlem alma amaçlı aksiyonlar her geçen gün hız kazanıyor. Özel sektör tarafında ise nispeten istatistik oluşturabilecek kadar veri elde edilebiliyor. Kurbanların profillerinin ayrıntılarına girmek zor ancak genel olarak bu konuya bakmak gerekirsek 4 ana grupta toplanmış olduğunu görüyoruz.
Kalan ana gruplar ise hosting firmaları, bloglar, sosyal medya siteleri ve genel iş dünyası siteleri olarak gruplanabilir. Saldırıların çoğu intikam veya rekabet tabanlı olabiliyor, ancak bu konuda kesin bir istatistik vermek mümkün değil. Bu saldırılardan bir kısmı ise fidye karşılığı saldırıyı başlatmayacağını veya durduracağını teklif edebiliyor.