Apple CocoaPods Hataları Milyonlarca Uygulamayı Kod Yerleştirmeye Maruz Bırakıyor


Yıllardır akıl almaz sayıda Apple uygulaması, popüler bir bağımlılık yöneticisindeki kritik güvenlik açıklarına maruz kalıyor.

CocoaPods, geliştiricilerin kullandığı bir platformdur Apple’ın ekosistemi harici kitaplıkları (“bölmeler” olarak adlandırılır) eklemek ve yönetmek için kullanın. Dünyanın en popüler uygulamaları da dahil olmak üzere üç milyondan fazla uygulama tarafından kullanılan 100.000’den fazla kütüphaneye sahiptir. Web sitesinde hızlı bir arama, yalnızca birkaçını saymak gerekirse Instagram, X, Slack, AirBnB, Tinder ve Uber ile ilgili paketleri ortaya çıkarır. Bu, bölmeleri bilgisayar korsanları için birincil hedef haline getiriyor ve CocoaPods platformu— platform çapında temel bir güvenlik açığı içeriyor mu? Gerçek bir para çukuru.

Gerçekten de, EVA Bilgi Güvenliği’nin Pazartesi günkü bir raporda açıkladığı gibi, CocoaPods platformunun şunları içerdiği ortaya çıktı: bir dizi ciddi zaaf. Bunlardan en ciddi olanı olan uzaktan kod yürütme (RCE) fırsatı olan CVE-2024-38366’ya 10 üzerinden kritik 10 CVSS derecelendirmesi verildi. Sahibi olmayan bölmelerin neden olduğu bir diğer dikkate değer hata olan CVE-2024-38368, kritik 9,3 puan aldı ve oturum doğrulama-ele geçirme sorunu CVE-2024-38367’ye 8,2 puan verildi.

“Bunun etkisi muazzam,” diyor EVA CEO’su ve kurucu ortağı Alon Boxiner. “Bunu kelimelerle anlatamazsınız. Sayıları nasıl toplayacağımızı bile bilmiyoruz [of affected apps] “CocoaPods’un yaygın kullanımı nedeniyle.”

CocoaPods API’leri On Yıl Boyunca Kötü Yönetti

CocoaPods ilk olarak 2011 yılında geliştirildi ve piyasaya sürüldü. Mevcut sıkıntıları, GitHub tabanlı kimlik doğrulama sistemini yeni bir “Gövde” sunucusu, bundan sonra platformun merkezi deposu ve dağıtım platformu olarak ikiye katlandı.

Trunk güvenlik, ölçeklenebilirlik ve geliştiricilerin yaşam kalitesi açısından faydalar vaat etse de geçiş süreci zorluydu. Örneğin, şok edici bir şekilde tüm bölmelerin sahipliği sıfırlandı.

“Entegrasyonun bir parçası olarak, GitHub hesapları üzerinden kimliği doğrulanan işletme sahiplerinin kendi pod’larını talep etmelerine olanak sağlamak için bazı API’ler ifşa edildi – ön uç Web sayfası dahil -” diye hatırlıyor EVA araştırma başkan yardımcısı Reef Spector. Başka bir deyişle, kullanıcılar basitçe dibs’i çağırarak pod’larını geri aldılar.

Birçok yazar pod’larını hiç geri almadı. Binlerce bağımlılık “öksüz” kaldı. Zamanla, yazarlar sahipliklerinden vazgeçtikçe daha da fazlası terk edildi. Binlerce kapsül bugün sahipsiz kalıyor.

Sorun ne? Pod’ları talep etmek için kullanılan genel API uç noktası dokuz yıl sonra bile hala kullanılabilir durumdaydı.

Bu bilgiye sahip olan herhangi biri, 2014’ten 2023’e kadar herhangi bir noktada başka birinin pod’unu kendisi için talep edebilir, onu istediği gibi değiştirebilir ve bu değişikliği onu kullanan herhangi bir Apple uygulamasına aktarabilir.

Hangi makul uygulama terk edilmiş bir pod’a güvenir? Ortaya çıktı ki: çoğu, bazen farkına varmadan, çünkü bu başka bir pod’un bağımlılığı. EVA, Facebook, Safari, Microsoft Teams, TikTok, Snapchat ve daha birçok uygulama için belgelerde yetim pod’lara dair kanıtlar buldu.

İlginçtir ki, buldukları en ciddi hata bu değildi.

Maksimum Şiddette RCE Hatası RubyGem’e Bağlı

İronik olarak, CocoaPods’un en büyük açığı, 2014 yılında kullanıcı e-posta adreslerini doğrulamak için dahil ettiği açık kaynaklı bir bileşende yatıyordu.

RubyGem paketi rfc-22’deki bazı savunmasız yöntemler sayesinde, bir saldırgan Trunk’ın hesap doğrulama süreci sırasında adres alanına keyfi kötü amaçlı kod enjekte edebilirdi. Sunucu bilmeden keyfi kodlarını çalıştırır ve onlara sınırsız yetki verirdi.

Bu aşamada Spector şöyle açıklıyor: “Trunk hizmetine tam erişimim var; her sahip, her kapsül, sahip olunmamış, talep edilmiş, bu gerçekten önemli değil. İstersem bunların tam sahipliğini alabilirim, onları düzenleyebilirim Örneğin, birisi bir bölme yayınlıyor ve sunucuda bölme spesifikasyonuna bağlanıp bunu kötü amaçlı kod eklemek için değiştirebiliyorum.

Böyle bir saldırganın sessizce bir bölmeye ekleyebileceği kötü amaçlı kod türü sınırsız olacaktır ve bu, onların bu tür erişimden yararlanabilmelerinin yollarından yalnızca biridir. Bu erişimi Trunk’u tamamen kapatmak için kullanabilirler veya kapsül sahiplerinden veya CocoaPod’ların kendisinden oturum belirteçlerini çalabilirler.

Samanlıkta İğne

Saldırganların araştırmacıların ortaya çıkardığı sorunlardan herhangi birini istismar ettiğine dair net bir kanıt yok. CocoaPods tarafından yamalı Ekimde.

Ancak, yazılım tedarik zinciri hatalarının kolayca gizlenebilir yapısı ve uzun süredir risk altında olan çok sayıdaki pod’un bir araya gelmesi, bunu yapan herkes için yeterli bir örtü sağlayacaktır.

Geçtiğimiz on yılda bir CocoaPods açığı bulmak samanlıkta iğne aramayı kolay hale getirirdi, ancak bu gerçekleşmedi. Bu nedenle, EVA bunun yerine, geçen Ekim ayından önce pod’lara güvenen uygulama geliştiricilerinin (yani: hemen hemen tüm Apple uygulamaları) yetim pod’ları kontrol etmek ve kapsamlı bir inceleme yapmak gibi altı düzeltme adımını izlemesini öneriyor tüm üçüncü taraf kod bağımlılıkları.

Dark Reading ayrıca yorum yapmak için Apple’a ulaştı.

Boxiner, “CocoaPod’lar neden tedarik zinciri riskleriyle ilgilenmemiz gerektiğine dair mükemmel bir örnek” diyor. “Bu yalnızca geliştirdiğiniz şeyi nasıl geliştirdiğinizle ilgili değil, aynı zamanda bağımlılıklarınız da var [which can be] Kör noktalar.”





Source link