AWS Amazon Güvenlik Açığı
CVE-2024-8901 ve CVE-2024-10125, AWS Application Load Balancer (ALB) ve Kubeflow ve ASP.NET Core dağıtımları dahil olmak üzere çeşitli uygulamalardaki OpenID Connect (OIDC) kimlik doğrulama mekanizmalarıyla entegrasyonuyla ilgili önemli güvenlik açıklarını vurgular. Aşağıda bu güvenlik açıklarının ayrıntılı bir incelemesi, bunların etkileri ve bunların nasıl istismar edilebileceğine dair örnekler yer almaktadır.
Güvenlik Açıklarına Genel Bakış
CVE-2024-8901
- Etkilenen Bileşen : Istio için AWS ALB Rota Yönergesi Bağdaştırıcısı
- Entegrasyon : Açık kaynaklı Kubeflow projesinde OIDC kimlik doğrulaması için kullanıldı.
- Sorun : Bağdaştırıcı kimlik doğrulaması için JSON Web Token'ları (JWT) kullanıyor ancak imzalayan ve veren için yeterli doğrulamadan yoksun.
- Etkisi : ALB uç noktalarının internete maruz kaldığı senaryolarda, bir saldırgan güvenilmeyen bir varlık tarafından imzalanmış bir JWT oluşturabilir. Bu, OIDC-federasyonlu oturumları taklit etmelerine ve böylece kimlik doğrulamasını tamamen atlamalarına olanak tanır.
CVE-2024-10125
- Etkilenen Bileşen : Amazon.ApplicationLoadBalancer.Identity.AspNetCore Middleware
- Entegrasyon : Fargate, EKS, ECS, EC2 ve Lambda dahil olmak üzere herhangi bir ASP.NET Core dağıtım senaryosunda kullanılabilir.
- Sorun : Bu ara yazılım JWT'lerde imza doğrulaması gerçekleştirirken, JWT yayıncısı ve imzalayıcı kimliğini doğrulamada başarısız oluyor.
- Etkisi : CVE-2024-8901'e benzer şekilde, altyapı ALB hedeflerine internet trafiğine izin veriyorsa (ki bu önerilmez), bir saldırgan geçerli OIDC federasyonlu oturumları taklit etmek için bu gözetimi suistimal edebilir.
Teknik Detaylar
JWT Kimlik Doğrulaması Nasıl Çalışır?
JWT'ler, kompakt yapıları ve kullanım kolaylıkları nedeniyle kimlik doğrulama için yaygın olarak kullanılır. Üç bölümden oluşurlar: başlık, yük ve imza. İmza, JWT'nin göndericisinin iddia ettiği kişi olduğunu doğruladığı ve mesajın yol boyunca değiştirilmediğinden emin olduğu için önemlidir.- Başlık : Genellikle iki bölümden oluşur: belirteç türü (JWT) ve kullanılan imzalama algoritması (örneğin, HMAC SHA256 veya RSA).
- Payload : Kullanıcıya ait iddiaları ve diğer verileri içerir.
- İmza : Kodlanmış başlığı, kodlanmış yükü ve gizli bir anahtarı alarak ve belirtilen algoritmayı kullanarak imzalayarak oluşturulur.
Sömürü Senaryosu
Her iki güvenlik açığında da:- Bir aktör, güvenilmeyen bir kuruluş tarafından imzalanmış hazırlanmış bir JWT gönderir.
- Uygulama, yayıncı ve imzalayıcı üzerindeki yetersiz doğrulama kontrolleri nedeniyle bu JWT'yi kabul ediyor.
- Aktör, geçerli kimlik doğrulaması gerektirmesi gereken kaynaklara veya işlevlere yetkisiz erişim elde eder.
Örneğin, CVE-2024-8901 kullanan bir Kubeflow dağıtımında:- Bir saldırgan, hassas verilere erişmek veya meşru bir kullanıcıymış gibi eylemler gerçekleştirmek için kötü amaçlı bir JWT gönderebilir.
CVE-2024-10125 kullanan bir ASP.NET Core uygulamasında:- Bir saldırgan, kısıtlı işlevlere erişim sağlamak için sahte bir JWT göndererek bir kullanıcıyı taklit edebilir.
Azaltma Stratejileri
Bu güvenlik açıklarını azaltmak için:- Daha Güçlü Doğrulama Uygulayın :
- Herhangi bir JWT'yi kabul etmeden önce hem ihraç edenin hem de imzalayanın güvenilir kaynaklara göre doğrulandığından emin olun.
- İnternet Erişimini Kısıtla :
- Kesinlikle gerekli olmadıkça ALB hedeflerini doğrudan internete maruz bırakmaktan kaçının. Güvenlik duvarları ve VPN'ler gibi uygun ağ güvenlik önlemlerini uygulayın.
- Düzenli Güvenlik Denetimleri :
- Olası güvenlik açıklarını belirlemek için kullandığınız kimlik doğrulama mekanizmalarının ve kütüphanelerin düzenli denetimlerini gerçekleştirin.
- Bağımlılıkları Güncelle :
- Bakımcıların sağladığı güvenlik yamalarıyla tüm kütüphaneleri ve bağımlılıkları güncel tutun.
- Herhangi bir JWT'yi kabul etmeden önce hem ihraç edenin hem de imzalayanın güvenilir kaynaklara göre doğrulandığından emin olun.
- Kesinlikle gerekli olmadıkça ALB hedeflerini doğrudan internete maruz bırakmaktan kaçının. Güvenlik duvarları ve VPN'ler gibi uygun ağ güvenlik önlemlerini uygulayın.
- Olası güvenlik açıklarını belirlemek için kullandığınız kimlik doğrulama mekanizmalarının ve kütüphanelerin düzenli denetimlerini gerçekleştirin.
- Bakımcıların sağladığı güvenlik yamalarıyla tüm kütüphaneleri ve bağımlılıkları güncel tutun.