Networking

NPM ‘secara tidak sengaja’ menghapus paket stylus, break build dan pipa

69
npm-‘secara-tidak-sengaja’-menghapus-paket-stylus,-break-build-dan-pipa
NPM ‘secara tidak sengaja’ menghapus paket stylus, break build dan pipa

NPM telah menghapus semua versi perpustakaan Stylus yang sebenarnya dan menggantinya dengan halaman “holding keamanan”, memecahkan pipa dan membangun di seluruh dunia yang bergantung pada paket.

Halaman web penampung keamanan biasanya ditampilkan ketika paket dan perpustakaan berbahaya dihapus oleh admin npmjs.com, registri perangkat lunak terbesar di dunia yang terutama digunakan untuk pengembangan JavaScript dan Node.js.

Tapi itu tidak cukup untuk Stylus: perpustakaan “revolusioner” yang sah yang menerima 3 juta unduhan mingguan dan menyediakan cara ekspresif bagi pengembang untuk menghasilkan CSS.

Stylus ‘secara tidak sengaja dilarang oleh npmjs’

Sampai beberapa jam yang lalu, NPMJS telah menghapus semua versi paket Stylus dan menerbitkan halaman “Paket Penahan Keamanan” di tempatnya.

Semua versi ‘stylus’ dihapus dan diganti dengan halaman ‘placeholder keamanan’
(npmjs.com)

“Stylus secara tidak sengaja dilarang oleh NPMJS,” negara bagian Pengembang Stylus Lei Chen dalam edisi GitHub. Pemelihara proyek “saat ini menunggu NPMJ untuk mengembalikan akses ke stylus.”

“Saya adalah pemelihara stylus saat ini. Perpustakaan Stylus telah ditandai sebagai berbahaya …, yang telah menyebabkan banyak orang [libraries] dan kerangka kerja yang bergantung pada stylus untuk gagal menginstal, “juga diposting Chen di X (sebelumnya Twitter). “Tolong bantu saya me -retweet pesan ini dengan harapan bahwa tim resmi NPMJS akan memperhatikan masalah ini.”

Halaman NPMJS asli Stylus (ditunjukkan di bawah) menunjukkan bahwa perpustakaan yang sah adalah “bahasa baru revolusioner” untuk pengembangan CSS dan NET hampir 3 juta unduhan setiap minggu.

Paket Stylus di NPM menerima jutaan unduhan (BleepingComputer)

Tentunya cukup, pengembang berbagai proyek yang mengandalkan stylus disengkap:

“Bangunan saya gagal sehingga pembaruan perangkat lunak saya tidak mempublikasikan karena kesalahan administratif ini,” diposting satu pengembang.

Paket seperti Modul TypeScript-plugin-CSS (Diunduh hingga 500.000 kali seminggu) juga bergantung pada stylus, dicatat Pengembang Full-Stack Chanuka Asanka:

“Pipa gagal. Apakah ada yang tahu apakah NPM/Benang memberikan pemberitahuan awal ketika mereka akan melakukan hal seperti itu?”

Stylus bergantung pada proyek besar (BleepingComputer)

Apa Sungguh telah terjadi?

Biasanya, paket diturunkan pada NPM karena melanggar satu atau lebih dari open source mereka Ketentuan Layanandan cukup umum untuk berisi kode jahat. Tapi itu tidak berlaku untuk Stylus – semua versi yang tampaknya bersih dan fungsional.

Tom Abai, seorang peneliti keamanan di perusahaan keamanan rantai pasokan Mend.io, telah menemukannya.

Saat menyelidiki perkembangannya, Abai dikonfirmasi Setidaknya versi terbaru (0,64.0) dari Stylus adalah “bersih,” tetapi sesuatu yang aneh menonjol sehubungan dengan paket:

Mend.io Peneliti menjelaskan pengembangan (Tom Abai via X)

“… satu hal aneh datang [up] dalam penyelidikan kami, dan pemilik ini panyakor…, sepertinya dia adalah bagian dari pemilik paket Stylus NPM, menerbitkan 3 paket jahat minggu lalu … “tulis Abai.

npmjs.com, seperti banyak platform pengembangan open source, memungkinkan banyak pengelola terdaftar dan berkontribusi pada paket. Sementara Chen mungkin menjadi pengembang utama Stylus, ada akun NPM lain yang terdaftar di bawah pengelola.

“Panya, yang merupakan salah satu pemelihara paket Stylus, menerbitkannya, dan karena itu, akunnya dilarang, dan semua paket yang terhubung dengannya ditarik, termasuk stylus One. Jadi itulah ceritanya di sini. Alarm palsu besar oleh NPM,” kata Abai.

BleepingComputer lebih lanjut mengkonfirmasi bahwa akun NPM ‘mouse‘Memang terdaftar di antara pengelola di npmjs.com untuk Stylus dan 3 paket yang terdaftar dalam posting Abai yang tidak terkait dengan Stylus.

Paket yang ditandai oleh Abai: @PWA-IB/ESLINT-PLUGIN-COMPAT, @Blocks-shared/desktop-title, @tui-react-internal/select-account-iconditerbitkan oleh ‘PANYA’, sekarang membutuhkan otentikasi untuk mengakses di registri npmjs.com dan karenanya dibatasi dari pandangan publik.

BleepingComputer, bagaimanapun, dapat memperoleh dan mengintip ke dalam paket -paket ini, dan kami dapat mengkonfirmasi temuan Abai.

Misalnya, file “Extract.js” di @blok-shared/desktop-title berisi bukti konsep Kebingungan ketergantungan mengeksploitasi bahwa industri telah melihat beberapa kali sekarang:

Kode POC kebingungan ketergantungan yang terlihat dalam paket yang diterbitkan oleh co-maintainer stylus
(Komputer Bleeping)

Menurut Soket perusahaan keamanan rantai pasokan, akun NPM ‘PANYA’ telah menjadi pengelola untuk (dan/atau diterbitkan) setidaknya 12 paket di masa lalu:

Akun NPM PANYA telah dikaitkan dengan 12 paket (Socket.io)

Namun, pada saat penulisan, akun tersebut tidak memiliki paket yang tercantum di bawahnya, menunjukkan bahwa registri kemungkinan membersihkan semua eksploitasi POC dan menghilangkan stylus dalam prosesnya, secara tidak sengaja.

BleepingComputer mendekati NPM Registry dan organisasi induknya, Github, untuk mengomentari masalah ini sebelum diterbitkan.

Apa yang bisa kamu lakukan?

Untungnya, pengembang stylus dan anggota komunitas open source Tips rinci bersama sementara itu Untuk pengembang NPM dan benang yang mengandalkan Stylus untuk mempertahankan akses ke perpustakaan dan mengembalikan bangunan mereka.

Pengembang NPM dapat memilih untuk merujuk pada paket stylus “secara dinamis dengan menentukan cabang, tag, atau melakukan hash di dependencies bagian dari package.json“menyatakan Chen, seperti:

  {    "dependencies": {      "stylus": "github:stylus/stylus#version-you-need"    }  }  

Menggunakan overrides adalah opsi lain untuk pengembang NPM:

“Anda dapat mengesampingkan stylus Versi paket yang digunakan oleh dependensi lain dengan menentukannya di overrides Bagian (didukung dalam NPM v8.3.0 dan yang lebih baru) “

  {    "overrides": {      "stylus": "github:stylus/stylus#version-you-need"    }  }

“Catatan: Pastikan tag, cabang, atau komit yang ditentukan (misalnya, 0.54.4) ada di stylus/stylus gudang. Hapus cache NPM (npm cache clean --force) Jika Anda menghadapi masalah dengan dependensi yang sudah ketinggalan zaman. “

Untuk meringkas, Chen mengulangi:

“Stylus tidak mengandung kode berbahaya; ini telah dikonfirmasi. npmmirror.com (cermin nirlaba yang disponsori oleh Alibaba) telah melanjutkan akses [to the library]” menulis Lei Chen.

Tidak jelas apakah ini kebetulan, tetapi alat yang disebut komponen Stylus Tools telah dilaporkan memiliki CVE.

Mouse (Mantan pengelola Stylus) menggunakan akun mereka sendiri untuk merilis paket yang berisi kode berbahaya (untuk tujuan penelitian keamanan? Saya tidak yakin), tetapi tidak merilis versi baru dari Stylus yang berisi kode berbahaya.

Kami sedang menunggu tindakan resmi dari NPMJS. Ya, kami menunggu mereka untuk menanganinya.

Solusi telah disediakan di komentar. Harap terapkan sesuai kebutuhan. “

Di masa lalu, pengembang open source telah menjadi berita utama untuk memecahkan build oleh menarik perpustakaan mereka dari pendaftar atas ketidaksepakatan atau langsung merusak kode mereka sebagai protes.

Kejadian ini menandai contoh penting pertama dari registri yang mencatat seluruh proyek yang sah dalam kesalahan administrasi.

Deteksi & Respons Cloud untuk Dummies

Mengandung ancaman yang muncul secara real time – sebelum mereka berdampak pada bisnis Anda.

Pelajari bagaimana deteksi dan respons cloud (CDR) memberi tim keamanan keunggulan yang mereka butuhkan dalam panduan praktis dan tidak masuk akal ini.

Exit mobile version