CocoaPods’ta bugün bildirilen güvenlik açıkları, kötü niyetli kişilerin binlerce sahipsiz kapsülü ele geçirmesine ve en popüler iOS ve MacOS uygulamalarının çoğuna kötü amaçlı kod yerleştirmesine olanak tanıyabilir. Araştırmacılar bugün, açık kaynaklı CocoaPods bağımlılık yöneticisinde, kötü niyetli aktörlerin binlerce sahipsiz bölmeyi ele geçirmesine ve en popüler iOS ve MacOS uygulamalarının çoğuna kötü amaçlı kod eklemesine olanak verebilecek üç güvenlik açığı bildirdi.
EVA Bilgi Güvenliği araştırmacıları, Meta (Facebook, Whatsapp), Apple (Safari, AppleTV, Xcode) ve Microsoft (Teams) tarafından sağlanan uygulamalarda güvenlik açığı bulunan kodu buldu; yanı sıra TikTok, Snapchat, Amazon, LinkedIn, Netflix, Okta, Yahoo, Zynga ve çok daha fazlasında.
Güvenlik açıkları kapatıldı, ancak araştırmacılar hâlâ “öksüz bir Pod kullanarak açık bir bağımlılığa sahip olan 685 Pod buldu; şüphesiz tescilli kod tabanlarında yüzlerce veya binlercesi daha vardır.”
Yaygın sorun, yazılım tedarik zincirinin kırılganlığına dair daha fazla kanıttır. Araştırmacılar, inceledikleri istemci kodunun %70-80’inin “açık kaynaklı kütüphanelerden, paketlerden veya çerçevelerden oluştuğunu” sıklıkla bulduklarını yazdılar.
CocoaPods’un Güvenlik Açıkları
Yeni keşfedilen güvenlik açıkları (bunlardan biri (CVE-2024-38366) 10 üzerinden 10 kritiklik puanı aldı) aslında Mayıs 2014’te CocoaPods’un yeni bir ‘Trunk’ sunucusuna taşınmasından kaynaklanıyor. Bu taşımada, sahiplerinin asla geri alamadığı 1.866 yetim pod kalmıştı.
Diğer iki CocoaPods güvenlik açığı (CVE-2024-38368 ve CVE-2024-38367) da bu geçişten kaynaklanmaktadır.
CVE-2024-38368 için araştırmacılar, ‘Trunk’ sunucusunun kaynak kodunu analiz ederken, tüm yetim pod’ların varsayılan bir CocoaPods sahibine ait olduğunu ve bu varsayılan sahip için oluşturulan e-postanın [email protected]Ayrıca, bir pod’u talep etmek için kullanılan genel API uç noktasının hâlâ mevcut olduğunu ve API’nin “herhangi bir sahiplik doğrulama süreci olmaksızın herkesin yetim pod’ları talep etmesine izin verdiğini” fark ettiler.
Reef Spektor ve Eran Vaknin, “Genel erişime açık API’ye doğrudan bir curl isteği göndererek ve talep edilmeyen hedeflenen pod adını sağlayarak, potansiyel bir saldırganın bu yetim Pod’ların herhangi birini veya tamamını kendi pod’ları olarak talep etmesinin yolu açıldı” diye yazdı.
Bir saldırgan bir Pod’u ele geçirdiğinde, kaynak kodunu manipüle edebilir veya Pod’a kötü amaçlı içerik ekleyebilir, bu da “daha sonra birçok alt akış bağımlılığını enfekte edebilir ve potansiyel olarak şu anda kullanımda olan Apple cihazlarının büyük bir yüzdesine ulaşabilir.”
2014’ün başlarında, kayıtlı e-postalar için MX kayıt doğrulamasını uygulayan CocoaPods ‘Trunk’ kaynak koduna bir değişiklik yapıldı. Değişiklikler, kayıt akışını analiz ederek tanımlanan yeni bir saldırı yolu oluşturdu ve CVE-2024-38366 güvenlik açığına yol açtı. Değişiklikler, kullanıcı tarafından sağlanan e-posta adresi için üçüncü taraf Ruby gem paketi rfc-822’yi kullanarak yeni bir doğrulama süreci oluşturdu ve bu, birkaç şekilde saldırıya uğrayabilir ve potansiyel olarak “pod sahiplerinin oturum belirteçlerini boşaltabilecek, istemcinin trafiğini zehirleyebilecek veya hatta sunucuyu tamamen kapatabilecek” saldırılara yol açabilir.
CVE-2024-38367’de araştırmacılar, e-posta güvenlik sınırlarını aşarak sıfır tıklamayla hesap devralma işlemi gerçekleştirmek için XFH başlıklarını taklit edebileceklerini keşfettiler.
Araştırmacılar, “Bu yöntemi kullanarak en popüler CocoaPods paketlerinden bazılarının sahip hesaplarını ele geçirmeyi başardık” dedi. “Potansiyel olarak bu hesapları tüm Apple ekosistemini etkileyebilecek son derece zararlı tedarik zinciri saldırıları için kullanabilirdik.”
DevOps Ekipleri: İşe Başlayın
Güvenlik açıkları düzeltilmiş olsa da geliştiricilerin ve DevOps ekiplerinin çalışmaları daha yeni başlıyor.
EVA araştırmacıları, CocoaPod’ları son yıllarda (özellikle Ekim 2023’ten önce) kullanan geliştiricilerin ve DevOps ekiplerinin “uygulama kodlarında kullanılan açık kaynak bağımlılıklarının bütünlüğünü doğrulamaları gerektiğini” söyledi.
“Keşfettiğimiz güvenlik açıkları, bağımlılık yöneticisinin kendisini ve yayınlanan herhangi bir paketi kontrol etmek için kullanılabilir.”
Aşağı yöndeki bağımlılıklar, son birkaç yılda binlerce uygulamanın ve milyonlarca cihazın açığa çıktığı anlamına gelebilir ve kendilerine atanmış bir sahibi olmayan artık CocoaPod paketlerine dayanan yazılımlara çok dikkat edilmesi gerekir.
Geliştiriciler ve kuruluşlar, uygulamalarında kullanılan bağımlılık listelerini ve paket yöneticilerini gözden geçirmeli, üçüncü taraf kitaplıkların sağlama toplamlarını doğrulamalı, kötü amaçlı kodları veya şüpheli değişiklikleri tespit etmek için periyodik taramalar gerçekleştirmeli, yazılımı güncel tutmalı ve artık veya bakımı yapılmayan paketlerin kullanımını sınırlandırmalıdır.
Araştırmacılar, “Bağımlılık yöneticileri, yazılım tedarik zinciri güvenliğinin sıklıkla göz ardı edilen bir yönüdür” diye yazdı. “Güvenlik liderleri, bu araçların kullanımı üzerinde yönetişimi ve denetimi artırmanın yollarını araştırmalıdır.”