Yazılım ve Uygulamalar

OpenSSH ve musl hataları 256 karakterlik parolayla girişe izin veriyor

OpenSSH ile musl libc'deki hataların birleşimi, belirli koşullar sağlandığında Alpine Linux dahil bazı dağıtımlarda 256 karakteri aşan bir parolayla kimlik doğrulamasının atlatılmasına yol açıyor.

· · 2 dk okuma
Pembe zeminde kod satırları üzerinde, uyarı üçgenleriyle çevrili kırmızı profil kartı ve mavi simgeler

OpenSSH ile musl libc kütüphanesindeki iki ayrı hata birleştiğinde, parola doğrulaması atlatılabiliyor. Saldırganın yapması gereken tek şey, SSH parola isteminde 256 karakterden uzun, rastgele bir metin girmek. Sistem kullanıcıları için boş parola tanımlanması birçok dağıtımda varsayılan olduğundan, bu durumda saldırı doğrudan işe yarıyor. Hata Alpine Linux ve bazı diğer dağıtımları etkiliyor.

Açık, son haftalarda ortaya çıkan PHP motoru ve diğer güvenlik zafiyetlerinin ardından geldi. Sorunun kapsamı, özellikle Alpine'in konteyner ve bulut dünyasındaki yaygınlığı nedeniyle dikkat çekiyor.

Hangi sistemler etkileniyor?

Açığın istismar edilebilmesi için birkaç koşulun bir arada bulunması gerekiyor: OpenSSH kullanılması, musl libc'nin tercih edilmesi, parola doğrulamasının açıkça kapatılmamış olması, PAM'in devrede olmaması ve SHA-512/256 özetiyle parola atanmış tek bir keyfi kullanıcı hesabının bulunması. Sistem kullanıcıları için boş parola tanımlanması birçok dağıtımda varsayılan durum olduğu için, saldırı bu senaryoda çalışıyor.

Hata Buildroot, Yocto ve Void Linux'ta da mevcut, ancak her zaman etkin olmayabiliyor. OpenWRT varsayılan olarak kimlik doğrulama için Dropbear kullanıyor; yine de kullanıcılar OpenSSH kurmayı seçebiliyor. En büyük endişe ise Alpine'de: Gerekli koşullar varsayılan olarak sağlanıyor ve parola doğrulaması açık geliyor. Alpine'in Docker, Kubernetes ve Proxmox konteynerlerinde, sunucularda, bulut sanal makinelerinde ve gömülü cihazlarda çok yaygın kullanıldığı düşünülürse, etkilenen kurulum sayısı milyonları bulabilir.

Hata nasıl çalışıyor?

Sorunun teknik kaynağı iki parçadan oluşuyor. /etc/passwd veya /etc/shadow dosyalarında parolası olmayan hesaplar için parola özeti yerine tek bir yıldız işareti kullanılır; bu, hiçbir parolanın çalışmaması gerektiği anlamına gelir. musl'in crypt() fonksiyonu ise bir hata durumunda, olağan yaklaşımın aksine null yerine "*" değerini döndürüyor. OpenSSH de bu değeri bir parola özetiyle karşılaştırıyor; oysa bunu yapmaması gerekirdi. Aşırı uzun bir girdi bu hatalar zincirini tetikliyor.

Ayrıntılar SSHhole adlı web sitesinde paylaşılmış durumda. OpenSSH bir düzeltme ve güvenlik bildirimi yayımladı, musl'in geliştiricisi Rich Felker de bir düzeltme ve bildirim yayımladı. İki taraf da hatanın sorumluluğunu karşı tarafa atıyor gibi görünse de, dışarıdan bakıldığında sorumluluğun paylaşıldığı anlaşılıyor.

Riskler ve alınabilecek önlemler

Etkilenen sistemlerin büyük bölümünün doğrudan internetten erişilebilir olmadığı düşünülüyor. Buna rağmen kurumsal ağlar, ev laboratuvarları, bulut ağları ve VPN'ler dahil ağın içindeki herhangi bir saldırgan sisteme girebilir. Geçerli tek bir kullanıcı hesabı yeterli olduğu için, büyük bir kurumsal ortamda bunu elde etmek zor değil. Açığın taranması ve test edilmesi de oldukça kolay.

Sistemlerin projenin bildirimine uygun biçimde derhal yamalanması öneriliyor. Geçici ve en kolay çözüm ise OpenSSH yapılandırma dosyasında "PasswordAuthentication" ayarını açıkça "no" yapıp servisi yeniden başlatmak.

Yorumlar

Henüz yorum yok. İlk yorumu siz yazın.

Yorum yazın

E-posta istemiyoruz. Yorumlar yayından önce otomatik olarak denetlenir.

Sıradaki

Tümü →