ບໍ່ດົນມານີ້ Xygeni ໄດ້ສັງເກດເຫັນຮູບແບບທີ່ໜ້າເປັນຫ່ວງໃນພູມສັນຖານຂອງການໂຈມຕີລະບົບຕ່ອງໂສ້ການສະໜອງຊອບແວໃນປີ 2025, ເກີດຂຶ້ນໃນສອງຜູ້ຈັດການແພັກເກດທີ່ນິຍົມ: P&IP ແລະ npmໃນຖານະເປັນສ່ວນໜຶ່ງຂອງຄວາມພະຍາຍາມສືບລັບໄພຂົ່ມຂູ່ຢ່າງຕໍ່ເນື່ອງຂອງພວກເຮົາ,ຄຳເຕືອນລ່ວງໜ້າກ່ຽວກັບມັນແວ (MEW) ຂອງ Xygeni ເຄື່ອງມືໄດ້ລະບຸຕົວຢ່າງທີ່ແຕກຕ່າງກັນແຕ່ມີລັກສະນະຄ້າຍຄືກັນທາງດ້ານວິທີການຂອງແພັກເກດທີ່ເປັນອັນຕະລາຍທີ່ອັບໂຫຼດໄປຍັງທະບຽນອື່ນກ່ອນໜ້ານີ້. ກໍລະນີນີ້ເນັ້ນໃຫ້ເຫັນວິທີທີ່ຜູ້ກໍ່ໄພຂົ່ມຂູ່ກຳລັງພັດທະນາ ແລະ ນຳໃຊ້ເຕັກນິກການໂຈມຕີຄືນໃໝ່ໃນທົ່ວລະບົບນິເວດ, ໂດຍສະເພາະຜ່ານ ແພັກເກດ Python ທີ່ເປັນອັນຕະລາຍ ແລະ ແພັກເກດ npm ທີ່ເປັນອັນຕະລາຍ, ເຊິ່ງເພີ່ມຄວາມສ່ຽງຂອງແພັກເກດທີ່ເປັນອັນຕະລາຍທີ່ແຊກຊຶມເຂົ້າໄປໃນລະບົບຕ່ອງໂສ້ການສະໜອງແບບເປີດ.
MEW ຂອງ Xygeni: ການສັງເກດຄວາມຄ້າຍຄືກັນ
ເຄື່ອງມື MEW ຂອງ Xygeni ຖືກສ້າງຂຶ້ນເພື່ອກວດຫາ ແລະ ລາຍງານແພັກເກດທີ່ເປັນອັນຕະລາຍ, ໂດຍສະເພາະແມ່ນແພັກເກດທີ່ເຊື່ອມໂຍງກັບການໂຈມຕີລະບົບຕ່ອງໂສ້ການສະໜອງຊອບແວໃນປີ 2025, ທັນທີທີ່ພວກມັນຖືກເຜີຍແຜ່ໃນທະບຽນແບບໂອເພນຊອສ. ມັນເຮັດວຽກໂດຍການວິເຄາະແພັກເກດໃໝ່ສຳລັບພຶດຕິກຳທີ່ໜ້າສົງໄສ.
ໃນກໍລະນີນີ້, ມັນໄດ້ລະບຸສອງຢ່າງ ແພັກເກດ Python ທີ່ເປັນອັນຕະລາຍ (graphalgo ໃນ PyPI) ແລະ ແພັກເກດ npm ທີ່ເປັນອັນຕະລາຍ (express-cookie-parser ໃນ npm).
Python ແລະແພັກເກດ npm ທີ່ເປັນອັນຕະລາຍໃນການໂຈມຕີລະບົບຕ່ອງໂສ້ການສະໜອງຊອບແວ (2025)
ລອງມາສຳຫຼວດລັກສະນະຮ່ວມກັນທີ່ກະຕຸ້ນການແຈ້ງເຕືອນຂອງພວກເຮົາ:
typosquatting
ພວກເຂົາທັງສອງໄດ້ພະຍາຍາມລອກລຽນແບບແພັກເກດທີ່ນິຍົມທີ່ມີຢູ່ແລ້ວ.
- ກຣາຟອລໂກ (PyPI): "ຊຸດ Python ສຳລັບການສ້າງ ແລະ ຈັດການກຣາຟ ແລະ ເຄືອຂ່າຍ.ອັບໂຫລດໂດຍຜູ້ໃຊ້ທີ່ມີຊື່ວ່າ "larrytech" ໃນວັນທີ 13 ມິຖຸນາ 2025, ຊຸດນີ້ໄດ້ນຳສະເໜີຕົວມັນເອງເປັນທາງເລືອກ PyPi ແທນໂຄງການ graphalgo ທີ່ບໍ່ມີອັນຕະລາຍເດີມ, ເຊິ່ງຕໍ່ມາໄດ້ປ່ຽນຊື່ເປັນ graphdict.
- ຕົວວິເຄາະຄຸກກີ້ດ່ວນ (npm)ແພັກເກດນີ້ຮຽນແບບແພັກເກດ cookie-parser ທີ່ຮູ້ຈັກກັນດີ, ເຖິງແມ່ນວ່າຈະສະທ້ອນກັບແພັກເກດຂອງມັນກໍຕາມ README.md. ການຮຽນແບບດັ່ງກ່າວແມ່ນຍຸດທະວິທີແບບຄລາສສິກເພື່ອນຳໃຊ້ຄວາມໄວ້ວາງໃຈທີ່ມີຢູ່ແລ້ວ.
ການປິດບັງເປັນແນວປ້ອງກັນທຳອິດ
ທັງສອງແພັກເກດໄດ້ປິດບັງລະຫັດທີ່ເປັນອັນຕະລາຍຂອງພວກມັນພາຍໃນໄຟລ໌ຕົ້ນສະບັບ. ສຳລັບ ກຣາຟອລໂກ, ລະຫັດທີ່ສັບສົນຖືກພົບເຫັນຢູ່ພາຍໃນ /utils/load_libraries.py. ໃນກໍລະນີຂອງ ຕົວວິເຄາະຄຸກກີ້ດ່ວນ, cookie-loader.min.js ບັນຈຸພາລະທີ່ຖືກປິດບັງ.
ຊັ້ນເບື້ອງຕົ້ນຂອງການປິດບັງນີ້ ໂດຍປົກກະຕິແລ້ວແມ່ນໃຊ້ເພື່ອຂັດຂວາງການກວດກາແບບບໍ່ເປັນທາງການ ແລະ ການວິເຄາະແບບຄົງທີ່. ການປິດບັງແມ່ນງ່າຍດາຍຫຼາຍ: ການບີບອັດ ZLib ຊ້ຳໆ ບວກກັບການເຂົ້າລະຫັດ Base64. ການປິດບັງປະເພດນີ້ຊີ້ບອກຢ່າງຊັດເຈນວ່າຊອບແວກຳລັງພະຍາຍາມປິດບັງພຶດຕິກຳຂອງມັນ. ພ້ອມກັບຫຼັກຖານອື່ນໆ, ສິ່ງນີ້ຊ່ວຍໃຫ້ Xygeni MEW ຈັດປະເພດແພັກເກດເປັນມັລແວທີ່ອາດເປັນໄປໄດ້. ໃນລະຫວ່າງຂັ້ນຕອນການຢືນຢັນ, ຜູ້ທົບທວນຂອງພວກເຮົາໄດ້ກະກຽມສະຄຣິບ deobfuscation ຢ່າງວ່ອງໄວ ເຊິ່ງເປີດເຜີຍຂັ້ນຕອນ dropper ທີ່ເປັນອັນຕະລາຍຢ່າງຈະແຈ້ງ.
ການຈັດສົ່ງສິນຄ້າຫຼາຍຂັ້ນຕອນ ແລະ ຈຸດເລີ່ມຕົ້ນທີ່ໃຊ້ຮ່ວມກັນ
ທັງສອງແພັກເກດເຮັດໜ້າທີ່ເປັນ "ເບື້ອງຕົ້ນ"ຢອດ, ” ກຳນົດຂັ້ນຕອນສຳລັບພາລະການໂຫຼດທີ່ແທ້ຈິງ. ພວກເຂົາໄດ້ແບ່ງປັນພາຍນອກຮ່ວມກັນ “ແກ່ນ"ທີ່ຢູ່ໄຟລ໌:"https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
ໄຟລ໌ seed ພາຍນອກທີ່ຄືກັນນີ້ແມ່ນຕົວຊີ້ບອກທີ່ເຂັ້ມແຂງຂອງຕົວກໍ່ໄພຂົ່ມຂູ່ຮ່ວມກັນ. ສິ່ງທີ່ໜ້າສົນໃຈແມ່ນເນື້ອໃນຂອງໄຟລ໌ seed ນີ້ເບິ່ງຄືວ່າເປັນຕົວແປສະພາບແວດລ້ອມງ່າຍໆ (ເຊັ່ນ: JWT_SECRET, PORT), ເຊິ່ງອາດຈະເຮັດໃຫ້ການກວດສອບຜິດພາດຕໍ່ໜ້າທີ່ຕົວຈິງຂອງມັນ.
ຄວາມລະອຽດ C2 ແບບໄດນາມິກດ້ວຍ DGA
ຍຸດທະວິທີທີ່ຊັບຊ້ອນທີ່ສັງເກດເຫັນໃນແພັກເກດທີ່ເປັນອັນຕະລາຍເຫຼົ່ານີ້ແມ່ນການໃຊ້ Domain Generation Algorithm (DGA) ເພື່ອແກ້ໄຂເຊີບເວີ Command and Control (C2) ແບບໄດນາມິກ. ເຕັກນິກນີ້, ມັກເຫັນໃນການໂຈມຕີລະບົບຕ່ອງໂສ້ການສະໜອງຊອບແວຂັ້ນສູງໃນປີ 2025, ອີງໃສ່ hash SHA256 ທີ່ມາຈາກເນື້ອໃນຂອງໄຟລ໌ seed, ບວກກັບຄ່າທີ່ຖືກລະຫັດອື່ນໆ. ໂດຍການເຮັດເຊັ່ນນັ້ນ, ໂຄງສ້າງພື້ນຖານ C2 ປ່ຽນແປງເລື້ອຍໆ, ເຮັດໃຫ້ການບັນຊີດຳແບບດັ້ງເດີມມີປະສິດທິພາບໜ້ອຍລົງ. ໃນກໍລະນີນີ້, ຕົວແປ npm ໃຊ້ຄ່າຄົງທີ່ຂອງ 496AAC7E ເປັນສ່ວນໜຶ່ງຂອງເຫດຜົນ DGA ຂອງມັນ.
ການສ້າງຕັ້ງຄວາມອົດທົນ
ຜູ້ໂຈມຕີທັງສອງພະຍາຍາມສ້າງການປະກົດຕົວທີ່ຍືນຍົງໃນລະບົບທີ່ໄດ້ຮັບຜົນກະທົບ. ຍຸດທະສາດຂອງພວກເຂົາກ່ຽວຂ້ອງກັບການວາງໄຟລ໌, startup.py (ສຳລັບ PyPi) ຫຼື startup.js (ສຳລັບ npm), ເຂົ້າໄປໃນໄດເລກະທໍລີຂໍ້ມູນຜູ້ໃຊ້ Google Chrome ທົ່ວໄປໃນທົ່ວລະບົບປະຕິບັດການຕ່າງໆ (Windows, Linux, macOS).
ການເຮັດຄວາມສະອາດຫຼັງການປະຕິບັດ
ເພື່ອຫຼຸດຜ່ອນຮ່ອງຮອຍ, ສະຄຣິບທີ່ເປັນອັນຕະລາຍທັງສອງໄດ້ປະຕິບັດການເຮັດຄວາມສະອາດ. ນີ້ລວມທັງການລຶບໄຟລ໌ dropper ເບື້ອງຕົ້ນຂອງພວກມັນ (load_libraries.py, cookie-loader.min.js) ແລະ ການດັດແປງໄຟລ໌ແພັກເກດທີ່ຖືກຕ້ອງຕາມກົດໝາຍ (__init__.py, index.js) ເພື່ອລຶບການອ້າງອີງເຖິງອົງປະກອບທີ່ຖືກລຶບແລ້ວ.
ຕົວຊີ້ວັດຂອງການປະນີປະນອມໃນ Python ແລະແພັກເກດ npm ທີ່ເປັນອັນຕະລາຍ
- ແພັກເກດ PyPI: graphalgo (ເຜີຍແຜ່ໂດຍ larrytech, ວັນທີ 13 ມິຖຸນາ 2025)
- ແພັກເກດ npm: express-cookie-parser (ສະເພາະເວີຊັນ 1.4.12)
- ເຂົ້າເຖິງ URL ຂອງເມັດພັນທີ່ແບ່ງປັນ:
https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example
- ຊື່ໄຟລ໌ທີ່ຄົງທີ່:
startup.py( python )startup.js(JavaScript) - ເສັ້ນທາງທີ່ຍືນຍົງທົ່ວໄປ (ຂຶ້ນກັບລະບົບປະຕິບັດການ)ພາຍໃນໄດເລກະທໍລີຂໍ້ມູນຜູ້ໃຊ້ Google Chrome (ຕົວຢ່າງ:
AppData\Local\Google\Chrome\UserData\Scripts\ໃນ Windows,~/.config/google-chrome/Scripts/ໃນ Linux, ແລະອື່ນໆ).
ວິທີການປ້ອງກັນຈາກແພັກເກດທີ່ເປັນອັນຕະລາຍໃນການໂຈມຕີລະບົບຕ່ອງໂສ້ການສະໜອງຊອບແວ 2025
ວິທີການທີ່ແນະນຳສຳລັບນັກພັດທະນາ
ເຫດການນີ້ເປັນກໍລະນີສຶກສາທີ່ມີຄຸນຄ່າໃນພູມສັນຖານໄພຂົ່ມຂູ່ທີ່ພັດທະນາຂອງການໂຈມຕີລະບົບຕ່ອງໂສ້ການສະໜອງຊອບແວໃນປີ 2025. ມັນເນັ້ນໃຫ້ເຫັນວ່າແພັກເກດ Python ທີ່ເປັນອັນຕະລາຍ ແລະ ແພັກເກດ npm ທີ່ເປັນອັນຕະລາຍສາມາດລັກລອບເຂົ້າໄປໃນລະບົບນິເວດທີ່ເຊື່ອຖືໄດ້ໄດ້ແນວໃດ, ໂດຍມັກຈະຫຼີກລ່ຽງການກວດພົບຈົນກວ່າມັນຈະສາຍເກີນໄປ. ນັ້ນແມ່ນເຫດຜົນທີ່ການກວດພົບແຕ່ຫົວທີ, ການໃຊ້ເຄື່ອງມືອັດສະລິຍະ, ແລະ ສຸຂະອະນາໄມຂອງລະບົບທີ່ມີປະສິດທິພາບໃນປັດຈຸບັນແມ່ນສ່ວນສຳຄັນຂອງຂະບວນການເຮັດວຽກ DevOps ທີ່ປອດໄພ. ນັກພັດທະນາໄດ້ຮັບການຊຸກຍູ້ໃຫ້ພິຈາລະນາສິ່ງຕໍ່ໄປນີ້:
ການທົບທວນການເພິ່ງພາອາໄສ
ຖ້າໂຄງການຂອງທ່ານໄດ້ລວມເອົາ ກຣາຟອລໂກ or ຕົວວິເຄາະຄຸກກີ້ດ່ວນ, ມັນຈະເປັນການສະຫຼາດທີ່ຈະດຳເນີນການກຳຈັດພວກມັນອອກ.
- ສຳລັບ PyPI:
pip uninstall graphalgo - ສຳລັບ npm:
npm uninstall express-cookie-parser
ສຸຂະອະນາໄມຂອງລະບົບ
ພິຈາລະນາການສະແກນລະບົບຢ່າງລະອຽດ. ມັນຍັງແນະນຳໃຫ້ກວດສອບເສັ້ນທາງໄດເລກະທໍລີຂໍ້ມູນຜູ້ໃຊ້ Chrome ທົ່ວໄປດ້ວຍຕົນເອງເພື່ອຊອກຫາຂໍ້ຜິດພາດທີ່ບໍ່ຄາດຄິດໃດໆ. startup.py or startup.js ໄຟລ໌.
ມາດຕະການຄວາມປອດໄພແບບຕັ້ງໜ້າ
- ປະເມີນການເພິ່ງພາອາໄສໃໝ່ສ້າງລະບຽບເພື່ອປະເມີນແພັກເກດໃໝ່ຢ່າງລະອຽດກ່ອນການເຊື່ອມໂຍງ, ໂດຍສຸມໃສ່ແພັກເກດຈາກຜູ້ເຜີຍແຜ່ທີ່ບໍ່ຄຸ້ນເຄີຍ.
- ປະສົມປະສານເຄື່ອງມືຄວາມປອດໄພເຄື່ອງມືຕ່າງໆເຊັ່ນ MEW ຂອງ Xygeni, ພ້ອມກັບການວິເຄາະອົງປະກອບຊອບແວອື່ນໆ (SCA) ວິທີແກ້ໄຂ, ສາມາດສະໜອງຊັ້ນປ້ອງກັນທີ່ສຳຄັນໂດຍການລະບຸພຶດຕິກຳ ແລະ ຈຸດອ່ອນທີ່ໜ້າສົງໄສ.
- ສິດທິພິເສດໜ້ອຍທີ່ສຸດການດຳເນີນງານສະພາບແວດລ້ອມການພັດທະນາດ້ວຍຫຼັກການຂອງສິດທິພິເສດໜ້ອຍທີ່ສຸດສາມາດຊ່ວຍຈຳກັດຜົນກະທົບທີ່ອາດເກີດຂຶ້ນຈາກການປະນີປະນອມ.
- ການຮັບຮູ້ເຄືອຂ່າຍການຕິດຕາມການຈະລາຈອນເຄືອຂ່າຍອອກສຳລັບການເຊື່ອມຕໍ່ທີ່ຜິດປົກກະຕິບາງຄັ້ງສາມາດເປີດເຜີຍການສື່ສານ C2 ທີ່ສ້າງຂຶ້ນໂດຍ DGA.
ອົງປະກອບຫຼັກຂອງ load_libraries.py (ຈາກ graphalgo)
download_remote_content(): ຈັດການການດຶງໄຟລ໌ຈາກ URL ທີ່ລະບຸ.run_process()ປະຕິບັດສະຄຣິບ Python ພາຍນອກໃນລັກສະນະທີ່ແຍກອອກ, ສະກັດກັ້ນຜົນຜະລິດເພື່ອບໍ່ໃຫ້ຖືກເປີດເຜີຍ.get_output_file_path(): ກຳນົດສະຖານທີ່ລະບົບທີ່ເໝາະສົມສຳລັບໄຟລ໌ startup.py ທີ່ຍັງຄົງຢູ່.remove_self(): ຈັດການການເຮັດຄວາມສະອາດຫຼັງການປະຕິບັດຂອງໄຟລ໌ທີ່ເປັນອັນຕະລາຍເບື້ອງຕົ້ນ ແລະ ການດັດແປງແພັກເກດ.simple_shift_encrypt()/simple_shift_decrypt()ຟັງຊັນການເຂົ້າລະຫັດແບບກຳນົດເອງສຳລັບການປິດບັງຊ່ອງທາງການສື່ສານ, ສຳຄັນສຳລັບການຈັດຕັ້ງປະຕິບັດ DGA.load_libraries()ໜ້າທີ່ສູນກາງທີ່ປະສານງານຂະບວນການຫຼາຍຂັ້ນຕອນທັງໝົດ, ຕັ້ງແຕ່ການດາວໂຫຼດເບື້ອງຕົ້ນຈົນເຖິງການປະຕິບັດ ແລະ ການເຮັດຄວາມສະອາດ payload ສຸດທ້າຍ.
ຫຼັງ
ເຊັ່ນດຽວກັນກັບແພັກເກດທີ່ອາດຈະເປັນອັນຕະລາຍອື່ນໆທີ່ MEW ລະບຸ, firewall dependency ໄດ້ປົກປ້ອງຜູ້ໃຊ້ທັນທີທີ່ຈະລວມເອົາແພັກເກດທີ່ເປັນອັນຕະລາຍເຫຼົ່ານີ້ເຂົ້າໃນ dependency ຂອງເຂົາເຈົ້າ. ຫຼັງຈາກການຢືນຢັນ, ພວກເຮົາໄດ້ປະຕິບັດຕາມຂັ້ນຕອນການແຈ້ງເຕືອນສຳລັບທັງສອງ registry, ເຊິ່ງຫຼັງຈາກການທົບທວນຄືນໄດ້ລຶບທັງສອງແພັກເກດອອກ.





