Ubuntu’nun ‘komut bulunamadı’ paket öneri sistemi ile ek paket deposu arasındaki bir mantık hatası, saldırganların kötü niyetli Linux paketlerini şüphelenmeyen kullanıcılara tanıtmasına olanak sağlayabilir.
Sorun, yardımcı programın, paketlerin orijinal ve güvenli olduğundan emin olmak için bir doğrulama mekanizması olmadan, eksik olduklarında kurulum için ek paketler önerme yeteneğinden kaynaklanmaktadır.
Bu boşluk Aqua Nautilus araştırmacıları tarafından keşfedildi ve Gelişmiş Paket Aracı (APT) paket komutlarının yaklaşık %26’sının kötü amaçlı ek paketler tarafından taklit edilme riski altında olduğunu ve bunun Linux ve Linux için Windows Alt Sistemi (WSL) için önemli bir tedarik zinciri riski oluşturduğunu buldu. kullanıcılar.
Aqua Nautilus’un raporu Ubuntu’ya odaklanırken, sorunun sadece popüler Linux dağıtımının ötesine uzanan daha geniş etkileri olduğu unutulmamalıdır.
Örneğin, Snap paket sistemiyle birlikte varsayılan olarak “komut bulunamadı” yardımcı programını kullanan herhangi bir Ubuntu çatalı veya Linux dağıtımı da saldırıya açıktır.
Tüm adımlarda kontrol eksikliği
‘Command-not-found’ yardımcı programı, şu anda yüklü olmayan belirli bir programı çalıştırmanıza izin vermek için kurulacak paketleri öneren bir Python betiğidir.
Örneğin, mojo’yu çalıştırmak istiyorsanız ancak program yüklü değilse, command-not-found betiği, komutu kullanabilmeniz için kurulacak paketleri önerecektir.
Ancak güvenliği, hizmet sağlayıcının önerdiği paketlerin kurulumunun güvenli olduğundan emin olmak için tedarik zincirinin alt seviyelerinde gerekli özenin gösterilmesini gerektirir.
Yardımcı programın öneri mekanizması, APT paketleri için dahili bir veritabanına ve snap paketleri için Snap Store’dan düzenli olarak güncellenen bir veritabanına dayanır ve komutların paketlerle ilişkilendirilmesine olanak tanır.
Aqua Nautilus’un açıkladığı gibi, APT paketleriyle karşılaştırıldığında sıkı inceleme süreçlerinin bulunmadığı göz önüne alındığında, saldırganların Snap Store’da kötü amaçlı snap’ler yayınlaması nispeten kolaydır.
Snap paketleri “katı” veya “klasik” olarak yayınlanabilir; ilki, yazılımı korumalı alanla sınırlandırır ve ikincisi, tıpkı APT paketleri gibi sınırsız erişim sağlar.
Saldırganlar, kötü uygulamalarını “klasik” olarak yayınlama riskini alabilirler. Ancak bunların onaylanmadan önce manuel olarak incelenmesi gerekir ve kötü amaçlı işlevsellik uygun şekilde gizlenirse bu incelemeleri geçme şansı yüksektir.
Araştırmacılar, “katı” snap’lerin bile son derece riskli olduğunu, çünkü harici kaynaklarla veya ana sistemin görüntü sunucusuyla kapsamlı etkileşim için “arayüzler” kullanma seçeneğini kötüye kullanabileceklerini, özellikle de X11 kullanıldığında potansiyel olarak diğer uygulamaların gizlice dinlenmesine ve keylogging yapılmasına izin verebileceğini söylüyorlar. .
Buna ek olarak Aqua’nın analistleri, yeni keşfedilen kusurları hedefleyen, güvenliği ihlal edilmiş bir sistemde “yeni” istismarlar sağlamak için anlık paketlerin otomatik güncelleme özelliğinin kötüye kullanılması riskinin altını çiziyor.
Bu riskin ilgili bir örneği Linux çekirdek kusurlarıyla ilgilidir. Snap paketleri, sistem üzerinde çalışan tüm yazılımlarla aynı sistem çekirdeğini paylaştığından, sanal alandan kaçmak için potansiyel olarak bir kusurdan yararlanabilirler.
Yazım hatası ve kimliğe bürünme riskleri
Saldırganlar ‘komut bulunamadı’ yardımcı programı aracılığıyla paketlerini tanıtmanın bir yolunu buldukları sürece yukarıdakilerin hepsi riskli bir duruma zemin hazırlıyor, ancak analistlerin açıkladığı gibi bunun için de rahat bir marj var.
İlk ve en basit hile, yazım hataları içeren komutları (örneğin, ‘ifconfig’ yerine ‘ifconfigg’) kötü amaçlı ek paketlerle ilişkilendirmektir; bu da ‘command-not-found’ yardımcı programının kullanıcıya kötü amaçlı yazılım yüklemesini önermesine yol açar. o noktada yazım hatasını fark etmesi pek mümkün olmayan.
İkinci yöntem, saldırganların, genellikle bilinen komutlara veya takma adlara karşılık geldikleri için kullanıcıların var olmasını bekleyebilecekleri talep edilmemiş ek adlarını tanımlamasını ve kaydetmesini içerir.
“Bir geliştirici, snap’lerinin standarttan farklı bir komutu yürütmesini isterse
format ve basit değil
bir takma ad talep etmeleri gerekiyor” diye açıklıyor araştırmacılar.
“Böyle bir talep, talep edilen takma adın başvuruyla uyumlu olduğundan emin olmak için oylandığı manuel bir inceleme sürecini başlatır.”
Ancak geliştiriciler bu takma ad altında gerçek bir snap kaydetmezlerse, bir tehdit aktörü kendi paketlerini bu ad altında yükleyebilir ve bu paketler daha sonra komut bulunamadı aracı tarafından önerilecektir.
Bu yaklaşım, snap’lerin adlandırma ve takma ad sistemindeki bir boşluktan yararlanarak, takma ad isteklerine ihtiyaç duymadan yasal yazılımın kimliğine bürünülmesine olanak tanır ve ayrılmamış ancak öngörülebilir adlardan yararlanır.
Üçüncü saldırı yöntemi, ‘komut bulunamadı’ yardımcı programının her ikisini de önermesi için meşru APT paketleri için kötü amaçlı ek paketlerin kaydedilmesini içerir.
Aqua Nautilus, birçok yasal yazılım yayıncısının projeleri için karşılık gelen ek paket takma adını talep etmemesi nedeniyle komutların %26’sından bu şekilde yararlanılabileceğini ve bu durumun saldırganlara istismar için bir marj sağladığını söylüyor.
Güvenlik analistleri, yukarıdaki sorunlardan yararlanma hacminin şu anda bilinmediğini ancak en az iki vakanın gün ışığına çıktığını söylüyor (1, 2).
Riskleri azaltmak için atılabilecek bazı adımlar arasında, kullanıcıların yüklemek üzere oldukları paketlerin orijinalliğini doğrulaması, bir Takma Ad’a sahip olan Snap geliştiricilerinin uygulamalarına benzer adları kaydetmesi ve APT paket bakımcılarının ilgili Snap adını kendi uygulamaları için kaydetmesi yer alır. komutlar.