Boş NPM paketi '-' 700.000'den fazla indirme var - işte bu yüzden

4 yıl önce

2020'den bu yana kayıt defterinde oturup gizemli, tek harfli bir NPM paketi 700.000'den fazla indirme aldı.

Daha ne? Paketin işlevsel bir kod içermez, peki bu kadar çok indirme işlemini ne yapar?

"-" denilen bir NPM paketi, 2020'nin başından beri NPM kayıt defterindeki yayınından bu yana yaklaşık 720.000 indirme attı.

Paketin sadece bir versiyonu var: 0.0.1 ve üç dosya içeriyor:

Bu dosyaların içinde - çoğunlukla tezahür (package.json) ve index.js, fenomenal olarak ilginç bir şey yok, sadece iskelet kodu.

Manifest, bir sürü kalkınma bağımlılığı (devdependens) çeker ve "TS-Düğüm" bileşeninde bazı komutları çağırır, ancak bu konuda. Şimdilik pratik olarak ölü kodlar:

Daha da iyi olur.

Pratik olarak işe yaramaz paket "-", net bir açıklama olmadan, 50 NPM'den fazla pakete bağımlılık görevi görür:

Ancak bu bağımlılıkların çoğu, birkaç düzineden fazla haftalık indirme yoktur.

Peki, "-" Neredeyse 720.000 indirme attı?

Birisi NPM komutlarını terminalden çalıştırdığında ve tipografik hataları yaptığında paketin alınması makul.

Örneğin, "SomePackage" adlı bir NPM paketi yüklemek için çalışmanız gerekir:

Ya birkaç bayrak belirlediyseniz, ancak bir hata yaptıysanız. Örneğin:

"-" ve SomeFlag arasındaki boşluk, NPM'nin bu isimdeki paket olduğu için "-" içine çekilmesine neden olabilir.

Bu nedenle, paketin bin katı indirme sayısının, yazım hataları yapan geliştiricilerin bir sonucu olduğu makul.

Ve benzer şekilde, komut satırı ile Package.json'a bağımlılıklar eklerken, çok fazla "-" nin bir "-" olarak nasıl kayabileceğini görün.

Bir testte, BleepingComputer, NPM'den "SomePackage" ve "Axsharma" indirme niyeti ile aşağıdaki komutu çalıştırır.

Ancak kasıtlı yazım hatası, ekstra bir "-" "- kötülük" bayrağından önce dikkat edin:

Şaşırtıcı olmayan bir şekilde, hem ortaya çıkan dosya paketi-lock.json ve NODE_Modules / klasörü, gerçek dünyadaki bağımlılıklarınıza nasıl geçebileceğini açıklayan "-" paketi içeriyordu:

BleepingComputer, paketin Yazar Dmitry Parzhitsky'nin bazı soruları olduğu gibi, neden bu paketin yarattığı bazı sorularla ulaştı. Ancak, geri dönmedik.

Paketin yaratılışının kendisi yanlışlıkla veya erken biten bir test komut dosyasından kaynaklanabilir.

Hem pakette bulunan README.MD dosyası hem de paketin NPM sayfası "-" bir komut dosyası tarafından oluşturuldu:

Söylemesi yeterli, şu an "-" içinde hiçbir şey yoktur, bu kötü niyetli olduğunu belirtir, "-" bir sonraki sürümünün neye benzeyebileceğini bilmiyoruz, serbest bırakılmalıdır.

Tek harfli paketlerin diğer örnekleri veya NPM komutlarına benzeyenler, ancak bunlarla sınırlı değildir: i, g, install, d ve s.

Bu, "NPM i SomePackage", "NPM I SomePackage," aksine, "NPM i SomePackage" aksine, SomePackage'a ek olarak i paketini yükleyecektir.

"Buradaki gerçek mesele bu paketleri yükleyebileceğiniz ve asla bilmemenizdir. NPM Install - G'yi çalıştırmak istediğiniz paketi yükleyecektir."

"Sadece daha sonra, bu pakete başka bir yerde erişmeye çalıştığınızda, bir yazım hatası yaptığınız herhangi bir gösterge olacaktır. Bu arada, hem - hem de G projenizde dolaşıyor."

"NPM (ve belki de), komutlarıyla paylaşan bileşenler," yazılım geliştiricisi Matt Freeland, BleepingComputer ile paylaştı.

Freeland ayrıca, paketlerin kurulduktan sonra, NPM, "3 paket ekledi ve 8 paket eklendi" gibi özetlenmiş bir başarı mesajı sunduğunu belirtti.

"Başarı mesajındaki kurulu paketleri adlandırmak, geliştiricilere gerçekten hatalarını yakalamaları için bir şans verecektir" dedi.

Son zamanlarda, NPM dahil açık kaynak kayıtlı kayıtlar defalarca [1, 2, 3] kötü amaçlı yazılım veya istenmeyen içeriklerle su basmıştır.

Geliştiriciler, özellikle bayrakları kullanırken, terminaldeki NPM komutlarını yazarken dikkatli olmamalıdır. Ayrıca, paketlerinizin neden bu gizemli pakete bağlı olduğunu kontrol etmek iyi bir fikirdir.

NPM Paketi Kurtarma aracı üzerinden Windows'ta Chrome şifrelerini çaldı

Node.js, saldırganların çökmesine izin verebilecek şiddetli http hatası düzeltiyor

PYPI paketleri Kredi kartı numaralarını çalmaktan yakalandı, belirteçler belirteçleri

Microsoft'un Halo dev sitesi bağımlılık kaçırma kullanarak ihlal edildi

Github şimdi yanlışlıkla maruz kalan pypi, rubygems sırları için taramalar

Kaynak: Bleeping Computer

More Posts