OpenSSL’ ortaya çıkarılan HollowByte adlı yeni açık, yalnızca 11 baytlık özel hazırlanmış veri paketiyle sunucularda hizmet engelleme (DoS) etkisi oluşturabiliyor. Okta Red Team tarafından açıklanan teknik analiz, açığın saldırganların kimlik doğrulaması yapmadan sunucu belleğini giderek şişirebildiğini gösterirken OpenSSL geliştiricileri ilgili düzeltmeyi yeni sürümlere ekledi. Güvenlik uzmanları, OpenSSL kullanan sistemlerin güncel sürümlere geçirilmesini öncelikli adımlar arasında değerlendiriyor.
TLS El Sıkışma Sürecindeki Tasarım Davranışı Soruna Yol AçıyorOkta araştırmacıları, HollowByte saldırısının TLS el sıkışma (TLS handshake) aşamasındaki bellek yönetiminden yararlandığını açıkladı. TLS protokolünde her el sıkışma mesajı, devamında gelecek verinin uzunluğunu bildiren 4 baytlık başlık taşıyor. Etkilenen OpenSSL sürümleri ise uzunluk bilgisini doğrulamadan önce belirtilen boyutta bellek ayırıyor. Saldırgan yalnızca 11 baytlık paket gönderip devamındaki veriyi iletmediğinde iş parçacığı bekleme durumunda kalırken ayrılan bellek kullanılmadan tutuluyor. Böylece OpenSSL güvenlik açığı, gönderilen veri miktarından çok daha büyük bellek tüketimine neden olabiliyor.
Saldırı tek bağlantıyla sınırlı kalmıyor. Aynı yöntem çok sayıda TLS bağlantısı üzerinden tekrarlandığında sunucu sürekli yeni bellek ayırıyor. Bağlantılar kapansa bile GNU C Library (glibc), küçük orta büyüklükteki bellek alanlarını işletim sistemine hemen geri vermediği için süreç beklenenden farklı ilerliyor. Okta’nın analizine göre saldırgan her bağlantıda farklı bellek boyutları bildirerek ayrılan alanların yeniden kullanılmasını zorlaştırabiliyor. Sonuç olarak sunucunun Resident Set Size (RSS) değeri sürekli yükseliyor, süreç yeniden başlatılmadığı sürece şişen bellek alanı tamamen temizlenemiyor.
OpenSSL, internet üzerindeki şifreli iletişimin temel bileşenlerinden biri olarak NGINX, Apache HTTP Server,.js, Python, PHP, Ruby, MySQL PostgreSQL gibi çok sayıda yazılım tarafından kullanılıyor. Çoğu Linux dağıtımı TLS bağlantıları sertifika işlemleri için OpenSSL’yi varsayılan bileşen olarak sunuyor. nedenle OpenSSL DoS saldırısı yalnızca tek uygulamayı değil, aynı kütüphaneye bağlı çok sayıda servis kurumsal altyapıyı etkileyebiliyor.
Okta’nın NGINX üzerinde gerçekleştirdiği testler, düşük donanımlı sistemlerde belleğin kısa sürede tükenebildiğini gösterdi. Daha güçlü sunucularda ise saldırı trafiği güvenlik sistemlerinin uyarı eşiklerinin altında kalmasına rağmen kullanılabilir belleğin yaklaşık dörtte biri tüketilebildi.
OpenSSL ekibi ilgili düzeltmeyi sessiz şekilde yayımlayarak eski sürümlere geri taşıdı. Sorun, OpenSSL 4.0.1 birlikte giderilirken 3.6.3, 3.5.7, 3.4.6 3.0.21 sürümlerine aynı düzeltme eklendi. Yeni yaklaşımda yazılım, yalnızca başlık bilgisine güvenerek bellek ayırmıyor; veri gerçekten ulaştıkça tampon alanını büyütüyor. Böylece HollowByte açığı üzerinden bellek tüketimini artıran yöntem etkisiz hâle geliyor.
Okta, düzeltmenin “güçlendirme” kapsamında yayımlanmış olmasına rağmen üretim ortamlarında çalışan sunucuların gecikmeden güncellenmesini tavsiye ediyor. Özellikle internet üzerinden erişilebilen web sunucuları, API servisleri Linux tabanlı kurumsal sistemlerde OpenSSL sürümünün kontrol edilmesi olası hizmet kesintilerinin önüne geçilmesi açısından önem taşıyor.