Zephyrnet Logosu

PHP Packagist tedarik zinciri, "iş arayan" hacker tarafından zehirlendi

Tarih:

PHP'ler hakkında yazdık. Packagist ekosistemi önce.

Pythonistas için PyPI, Ruby hayranları için Gems, JavaScript programcıları için NPM veya Luaphiles için LuaRocks gibi Packagist, topluluk katılımcılarının oluşturdukları PHP paketlerinin ayrıntılarını yayınlayabilecekleri bir bilgi havuzudur.

Bu, diğer PHP kodlayıcılarının kendi projelerinde kullanmak istedikleri kitaplık kodunu almalarını ve isterlerse bu kodu otomatik olarak güncel tutmalarını kolaylaştırır.

Gerçek kitaplık kodunun saklandığı kendi sunucularını sağlayan PyPI'nin (veya bazen proje kaynak kodunun kendisini depolayan ve bazen diğer depolara bağlanan LuaRocks'un) aksine, Packagist koda bağlar, ancak kopyalarını kendisi tutmaz. indirmeniz gerekiyor.

Bunu bu şekilde yapmanın bir avantajı var, özellikle de GitHub gibi iyi bilinen kaynak kodu hizmetleriyle yönetilen projelerin resmi sürümlerinin iki kopyasını tutmasına gerek kalmaması, bu da sürümler arasında "sürüm kayması" sorununun önlenmesine yardımcı oluyor. kaynak kodu kontrol sistemi ve paketleme sistemi.

Ve bir dezavantajı var, özellikle de paketlerin bubi tuzağına düşürülmesinin kaçınılmaz olarak iki farklı yolu var.

Paket yöneticisinin kendisi saldırıya uğrayabilir ve tek bir URL'yi değiştirmek, paketin kullanıcılarını yanlış yönlendirmek için yeterli olabilir.

Ya da bağlantı verilen kaynak kod deposu saldırıya uğrayabilir, böylece doğru URL gibi görünen bir şeyi izleyen kullanıcılar yine de hileli içerikle sonuçlanabilir.

Zararlı olduğu düşünülen eski hesaplar

Bu saldırı (ilgili bilgisayar korsanı tarafından bubi tuzaklı kod yayınlanmamış olsa da buna böyle diyeceğiz) hibrit bir yaklaşım diyebileceğiniz şeyi kullandı.

Saldırgan, oturum açma parolalarını bir şekilde ele geçirdikleri dört eski ve etkin olmayan Packagist hesabı buldu.

Daha sonra bu etkin olmayan hesaplar tarafından bağlanan 14 GitHub projesi belirlediler ve onlara yeni oluşturulmuş bir GitHub hesabı kopyaladılar.

Son olarak, Packagist sistemindeki paketleri yeni GitHub depolarına işaret edecek şekilde ayarladılar.

GitHub projelerini klonlamak inanılmaz derecede yaygındır. Bazen geliştiriciler, yeni yönetim altında veya farklı özellikler sunan projenin orijinal bir çatalını (alternatif versiyonu) oluşturmak isterler; diğer zamanlarda, çatallı projeler, GitHub hesaplarının gerçekte olduğundan daha büyük, daha iyi, daha yoğun ve topluluğa daha bağlı (kelime oyununu affederseniz) görünmesine neden olarak, "hacimsel nedenler" olarak adlandırılabilecek nedenlerle kopyalanmış gibi görünüyor.

Bilgisayar korsanı klonlanmış GitHub PHP kaynağına izleyici, keylogger, arka kapı veya diğer kötü amaçlı yazılımlar eklemek gibi hileli kod eklemiş olsa da, değiştirdikleri tek şey her projede tek bir öğeydi: adı verilen bir dosya. composer.json.

Bu dosya başlıklı bir giriş içerir. description, genellikle tam olarak görmeyi beklediğiniz şeyi içerir: kaynak kodun ne için olduğunu açıklayan bir metin dizesi.

Bilgisayar korsanımızın metni bilgilendirici bir şeyden değiştirerek değiştirdiği tek şey bu. Project PPP implements the QQQ protocol so you can RRR, böylece projeleri bunun yerine şunları bildirdi:

 XXX@XXXX.com tarafından yazılmıştır. Uygulama Güvenliği, Penetrasyon Test Cihazı, Siber Güvenlik Uzmanı.

Yarısı Rusça, yarısı İngilizce yazılan ikinci cümle şu anlama gelir:

 Uygulama Güvenliğinde bir iş arıyorum... vb.

Herkes adına konuşamayız, ancak CV'ler (özgeçmişler) söz konusu olduğunda, bunu çok inandırıcı bulmadık.

Ayrıca Packagist ekibi diyor ki tüm yetkisiz değişikliklerin artık geri alındığını ve klonlanmış 14 GitHub projesinin, pwner'ın istihdam talebini dahil etmek dışında herhangi bir şekilde değiştirilmediğini.

Ne pahasına olursa olsun, sözde Uygulama Güvenliği uzmanının GitHub hesabı hâlâ yayında ve içinde o "çatallı" projeler var.

GitHub'ın hesabı veya projeleri silme aşamasına gelip gelmediğini veya sitenin bunları kaldırmamaya karar verip vermediğini bilmiyoruz.

Ne de olsa, projelerin çatallanması yaygın ve izin verilebilir (en azından lisans koşullarının izin verdiği yerlerde) ve kötü amaçlı olmayan bir kod projesini metinle açıklasa da Pwned by XXXX@XXXX.com yararsızdır, neredeyse yasa dışı değildir.

Ne yapalım?

  • Bunu yapma. Kesinlikle herhangi bir meşru işverenin ilgisini çekmeyeceksiniz ve (dürüst olmamız gerekirse) oradaki hiçbir siber suçluyu bile etkilemeyeceksiniz.
  • Elinizden geliyorsa kullanılmayan hesapları aktif bırakmayın. dün dediğimiz gibi Dünya Şifre Günü, artık ihtiyacınız olmayan hesapları kapatmayı düşünün, çünkü ne kadar az şifreniz varsa, o kadar az çalınacak şifreniz vardır.
  • Parolaları birden fazla hesapta tekrar kullanmayın. Packagist'in varsayımı, bu davada kötüye kullanılan şifrelerin, kurbanların kendi Packagist hesaplarındakiyle aynı şifreyi kullandıkları diğer hesaplardaki veri ihlali kayıtlarında olduğu yönünde.
  • 2FA'nızı unutmayın. Packagists, tüm kullanıcılarını 2FA'yı açmaya teşvik eder, bu nedenle bir saldırganın hesabınıza giriş yapması için tek başına bir parola yeterli değildir ve aynısını GitHub hesabınızda da yapmanızı önerir.
  • Tedarik zinciri güncellemelerini doğruluğunu gözden geçirmeden körü körüne kabul etmeyin. Karmaşık bir paket bağımlılıkları ağınız varsa, sorumluluklarınızı bir kenara atmak ve sistemin tüm güncellemelerinizi otomatik olarak almasına izin vermek cazip gelebilir, ancak bu sizi ve alt kullanıcıları ek risk altına sokar.

İŞTE DÜNYA ŞİFRE GÜNÜNDEN O TAVSİYELER


spot_img

En Son İstihbarat

spot_img