CVE-2023-38408 OpenSSH'nin SSH-Agent RCE Nedir ?
SSH-Agent, geniş bir şekilde kullanılan bir programdır ve SSH kullanarak uzak makinelere güvenli ve kullanışlı bir şekilde giriş yapmak için özel anahtarları saklar. Aynı zamanda, komut satırı geçmişinin ortaya çıkması veya istemci üzerine bir tuş vuruşu dinleyici kurulması gibi durumlarda tehlikeli olarak kabul edilen şifreli girişin güvenli ve alternatif bir yol olarak kabul edilir.
Bu programın işlevlerinden biri, kullanıcıların uzak sunuculardan yerel SSH ajanlarına erişmelerini sağlayan "agent forwarding"dir. Ancak Qualys tarafından yapılan son araştırma, bu öyle bir güvenlik açığına işaret etti ki, istemcinin makinesinde uzaktan kod çalıştırılmasına yol açabilir.
Bu yazımızda, bu sorunu, köken nedenini ve kullanıcılar ile sistem yöneticileri için ne anlama geldiğini inceleyeceğiz.
Bilinen Sakıncalar ve Şaşırtıcı Etkiler
SSH-Agent'in (man SSH-agent) el kitabı sayfaları, kullanıcıları olası tehlikeler konusunda uyarırken, SSH-agent yönlendirmesinin hala yaygın bir şekilde kullanıldığını belirtir.
SSH-agent'in el kitabı sayfasından gelen uyarı.
"Bir sistem yöneticisi (Alice), yerel çalışma istasyonunda SSH-agent çalıştırır, ssh ile uzak bir sunucuya bağlanır ve SSH-agent yönlendirmesini -A veya ForwardAgent seçeneği ile etkinleştirir, böylece kendi yerel çalışma istasyonunda çalışan SSH-agent'i uzak sunucudan erişilebilir hale getirir."
Qualys'ten araştırmacılara göre, Alice'in bağlandığı ana bilgisayarı kontrol edebilen uzaktan bir saldırgan, Alice'in çalışma istasyonundaki /usr/lib* dizinindeki herhangi bir paylaşılan kütüphaneyi (dlopen() ile yükler ve hemen (dlclose() ile boşaltır (SSH-agent yönlendirmesi ENABLE_PKCS11 ile derlenmişse, ki bu varsayılan ayarlar dahilindedir).
Bu zafiyet, SSH-agent'ın yönlendirilen paylaşılan kütüphaneleri nasıl işlediğinde yatmaktadır. SSH-agent ENABLE_PKCS11 ile derlendiğinde (varsayılan yapılandırma), kullanıcının yerel çalışma istasyonundan uzak sunucuya paylaşılan kütüphaneleri yönlendirir. Bu kütüphaneler, kullanıcının çalışma istasyonunda yüklenir (dlopen()) ve hemen boşaltılır (dlclose()). Sorun, belirli paylaşılan kütüphanelerin yüklenip boşaltıldığında yan etkilerinin olmasıdır ve bu, SSH-agent'in yönlendirildiği uzak sunucuya erişim sağlayan bir saldırgan tarafından sömürülebilir.
SSH-Agent Zafiyetinin Köken Nedeni
Bu zafiyetin temel nedeni, SSH-agent'in yönlendirme mekanizması ile paylaşılan kütüphanelerin yan etkilerinin birleşimidir. /usr/lib* içindeki paylaşılan kütüphaneler resmi dağıtım paketlerinden geldiği varsayılır ve dlopen() ve dlclose() dışındaki işlemleri gerçekleştirmesi beklenmez. Ne yazık ki, bu kütüphanelerden belirli yan etkileri zincirleme olarak kullanmak, bir saldırganın SSH-agent'ta uzaktan kod çalıştırmasını sağlamasına olanak tanır.
Sonuçlar
Bu zafiyetin sonuçları önemlidir. SSH-agent yönlendirildiği uzak sunucuya erişim sağlayan bir saldırgan, kullanıcının yerel çalışma istasyonunda kötü amaçlı kodları potansiyel olarak yürütebilir. Bu, yetkisiz erişim, veri hırsızlığı veya hatta kullanıcının sisteminin tamamen tehlikeye girmesine yol açabilir.
SSH-Agent Yönlendirme RCE Zafiyeti İçin Hafifletme Yöntemleri
Yönlendirme ile ilişkilendirilen potansiyel riskler göz önüne alındığında, kullanıcılar ve sistem yöneticileri bu özelliği etkinleştirirken dikkatli olmalıdır. Her ne kadar kolaylık sağlasa da, aynı zamanda saldırı yüzeyini artırır. İşte riski azaltmak için bazı adımlar:
Ajan Yönlendirmeyi Azaltın: Yönlendirmeyi yalnızca gerektiğinde kullanmakla sınırlayın. SSH oturumları için yönlendirmeyi her zaman etkinleştirmekten kaçının ve yalnızca güvendiğiniz uzak sunucularda kullanın.
Zıplama Sunucularını Kullanın: SSH'de aracı bir sunucu belirtmek için -J seçeneğini kullanmayı düşünün. Bu yaklaşım, SSH-agent'inizi azaltarak uzaktaki sunuculara bir aracı anahtar üzerinden erişmenizi sağlar.
PKCS#11 Desteğini Devre Dışı Bırakın: Mümkünse, SSH-agent'i PAYLAŞILAN KÜTÜPHANELERİ İLETMEK VE SALDIRI YÜZEYİNİ AZALTMAMAK İÇİN ENABLE_PKCS11 olmadan derleyin.
Yazılımı Güncel Tutun: İşletim sisteminizi ve SSH yazılımınızı düzenli olarak güncelleyin ve en son güvenlik yamalarına sahip olduğunuzdan emin olun: OpenSSH 9.3p2 veya daha yeni.
CVE-2023-38408 güvenlik açığının CVE kartı (SOCRadar Vulnerability Intelligence)
SSH-Agent yönlendirme, SSH'nin kullanılabilirliğini artıran güçlü bir özelliktir ancak bazı riskleri de beraberinde getirir. SSH aracısı iletimindeki potansiyel güvenlik açıklarını vurgulayan son araştırmalar bize en iyi güvenlik uygulamalarının önemini hatırlatıyor. Kullanıcılar ve sistem yöneticileri, riskleri anlayarak ve gerekli önlemleri alarak güvenli bir SSH ortamı sağlayabilir ve sistemlerini olası tehditlerden koruyabilirler.
Yararlandığım Kaynaklar : socradar
NVD - CVE-2023-38408
nvd.nist.gov
Son düzenleme: