CPDoS Saldırısı

CPDoS Nedir?

Cache-Poisoned Denial-of-Service (CPDoS / Önbellek Zehirlemesi ile Görev Engelleme), internet kaynaklarını ve internet sitelerini dönem dışı bırakmayı hedefleyen yeni tek internet saldırısıdır.

CPDoS Sebep çalışır?



Temel hücum akışı alçakta açıklanmıştır:
Saldırgan, kimi internet sunucuları doğrulusunda sağlanan kurban kaynaklarını amaç alan kötü niyetli tek başlık sahibi olan kolay tek HTTP talebi gönderir. Heves, ara önbellek doğrulusunda işlenirken, kötü niyetli başlık göze çarpmadan kalır.
Önbellek, amaçlanan kaynağın yeni tek kopyasını depolamadığı için talebi kaynak servera iletir. Kaynak sunucudaki heves, kendisinde barındıdığı kötü amaçlı başlıktan kaynaklı tek hataya sebep olur.
Sonuç olarak, kaynak server beklenilen kaynak adına önbellek doğrulusunda saklanan tek eksiklikleri sayfası döndürür.
Saldırgan, cevap olarak tek eksiklikleri sayfası aldığında saldırının etkin olduğunu bilir.
Saldırgan, ardından gelen isteklerle amaç kaynağı ele geçirmeye çalışır.
Saldırgan, orijinal muhteva adına önbelleğe alınmış eksiklikleri sayfasını alır.

CPDoS ile kötü amaçlı tek iradeci, muhteva dağıtım ağları (CDN‘ler) vasıtasıyla dağıtılan ya da proxy önbelleklerinde barındırılan herhangi bir internet kaynağını engelleyebilir. Böylelikle, agresif güvenlik güncellemeleri, javascript dosyaları ya da bu kaynaklara erişmeye gayret gösteren her iradeci için internet sitesi gibi ehemmiyetli web kaynaklarını dönem dışı bırakabilir. Saldırganın hazırladığı tek tek isteğin, sonraki bütün isteklerin amaçlanan içeriğe erişmesini engellemek için kafi olduğunu unutmayın…

Kaç Tip CPDoS Varyasyonu var?



Bir HTTP heves başlığı, ara sistemler ve internet sunucuları için ehemmiyetli bulgular içerir. Önbellekle alakalı başlık alanlarını ya da iradeci doğrulusunda desteklenen basın türlerini, dilleri ve kodlamaları ile ilgili meta bilgileri içerir. HTTP standartları, HTTP heves başlıkları için herhangi bir ebat hududu tanımlamaz. Sonuçta, ara sistemler, internet sunucuları ve internet framework hudutlarını kendisi başlarına belirler. Apache HTTPD gibi fazlası internet sunucusu ve proxy’si için misal verecek olursak, arabellek taşması talebi ya da ReDoS saldırıların hafifletilmesi için tahminen 8,192 bayt’lık tek heves başlığı ebatı hududu sağlar. Bunun yanında, 8,192 bayt’tan henüz devasa sınırlar belirleyen ara sistemler de vardır. Mesela, Amazon Cloudfront CDN, 20,480 bayt’a kadar destur verir. Heves başlığı ebat hudutları yönünden bu manalı boşluk, görev reddine yol verebilecek tek önbellek zehirlenmesi hücumu inşa etmek için kullanılabilir. ​
HHO CPDoS saldırıları, tek internet uygulamasının kaynak sunucudan henüz devasa tek başlık ebat hududu kabul eden tek önbellek kullandığı senaryolarda çalışır. Bu tür tek internet uygulamasına saldırmak için, kötü amaçlı tek iradeci, kaynak server doğrulusunda desteklenen boyuttan henüz devasa fakat önbellek doğrulusunda desteklenen boyuttan henüz ufak tek başlık sahibi olan tek HTTP GET talebi gönderir. Bunu inşa etmek için, saldırganın iki opsiyonu vardır. Öncelikle, alttaki Ruby kod parçacığında gösterildiği gibi çoğu kötü niyetli başlığa sahip tek heves üstbilgisi hazırlar. Başka tercih, devasa ebatlı tek anahtar ya da değere sahip tek tek başlık eklemektir.

Aşağıdaki görselde, kötü amaçlı birinin yukarıdaki kod parçası ile tek heves oluşturup gönderdiği HHO CPDoS hücum akışı gösterilmektedir. Önbellek başlık büyüklüğü 20,480 bayt ebat hududunun altında kaldığından, bütün başlıkları sahibi olan bu talebi nihai noktaya iletir. Fakat internet sunucusu bu talebi önler ve heves başlığı, başlık ebat sınırını aştığı için tek eksiklikleri sayfası döndürür. Vaziyet kodunu (404 Bad Request) sahibi olan bu eksiklikleri sayfası önbellekte saklanır ve reddedilen kaynağı amaçlayan ileri bütün isteklere, orijinal muhteva adına tek eksiklikleri sayfası verilir.




Aşağıdaki videoda, Cloudfront’ta barındırılan tek misal internet programı ile HHO CPDoS hücumunu gösteriyor. Saldırıda, gömülü internet kaynakları, internet sayfasının kimi bölümlerini ve en son da bütün sayfanın bütün eksiklikleri sayfalarıyla değiştirildi.



HTTP Meta Character (HMC)


HTTP Meta Character (HMC) CPDoS hücumu, HHO CPDoS saldırısına benzer şeklinde çalışır. Bu saldırıda, devasa ebatlı tek başlık sevk etmek adına, zararı dokunabilecek tek meta mizaç sahibi olan tek heves başlığına sahip önbelleği atlamaya çalışır. Meta karakterler, mesela satır sonu (/), satır başı (\n) ve satır besleme (\r) gibi muayene karakterleri olabilir.
Tanınmayan tek önbellek, bu tür tek talebi engellemeden ya da meta karakterleri temizlemeden kaynak servera iletir. Orijinal server, bu tür tek talebi zararı dokunabilecek meta karakterleri içerdiğinden zararı dokunabilecek olarak sınıflandırır. Sonuçta, kaynak server önbellek doğrulusunda depolanan ve yine sarfedilen tek eksiklikleri iletisi döndürür.


HTTP Method Override Attack (HMO)



HTTP standardı, internet sunucuları ve istemcileri web’de prosedür inşa etmek için muhtelif HTTP yöntemleri sunar. GET, POST, DELETE ve PUT büyük ihtimalle internet uygulamalarında ve REST tabanlı internet hizmetlerinde en fazla sarfedilen HTTP yöntemleridir. Bunun yanında, proxy’ler (vekil sunucular), yük dengeleyicileri (load balancer), önbellek ve güvenlik duvarı gibi çoğu ara düzenek genellikle GET ve POST‘u desteklemektedir. Bu, DELETE ve PUT olan HTTP isteklerinin kolaylıkla engellendiği mananına gelir. Heves servera ulaştığında, başlık internet uygulamasına heves satırındaki HTTP formülünü geçersiz kılmak için mukabil gelen başlık ölçüsünde olanı kullanmasını söyler.

Kod parçacığı, X-HTTP-Method-Override başlığını kullanarak DELETE isteklerini yasaklayan tek güvenlik siyasetini atlayabilen tek heves gösterir. Server doğrultusunda bu POST talebi tek DELETE talebi olarak yorumlanacaktır.
Ara sistemler değişik HTTP yöntemlerini engellediğinde, başlıkları geçersiz kılan bu formül kimi senaryolarda defa kullanışlıdır. Bunun yanında, tek internet programı bu tür tek başlığı destekliyorsa ve performansı optimize etmek için aksi proxy önbellek ya da CDN gibi tek internet önbellekleme sistemi kullanıyorsa, kötü amaçlı tek iradeci tek CPDoS hücumu inşa etmek için bunu kullanabilir. Formül, alttaki görselde alakalı CPDoS saldırısının aşamalarını göstermektedir.

Burada agresif, başlığında X-HTTP-Method-Override sahibi olan tek tek GET talebi gönderir. Güvenlik açığı tespit edilen tek önbellek, bu talebi, https://example.org/index.html kaynağını amaç alan iyi niyetli tek GET talebi olarak yorumlar. Bunun yanında, internet programı, bu talebi tek POST talebi olarak yorumlayacaktır, zira X-HTTP-Method-Override başlığı, servera heves satırında HTTP formülünü değiştirmesini söyler. Buna göre, internet programı POST’a dayanan bir cevap verir. Amaç internet uygulamasının, /index.html üstünde POST için herhangi bir işletme mantığı uygulamadığını varsayalım. Bu gibi hallerde, Play Framework 1 gibi internet framework’leri 404 Not Found vaziyet koduyla beraber tek eksiklikleri iletisi döndürür. Önbellek, eksiklikleri koduyla döndürülen cevabın, https://example.org/index.html amaçlı GET isteğinin neticesi olduğunu varsayar. 404 Not Found vaziyet kodunun HTTP Önbellekleme RFC 7231‘e göre önbelleğe alınmasına destur verildiğinden, önbellekler saklanır ve yinelenen istekler için bu eksiklikleri cevabını yine kullanır. Https://example.org/index.html adresini seyreden ve tek GET talebi yapmış iyi niyetli kullanıcıları, orijinal internet uygulamasının başlangıç ​​sayfası adına 404 Not Found vaziyet koduyla beraber depolanmış tek eksiklikleri iletisi alır.
Aşağıdaki video, tek internet uygulamasında tek HMO hücumunu anlatmaktadır. Burada, agresif, başlangıç ​​sayfasına erişilmesini engellemek için Postman aracını kullnmıştır.



Saldırıyı Hafifletme Yöntemleri


HHO ve HMC CPDoS saldırılarının esas nedenlerinden biri, korunmasız tek önbelleğin düşünülen olarak eksiklikleri kodları sahibi olan cevapları kanun dışı olarak depolaması gerçeğidir. HTTP seviyesine göre buna destur verilmez. Internet önbellekleme standardı tekilce 404 Not Found, 405 Method Not Allowed, 410 Gone ve 501 Not Implemented eksiklikleri kodlarını önbelleğe almanıza destur verir. Bundan dolayı, eksiklikleri sayfalarını HTTP standardının politikalarına göre önbelleğe alabilmek, CPDoS saldırılarını önlemek için ilk adımdır.
İçerik sağlayıcıları da alakalı eksiklikleri vaziyeti için makul vaziyet kodunu kullanmalıdır. Mesela, çoğu HTTP programı doğrulusunda sarfedilen 400 Bad Request vaziyet kodu devasa ebatlı başlıkları duyurmak için uygulanması makul değildir.
Büyük ebatlı heves başlığı için doğru eksiklikleri kodu 431 Request Header Fields Too Large olmalıdır. Bu eksiklikleri iletisi herhangi bir internet önbellekleme sistemi doğrulusunda önbelleğe alınmaz.


HHO ve HMC CPDoS saldırılarına karşı tek başka tesirli tedbir ise, eksiklikleri sayfalarının önbelleğe alınmasını engellemektir. Tek farklı yaklaşım, her eksiklikleri sayfasına Cache-Control: no-store başlığını eklemektir. Başka tercih, önbellek yapılandırmasında eksiklikleri sayfasını önbelleğe almayı dönem dışı bırakmaktır. CloudFront ya da Akamai gibi CDN’ler, bunun için yapılandırma ayarları sağlar.

CPDoS saldırılarını azaltmak için Internet Programı Güvenlik Duvarları (WAF / Internet Application Firewall) da kullanılabilir. Fakat, kötü niyetli muhtevası kaynak servera ulaşmadan evvel engellemek için WAF’ların önbellek önüne yerleştirilmesi gerekir.

Yorumlar

Bu blogdaki popüler yayınlar

En İyi 20 Hacker Duvar Kağıtları