Komuniti pembangunan perisian sedang bergolak akibat satu lagi insiden keselamatan utama yang telah mendedahkan kelemahan asas dalam cara infrastruktur pengaturcaraan kritikal dilindungi. Minggu ini, penyerang berjaya menjejaskan beberapa pakej NPM berprofil tinggi, termasuk DuckDB dan perpustakaan Chalk yang digunakan secara meluas, melalui apa yang pakar keselamatan panggil sebagai serangan phishing buku teks yang sepatutnya mudah dicegah.
Pelanggaran berlaku apabila penyelenggara pakej-pakej popular ini menerima e-mel yang kelihatan profesional yang mendakwa daripada sokongan NPM , meminta kemas kini segera kepada tetapan pengesahan dua faktor mereka. E-mel tersebut mengarahkan mangsa ke laman web palsu di npmjs.help yang meniru dengan sempurna laman NPM sebenar, lengkap dengan semua data pengguna dan tetapan. Sebaik sahaja penyelenggara memasukkan kelayakan mereka dan mengemas kini tetapan keselamatan mereka, penyerang memperoleh akses untuk menerbitkan versi berniat jahat pakej tersebut.
Pakej dan Versi yang Terjejas:
- @duckdb/[email protected]
- @duckdb/[email protected]
- [email protected]
- @duckdb/[email protected]
Garis Masa:
- 8 September: E-mel pancingan data dihantar kepada penyelenggara
- Dalam masa 4 jam: Pasukan DuckDB menyedari kompromi
- Tindak balas segera: Versi ditarik balik dan dipadam oleh NPM
- Versi selamat baharu diterbitkan: 1.3.4/1.30.0
Langkah Keselamatan Semasa Terbukti Tidak Mencukupi Terhadap Ancaman Moden
Insiden ini telah mencetuskan perdebatan sengit tentang sama ada amalan keselamatan sedia ada mencukupi untuk melindungi infrastruktur perisian kritikal. Walaupun NPM memerlukan pengesahan dua faktor untuk pakej popular, sistem semasa yang menggunakan kod berasaskan masa terbukti terdedah kepada jenis serangan man-in-the-middle ini. Pakar keselamatan kini menyeru untuk penggunaan segera kaedah pengesahan yang lebih canggih.
Komuniti mendesak keras untuk passkey dan kunci keselamatan perkakasan, yang direka bentuk untuk tidak boleh diphish kerana mereka mengesahkan identiti laman web sebelum menghantar sebarang data pengesahan. Tidak seperti kod pengesahan dua faktor tradisional yang boleh dipintas, sistem ini terikat secara kriptografi kepada domain tertentu, menjadikan laman web palsu tidak berguna walaupun ia kelihatan sama dengan yang sebenar.
Sistem Pengurusan Pakej Memerlukan Perubahan Asas
Selain penambahbaikan pengesahan, pembangun menuntut perubahan yang lebih luas kepada cara penerbitan pakej berfungsi. Ramai menyeru untuk tandatangan mandatori semua pakej, serupa dengan cara pengedaran Linux dan kedai aplikasi mudah alih mengesahkan ketulenan perisian. Ini akan memastikan bahawa walaupun penyerang memperoleh akses akaun, mereka tidak dapat menerbitkan pakej yang sah tanpa kunci kriptografi peribadi pembangun.
Penyelesaian lain yang dicadangkan termasuk tempoh penyejukan untuk versi pakej baharu, di mana kemas kini tidak akan tersedia serta-merta untuk pemasangan automatik. Ini akan memberi masa kepada penyelenggara untuk menyedari perubahan yang tidak dibenarkan dan bertindak balas sebelum kod berniat jahat merebak kepada berjuta-juta pengguna.
Anda tidak boleh bergantung kepada orang ramai untuk tidak terjebak dengan phishing 100% sepanjang masa. Ada sesuatu yang rosak dalam sistem di mana satu detik kecuaian oleh seorang boleh mengakibatkan ramai orang berakhir dengan perisian yang terjejas.
Penambahbaikan Keselamatan yang Disyorkan:
- Passkeys/Hardware Tokens: Pengesahan yang tidak boleh dipancing yang terikat kepada domain tertentu
- Package Signing: Pengesahan kriptografi untuk ketulenan perisian
- Email Authentication: Tandatangan GPG untuk semua komunikasi rasmi
- Publishing Delays: Tempoh penyejukan untuk versi pakej baharu
- Enhanced Monitoring: Pengesanan corak aktiviti akaun yang luar biasa
Kesan Yang Lebih Luas Terhadap Keselamatan Rantaian Bekalan Perisian
Insiden ini mewakili pelanggaran NPM utama ketiga dalam tempoh hanya dua minggu, menyerlahkan kelemahan sistemik dalam ekosistem JavaScript yang bergantung kepada berjuta-juta aplikasi. Pakej berniat jahat secara khusus menyasarkan transaksi mata wang kripto, menunjukkan bagaimana penyerang menjadi lebih canggih dalam memonetisasi pelanggaran ini.
Tindak balas pantas daripada kedua-dua pasukan DuckDB dan NPM - mengenal pasti dan membuang pakej berniat jahat dalam beberapa jam - menghalang kerosakan yang meluas. Walau bagaimanapun, kemudahan penyerang menembusi pertahanan ini telah menimbulkan persoalan serius tentang keselamatan keseluruhan rantaian bekalan perisian yang menggerakkan aplikasi web moden.
Insiden ini berfungsi sebagai peringatan untuk komuniti pembangunan. Walaupun pembangun individu boleh melindungi diri mereka dengan menggunakan pengurus kata laluan yang mengesahkan domain laman web, penyelesaian sebenar memerlukan perubahan sistematik kepada cara repositori pakej mengesahkan pengguna dan mengesahkan ketulenan perisian. Sehingga penambahbaikan asas ini dilaksanakan, serangan serupa berkemungkinan akan terus berjaya terhadap penyelenggara yang sedar keselamatan sekalipun.
Rujukan: DuckDB NPM packages 1.3.3 and 1.29.2 compromised with malware