Yıllardır neredeyse 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 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 genelinde bir güvenlik açığı içeriyorsa — gerçek bir para tuzağı.
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 ciddisi — uzaktan kod yürütme (RCE) fırsatı olan CVE-2024-38366 — 10 üzerinden 10 kritik CVSS derecesi aldı. Sahipleri olmayan pod’ların neden olduğu bir diğer dikkat çekici hata olan CVE-2024-38368, 9.3 kritik puan aldı ve oturum doğrulama-kaçırma sorunu CVE-2024-38367’ye 8.2 verildi.
EVA CEO’su ve kurucu ortağı Alon Boxiner, “Bunun etkisi çok büyük” diyor. “Bunu kelimelerle anlatamazsınız. Sayıları nasıl biriktireceğimizi bile bilmiyoruz [of affected apps] CocoaPod’ların geniş kullanımı nedeniyle.”
CocoaPods, API’leri On Yıl Boyunca Yanlış Yönetti
CocoaPods ilk olarak 2011 yılında geliştirildi ve piyasaya sürüldü. Mevcut sorunlarının izi, 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ştirici yaşam kalitesi açısından faydalar vaat etse de, geçiş süreci sıkıntılıydı. Örneğin, şaşırtıcı bir şekilde, tüm pod’ların 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 (ön uç Web sayfası dahil) açığa çıkarıldı,” diye hatırlıyor EVA araştırma başkan yardımcısı Reef Spektor. 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.
Ovma mı? Kapsül talep etmeye yönelik genel API uç noktası dokuz yıl sonra hâlâ mevcuttu.
Bu bilgiye sahip olan herhangi biri, 2014’ten 2023’e kadar herhangi bir zamanda, başka birinin pod’unu kendisi için talep edebilir, dilediği gibi değiştirebilir ve bu değişikliği onu kullanan tüm Apple uygulamalarına iletebilirdi.
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.
Dikkat çekici bir şekilde, buldukları en ciddi hata bile bu değildi.
Maksimum Şiddette RCE Hatası RubyGem’e Bağlı
İronik bir şekilde, CocoaPods’un en kötü güvenlik açığı, kullanıcı e-posta adreslerini doğrulamak için 2014 yılında dahil ettiği açık kaynaklı bir bileşenden kaynaklanıyordu.
RubyGem rfc-22 paketindeki bazı savunmasız yöntemler sayesinde, bir saldırgan Trunk’un hesap doğrulama işlemi sırasında adres alanına rastgele kötü amaçlı kod enjekte etmiş olabilir. Sunucu bilmeden rastgele kodunu çalıştırarak onlara sınırsız yetki verir.
Bu aşamada Spektor şöyle açıklıyor: “Trunk hizmetine tam erişimim var; her sahip, her kapsül, sahiplenilmemiş, 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ıktaki İğne
Araştırmacılar tarafından ortaya çıkarılan sorunlardan herhangi birinin saldırganlar tarafından istismar edildiğine dair net bir kanıt yok ve CocoaPods tarafından yamalandı 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.
Son on yılda CocoaPod’ların istismarını bulmak samanlıkta iğne bulmayı kolay gibi gösterebilirdi, ancak bu gerçekleşmedi. Bunun yerine EVA, geçen Ekim ayından önce pod’lara güvenen uygulama geliştiricilerinin (okuyun: hemen hemen tüm Apple uygulamaları), artık pod’ları kontrol etmek ve kapsamlı bir şekilde incelemek gibi iyileştirme için altı adımı 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.”