Microsoft, saldırganların ViewState’e kötü amaçlı kod enjekte etmek için kamuya açık makine anahtarlarını istismar ettiği ASP.NET uygulamalarındaki bir güvenlik açığıyla ilgili bir uyarı yayınladı. Bu istismar, Internet Information Services (IIS) web sunucularında yetkisiz uzaktan kod yürütülmesine yol açabilir.
ViewState, ASP.NET Web Forms tarafından geri göndermeler arasında sayfa ve kontrol durumunu korumak için kullanılan bir yöntemdir. Bu veriler sayfadaki gizli bir alanda saklanır ve Base64 kodlaması kullanılarak kodlanır. ViewState’i kurcalamaya ve bilgi ifşasına karşı korumak için ASP.NET makine anahtarları kullanır: ValidationKey ve DecryptionKey. Bu anahtarlar ya otomatik olarak oluşturulur ve kayıt defterinde saklanır ya da yapılandırma dosyalarında elle belirtilir.
Bu makine anahtarları herkese açık olarak ifşa edilirse veya uygunsuz bir şekilde güvence altına alınırsa, saldırganlar bilinen anahtarları kullanarak kötü amaçlı bir ViewState oluşturabilir ve bunu bir POST isteği aracılığıyla hedef web sitesine gönderebilir. ASP.NET çalışma zamanı bu kötü amaçlı ViewState’i işlediğinde, şifresini çözer ve başarıyla doğrular ve bu da sunucunun çalışan işlemi içinde gömülü kötü amaçlı kodun yürütülmesine yol açar. Bu, saldırgana hedeflenen IIS web sunucusunda uzaktan kod yürütme yetenekleri sağlar.
Aralık 2024’te Microsoft’un Tehdit İstihbaratı ekibi, atıf yapılmamış bir tehdit aktörünün kötü amaçlı kod enjekte etmek ve Godzilla sömürü sonrası çerçevesini sunmak için herkese açık, statik bir ASP.NET makine anahtarı kullandığı sınırlı bir etkinlik gözlemledi.
Daha ileri incelemeler, 3.000’den fazla herkese açık olarak ifşa edilen makine anahtarının bu tür ViewState kod enjeksiyon saldırıları için kullanılabileceğini ortaya koydu. Dark web forumlarında satılan tehlikeye atılmış veya çalınmış anahtarlara dayanan önceki saldırıların aksine, bu kamuya açık anahtarlar, birden fazla kod deposunda yaygın olarak bulunmaları ve herhangi bir değişiklik yapılmadan geliştirme koduna dahil edilme potansiyelleri nedeniyle daha yüksek bir risk oluşturmaktadır.
Açığa Karşı Öneriler
Bu güvenlik açığını azaltmak için Microsoft şunları öneriyor;
- Genel Olarak Erişilebilir Anahtarları Kullanmaktan Kaçının: Genel olarak erişilebilir kaynaklardan makine anahtarlarını kopyalamayın.
- Makine Anahtarlarını Düzenli Olarak Döndürün: İstismar riskini azaltmak için makine anahtarlarını değiştirmek üzere rutin bir program uygulayın.
- Hassas Yapılandırma Öğelerini Şifreleyin: Düz metin sırlarına yetkisiz erişimi önlemek için yapılandırma dosyalarındaki machineKey ve connectionStrings öğelerini koruyun.
- ASP.NET 4.8’e yükseltin: Bu sürüm, bu tür saldırılara karşı güvenliği artıran Antimalware Scan Interface (AMSI) yeteneklerini etkinleştirir.
- Windows Sunucularını Güçlendirin: Sunucu savunmalarını güçlendirmek için web kabuğu oluşturmayı engelleme gibi saldırı yüzeyi azaltma kurallarını uygulayın.
Ayrıca Microsoft, güvenli olmayan uygulamaları engellemek için kamuya açık belgelerinden anahtar örnekleri kaldırdı ve GitHub deposunda tanımlanmış kamuya açık makine anahtarları için karma değerlerinin bir listesini sağladı. Sağlanan betiği kullanarak ortamınızdaki makine anahtarlarını kontrol etmenizi öneriyorlar.
ASP.NET uygulamaları kullanan kuruluşlar, kamuya açık makine anahtarlarının varlığı açısından ortamlarını derhal değerlendirmelidir.



Kaynak : 