Perisian Hasad CanisterWorm
Serangan rantaian bekalan yang canggih yang pada mulanya menyasarkan pengimbas Trivy yang digunakan secara meluas telah meningkat menjadi kompromi yang lebih luas yang menjejaskan pelbagai pakej npm. Pelaku ancaman di sebalik kempen ini disyaki menggunakan cacing penyebaran sendiri yang sebelum ini tidak didokumenkan yang dikenali sebagai CanisterWorm, sekali gus meningkatkan skala dan impak pencerobohan tersebut dengan ketara.
Perisian hasad ini mendapat namanya daripada penggunaan kanister Protokol Komputer Internet (ICP), kontrak pintar tahan gangguan yang dihoskan pada rantaian blok terpencar, sebagai sebahagian daripada infrastruktur arahannya. Ini menandakan contoh pertama kanister ICP yang didokumenkan secara terbuka digunakan untuk mendapatkan titik akhir Perintah dan Kawalan (C2), memperkenalkan taktik baharu dan berdaya tahan yang merumitkan usaha mitigasi tradisional.
Isi kandungan
Pakej Terkompromi dan Vektor Akses Awal
Serangan itu telah memberi kesan kepada pelbagai pakej npm merentasi skop yang berbeza, menunjukkan jejari letupan yang luas dalam rantaian bekalan perisian:
- 28 pakej di bawah skop @EmilGroup
- 16 pakej di bawah skop @opengov
- Pakej tambahan termasuk @teale.io/eslint-config, @airtm/uuid-base32, dan @pypestream/floating-ui-dom
Kempen ini susulan rapat dengan pencerobohan kelayakan yang membolehkan penyerang menerbitkan versi berniat jahat bagi alat berkaitan Trivy, khususnya trivy, trivy-action dan setup-trivy, yang mengandungi fungsi pencurian kelayakan terbenam. Operasi ini dipercayai dikaitkan dengan kumpulan penjenayah siber yang berfokus pada awan yang dikenal pasti sebagai TeamPCP.
Aliran Kerja Jangkitan dan Infrastruktur Perintah Terdesentralisasi
Rantaian jangkitan bermula semasa proses pemasangan pakej npm, di mana skrip pasca pemasangan melaksanakan pemuat. Pemuat ini menggunakan pintu belakang berasaskan Python yang direka untuk berkomunikasi dengan kanister ICP. Kanister bertindak sebagai penyelesai mati, mengembalikan URL yang mengarahkan sistem yang dijangkiti untuk memuat turun dan melaksanakan muatan peringkat seterusnya.
Sifat terpencar infrastruktur ICP memberikan kelebihan yang ketara kepada penyerang. Memandangkan kanister boleh mengemas kini URL muatan secara dinamik, pelaku ancaman boleh mengedarkan binari berniat jahat baharu merentasi semua sistem yang dijangkiti tanpa mengubah suai perisian hasad yang digunakan itu sendiri. Seni bina ini juga menjadikan usaha penghapusan jauh lebih mencabar.
Mekanisme Kegigihan dan Teknik Senyap
Kegigihan dicapai melalui penciptaan perkhidmatan pengguna sistem yang dikonfigurasikan untuk memulakan semula proses berniat jahat secara automatik. Ciri-ciri utama termasuk:
- Mula semula automatik dikuatkuasakan melalui arahan Restart=always
- Kelewatan 5 saat sebelum melancarkan semula pintu belakang jika ditamatkan
- Menyamar sebagai perisian pemantauan PostgreSQL yang sah di bawah nama 'pgmon'
Pendekatan ini memastikan operasi berterusan sambil meminimumkan kemungkinan pengesanan dengan menggabungkannya dengan perkhidmatan sistem yang sah.
Penghantaran Muatan Adaptif dan Tingkah Laku Suis Pembunuh
Pintu belakang berkomunikasi secara berkala dengan kanister ICP setiap 50 minit, menggunakan Ejen Pengguna pelayar palsu untuk mengelakkan syak wasangka. URL yang dikembalikan menentukan tindakan seterusnya:
- Jika URL menunjukkan muatan yang sah, perisian hasad akan memuat turun dan melaksanakannya
- Jika URL mengandungi 'youtube.com', perisian hasad tersebut memasuki keadaan tidak aktif
Mekanisme ini berkesan berfungsi sebagai suis pemutus jauh. Dengan menukar URL kanister antara pautan YouTube yang tidak berbahaya dan muatan berniat jahat, penyerang boleh mengaktifkan atau menyahaktifkan perisian hasad merentasi semua sistem yang dijangkiti. Terutamanya, muatan yang dilaksanakan sebelum ini terus berjalan di latar belakang, kerana perisian hasad tidak menamatkan proses terdahulu.
Suis bunuh berasaskan YouTube yang serupa juga telah diperhatikan dalam binari Trivy yang ditrojankan (versi 0.69.4), yang berkomunikasi dengan infrastruktur ICP yang sama melalui penitis Python yang berasingan.
Keupayaan Cacing dan Penyebaran Automatik
Pada mulanya, penyebaran bergantung pada skrip yang dilaksanakan secara manual bernama deploy.js, yang memanfaatkan token pengesahan npm yang dicuri untuk menyuntik kod berniat jahat ke dalam pakej yang boleh diakses. Skrip ini tidak dicetuskan semasa pemasangan tetapi berfungsi sebagai alat kendiri untuk mengembangkan jangkauan serangan.
Varian CanisterWorm seterusnya telah berkembang dengan ketara. Dalam versi yang lebih baharu, seperti yang terdapat dalam @teale.io/eslint-config (versi 1.8.11 dan 1.8.12), cacing ini menggabungkan penyebaran kendiri terus ke dalam proses pemasangan pakej. Mekanisme yang dikemas kini termasuk:
- Pengekstrakan token pengesahan npm daripada persekitaran yang dijangkiti
- Pelaksanaan rutin penyebaran segera sebagai proses latar belakang yang terpisah
- Penerbitan automatik pakej yang dikompromi menggunakan kelayakan yang dituai
Peralihan ini mengubah serangan daripada kempen yang dikendalikan secara manual kepada sistem penyebaran autonomi sepenuhnya.
Peningkatan menjadi Ancaman Rantaian Bekalan yang Mampan Sendiri
Pengenalan penuaian token automatik dan penyebaran kendiri menandakan peningkatan kritikal. Mana-mana stesen kerja pembangun atau saluran paip CI/CD yang memasang pakej yang dikompromi dan mengandungi kelayakan npm yang boleh diakses menjadi nod penyebaran aktif. Ini mewujudkan kesan bertingkat di mana pakej yang dijangkiti membawa kepada jangkitan selanjutnya merentasi kebergantungan hiliran.
Pada peringkat ini, ancaman tersebut berkembang melangkaui kompromi akaun terpencil kepada ekosistem pengedaran perisian hasad yang mampan. Setiap persekitaran yang baru dijangkiti menyumbang kepada penyebaran, membolehkan pertumbuhan eksponen dan menjadikan pembendungan jauh lebih sukar.
Menguatkan lagi kebimbangan itu, pengujian artifak seperti muatan ruang letak ('hello123') menunjukkan bahawa penyerang sedang giat memperhalusi dan mengesahkan rantaian serangan sebelum menggunakan binari berniat jahat yang beroperasi sepenuhnya.