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