Projemi dağıtmaya çalışıyorum ve aniden bu hatayı alıyorum.
npm ERR! 404 Bulunamadı: event-stream@3.3.6
Projemi dağıtmaya çalışıyorum ve aniden bu hatayı alıyorum.
npm ERR! 404 Bulunamadı: event-stream@3.3.6
Yanıtlar:
tldr;
Kutsal inek! Olay akışı paketinin, bir bilgisayar korsanının bitcoin çalmasına izin veren bir güvenlik açığına sahip olduğu ortaya çıktı.
Düzeltmek için event-stream
paketinizi güncellemeniz gerekir .
node_modules
Klasörü .package-lock.json
Dosyayı .npm install
.Bu, paketlerinizi güvenli bir sürüme güncellemeli ve gitmeniz iyi olur.
Ve işte NPM blogunun resmi yanıtı:
Olay akışı olayıyla ilgili ayrıntılar Bu, bu hafta başlarında çoğunuzun farkına vardığınız olay akışı olayının bir analizidir. npm, topluluğumuzun güvenliğini etkileyen operasyonel endişeleri ve sorunları çözmek için derhal harekete geçer, ancak genellikle olayları tartışmadan önce daha kapsamlı analizler yaparız - beklediğinizi biliyoruz.
26 Kasım sabahı, npm'nin güvenlik ekibi, popüler bir npm paketi olan olay akışına giren kötü amaçlı bir paket hakkında bilgilendirildi. Kötü amaçlı yazılımın önceliklendirilmesinden sonra, npm Security, flatmap-stream'i ve event-stream@3.3.6'yı Kayıt defterinden kaldırarak ve daha fazla kötüye kullanımı önlemek için olay akışı paketinin sahipliğini alarak yanıt verdi.
Kötü amaçlı paket, flatmap akışının 0.1.1 sürümüydü. Bu paket, 3.3.6 sürümünde 9 Eylül 2018'de yeni bir bakıcı tarafından olay akışı paketinin doğrudan bağımlılığı olarak eklenmiştir. Olay akışı paketi yaygın olarak kullanılmaktadır, ancak kötü amaçlı kod, çok özel bir geliştirme ortamı kurulumuna sahip bir şirketteki geliştiricileri hedeflemektedir: yükü başka herhangi bir ortamda çalıştırmanın hiçbir etkisi yoktur. Bu özel hedefleme, kötü amaçlı modülü yanlışlıkla yüklemiş olsalar bile, çoğu geliştiricinin sonuçta etkilenmeyeceği anlamına gelir.
Enjekte edilen kod Copay uygulamasını hedefliyor. Copay'deki bir geliştirici, sürüm oluşturma komut dosyalarından birini çalıştırdığında, ortaya çıkan kod, uygulamaya paketlenmeden önce değiştirilir. Kod, 100 Bitcoin veya 1000 Bitcoin Cash'in üzerinde bakiyeye sahip hesaplardan hesap ayrıntılarını ve özel anahtarları toplamak için tasarlandı.
Copay'in ilk yanıtı, bu kötü amaçlı kodu içeren hiçbir yapının halka açıklanmadığı yönündeydi, ancak şimdi Copay'den "kötü amaçlı kodun 5.0.2 ila 5.1.0 sürümlerinde dağıtıldığına" dair onay aldık.
Saldırı Bu saldırı, bir sosyal mühendislik saldırısı olarak başladı. Bir geliştirici gibi davranan saldırgan, olay akışı modülünün bakımını devraldı.
Teknik detaylar İşte bununla ilgilenenler için bildiğimiz bazı teknik detaylar.
Enjekte edilen kod:
Test fikstürü olarak gizlenmiş bir dosyadan AES ile şifrelenmiş verileri okuyun Otomatik olarak ayarlanmış bir ortam değişkeni kullanarak, içe aktarılan modülün npm paket açıklamasını yakalayın Gizlenmiş dosyadan alınan bir veri yığınının şifresini çözmek için paket açıklamasını anahtar olarak kullanın Şifresi çözülen veriler, daha sonra bellekte derlenen ve çalıştırılan bir modülün parçasıydı.
Bu modül aşağıdaki eylemleri gerçekleştirdi:
Gizlenmiş dosyadan başka bir veri parçasının şifresini çözdü Şifresi çözülmüş ilk parçadan ikinci şifresi çözülmüş parçanın sonuna kadar küçük, yorumlanmış bir önek birleştirdi Birleştirilmiş kod bloğunu geçersiz JS'den geçerli JS'ye dönüştürmek için küçük kod çözme görevleri gerçekleştirildi (bunun olduğuna inanıyoruz dinamik analiz araçları tarafından tespit edilmekten kaçınmak için yapılır) Bu işlenmiş JS bloğunu, derleme komut dosyaları tarafından paketlenecek bir bağımlılıkta depolanan bir dosyaya yazdı: Yazılan kod parçası, çalıştırılması amaçlanan gerçek kötü amaçlı koddu Copay'ın son kullanıcılarının sahip olduğu cihazlarda.
Bu kod şunları yapacaktır:
Mevcut ortamı tespit edin: Mobile / Cordova / Electron Kurbanın yardımcı hesabındaki Bitcoin ve Bitcoin Cash bakiyelerini kontrol edin Mevcut bakiye 100 Bitcoin veya 1000 Bitcoin Cash'ten fazlaysa: Kurbanın hesap verilerini tam olarak toplayın Kurbanın copay özel anahtarlarını toplayın Kurbanın hesap verilerini / özel anahtarlarını 111.90.151.134'te çalışan bir toplama hizmetine gönderin. Copay uygulamasının kullanıcıları için bitpay, "5.0.2 ile 5.1.0 arasındaki herhangi bir sürümü kullanıyorsanız, Copay uygulamasını çalıştırmamalı veya açmamalısınız."
Npm kullanıcıları için, npm denetimi çalıştırarak projenizin savunmasız bağımlılık içerip içermediğini kontrol edebilirsiniz. Bu olay akışının etkilenen sürümünü yüklediyseniz, mümkün olan en kısa sürede daha sonraki bir sürüme güncellemenizi öneririz.
npm list event-stream
herhangi bir üst düzey paketleri yapın ve güncelleyin
Aslında event-stream@3.3.6'ya bağlı olan tüm paketleri güncellememiz gerekmiyor.
package-lock.json
Tüm olay akışı referanslarını açabilir , kaldırabilir venpm install
tekrar . Daha hızlı olacak.
Bundan sonra npm shrinkwrap && mv npm-shrinwrap.json package-lock.json
, tüm dosyayı değil, yalnızca olay akışı referanslarını güncellemelisiniz
Aşağıdaki yöntemleri izleyin:
Node_modules ve package_lock.json dosyalarını silin
Npm list olay akışını çalıştır
Bu sorunu aşağıdaki adımlarla çözüyorum:
event-stream
yaprağın kökünü bulun , örneğin:
45 silly saveTree +-- nodemon@1.18.4
45 silly saveTree | +-- chokidar@2.0.4
45 silly saveTree | +-- pstree.remy@1.1.0
45 silly saveTree | | `-- ps-tree@1.2.0
45 silly saveTree | | `-- event-stream@3.3.6
45 silly saveTree | | +-- duplexer@0.1.1
45 silly saveTree | | +-- from@0.1.7
45 silly saveTree | | +-- pause-stream@0.0.11
45 silly saveTree | | `-- split@0.3.3
Yorumlarda belirtildiği gibi, temel sorun şuydu: package-lock.json
(kilit dosyasının) kullanımdan kaldırılmış bir paket içermesiydi. Kilit dosyasını silmek ve bağımlılıkları yeniden yüklemek sorunu çözdü.
Bunu yapmanın en hızlı yolu şu 2 adımdır:
package-lock.json
dosyayınpm i
(veya npm install
)