Evet, @(-.-)/env adında bir npm paketi var ve bazıları da bunu seviyor


npm

-, @!-!/-, @(-.-)/env ve –hepl gibi tuhaf adlandırılmış npm paketleri internetin en büyük yazılım kayıt defterinde varlığını sürdürüyor.

Bunların hepsi mutlaka bariz bir güvenlik riski oluşturmasa da, bazıları npm’nin zorunlu kıldığı adlandırma yönergelerinden önce adlandırılmış ve potansiyel olarak araçları bozabilir.

Meslektaşım ve Sonatype kıdemli yazılım mühendisi Lex Vorona, adlandırma kurallarına tam olarak uymayan veya oldukça çarpıcı adlara sahip olan bir değil birkaç npm paketiyle karşılaştı.

“Eğer ararsan @!-!/- npmjs.com’da size böyle bir paket olmadığını söyleyecektir. Ancak bunu URL’ye koyarsanız, bunun aslında bir paket olduğunu göreceksiniz: https://www.npmjs.com/package/@!-!/-,” diye paylaştı Vorona, BleepingComputer ile.

özel olarak adlandırılan npm paketi
Özel olarak adlandırılan npm paketi ‘@!-!/-‘ (bilgisayar bip sesi çıkarıyor)

“@” ile başlayan paket adları, sembolün kapsamları veya npm kayıt defterindeki ad alanlarını belirtmek için kullanıldığı için paketin kapsam dahilinde olduğunu gösterir.

Örneğin, “Example Inc.” adlı bir şirket. npm paketlerini “foo” ve “bar” altında yayınlamayı seçebilir. @örnek kapsam, bu paketlerin şu şekilde görünmesini sağlar: @örnek/fooVe @örnek/bar npmjs.com’da. @ işaretinin ardından gelen eğik çizgi (/), kapsam ile paket adı arasında sınırlayıcı veya ayırıcı olarak kullanılır.

Bu, paketin kendisinin “-” olarak adlandırıldığı ancak tuhaf bir şekilde “!-!” olarak adlandırılan kapsam altında yayınlandığı anlamına gelir. ona tamamen korkak bir lakap veriyor.

“Var olanlar da var @----/- Ve @-)/utils bunlar da aranamaz” dedi Vorona ayrıca.

NPM güvenlik platformuna göre Socket, @—-/- boş bir pakettir; manifest dışında herhangi bir işlevsel kod içermez, @-)/utils ise kullanımdan kaldırılmıştır. @!-!/- minimum düzeyde kod içerir.

Mühendis, bazıları bir metin emojisi içeren kapsam adlarına sahip olan, garip adlandırılmış birkaç paketten oluşan bir liste derledi:

@!!!!/elemental
@!!!!!/javascript
@!!!!!/dom-to-dom’a monte edildi
@!!!!!/kutup ayısı
@!!!!!/gerekmek
@!!!!/yürüyüş
@!!!!/walk_up
@!-!/-
@!tach!/sgejs
@!vanilya/konteyner
@(-.-)/uygulama hatası
@(-.-)/otomatik bakım
@(-.-)/env
@(-.-)/html
@(-.-)/sonuç
@(-.-)/swagger-ui
@(._.)/uygulamak
@(._.)/oooooo
@(~_~)/esnek
@))/tekton
@-)/utils
@—-/-
@-./db
@-0/yükselt
@-0/tarayıcı
@-0/hdom
@-0/tuşlar
@-0/makara
@-0/utils

Paket adları veya komutları?

Bu paketlerin tümü kötü niyetli olmasa da veya tehdit oluşturmasa da, alışılmadık adlara sahip paketleri ayrıştırmaya alışık olmayan yazılım geliştirme araçlarının kafasını kesinlikle karıştırabilir veya bozabilir.

BleepingComputer, özel bir raporunda daha önce 700.000’den fazla indirme sayısına sahip boş bir npm paketi “-” konusuna ışık tutmuştu.

700.000 indirmeli boş paket listesi
700.000’den fazla indirmeye sahip boş paket “-“

Bunun nedeninin, geliştiricilerin yanlışlıkla komut satırı talimatlarına fazladan bir kısa çizgi (“-“) yazmaları olduğu varsayıldı; aslı ve, bu, npm istemcilerinin, indirmeyi amaçladıkları pakete ek olarak bu boş paketi de indirmesine neden olur.

“–hepl” (“–help” yerine) gibi ustaca adlandırılmış paketler, yazım hatası potansiyelleri göz önüne alındığında benzer bir etki yaratabilir.

BleepingComputer’ın gözlemlediğine göre, “–hepl” kurulur kurulmaz geliştiricinin konsolunda “Pwnd’siniz” mesajını görüntülüyor ve bu da bunu bir kavram kanıtlama (PoC) uygulaması haline getiriyor. Tüm paketler bu kadar bağışlayıcı olmayabilir.

Gerçekçi olsa da, çoğu durumda komut satırı argümanı olarak “–hepl”i sağlamak, araçlarınızın bunu geçersiz bir seçenek olarak reddetmesine ve orada durmasına neden olabilir.

Tek harfli paketlerin veya npm komutlarına benzeyenlerin diğer örnekleri arasında bunlarla sınırlı olmamak üzere şunlar bulunur: i, g, install, D ve s.

2017’den başlayarak, npm, paket adlarında hem büyük harflerin kullanılmasına hem de yazım hatalarını gizlemek amacıyla noktalama işaretlerinin vicdansızca kullanılmasına izin vermeyerek yazım hatalarını önlemek için adlandırma kurallarında revizyonlar yaptı. Ancak bu kuralların yürürlüğe girmesinden önce yayınlanmış mevcut paketleri temizlemek daha zor olabilir.



Source link