Home Yazılım & Geliştirme HTTP/2 PING flood hatalarını çözmenin yolları

HTTP/2 PING flood hatalarını çözmenin yolları

0

HTTP/2 PING flood Saldırılarına Dikkat

Eylül 2025’te mühendislik sohbet odasında şu soru gündeme geldi: “Hangi kısmımız HTTP/2 istemcisine ErrCode=ENHANCE_YOUR_CALM göndermekten sorumlu?” İki iç mikroservis arasında iletişimi engelleyen bir hata meydana geldi ve ekip zamanında yanıt arıyordu.

Bu yazıda, HTTP/2 ile yapılan bilinen saldırılar ve bunların Cloudflare savunmalarını nasıl tetiklediği açıklanmakta, ayrıca Go’nun standart kütüphanesinde yapılan basit bir hatanın istemcilerin PING flood saldırıları göndermesine nasıl yol açabileceği ele alınmaktadır.

HTTP/2 güçlüdür – fakat kullanımı kolayca yanlışa yol açabilir

HTTP/2, HTTP semantiklerini kodlamak için bir ikili veri formatı tanımlar. İstemci ve sunucu arasında gönderilen istek ve yanıt mesajları, her biri mantıksal bir akışa bağlı HEADERS ve DATA çerçeveleri olarak kodlanır. Kontrol çerçeveleri, akışların veya bağlantının yönetimiyle ilgilidir. Örneğin, SETTINGS çerçeveleri bir uç noktanın özelliklerini duyurur, WINDOW_UPDATE çerçeveleri bir akraba veri gönderme yetkisini sağlar.

HTTP/2, meşru kullanımları olan birçok güçlü özellik sunar. Ancak, büyük güçlerin beraberinde sorumluluk ve kazara ya da kasıtlı olarak yanlış kullanım fırsatları gelir. Spesifikasyon, hizmet reddi için dikkate alınacak hususlar içerir. Uygulamalar, bu özelliklerin kullanımını izlemeli ve kullanım limitleri belirlemelidir.

Cloudflare’ın HTTP/2 Savunmaları

Cloudflare, sistemlerini ve müşterilerini korumak için yıllar içinde birçok HTTP/2 savunması geliştirmiştir. 2019’da “Netflix zafiyetleri” için eklenen önlemler ve 2023’te Rapid Reset ve benzeri saldırılara karşı alınan saldırı azaltmaları dikkat çekmektedir.

HTTP/2 istemci davranışı kötü niyetli olabileceği tespit edildiğinde, bağlantı, GOAWAY çerçevesi ile kapatılır ve ENHANCE_YOUR_CALM hata kodu eklenir.

Tanınmış bir saldırı örneği olan CVE-2019-9512 (PING flood), sürekli ping atılması durumunda sunucuda bir yanıt kuyruklanması yaratabilmektedir. PING çerçevesi, karşı tarafın yanıt vermek zorunda kalmasına yol açarak, ayrıca efor yaratmaktadır.

Belirli bir sıklıkla Cloudflare kenarına PING atan bir istemci, CVE-2019-9512 azaltma önlemlerini tetikleyecektir. Ayrıca, Cloudflare 2020 yılında gRPC desteğini başlattığında bazı gRPC istemcileri PING gönderme aşamasında uyumsuzluk sorunları yaşamış ve bu durumları düzeltmiştir.

İki Mikroservis Arasındaki İletişim Sorunu

Cloudflare sınırları üzerinden iletişim gerçekleştiren iki iç mikroservis arasında ENHANCE_YOUR_CALM hata kodunun sorumluluğu üzerine yapılan tartışmalarda, bunun aslında bir PING flood önleme sorunu olduğu doğrulanmıştır. Ancak iki mikroservisin Cloudflare kenarında neden iletişim kurduğunu sorgulamak da önemli bir noktadır.

İletişim kurmak, tesisatımızı test etme, Cloudflare Access ile güvenli erişim sağlama gibi avantajlar sunmaktadır.

Client’ın davranışının nedenini bulmak üzere bir analiz yapıldı. Sık sık PING atan bir uzantı ile sistem, otomatik kapanma durumuna geçmektedir. Sonuçta, istemcinin, io.Copy(io.Discard, resp.Body) ile yanıt gövdesini okumak yerine, direkt kapatmasını tercih etmesi sorun yaratmıştır. Çözüm olarak istemci güncellendi ve ENHANCE_YOUR_CALM kapanmalarının ortadan kalktığı doğrulandı.

ENHANCE_YOUR_CALM ile Karşılaşanlar İçin Öneriler

HTTP/2’nin birçok özelliği ve bazı uygulamaların bu özelliklerin yanlış kullanımına karşı kendilerini korumak için sertleştirdiği göz önüne alındığında, ENHANCE_YOUR_CALM hata kodu, kapanmalar için önerilmektedir. Eğer HTTP/2 istemciniz ENHANCE_YOUR_CALM ile kapanıyorsa, bağlantı desenlerini analiz etmek iyi bir fikir olacaktır.

Bu yazı, iç hizmetlerimizde kendi ürünlerimizi denemenin avantajlarını hatırlatmıştır. Karşılaşılan sorunlardan elde edilen dersler, benzer kurulumlara sahip müşterilere de yarar sağlayacaktır.

Kaynak: Cloudflare Blog

“>Kaynak

NO COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Exit mobile version