Yeni Python Aracı, Manifest Karışıklık Sorunları için NPM paketlerini kontrol ediyor

10 ay önce

Bir güvenlik araştırmacısı ve sistem yöneticisi, kullanıcıların NPM JavaScript yazılım kayıt defterinden paketlerdeki tezahür uyumsuzluklarını kontrol etmelerine yardımcı olabilecek bir araç geliştirdi.

Geçen hafta, Github ve NPM'de eski bir mühendislik müdürü Darcy Clarke, kurulum sırasında kötü amaçlı yazılımların bağımlılıklarda saklanma veya komut dosyaları yürütme riskini getirebilecek "tezahür karışıklık" sorunları konusunda uyardı.

"Manifest Karışıklık", JavaScript programlama dili için bir paket yöneticisi ve Node.js ortamı için varsayılan olan NPM (Düğüm Paket Yöneticisi) 'deki bir güvenlik sorununa atıfta bulunur.

Sorun, bir paketin NPM kayıt defterinde görüntülendiği gibi manifest verileri ile yayınlanan paketin 'Package.json' dosyasında bulunan veriler arasındaki tutarsız bilgilerdir.

Kötü niyetli bir aktör, yeni bir paketin belirgin verilerini manipüle edebilir ve belirli komut dosyalarını veya bağımlılıklarını NPM kayıt defterinde görünmeyecek şekilde ortadan kaldırabilir.

Ancak, bu komut dosyaları veya bağımlılıkları Package.json dosyasında hala bulunacak ve paket yüklendiğinde kullanıcı farkında olmadan yürütülecektir.

Bu sorun potansiyel olarak geliştiricileri önbellek zehirlenmesi, bilinmeyen bağımlılıkların kurulumu, bilinmeyen komut dosyalarının yürütülmesi ve hatta muhtemelen düşürme saldırıları gibi risklere maruz bırakır.

Github henüz sorunu çözmediğinden ve platformun ne yapmayı planladığı belirsiz olduğundan, Clarke paket koruyucuların manifest verilerine güvenini kaldırmasını ve veri tutarlılık kontrollerini gerçekleştirmek için bir kayıt defteri proxy kullanmasını önerdi.

Bir çözüm uygulanana kadar, Sysadmin Felix Pankratz, yazılım geliştiricilerinin NPM paketlerini tutarsızlıklar için kontrol etmelerine yardımcı olabilecek Python tabanlı bir araç yayınladı.

Aracı kullanmak için önce, PIP Python Paket Yöneticisini "PIP Install -r gereksinimleri.txt" ile yükleyin.

Tek bir paketi incelemek için, paketin adını ilk argüman olarak komut dosyasına iletin. Örneğin:

$ ./npm-Manifest-check.py darcyclarke-manifest-pkg

Çıktı, manifest ile gerçek paket.json dosyası arasındaki sürümdeki uyuşmazlıkları, bağımlılıkları, komut dosyalarını ve paket adını vurgulayacaktır.

Uyuşmazlıkları olmayan bir paket için, çıktı şöyle görünmelidir:

$ ./npm-Manifest-check.py renk Renk için uyuşmazlık tespit edilmedi.

Birden çok paketi incelemek için geliştiriciler bunları bir pakete ekleyebilir. Liste 'dosyası (satır başına bir paket) ve bunları kontrol etmek için' check_packages.sh 'sarma komut dosyasını kullanın. Araç, kontrol edilen paketlerin her birinde bulunan uyumsuzlukları bildirecektir.

Pankratz'ın aracının kullanımının tüm yönlerini anlamak için yardım komutunu şu şekilde kontrol edin:

./npm-Manifest-check.py -H

Tezgah karışıklığı şu anda NPM topluluğunda yaygın veya kritik bir sorun değildir, ancak bunu göz ardı etmek, aktörlerin tedarik zinciri saldırıları için kullanmaya başlayabileceği gibi gitmenin güvenli bir yolu değildir.

“Manifest Karışıklık” saldırılarından kaynaklanan NPM ekosistemi

PYPI, tüm yazılım yayıncıları için zorunlu 2FA kullanımını duyurdu

Yeni Tool, kullanıcılara kötü amaçlı yazılım göndermek için Microsoft Teams hatasını kullanıyor

Snappy: Açık ağlarda haydut WiFi erişim noktalarını tespit etmek için bir araç

Ücretsiz Akira Fidye Yazılımı Şerefi Dosyalarınızı Kurtarmaya Yardımcı Olur

Kaynak: Bleeping Computer

More Posts