Checkmarx เผยแพร่รายงานวิเคราะห์แคมเปญ MALFEX เมื่อวันที่ 5 ตุลาคม 2569 — กลุ่ม Threat Actor ที่ Checkmarx ประเมินว่าดำเนินการโดย Operator รายเดียว เผยแพร่ JavaScript Package อันตราย 8 รายการ (รวม 12 Package ที่เชื่อมโยง) ผ่าน npm Registry ตั้งแต่เดือนสิงหาคม 2566 มียอดดาวน์โหลดรวม 40,767 ครั้ง ณ วันที่ 1 ตุลาคม 2569 เทคนิคเด่นคือ ซ่อนไฟล์ Malware ในภาพ PNG ผ่าน Steganography และ IExpress Archive เพื่อหลบ Detection — Payload หลักได้แก่ Overlord RAT และ movinlike Stealer ที่มุ่งขโมย Discord Token, Browser Credential และ Crypto Wallet
รายละเอียดทางเทคนิค
3 วิธีการส่ง Payload
- ▸ Path 1 — Disguised Executable (Install Script): Package ที่ติดตั้งจะรัน Hidden Script ดึงไฟล์ที่ Server ส่งมาในรูป
image/pngแต่จริงๆ เป็น Microsoft IExpress Archive → Extract มี SignedAutoIt3.exeที่รัน Encrypted Script → หลัง XOR/RC4/LZNT1 Decode ได้ Overlord RAT ถูก Inject เข้า Signed Process โดยมี Explorer เป็น Parent - ▸ Path 2 — Steganographic PNG (Load-time Chain): Package ดึง PNG ที่ถูกต้องตามมาตรฐาน แต่มี Encrypted Executable Data ซ่อนอยู่หลัง Image End Marker → AES Decrypt → Go Downloader ดาวน์โหลด movinlike (64 MB Node.js Stealer) ผ่าน IP
104.234.65[.]75Port 700 — ทำงานตอน Load Package ไม่ใช่ Install ดังนั้นการปิด npm Lifecycle Script ไม่ช่วยป้องกัน - ▸ Path 3 — ASCII Art Downloader: Font Value เฉพาะ Trigger การดาวน์โหลด; โค้ดอันตรายถูก Push นอก Viewport ด้วย Whitespace ยาว เพื่อหลบการตรวจสอบ; Download Error ถูก Ignore โดยอัตโนมัติ
npm Package ที่เกี่ยวข้อง
- ▸
function-flag— เวอร์ชัน 1.7.3, 4.0.0, 3.0.0, 2.3.5–2.3.9 (เวอร์ชัน 2.3.4 ไม่เป็นอันตราย) - ▸
function-color— เวอร์ชัน 1.7.3, 1.0.0 - ▸
cdn-img-fetch— เวอร์ชัน 1.0.0–1.0.3 - ▸
img-to-native— เวอร์ชัน 1.0.0–1.0.3 - ▸
native-runner— เวอร์ชัน 1.0.0–1.0.3 - ▸
tlxbnhd,tldriver,mxdriver— เวอร์ชัน 0.0.1–0.0.2
Overlord RAT — ความสามารถหลัก
- ▸ Screen Capture, Keystroke Logging, Clipboard Collection, File Search, Remote Command Execution, Hidden Desktop
- ▸ Persistence: Scheduled Task
\Maidenรัน"AutoIt3.exe" "h.a3x"ทุก 5 นาที Start Date ตั้งเป็น 1/1/2020 (Backdated), Author "Welcome," Comment "Wichita" - ▸ C2 Discovery: สามารถดึง Server Address จาก Encrypted Solana Transaction Memo — ตัวอย่างที่วิเคราะห์ไม่มี C2 Configuration และยังไม่พบ C2 Traffic จริง
movinlike Stealer — เป้าหมาย
- ▸ Discord Token, Browser Cookie และ Saved Password, Telegram Session, Cryptocurrency Wallet
- ▸ แก้ไข Discord Startup Script → Exfiltrate ข้อมูลในรูป Compressed Chunk ไปยัง Discord Webhook (
discord[.]com/api/webhooks/1553545982975811594/...)
Network Indicators of Compromise
- ▸ IP
104.234.65[.]75— movinlike Download Server (Port 700 และ Port 80,/setup.exe) - ▸ Domain
api.imghippo[.]com/files/hOG8244hc.png— Overlord Delivery - ▸ Domain
raw.githubusercontent[.]com/cavecrew/proj/main/banner.png— Stealer-chain PNG - ▸ IP
45.89.30[.]194,191.96.81[.]101,51.137.158[.]178— Payload Servers - ▸ Domain
cdnzona.discloud[.]app,apicdn.squareweb[.]app,bypasscdn.onrender[.]com,apizona.onrender[.]com— CDN Infrastructure
File Artifacts และ Persistence
- ▸ Directory:
%LOCALAPPDATA%\ScopeSmart Technologies Inc\(มีAutoIt3.exe,h.a3x,SmartScope.vbs) - ▸ Stealer:
%APPDATA%\Microsoft\Windows\node_runtime_helper.exe,%TEMP%\._cif_data - ▸ Dropped:
<package dir>\gldriver_pre_core.exeและgldriver_pre_asset.exe(ถูกลบหลัง Execute)
Attribution
- ▸ npm Publisher:
malfexkkj,malfex_user,malfexteste2-4 - ▸ Git Author:
corpmalfex[@]gmail.com - ▸ AES Decryption Key:
malfexteam2027 - ▸ README Owner:
Murizada
ผลกระทบที่อาจเกิดขึ้น
- ▸ Developer Endpoint Compromise: นักพัฒนาที่ติดตั้ง Package เหล่านี้จะให้ Attacker เข้าถึง Workstation เต็มรูปแบบผ่าน Overlord RAT — รวมถึง Source Code, Internal Credentials, VPN Config และ Cloud Access Key ที่อยู่ในเครื่อง Developer มักเป็น Entry Point สู่ Production Environment ที่ไม่ถูกตรวจสอบ
- ▸ Supply Chain Propagation: หากองค์กรมี Internal npm Mirror ที่ Cache Package เหล่านี้ไว้ Developer ทุกคนที่ Install Dependency จะได้รับ Malware โดยอัตโนมัติ — ณ วันที่ Checkmarx ตรวจสอบ Package อันตรายบางรายการยังไม่มี Advisory คลุมทุกเวอร์ชัน
สิ่งที่องค์กรควรทำ
- ▸ ตรวจสอบ Dependency ทันที: ค้นหา Package ชื่อ
function-flag,function-color,cdn-img-fetch,img-to-native,native-runner,tlxbnhd,tldriver,mxdriverในpackage.json,package-lock.json, และ Internal Mirror — ถ้าพบ Version ที่เสี่ยง Isolate Host ทันทีก่อนดำเนินการอื่น - ▸ ถ้าพบ Infection: ลบ Scheduled Task
\Maiden, ไฟล์ใน%LOCALAPPDATA%\ScopeSmart Technologies Inc\และnode_runtime_helper.exe; Rotate Password และ Token ทุกอย่างจาก Clean System; End Telegram Session; ย้าย Cryptocurrency ไปยัง Wallet ใหม่ - ▸ Block IOCs และ Clean Internal Registry: Block IP
104.234.65[.]75บน Firewall; ลบ Package อันตรายออกจาก Internal npm Mirror ก่อนที่ Developer จะ Reinstall
แนวทางลดความเสี่ยงระยะยาว
- ▸ npm Package Vetting Process: กำหนด Policy ให้ Developer ตรวจสอบ npm Package ก่อน Install โดยดู Publisher History, Download Count, และ Last Publish Date — Package ที่ Publish ครั้งแรกหรือมี Publisher ที่ไม่รู้จักควรผ่าน Review ก่อน
- ▸ Internal Registry Scanning: ตั้ง SAST/SCA Tool ที่สแกน Package Content ใน Internal Mirror ไม่ใช่เพียง Dependency Name — MALFEX ใช้เทคนิคที่ Signature-based Scanner อาจพลาด เช่น Steganography ใน PNG
- ▸ Developer Workstation Isolation: แยก Developer Environment จาก Production Network — หาก Attacker Compromise Developer Machine ควรไม่มี Direct Access ไปยัง Production Credential หรือ Cloud IAM Role
วิเคราะห์ในมุมมองจาก TXEC
MALFEX โดดเด่นในแง่ที่ Operator "ลงนาม" งานตัวเองอย่างชัดเจน — ชื่อ malfex ปรากฏใน npm Account, Git Email, AES Key และ README ซึ่งผิดปกติจาก APT ทั่วไปที่พยายาม Minimize Attribution; นี่อาจบ่งชี้ถึง Operator ที่มั่นใจว่าจะไม่ถูกติดตาม หรือเป็นนักพัฒนาที่เปลี่ยนทาง
ประเด็นที่น่ากังวลที่สุดคือ Path 2 ที่ทำงานตอน Load Package ไม่ใช่ Install — ทำให้ Best Practice อย่าง --ignore-scripts ไม่ช่วยป้องกัน และ 40,767 downloads ตั้งแต่ 2023 หมายความว่า Infection อาจฝังอยู่ในองค์กรที่ไม่รู้ตัวมานานหลายปีแล้ว