Serhan W. Bahar tarafından kaleme alınan, Bizimkisi bir DDoS Hikâyesi adlı bu makale Arka Kapı Dergi’nin bir önceki sayısı olan 10. sayısında yayımlanmıştır.
En güvenli sistem, fişi çekilmiş sistem midir? Peki ya güvenliğin en önemli adımlarından biri olan erişebilirlik ne olacak?
Saldırı boyutuna geçmeden önce şunu bilmekte büyük fayda var: Hayatta her şeyin bir kapasitesi vardır. Elinizde 1 lt hacminde bir sürahi olsun. Bu sürahiye 1 litreden daha fazla su doldurmaya kalkarsanız ne olur? Haliyle fazla su sürekli olarak taşacaktır. Saldırı olsun olmasın, bir sistemde kapasitesinin üzerinde yük varsa, o sistem beklenen çalışmayı yapamayacaktır. Hatta bir süre sonra tamamen hizmet vermeyi durduracaktır.
Bu temel bilgi kötü niyet ile birleşince bilinçli olarak hizmet reddi saldırılarının ortaya çıkmasına neden oluyor. Yanlışlıkla sürahiye fazla su doldurmak bir hata olabilir ancak bunu bilerek yapmak o suyun taşmasına isteyerek sebep olmak demektir. Yani sonuç olarak kötü niyetli hacker’lar doğru adımlarla sizin çalışan tüm sistemlerinizi belirli bir süre boyunca çalışmaz hale getirebilirler.
“DDoS saldırıları biter mi?” sorusunun cevabı teoride “evet” olsa dahi maalesef pratikte “hayır”. O nedenle DDoS saldırılarının bitmesini beklemektense gerekli önlemleri alıp hazır bir şekilde her zaman tetikte olmak daha faydalı olacaktır.
Bir diğer husus ise IPv6 ile DDoS saldırılarının biteceğini düşünenler varsa aramızda, onlara da kötü haberi vermek zorundayım. Yeni nesil saldırı teknikleri rahatlıkla IPv6’nın oluşturduğu önlemleri aşabiliyor.
Yine aynı şekilde “Firewall, IPS vb. araçlarımız var, DDoS bizi etkilemez” diyenlere de acilen önlem almak için çalışmalara başlamalarını öneririm. Bununla birlikte hizmet aldığınız ISP de sizi DDoS saldırılarından koruyamamaktadır.
IP Spoofing bir nevi IP sahteciliğidir, diyebiliriz. A kişisinin C kişisine B posta şirketi aracılığıyla posta göndereceğini düşünün. A kişisi gönderen kişi kısmına D kişisini yazarak paketi gönderdiğinde spoofing yapılmış olur. IP spoofing de tam olarak böyle gözükmektedir. Size bir paket gelmiştir ancak o paket o gelen IP’den gelmemiştir aslında. Yani sonuç olarak paketin geldiği IP adresinin doğru olup olmadığını bilemeyiz.
Dünyadaki IP adreslerinin %26’sı (yaklaşık 145.000.000 IP) spoof edilebilir durumda. Bu da DDoS için emek harcanmadan potansiyel olarak kullanılabilecek çok fazla kaynak olduğunu göstermektedir.
Amplifikasyon bir nevi yükseltme, çoğaltma anlamı taşımaktadır. Şöyle bir örnek ile somutlaştırabiliriz: Elimde bir adet top var ve karşımda da kocaman bahçesi ve içinde bir sürü top olan bir ev var. Elimdeki topu karşımdaki eve fırlattığımda karşılığında bana yüzlerce top fırlatılıyor. Bir anlamda amplifikasyon ile DDoS yapmak buna benziyor. Yazının ilerleyen yerlerinde konuları daha iyi anlayabilmek adına kısaca bazı püf noktalarına bakabiliriz.
Açılımı Denial of Service olan DoS, İnternet’e bağlı olan bir cihazın, kaldırabileceği yükten daha fazlasına maruz kalması sonucunda hizmet veremez (erişilemez) hale gelmesidir. DoS saldırıları tek başına zayıf kaldığı için günümüzde çok fazla tehdit unsuru oluşturabilecek saldırı türlerinden değildir. Ancak konu DDoS’a geldiğinde olaylar değişmeye başlıyor.
DDoS ise dağıtılmış hizmet reddi anlamına gelmektedir. Yani az önce bahsettiğimiz DoS saldırısının tek bir kaynak yerine dağıtılmış birden çok kaynaktan yapılmasıdır. Derinlere inmeden önce her zamanki gibi tanım yaparak başlayalım. Dağıtılmış Hizmet Reddi (DDoS) saldırıları, bir şirketin web sitesini sağlayan altyapı gibi, herhangi bir ağ kaynağı için geçerli olan belirli kapasite sınırlarından faydalanır. DDoS saldırısı, saldırıya uğrayan web kaynağına birden çok istek göndererek web sitesinin barındığı sunucunun kapasitesini aşmayı ve doğru şekilde çalışmasını engellemeyi amaçlar.
Yani daha kısa şekilde özetleyecek olursak, sizin bir web siteniz var ve buraya alabileceğinizden çok ziyaretçi isteği aldığınız için artık web siteniz belirli bir süre erişilemez hale geliyor.
Benim elimde bir bilgisayar var ve bununla sizin web sitenize giriyorum. Burada bir sorun yok. Benim elimde 500.000 cihaz var ve bunlarla aynı anda web sitenize istek yolluyorum. İşte problem burada başlıyor. Peki hacker’ların elinde gerçekten 500.000 veya daha fazla cihaz var mı? Elbette fiziki olarak yok.
DDoS saldırısı için saldırganın, çevrimiçi olan makinelerin kontrollerini ele geçirmesi gerekir. (İşte bu noktada şunu sorgulamalıyız, acaba bu hayırsever sevgili dünya vatandaşları neden aylarını harcayıp birçok program ve oyuna crack oluşturuyorlar? Bu sorunun cevabını siz verin.)
Bilgisayarlara ve diğer makinelere (IoT cihazları gibi) zararlı yazılımlar bulaştıran saldırgan, saldırdığı cihazları birer zombiye dönüştürür. Saldırgan bu sayede botnet adı da verilen bir bot grubu üzerinde uzaktan kumandaya sahiptir. Oturduğunuz yerden milyonlarca askeri tek bir noktaya saldırmak için yönlendirebildiğinizi hayal edin.
Tıpkı yukarıdaki örnekte askerleri tek bir noktaya yönlendirmek gibi saldırgan da çok kalabalık olan bu botnet ağını sizin IP adresinize sürekli istek yapması için yönlendirebilir. Burada mağdur IP adresi botnet tarafından hedeflendiğinde, her bot hedefe istek göndererek, potansiyel olarak hedeflenen sunucunun veya ağın kapasitesinin aşılmasına neden olarak normal trafikte hizmet reddine neden olur. Her bot legal bir İnternet cihazı olduğundan, saldırı trafiğini normal trafikten ayırmak zor olabilir. O yüzden de “direkt olarak bunu engellerim, IP’leri bloklarım” demek pek doğru olmayacaktır.
2007 yılına gelirken “acaba DDoS saldırıları tarihe mi karışıyor” diyorduk. İşte o aşamada teorik olarak konuşulan ama henüz denenmemiş saldırı çeşitlerini birden denemeye karar veren birkaç kişi ortaya çıktı ve bunun yüzünden aşağıdaki gibi inanılmaz bir saldırı kapasitesi artışı gördük.
Kağıt üzerinde düşünecek olursak, 1 Tbps trafik oluşturmak hem çok kolay hem de çok zordur. Hadi birlikte bu tekniklerin nasıl işlediğini incelemeden önce saldırı mantığının biraz daha derinlerine doğru bir yolculuğa çıkalım.
Farklı DDoS saldırı vektörleri, bir ağ bağlantısının değişken bileşenlerini hedef alır. Bu yüzden DDoS saldırılarının mantığını anlayabilmek için en temel konulardan biri olan OSI referans modeline geri döneceğim. Eğer bu konuda yeterli bilgiye sahip olduğunuzu düşünüyorsanız, yazının bu kısmını atlayabilirsiniz. “OSI referans modeli de neymiş” derseniz lütfen detaylı olarak bu kısmı okumayı ihmal etmeyin.
—EK BİLGİ BAŞLANGICI—
1984 yılında tüm dünyada bir standart olarak OSI modeli ortaya çıkmıştır. Çıkış sebebi ise üretilen elektronik cihazların birbirleri ile iletişiminin aynı paydada sağlanması ile iletişim kopukluklarının önüne geçilmesidir.
İki cihaz arasında iletişim sağlanırken eğer arada bir network cihazı varsa veri network cihazının Physical, Data Link ve Network katmanlarından geçerek hedefine gider.
Gönderilen veriler aşağıya doğru paketlenir ve yukarıya doğru açılırlar.
En basit network cihazlarından biri olan HUB, bu katmanda çalışır ve görevi; gelen 1 ve 0 paketlerini çoğaltarak diğer portlara yaymaktır.
—EK BİLGİ SONU—
DDoS saldırıları temelde üç tiptir diyebiliriz. Bunlar Application Layer Atakları, Protocol Atakları ve Volumetric Ataklar’dır.
Şimdi bu atak tiplerinin genel mantığını inceleyelim.
Bu atak tipinde temel amaç yine kaynakları tüketmektir. Bu tip saldırılar web sayfalarının sunucuda üretildiği ve HTTP isteklerine yanıt olarak iletildiği 7. katman olan uygulama katmanını hedefler.
Bu ataklarda bant genişliği düşüktür ve genellikle belli zafiyetlerden yararlanılarak yapılmaktadır. Örneğin Apache’de bulunan bir açık gibi.
Saldırı mantığını aşağıdaki görselde görebiliriz. (Görsel Kaynağı: CloudFlare)
Eğer bir benzetme yapacak olursak bu saldırı için şunu söyleyebiliriz: Web tarayıcısındaki yenilemeyi bir kerede birçok farklı bilgisayarda tekrar tekrar yapmak ile çok benzerdir. Çok sayıda HTTP isteği sunucuya aktarılarak hizmet reddine neden olur.
Border Gateway Protokolü (BGP), trafiği İnternet üzerinden yönlendirmek ve böylece ağların diğer ağlara ulaşmasını kolaylaştırmak için “erişilebilirlik bilgileri” alışverişinde bulunulmasına olanak sağlamak için kullanılır. BGP’yi ele geçiren saldırgan kendi ağını meşru bir ağ öneki kullanarak DDoS saldırısı yapabilir. Bu “kimliğe bürünmüş” bilgi diğer ağlar tarafından kabul edildiğinde, trafik doğru şekilde yönlendirilmek yerine yanlışlıkla saldırgana iletilir.
Bu saldırıda bir bilgisayar ve hedefteki sunucu arasındaki bağlantıları açmak için kısmi HTTP istekleri kullanılır. Bu bağlantılar mümkün olduğunca uzun süre açık tutularak DDoS saldırısı gerçekleştirilir. Bu tip DDoS saldırıları için minimum bant genişliği yeterlidir ve yalnızca hedef web sunucusu etkilenir. Diğer hizmetler ve bağlantı noktaları etkilenmez. Slowloris saldırıları birçok türde web sunucusu yazılımını hedefleyebilir, ancak Apache 1.x ve 2.x’e karşı daha etkili olduğu söylenebilir.
Slow Post saldırısında, saldırgan HTTP POST başlıklarını bir web sunucusuna gönderir. Bu başlıklarda, takip edilecek mesaj gövdesinin boyutları doğru bir şekilde belirtilmiştir. Bununla birlikte, mesaj gövdesi çok düşük bir hızda gönderilir. Bu hızlar her iki dakikada bir, bir bayt kadar “yavaş” olabilir.
Mesaj normal şekilde işlendiğinden, hedeflenen sunucu belirtilen kuralları takip etmek için elinden geleni yapacaktır. Slowloris saldırısında olduğu gibi, sunucu bu istekleri işleyebilmek için olabildiği kadar yavaşlar. Saldırgan, aynı anda yüzlerce hatta binlerce Slow Post saldırısı başlattığında, sunucu kaynakları hızla tüketilir ve DDoS gerçekleştirilmiş olur.
Slow Read saldırısında sunucuya uygun bir HTTP isteği gönderilir ancak daha sonra yanıt çok yavaş bir hızda okunur. Yanıt neredeyse bir seferde bir byte kadar yavaş okunabilir. “Normal şartlarda bu yavaşlıkta zaman aşımı olması gerekebilir.” diyebilirsiniz ancak saldırgan sunucuya Zero Window gönderdiğinden, sunucu, istemcinin verileri okuduğunu varsayar ve bu nedenle bağlantıyı açık tutar.
Bu saldırı, standart bir İnternet kullanıcısının davranışlarına benzerlik gösterdiği için tespit etmesi çok zordur. Meşru bir trafik gibi görünür. Uygulama ve sunucu kaynaklarını hedef alır. Yaygın saldırı araçları arasında Slowloris, Sockstress ve R.U.D.Y vardır.
Low and Slow saldırısı genellikle HTTP odaklıdır.
Bu saldırı tipinde ise saldırgan, web sunucuları tarafında kullanılan XML kodlamasını kötüye kullanarak HTTP istekleri üzerinden saldırı yapmaktadır. Bu saldırıda web sunucusuna aşırı miktarda bellek kullanmasına sebep olup sistem ezilmeye ve hizmetin çökmesine çalışılmaktadır.
Bu tip DDoS saldırıları “Oversize Payload Attacks” veya “Jumbo Payload Attacks” olarak da adlandırılır.
Durum tüketme (state-exhaustion) saldırıları olarak da bilinen protokol saldırıları, web uygulama sunucularının kullanılabilir durum tablosu kapasitesini veya güvenlik duvarları ve yük dengeleyicileri gibi ara kaynakları tüketerek hizmet kesintisine neden olur. Protokol saldırıları, hedefi erişilemez hale getirmek için protokol yığınının 3. ve 4. katmanlarında bulunan zafiyetlerden faydalanır.
Protokol ataklarında temel olarak TCP, UDP, DNS, BGP gibi protokol ve servislerin açıklarından yararlanılmaktadır.
Saldırı mantığını aşağıdaki görselde görebiliriz. (Görsel Kaynağı: CloudFlare)
TCP SYN flood saldırısında hedeflenen sunucudaki kaynakları tüketmektir ve TCP, 3-Way Handshake (üç yönlü el sıkışma) ile bolca yük oluşturmaktır. SYN flood’ın temel olarak yaptığı, makinenin onları işleyebileceğinden daha hızlı TCP bağlantı istekleri göndererek ağın tıkanmasına neden olmasıdır.
Genellikle sahte IP adresi kullanarak, hedeflenen sunucudaki her bağlantı noktasına tekrarlanan SYN paketleri gönderilir. Saldırıdan habersiz olan sunucu, iletişim kurmak için görünüşte meşru olarak birden fazla istek alır. Her girişime, her açık porttan bir SYN-ACK paketi ile cevap verir. Bu sayede sunucu tarafında büyük bir yük oluşturularak hizmet reddi sağlanmış olur.
SSL, güvenliği artırmak ve gizlilik sorunlarını gidermek için birçok ağ iletişim protokolü tarafından kullanılan bir şifreleme yöntemidir. Günümüzde SSL kullanımı arttıkça haliyle SSL’e yönelik saldırılarda da artış oluyor. SSL’e yönelik saldırılar da genelde standart, SYN flood ve TCP bağlantısına dayalı Exhaustion metotları kullanılmaktadır.
DNS NXDOMAIN flood saldırısında saldırgan, (DNS) sunucusunu var olmayan veya geçersiz olan kayıtlar için çok sayıda istekle zorlar. Bu DDoS saldırıları çoğu durumda bir DNS Proxy sunucusu tarafından gerçekleştirilir. ABD’nin büyük bir DNS sağlayıcısı olan DYN’in Ekim 2016’da saldırıya uğraması tam olarak bu kategoriye girmektedir.
Bu saldırının amacı, mevcut tüm bant genişliğini tüketerek tıkanıklık yaratmaya çalışmaktır. Amplifikasyon veya birçok botnetten gelen talepler gibi yoğun trafik oluşturmanın başka yolları kullanılarak hedefe çok fazla miktarda veri gönderilir.
Tanım biraz karmaşık oldu. Hadi basitleştirelim: Elimde belirli bir kaynak var, bunu amplifikasyon denilen bir teknikle sanki 500-600 kat daha fazla kaynağım varmış gibi saldırılar yapıyorum.
Örnek bir saldırı görseli de aşağıdadır. (Görsel Kaynağı: CloudFlare)
Ping flood saldırısı olarak da bilinen ICMP flood saldırısı, saldırganın ICMP echo-request istekleriyle (ping) hedeflenen bir sunucuyu ezmeye çalıştığı yaygın bir saldırı tipidir. Normal şartlarda ICMP echo-request ve echo-reply mesajları, cihazın durumunu, bağlantısını ve gönderen cihaz ile arasındaki bağlantıyı teşhis etmek için (ping atmak için) kullanılır. Hedefe istek paketleri gönderilirken, eşit sayıda cevap paketiyle cevap vermeye zorlanır. Bu sayede hedefin hizmet reddine sebep olunur.
IKE ve IKEv2 protokolü, IPsec protokol paketindeki eş aygıtlar arasında güvenli anahtar değişimini kolaylaştırmak için kullanılır. Başlıca üreticilerin ve açık kaynaklı projelerin VPN ürünleri gibi çoklu güvenli tünel uygulamalarında geniş kullanım alanı ve etkin dağıtımı mevcuttur. IKE, doğası gereği, diğer tüm UDP tabanlı protokoller gibi yansıma imkanı sunan UDP protokolüne güvenmektedir. İşte tam burada açık ortaya çıkmaktadır. Ancak IKEv2 çıktığından beri bu saldırı tipi artık çok kullanılmamaktadır.
UDP flood adından da anlaşılacağı üzere UDP paketlerini içeren IP paketleriyle ana bilgisayardaki rastgele bağlantı noktalarını hedefler. Bu tür bir saldırıda, ana bilgisayar bu datagram’larla ilişkili uygulamaları arar. Hiçbir uygulama bulunmadığında, ana bilgisayar, gönderene bir “Hedef Ulaşılamaz” paketi gönderir. Böyle bir flood tarafından bombardıman edilmenin kümülatif etkisi, sistemin aşırı yük altında kalması ve dolayısıyla meşru trafiğe yanıt vermemesidir.
Kayıtlara geçen gelmiş geçmiş en büyük DDoS saldırısı dendiğinde hepimizin aklına GitHub gelir. Tarihlerimiz Şubat, 2018‘i gösterdiğinde saldırının en yüksek anı bizi heyecanlandıran bir seviyeye gelmişti. 1.3 Tbps!
Zamanda biraz daha geriye doğru yola çıktığımızda bir sabah kalktınız ve Twitter’a girmek istediğinizde giremediğinizi fark ettiniz. İlk başta hepimiz Twitter’ın hack’lendiğini zannettik ama maalesef olan bu değildi. Twitter başta olmak üzere birçok ünlü firmanın DNS sağlayıcısı olan Dyn firması saldırı altındaydı. Bu saldırıda IoT cihazlarının kullanılması da ayrı bir detaydır. Dyn’e geçmiş olsun dileklerimizi tekrar buradan da iletelim zira bir gün boyunca kendilerine gelemediler.
Takvim yapraklarımızı biraz daha geriye doğru çevirirsek, sırasıyla 2015’te GitHub’a yapılan bir diğer saldırı, 2013 yılında Spamhaus saldırısı, 2007 yılında Estonya’ya yapılan ve son olarak da 2000 yılında milenyumun göz bebeği 15 yaşındaki bir hacker’ın (Mafiboy) DDoS saldırısı.
Peki ya çok yakın zamanda Türkiye’de gerçekleşen saldırı için neler diyebiliriz?
Geçtiğimiz haftalarda Türkiye’nin en önde gelen kurumlarına DDoS saldırısı gerçekleştirildi. Bu saldırı sonucunda gün boyu hizmet kesintileri yaşandı. Her yaşanan popüler olayda olduğu gibi yine saldırıyı üstlenmek isteyenler de oldu. İnternette genellikle Fancy Bear isimli APT grubunun adı geçti bu süreç içerisinde ancak Fancy Bear grubunu detaylı olarak incelerseniz pek de DDoS saldırıları ile ilgileri olmadığını görebilirsiniz.
Saldırının hafta sonu tatil zamanına denk gelmesi ise ilginç bir unsur olarak aklımızda kalacaktır. Sonuç olarak tek bir saldırı üzerinden profilleme çalışması yaparak saldırgan tespit etmek bir hayli zor.
Saldırının ortalama büyüklüğünün 100-300 Gbps arası olduğu söyleniyor. Teknik olarak bakıldığında çok büyük olmayan bu saldırı büyük saldırı gibi etki oluşturdu diyebiliriz.
Bunun dışında saldırıya dışarıdan bir gözle baktığımızda saldırı tipinin DrDos yani Distributed Reflected Denial of Service olduğunu söyleyebiliriz. Bu saldırı ile bir vuruşta 10-20-100 kadar cevap alabilmek mümkün.
DrDos saldırı tipinde daha önce bahsettiğimiz protokoller kullanılıyor. DNS, NTP, SNMP, CHARGEN, NetBIOS vb.
Ek olarak bir farklılık da şudur, saldırganlar genellikle bu tarz saldırılarda son kullanıcı cihazları yerine daha çok sunucuları tercih ediyor.
Saldırının ana şalteri ise DNS Spoof dediğimiz bir teknik. Bu teknik sayesinde Domain Name Server’ları spoof edilerek değiştirilebilir. Saldırı sahnesinin en önünde Garanti Bankası’nı ve altyapı sağlayıcı olarak Türk Telekom’u görmüş olsak da aslında saldırı bir çok yere yapıldı. Saldırı eş zamanlı olarak birçok veri merkezi ve dolayısı ile hosting firmasını da etkiledi.
Yazımızın başında bahsettiğimiz IP Spoofing’in DDoS’a güç vermesi burada Garanti Bankası’nın kurban olmasına neden oldu. Aslında yüzlerce farklı IP’den yapılan bu saldırıda Garanti Bankası üzerinden çıkış yapıldığı için hepimiz ilk olarak Garanti Bankası’na saldırı yapıldığını düşündük.
Yine dışarıdan bir göz olarak baktığımızda saldırının 3-Way Handshake olduğunu söyleyen kaynaklar da mevcut. Ancak ISP’den veya Garanti Bankası’ndan direkt olarak log’ları alıp bizzat incelemedikçe bu saldırının tam tanımlamasını yapmamız mümkün olmayacaktır. Öte yandan ilgili kurumlar tarafından detaylı teknik bir açıklama yapılmamıştır.
DDoS saldırıları bitmez dememizin sebebi de tam olarak buydu. Biz “tam bir şeyler biter” derken yeni yeni saldırı çeşitleri karşımıza çıkmaya devam edecektir. Bu nedenle en iyisi her daim hazırlıklı olmak ve kendimizi güncel tutmak olacaktır.
Peki hazırlıklı olmak adına neler yapılabilir?
Serhan W. Bahar