Python Paket Endeksi (PyPI) kayıt defterini hedef alan yeni bir tedarik zinciri saldırı tekniği, alt akış organizasyonlarına sızma girişimi olarak yaygın bir şekilde kullanıldı.
Yazılım tedarik zinciri güvenlik firması JFrog tarafından Revival Hijack kod adı verildi ve saldırı yönteminin 22.000 mevcut PyPI paketini ele geçirmek ve “yüz binlerce” kötü amaçlı paket indirmesiyle sonuçlanmak için kullanılabileceğini söyledi. Bu hassas paketler 100.000’den fazla indirmeye sahip veya altı aydan uzun süredir aktif.
JFrog güvenlik araştırmacıları Andrey Polkovnychenko ve Brian Moussalli, The Hacker News ile paylaştıkları raporda, “Bu saldırı tekniği, orijinal sahibi tarafından PyPI’nin dizininden kaldırılan yazılım paketlerinin yeniden kaydedilmesi seçeneğini manipüle ederek PyPI yazılım paketlerini ele geçirmeyi içeriyor” dedi.
Saldırının temelinde, PyPI deposunda yayınlanan birçok Python paketinin kaldırılması ve bunların başka herhangi bir kullanıcı tarafından kaydedilebilir hale getirilmesi yatıyor.
JFrog tarafından paylaşılan istatistikler, her ay ortalama 309 paketin kaldırıldığını gösteriyor. Bunlar birçok nedenden dolayı olabilir: Bakım eksikliği (yani terk edilmiş yazılım), paketin farklı bir ad altında yeniden yayınlanması veya aynı işlevselliğin resmi kütüphanelere veya yerleşik API’lere eklenmesi.
Bu, aynı zamanda, tiposquatting’den daha etkili olan ve saldırganların kendi hesaplarını kullanarak, aynı ad ve daha yüksek bir sürüm altında kötü amaçlı paketler yayınlayarak geliştirici ortamlarını enfekte etmek için kullanabileceği kazançlı bir saldırı yüzeyi oluşturur.
Araştırmacılar, “Teknik, kurbanın paketi yüklerken hata yapmasına dayanmıyor,” diyerek, Revival Hijack’in bir saldırganın bakış açısından daha iyi sonuçlar verebileceğini vurguladılar. “Bir zamanlar güvenli olan bir paketi en son sürümüne güncellemek, birçok kullanıcı tarafından güvenli bir işlem olarak görülüyor.”
PyPI, yazar taklidi ve yazım yanlışı yapma girişimlerine karşı güvenlik önlemlerine sahip olsa da, JFrog’un analizi, “pip list –outdated” komutunun çalıştırılmasının sahte paketi orijinal paketin yeni bir sürümü olarak listelediğini, ancak ilkinin tamamen farklı bir yazara ait farklı bir pakete karşılık geldiğini buldu.
Daha da endişe verici olanı, “pip install –upgrade” komutunun çalıştırılması, paketin yazarının değiştiğine dair herhangi bir uyarıda bulunmadan gerçek paketi sahte olanla değiştirmesidir; bu da, farkında olmayan geliştiricileri büyük bir yazılım tedarik zinciri riskine maruz bırakabilir.
JFrog, kötü niyetli kişilerin kaldırılan paketlerden faydalanmasını önlemek amacıyla, hassas paketleri güvenli bir şekilde ele geçirmek ve bunları boş yer tutucularla değiştirmek için “security_holding” adında yeni bir PyPI kullanıcı hesabı oluşturma adımını attığını söyledi.
Ayrıca, bu paketlerin her birine, pip yükseltme komutu çalıştırıldığında geliştiriciler tarafından çekilmelerini önlemek için, bağımlılık karışıklığı saldırı senaryosunun tersi olan 0.0.0.1 sürüm numarası atandı.
Daha da rahatsız edici olanı ise Revival Hijack’in daha önce vahşi doğada istismar edilmiş olması; Jinnis adlı bilinmeyen bir tehdit aktörünün, 30 Mart 2024’te, orijinal sahibi (cheneyyan) paketi PyPI’den kaldırdığı gün, “pingdomv3” adlı bir paketin zararsız bir versiyonunu sunmuş olmasıdır.
Yeni geliştiricinin 12 Nisan 2024’te, “JENKINS_URL” ortam değişkeninin varlığını kontrol eden ve varsa uzak bir sunucudan alınan bilinmeyen bir sonraki aşama modülünü yürüten Base64 kodlu bir yük içeren bir güncelleme yayınladığı söyleniyor.
JFrog, “Bu, saldırganların saldırının gerçekleştirilmesini geciktirdiklerini veya daha hedefli olacak şekilde tasarladıklarını, muhtemelen saldırıyı belirli bir IP aralığıyla sınırladıklarını gösteriyor” dedi.
Yeni saldırı, tehdit aktörlerinin kampanyaların erişimini genişletmek için silinen PyPI paketlerini hedef alarak daha geniş ölçekte tedarik zinciri saldırılarına göz diktiğinin bir işaretidir. Kuruluşların ve geliştiricilerin, depolarından zaten kaldırılmış paketleri yüklemediklerinden emin olmak için DevOps kanallarını incelemeleri önerilir.
JFrog Güvenlik Araştırma Ekibi Lideri Moussalli, “Kaldırılan paketlerin işlenmesinde güvenlik açığı bulunan bir davranışın kullanılması, saldırganların mevcut paketleri ele geçirmesine ve kullanıcının iş akışında herhangi bir değişiklik yapmadan hedef sistemlere kurulmasına olanak sağladı” dedi.
“PyPI paket saldırı yüzeyi sürekli büyüyor. Burada proaktif müdahaleye rağmen, kullanıcılar her zaman tetikte olmalı ve kendilerini ve PyPI topluluğunu bu ele geçirme tekniğinden korumak için gerekli önlemleri almalıdır.”