- Seorang penyerang telah menjejaskan akaun npm penyelenggara utama Axios dan mengeluarkan versi 1.14.1 dan 0.30.4 dengan kebergantungan hantu, plain-crypto-js, yang menggunakan RAT merentas platform semasa pemasangan.
- Perisian hasad tersebut telah menghubungi pelayan C2 (sfrclak[.]com) dan memuat turun muatan tertentu untuk Windows, macOS dan Linux, menjalankan peninjauan sistem, menyelenggara isyarat berkala dan dalam beberapa kes, mewujudkan kegigihan.
- Serangan itu, yang dikaitkan oleh Google dan penyelidik lain dengan pelakon Korea Utara UNC1069, menggabungkan tempoh pendedahan kira-kira tiga jam dengan kempen kejuruteraan sosial yang canggih terhadap penyelenggara untuk mencuri kelayakan mereka.
- Organisasi yang dapat memasang versi yang terjejas mesti komited untuk mengambil tindakan, mencari artifak RAT, memutar kelayakan, menyematkan versi selamat Axios dan mengukuhkan kawalan rantaian bekalan, CI/CD dan pengurusan kebergantungan mereka.
Komuniti pembangunan JavaScript baru sahaja mengalami salah satu ketakutan yang membuatkan anda memikirkan semula betapa anda mempercayai kebergantungan anda, seperti yang ditunjukkan oleh isu kerentanan perpustakaan . Axios, salah satu perpustakaan HTTP yang paling banyak digunakan dalam ekosistem, telah dimanipulasi pada npm untuk mengedarkan trojan akses jauh (RAT) melalui versi yang nampaknya sah. Insiden itu hanya berlangsung selama beberapa jam, tetapi ia telah menjelaskan bahawa rantaian bekalan perisian bergantung pada benang yang jauh lebih nipis daripada yang difikirkan ramai.
Isu serius bukan sekadar penyerang berjaya menyelinap masuk perisian hasad ke dalam pakej yang dimuat turun berpuluh-puluh atau ratusan juta kali seminggu. Masalah sebenar ialah mereka melakukannya dengan merampas akaun npm penyelenggara utama, menerbitkan versi "rasmi" yang kelihatan normal dan tidak menyentuh satu baris pun kod sumber Axios . Semua tingkah laku berniat jahat berada dalam kebergantungan hantu yang direka khusus untuk serangan tersebut.
Bagaimana komitmen Axios terhadap npm tercetus
Untuk memahami magnitud insiden itu, kita perlu mulakan dengan titik masuk. Penyerang berjaya mengawal akaun npm "jasonsaayman," penyelenggara utama Axios, dan menukar alamat e-mel yang berkaitan kepada alamat di bawah kawalan mereka , yang dihoskan di Proton Mail. Sejak saat itu, mereka bebas menerbitkan versi baharu pakej seolah-olah mereka adalah penyelenggara.
Menggunakan kelayakan tersebut, dia memuat naik dua versi Axios yang berniat jahat: 1.14.1 dan 0.30.4 , yang meliputi kedua-dua cabang utama projek tersebut. Muat naik dibuat hanya dengan jarak 39 minit dan, menurut analisis StepSecurity, dibuat terus daripada npm menggunakan token klasik yang tahan lama, memintas sepenuhnya saluran paip CI/CD biasa berdasarkan GitHub Actions.
Lapan belas jam sebelum serangan terakhir, pelakon tersebut telah menerbitkan versi "bersih" yang berkaitan dengan kebergantungan berniat jahat dalam daftar npm . Langkah awal ini berfungsi untuk menjana sejarah dan mencegah beberapa pemeriksaan automatik daripada tercetus apabila pakej baharu sepenuhnya muncul pada masa serangan.
Apa yang menarik perhatian ialah penyerang tidak mengubah suai kod sumber Axios atau membuat sebarang perubahan yang ketara pada repositori GitHub . Malah, versi 1.14.1 dan 0.30.4 tidak mempunyai komit atau tag yang sepadan pada GitHub; ia hanya wujud pada npm. Perbezaan utama adalah pada fail kebergantungan pakej, yang diterbitkan dalam pendaftaran.
Axios, dalam keadaan biasa, hanya mengisytiharkan tiga kebergantungan: follow-redirects, form-data dan proxy-from-env . Walau bagaimanapun, dalam versi yang dikompromi, kebergantungan keempat muncul, yang sebelum ini tidak wujud dalam projek: plain-crypto-js, versi 4.2.1. Pustaka hantu ini tidak digunakan di mana-mana sahaja dalam pangkalan kod Axios, tetapi ia termasuk skrip pasca pemasangan yang berjalan secara automatik semasa memasang pakej dengan npm, pnpm atau alat yang serupa.
plain-crypto-js: kebergantungan hantu yang digunakan oleh RAT
Kunci kepada serangan itu terletak pada kebergantungan tambahan itu. plain-crypto-js telah diterbitkan di npm oleh pengguna bernama "nrwise", juga dengan alamat e-mel Proton Mail, dan tujuan utamanya adalah untuk melaksanakan skrip pasca pemasangan yang dikaburkan dalam Node.js (setup.js) . Skrip itu bertindak sebagai penitis, iaitu, sebagai pemasang awal untuk fasa kedua perisian hasad.
Apabila memasang Axios dalam salah satu versi yang diracuni, kitaran hayat pasca pemasangan npm secara automatik mencetuskan kod plain-crypto-js tanpa sebarang tindakan khas yang diperlukan daripada pembangun . Penipu disambungkan ke pelayan arahan dan kawalan (C2) yang aktif dalam domain sfrclakcom, mendengar pada port 8000 dan memuat turun muatan khusus untuk sistem pengendalian mesin yang terjejas; tingkah laku ini boleh dikenal pasti melalui analisis trafik rangkaian.
Penyelidik di StepSecurity dan pasukan analisis lain menggambarkan tingkah laku yang sangat berhati-hati. Selepas melaksanakan muatan berniat jahat, dropper mengalih keluar jejaknya sendiri: ia memadamkan skrip pasca pemasangan, menggantikan fail package.json dengan versi "bersih" dan meninggalkan fail node_modules yang, pada pandangan pertama, kelihatan tidak berbahaya . Dengan cara ini, pemeriksaan manual berikutnya tidak menemui kod berniat jahat secara langsung dalam Axios.
Untuk mengenal pasti manipulasi tersebut, satu-satunya petunjuk yang boleh dipercayai adalah pada fail kunci (package-lock.json, pnpm-lock.yaml, yarn.lock) dan kehadiran versi tertentu: axios 1.14.1 atau 0.30.4 dan plain-crypto-js 4.2.1, sebagai tambahan kepada dua versi pakej tersebut dengan nombor perantaraan (4.2.0, 4.2.2) yang dipautkan dalam beberapa analisis. Socket, bagi pihaknya, kemudiannya mengesan bahawa perisian hasad yang sama juga diedarkan melalui pakej @shadanai/openclaw (pelbagai versi 2026.3.xx) dan @qqbrowser/openclaw-qbot (0.0.130), dan teknik keselamatan seperti honeypot juga boleh membantu mengenal pasti kempen yang serupa.
RAT merentas platform: Windows, macOS dan Linux menjadi tumpuan
Sebaik sahaja dilaksanakan, skrip setup.js bertindak sebagai orkestrator yang mampu mengesan sistem pengendalian dan mengikuti laluan serangan khusus platform . Kempen ini jelas telah disediakan terlebih dahulu: menurut StepSecurity, penyerang mempunyai tiga muatan berasingan yang telah dikompilasi terlebih dahulu, satu untuk setiap sistem.
Pada sistem macOS, proses pasca pemasangan melancarkan AppleScript yang memuat turun binari yang ditrojankan daripada pelayan sfrclakcom:8000 . Binari ini disimpan ke laluan /Library/Caches/com.apple.act.mond, kebenarannya diselaraskan untuk menjadikannya boleh dilaksanakan, dan akhirnya, ia dimulakan di latar belakang menggunakan /bin/zsh. Sebaik sahaja RAT berjalan, AppleScript itu sendiri telah dipadamkan untuk merumitkan lagi analisis forensik.
Pada mesin Windows, perisian hasad tersebut menemui binari PowerShell sistem, menyalinnya ke %PROGRAMDATA%\wt.exe untuk menyamarkannya sebagai terminal Windows, dan menghasilkan VBScript sementara . VBScript ini kemudian menghubungi pelayan C2 untuk memuat turun skrip RAT PowerShell tambahan, melaksanakannya, dan kemudian memadam fail yang dimuat turun. Tambahan pula, varian Windows mencipta fail %PROGRAMDATA%\system.bat dengan rutin muat turun yang membolehkan perisian hasad mendapatkan semula dirinya pada setiap log masuk dan menambah kunci pelaksanaan pada pendaftaran Windows untuk memastikan kegigihan.
Pada Linux dan sistem lain yang serupa dengan Unix selain macOS, dropper menggunakan execSync Node.js untuk melancarkan arahan shell yang memuat turun skrip Python daripada sfrclakcom, menyimpannya sebagai /tmp/ld.py dan melaksanakannya dengan nohup untuk memastikan ia berjalan di latar belakang . Tidak seperti Windows, varian ini tidak mempamerkan mekanisme persistensi yang mantap, menunjukkan pendekatan berorientasikan pengekstrakan data yang lebih pantas atau penggunaan persistensi sekali-sekala melalui arahan berikutnya.
SafeDep dan Elastic Security Labs menganalisis muatan peringkat kedua dan menyimpulkan bahawa RAT untuk macOS (binari C++ Mach-O) dan Linux (skrip Python) berkongsi set arahan, protokol C2, format mesej dan tingkah laku operasi yang sama . Analisis jenis ini biasanya bergantung pada perkhidmatan pengimbasan seperti VirusTotal , yang memudahkan korelasi sampel dan IOC.
Dalam semua kes, setiap hos yang dikompromi melakukan peninjauan sistem serta-merta: direktori pengguna, pemacu akar, proses aktif dan metadata lain . Maklumat ini dihantar ke pelayan arahan dan kawalan dan ejen mengekalkan gelung suar selama kira-kira 60 saat, menunggu arahan baharu, termasuk pelaksanaan skrip tambahan atau suntikan binari ke dalam memori.
Tetingkap pendedahan, objektif dan atribusi kepada Korea Utara
Versi Axios yang berniat jahat tersedia di npm selama kira-kira tiga jam, dalam jangka masa yang dipilih dengan teliti. Pakej yang dikompromi telah diterbitkan sejurus sebelum tengah malam pada hari Ahad (masa yang memaksimumkan masa tindak balas pembela), dan insiden itu dapat dikawal pada awal pagi Isnin , selepas firma keselamatan memaklumkan pihak berkuasa tentang tingkah laku yang tidak normal itu.
Dalam tempoh yang agak singkat itu, Huntress mengesan sekurang-kurangnya 135 sistem yang bersambung ke pelayan penyerang . Memandangkan Axios mencatatkan lebih daripada 80-100 juta muat turun setiap minggu (menurut pelbagai sumber, malah lebih daripada 300 juta dalam beberapa tempoh), jumlah itu mungkin hanya mewakili puncak gunung ais, terhad kepada sistem yang mendapat perhatian firma analitik yang telah mendedahkan data mereka kepada umum.
Google, melalui pasukan Perisikan Ancamannya, mengaitkan serangan itu dengan seorang suspek pelakon Korea Utara yang dilabel UNC1069 . Elastic Security Labs mengukuhkan hipotesis ini dengan menemui persamaan yang kuat antara RAT yang disampaikan pada macOS dan WAVESHAPER, pintu belakang C++ yang ditemui oleh Mandiant dan turut dikaitkan dengan kumpulan ancaman yang sama.
Penganalisis Google menekankan bahawa kumpulan yang berkaitan dengan Korea Utara telah mengkhususkan diri dalam serangan rantaian bekalan dan operasi kecurian mata wang kripto selama bertahun-tahun . Coraknya konsisten: menjejaskan infrastruktur pembangunan, perpustakaan yang digunakan secara meluas atau perisian yang dipercayai untuk kemudian bergerak secara lateral ke arah sasaran yang mengurus aset bernilai tinggi, kunci peribadi atau kelayakan.
Beberapa laporan juga menekankan bahawa penyederhanaan dan reka bentuk serangan tersebut mencadangkan pasukan yang diselaraskan dengan baik : tiga pelaksanaan selari RAT yang sama (PowerShell, C++ dan Python), protokol C2 yang konsisten, tingkah laku yang hampir sama merentasi semua varian dan strategi pembersihan kendiri yang jelas untuk mengelakkan meninggalkan kesan. Elastic menekankan bahawa konsistensi ini menunjukkan kepada pembangun tunggal atau kumpulan yang bekerja daripada dokumen reka bentuk yang dikongsi, jauh daripada improvisasi.
Selain aspek teknikal semata-mata, salah satu perkara yang paling meresahkan dalam kes ini ialah bagaimana akaun npm penyelenggara utama telah dirampas. Pengurus Axios sendiri kemudian menjelaskan bahawa dia telah mengaktifkan pengesahan dua faktor pada hampir semua perkhidmatannya , namun dia masih memberikan akses tanpa menyedarinya.
Menurut analisis bedah siasat yang dikongsi oleh pasukan tersebut, penyerang telah menjalankan operasi kejuruteraan sosial yang sangat rumit, disokong oleh alatan berkuasa AI, untuk mendapatkan kepercayaan mereka . Mereka menyamar sebagai pengasas sebuah syarikat, meniru identiti visual, gambar dan juga penjenamaan korporatnya. Mereka mencipta ruang Slack sebenar dengan logo syarikat, saluran dengan catatan yang kononnya disegerakkan dengan LinkedIn dan juga profil palsu pekerja dan penyelenggara perisian sumber terbuka yang lain.
Dalam persekitaran itu, mereka menjadualkan mesyuarat melalui Microsoft Teams yang mana sekumpulan profesional kelihatan turut serta . Semasa mesyuarat itu, mereka mensimulasikan masalah teknikal dan menunjukkan bahawa komponen sistem mereka sudah ketinggalan zaman. Juruteknik penyelenggaraan, dengan mengandaikan ia adalah keperluan sah yang berkaitan dengan alat persidangan video itu sendiri, memuat turun dan memasang fail yang dicadangkan.
Fail itu sebenarnya adalah Trojan akses jauh yang membolehkan penyerang beralih kepada kelayakan mangsa dan akhirnya mengawal akaun npm yang digunakan untuk menerbitkan Axios . Seluruh proses itu diatur dengan begitu baik, dengan begitu banyak butiran yang boleh dipercayai, sehingga mangsa menyifatkannya sebagai "diselaraskan dengan sempurna, profesional dan meyakinkan sepenuhnya."
Unsur kemanusiaan dalam insiden ini menjelaskan bahawa langkah-langkah teknikal seperti 2FA pun tidak mencukupi apabila kejuruteraan sosial peringkat tinggi digabungkan dengan penyamaran visual, deepfake atau pengklonan organisasi yang terperinci . Pautan paling lemah, sekali lagi, ialah interaksi manusia.
Kesan terhadap organisasi dan pembangun yang menggunakan Axios
Dari sudut praktikal, masalah utama adalah menentukan siapa yang sebenarnya terjejas. Mana-mana organisasi yang memasang [email protected] atau [email protected] semasa tempoh ia tersedia harus menganggap bahawa mesin atau saluran paip yang melakukan pemasangan mungkin telah dikompromi.
Cadangan daripada firma seperti StepSecurity, Aikido, Huntress dan Elastic adalah jelas. Sekiranya terdapat kecurigaan, pendekatan proaktif adalah perlu, bukan sekadar "memadam dan memasang semula node_modules ." Tindakan yang bijak adalah untuk membina semula mesin atau persekitaran yang terjejas daripada imej yang dipercayai dan menyemak log CI/CD dengan teliti untuk mengenal pasti kerja atau saluran paip yang mungkin telah melaksanakan versi yang dikompromikan.
Tambahan pula, adalah penting untuk memutarkan semua kelayakan dan rahsia yang mungkin diakses oleh RAT daripada nod tersebut : token npm, kunci penyedia awan, rahsia saluran paip, kelayakan pangkalan data, kunci SSH, dan sebagainya. Membiarkan kelayakan ini beredar selepas serangan sedemikian membuka pintu untuk pergerakan lateral senyap.
Pada peringkat teknikal, pasukan harus menyemak fail kunci mereka (package-lock.json, pnpm-lock.yaml, yarn.lock) untuk rujukan kepada versi Axios dan plain-crypto-js yang dikompromi . Jika elemen ini ditemui, langkah seterusnya adalah untuk memeriksa sistem yang terjejas untuk artifak RAT yang berpotensi: /Library/Caches/com.apple.act.mond pada macOS, %PROGRAMDATA%\wt.exe dan %PROGRAMDATA%\system.bat pada Windows, atau /tmp/ld.py pada Linux.
Secara selari, adalah disyorkan untuk menetapkan versi Axios yang selamat secara eksplisit, seperti 1.14.0 dan 0.30.3, dan menggunakan penggantian atau resolusi untuk mengelakkan kebergantungan transitif daripada diselesaikan kepada versi yang tidak diingini . Menyekat trafik keluar ke domain sfrclakcom juga merupakan langkah pembendungan yang wajar, sekurang-kurangnya semasa skop penuh serangan sedang dianalisis.
Pelajaran keselamatan untuk rantaian bekalan perisian
Insiden Axios bukanlah peristiwa terpencil, tetapi satu lagi penghubung dalam rantaian serangan rantaian bekalan yang merangkumi kes seperti SolarWinds, Kaseya, 3CX, Polyfill.io dan kerentanan yang dieksploitasi dalam Log4j. Idea terasnya sentiasa sama: mengkompromikan komponen yang digunakan secara meluas dan dipercayai untuk memaksimumkan jangkauan , daripada cuba menyerang mesin demi mesin.
Salah satu pengajaran yang paling kerap diulang daripada pakar ialah kepercayaan tidak boleh bergantung semata-mata pada populariti perpustakaan atau reputasi penyelenggara . Jika saluran keluaran (akaun npm, saluran paip CI/CD, infrastruktur binaan) terjejas, semua yang dikeluarkan melaluinya mewarisi risiko tersebut. Semakan kod manual juga tidak mencukupi jika perisian hasad bersembunyi dalam kebergantungan transitif dan memadamkan dirinya sendiri selepas pelaksanaan.
Telah juga ditekankan bahawa "kelajuan lalai" untuk kemas kini kebergantungan datang dengan kos dari segi serangan permukaan . Sentiasa menerima pakai versi terkini secara automatik adalah sangat mudah, tetapi ia membuka pintu untuk kemas kini berniat jahat merebak dalam beberapa minit. Sesetengah organisasi sudah mempertimbangkan dasar seperti mewajibkan versi baharu berada dalam ekosistem untuk tempoh tertentu sebelum diterima pakai, atau mewajibkan perubahan pada pakej kritikal untuk menjalani semakan manual tambahan.
Berkenaan infrastruktur pembangunan, persekitaran CI/CD mesti dianggap sebagai aset yang sangat sensitif . Sebarang RAT yang dilaksanakan semasa pemasangan kebergantungan hampir pasti akan mencari rahsia saluran paip dan akses kepada persekitaran lain. Menyegmentasikan nod ini, memantaunya dengan lebih teliti dan memutarkan rahsianya secara berkala bukan lagi cadangan "ideal" tetapi satu keperluan.
Akhir sekali, mengesan jenis serangan ini memerlukan gabungan maklumat daripada pelbagai sumber: versi yang dipasang, fail kunci, penunjuk pencerobohan sistem pengendalian dan telemetri rangkaian . Alat yang menjana dan mengurus Bil Bahan Perisian (SBOM) membantu mengesan projek yang menggunakan pakej dengan cepat, yang penting apabila amaran besar-besaran seperti ini dicetuskan.
Keseluruhan episod dengan Axios ini menggambarkan sejauh mana ekosistem kebergantungan, walau betapa matang dan kukuhnya ia kelihatan, masih banyak bergantung pada kepercayaan dan kewaspadaan yang berterusan. Sebuah perpustakaan yang nampaknya tidak berbahaya, yang diselenggara oleh seorang individu yang menjadi mangsa serangan kejuruteraan sosial yang dilaksanakan dengan baik, boleh menjadi, dalam beberapa jam, vektor global untuk menggunakan RAT merentas platform terhadap syarikat, pekerja bebas dan organisasi dari semua saiz . Memperkukuh kawalan di sekitar akaun penerbitan, saluran paip dan kebergantungan kritikal bukan lagi amalan terbaik pilihan, tetapi prasyarat untuk pembangunan berterusan dalam persekitaran di mana penyerang semakin sabar, bijak dan dilengkapi dengan alatan yang lebih baik.

