Yeni Python aracı, belirgin karışıklık sorunları için NPM paketlerini kontrol eder


Yeni Python aracı, belirgin karışıklık sorunları için NPM paketlerini kontrol eder

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

Geçen hafta, GitHub ve NPM’de eski bir mühendislik yöneticisi olan Darcy Clarke, kötü amaçlı yazılımların yükleme sırasında bağımlılıklarda saklanması veya komut dosyalarını yürütmesi riskini getirebilecek “açık kafa karışıklığı” sorunları hakkında uyarıda bulundu.

“Belirgin karışıklık”, JavaScript programlama dili için bir paket yöneticisi ve Node.js ortamı için varsayılan olan NPM’deki (Düğüm Paket Yöneticisi) bir güvenlik sorununu ifade eder.

Sorun, bir paketin NPM kayıt defterinde görüntülenen bildirim verileri ile yayınlanan paketin ‘package.json’ dosyasında bulunan veriler arasındaki tutarsız bilgilerle ilgilidir.

Kötü niyetli bir aktör, yeni bir paketin bildirim verilerini manipüle ederek belirli komut dosyalarını veya bağımlılıkları NPM kayıt defterinde görünmemeleri için ortadan kaldırabilir.

Ancak, bu betikler veya bağımlılıklar package.json dosyasında bulunmaya devam eder ve paket yüklendiğinde kullanıcının haberi olmadan yürütülür.

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

GitHub sorunu henüz ele almadığından ve platformun ne yapmayı planladığı net olmadığından Clarke, paket bakımcılarının bildirim verilerine güvenmeyi kaldırmalarını ve veri tutarlılığı kontrolleri gerçekleştirmek için bir kayıt defteri proxy’si kullanmalarını önerdi.

Manifest karışıklık denetleyicisi

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

Aracı kullanmak için öncelikle PIP Python paket yöneticisini “pip install -rquirements.txt” ile kurun.

Tek bir paketi incelemek için, paketin adını komut dosyasına ilk bağımsız değişken olarak iletin. Örneğin:

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

Çıktı, bildirim dosyası ile gerçek package.json dosyası arasındaki sürüm, bağımlılıklar, betikler ve paket adındaki tüm uyumsuzlukları vurgulayacaktır.

Test edilmiş paket
Test edilmiş paket (bilgisayarın sesi)

Herhangi bir uyumsuzluğu olmayan bir paket için çıktı şöyle görünmelidir:

$ ./npm-manifest-check.py color
No mismatch detected for color.

Birden çok paketi incelemek için, geliştiriciler bunları bir “paketlere” ekleyebilir. list’ dosyasını (satır başına bir paket) seçin ve bunları kontrol etmek için ‘check_packages.sh’ sarmalayıcı komut dosyasını kullanın. Araç, kontrol edilen paketlerin her birinde bulunan uyumsuzlukları rapor edecektir.

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

Açık kafa karışıklığı şu anda NPM topluluğunda yaygın veya kritik bir sorun değil, ancak tehdit aktörleri onu tedarik zinciri saldırıları için kullanmaya başlayabileceğinden, bunu görmezden gelmek güvenli bir yol değil.



Source link