04 Nis 2024Haber odasıGüvenlik Açığı / İnternet Protokolü

Yeni araştırmalar, HTTP/2 protokolündeki CONTINUATION çerçevesinin hizmet reddi (DoS) saldırıları gerçekleştirmek için kullanılabileceğini buldu.

Tekniğe kod adı verildi HTTP/2 DEVAM Flood Sorunu 25 Ocak 2024’te CERT Koordinasyon Merkezi’ne (CERT/CC) bildiren güvenlik araştırmacısı Bartek Nowotarski tarafından.

CERT/CC, “Birçok HTTP/2 uygulaması, tek bir akış içinde gönderilen CONTINUATION çerçevelerinin miktarını gerektiği gibi sınırlandırmıyor veya temizlemiyor.” söz konusu 3 Nisan 2024 tarihli bir danışma belgesinde.

“Hedef sunucuya paket gönderebilen bir saldırgan, bellekteki başlık listesine eklenmeyen ancak yine de sunucu tarafından işlenecek ve kodu çözülecek veya başlık listesine eklenecek bir DEVAM çerçeveleri akışı gönderebilir. yetersiz bellek (OOM) çökmesi.”

HTTP/1’de olduğu gibi, HTTP/2 de istekler ve yanıtlar içindeki başlık alanlarını kullanır. Bunlar başlık alanları sırayla serileştirilen ve bölümlere ayrılan başlık listelerini içerebilir başlık blokları. Başlık blokları daha sonra blok parçalarına bölünür ve HEADERS veya CONTINUATION çerçeveleri adı verilen çerçeveler içinde iletilir.

RFC 7540 dokümantasyonu “CONTINUATION çerçevesi (tip=0x9), bir başlık bloğu parçaları dizisine devam etmek için kullanılır” okur.

“Önceki çerçeve aynı akışta olduğu ve bir çerçeve olduğu sürece herhangi bir sayıda CONTINUATION çerçevesi gönderilebilir. BAŞLIKLAR, PUSH_PROMISEveya END_HEADERS bayrağı ayarlanmamış CONTINUATION çerçevesi.”

Başlıkları içeren son çerçeve, uzak uç noktaya başlık bloğunun sonu olduğunu bildiren END_HEADERS bayrağı setine sahip olacaktır.

Nowotarski’ye göre CONTINUATION Flood, Ekim 2023’te ortaya çıkan Rapid Reset saldırısına kıyasla daha ciddi bir tehdit oluşturan, çeşitli HTTP/2 protokol uygulamalarında yer alan bir güvenlik açığı sınıfıdır.

Araştırmacı, “Tek bir makine (ve belirli durumlarda yalnızca tek bir TCP bağlantısı veya bir avuç çerçeve), sunucu çökmelerinden önemli performans düşüşlerine kadar değişen sonuçlarla birlikte sunucu kullanılabilirliğini bozma potansiyeline sahiptir.” söz konusu. “Dikkate değer bir şekilde, saldırı oluşturan istekler HTTP erişim günlüklerinde görünmüyor.”

HTTP/2 Güvenlik Açığı

Güvenlik açığının özünde, HEADERS’ın ve DoS koşulunun önünü açan birden fazla CONTINUATION çerçevesinin yanlış işlenmesiyle ilgilidir.

Başka bir deyişle, bir saldırgan, güvenlik açığı bulunan bir uygulamayı kullanarak hedef sunucuya karşı yeni bir HTTP/2 akışı başlatabilir ve ayarlanmış bir END_HEADERS bayrağı olmadan HEADERS ve CONTINUATION çerçeveleri göndererek HTTP/2 sunucusunun ihtiyaç duyacağı hiç bitmeyen bir başlık akışı oluşturabilir. ayrıştırmak ve hafızada saklamak için.

Kesin sonuç uygulamaya bağlı olarak değişmekle birlikte, etkiler birkaç HTTP/2 çerçevesi gönderildikten sonra anlık çökmeden ve yetersiz bellek çökmesinden CPU tükenmesine ve dolayısıyla sunucu kullanılabilirliğini etkilemeye kadar değişir.

RFC9113 […] Nowotarski, CONTINUATION çerçevelerinin doğru şekilde işlenmemesi durumunda ortaya çıkabilecek birçok güvenlik sorunundan bahsediyor.” dedi.

“Aynı zamanda, CONTINUATION çerçevelerinin son END_HEADERS bayrağı olmadan gönderildiği ve etkilenen sunucular üzerinde olumsuz etkileri olabilecek belirli bir durumdan da söz edilmiyor.”

Sorun amphp/http gibi çeşitli projeleri etkiliyor (CVE-2024-2653), Apache HTTP Sunucusu (CVE-2024-27316), Apache Tomcat (CVE-2024-24549), Apache Trafik Sunucusu (CVE-2024-31309), Elçi vekili (CVE-2024-27919 Ve CVE-2024-30255), Golang (CVE-2023-45288), h2 Pas sandığı, nghttp2 (CVE-2024-28182), Node.js (CVE-2024-27983) ve Tempesta FW (CVE-2024-2758).

Potansiyel tehditleri azaltmak için kullanıcıların etkilenen yazılımı en son sürüme yükseltmeleri önerilir. Bir düzeltmenin bulunmaması durumunda, sunucuda HTTP/2’yi geçici olarak devre dışı bırakmayı düşünmeniz önerilir.



siber-2