uClibc ve uClibc-ng'de, verilerin DNS önbelleğinde sahtekarlığa izin veren bir güvenlik açığı

Birçok gömülü ve taşınabilir cihazda kullanılan standart C kütüphaneleri uClibc ve uClibc-ng'de, IP adresini değiştirmek için kullanılabilecek, DNS önbelleğine hayali verilerin eklenmesine izin veren bir güvenlik açığı tespit edilmiştir (CVE atanmamış). Önbellekte rastgele bir alan adı bulunur ve istekler saldırganın sunucusundaki alana yönlendirilir.

Sorun, yönlendiriciler, erişim noktaları ve Nesnelerin İnterneti cihazları için çeşitli Linux yazılımlarının yanı sıra OpenWRT ve Embedded Gentoo gibi gömülü Linux dağıtımlarını da etkiliyor. Güvenlik açığının birçok üreticinin cihazlarında ortaya çıktığı (örneğin, uClibc, Linksys, Netgear ve Axis firmware'inde kullanılıyor) ancak uClibc ve uClibc-ng'de güvenlik açığının giderilmediği için, ürünleri belirli cihazlar ve üreticiler hakkında ayrıntılı bilgi verildiği belirtiliyor. sorun mevcut mu henüz açıklanmadı.

Güvenlik açığı, DNS sorgularının gönderilmesine yönelik kodda öngörülebilir işlem tanımlayıcılarının kullanılmasından kaynaklanmaktadır. DNS isteğinin kimlik numarası, bağlantı noktası numaralarının ek rastgeleleştirilmesi kullanılmadan basitçe sayacın artırılmasıyla seçildi; bu, UDP paketlerinin kurgusal yanıtlarla önleyici gönderimi yoluyla DNS önbelleğinin zehirlenmesini mümkün kıldı (yanıt daha önce gelirse kabul edilecektir) gerçek sunucudan gelen yanıttır ve doğru kimliği içerir). 2008'de önerilen Kaminsky yönteminden farklı olarak, işlem tanımlayıcısının tahmin edilmesine bile gerek yoktur, çünkü başlangıçta tahmin edilebilirdir (değer başlangıçta 1 olarak ayarlanır ve bu değer rastgele seçilmek yerine her istekle birlikte artar).

uClibc ve uClibc-ng'de, verilerin DNS önbelleğinde sahtekarlığa izin veren bir güvenlik açığı

Tanımlayıcının kaba kuvvetine karşı koruma sağlamak için, spesifikasyon ayrıca, DNS isteklerinin gönderildiği kaynak ağ bağlantı noktalarının rastgele bir dağılımının kullanılmasını önerir; bu, tanımlayıcının yeterince büyük olmamasını telafi eder. Kurgusal bir yanıt oluşturmak için bağlantı noktası rastgeleleştirmesini etkinleştirdiğinizde, 16 bitlik bir tanımlayıcı seçmenin yanı sıra ağ bağlantı noktası numarasını da seçmeniz gerekir. uClibc ve uClibc-ng'de, bu tür rastgeleleştirme açıkça etkinleştirilmemiştir (bin çağrılırken rastgele bir kaynak UDP bağlantı noktası belirtilmemiştir) ve kullanımı işletim sistemi ayarlarına bağlıydı.

Pot rastgeleleştirme devre dışı bırakıldığında, artan istek kimliğinin belirlenmesi önemsiz bir görev olarak işaretlenir. Ancak rastgeleleştirme kullanılsa bile, saldırganın yalnızca 32768-60999 aralığındaki ağ bağlantı noktasını tahmin etmesi yeterlidir; bunun için farklı ağ bağlantı noktalarına büyük eşzamanlı hayali yanıtlar gönderilebilir.

uClibc ve uClibc-ng'de, verilerin DNS önbelleğinde sahtekarlığa izin veren bir güvenlik açığı

Sorun, uClibc 0.9.33.2 ve uClibc-ng 1.0.40'ın en son sürümleri de dahil olmak üzere, uClibc ve uClibc-ng'nin tüm güncel sürümlerinde doğrulanmıştır. Eylül 2021'de, düzeltmelerin koordineli olarak hazırlanması için güvenlik açığıyla ilgili bilgiler CERT/CC'ye gönderildi. Ocak 2022'de soruna ilişkin veriler, CERT/CC ile iş birliği yapan 200'den fazla üreticiyle paylaşıldı. Mart ayında, uClibc-ng projesinin yöneticisiyle ayrıca iletişime geçme girişiminde bulunuldu, ancak o, güvenlik açığını kendi başına gideremeyeceğini söyledi ve bir çözüm geliştirme konusunda yardım almayı umarak sorunla ilgili bilgilerin kamuya açıklanmasını önerdi. topluluktan düzeltin. Üreticiler arasında NETGEAR, güvenlik açığını ortadan kaldıran bir güncelleme yayınlandığını duyurdu.

Kaynak: opennet.ru

Yorum ekle