สรุปสั้น
นักวิจัยด้านความปลอดภัยจากบริษัท Proofpoint เปิดเผยแคมเปญโจมตีทางไซเบอร์ที่มีชื่อว่า UNK_DeadDrop ซึ่งมีความเชื่อมโยงกับกลุ่มภัยคุกคามจากเกาหลีเหนือที่รู้จักกันในชื่อ Contagious Interview (หรือ Famous Chollima, Void Dokkaebi) โดยแคมเปญนี้ส่งอีเมลฟิชชิงกว่า 250 ฉบับในช่วง 6 สัปดาห์ไปยังบุคลากรในเกือบ 100 องค์กรทั่วโลก ครอบคลุมภาคการเงิน คริปโทเคอร์เรนซี การศึกษา และเทคโนโลยี โดยหลอกให้เหยื่อโคลน GitHub Repository ที่ปลอมเป็นโปรเจกต์เทคนิคหรือการทดสอบรับสมัครงาน แล้วเปิดใน VS Code หรือ Cursor ซึ่งจะรันมัลแวร์อัตโนมัติทันทีที่เปิดโปรเจกต์โดยไม่ต้องมีการโต้ตอบจากผู้ใช้
มัลแวร์รองรับระบบปฏิบัติการทั้ง Windows, macOS และ Linux โดยติดตั้ง VS Code Extension ปลอมที่แฝงตัวเป็นบริการ Google เพื่อสื่อสารกับเซิร์ฟเวอร์ภายนอก ขโมย Credential จากเบราว์เซอร์และแอปกระเป๋าเงินดิจิทัล รวมถึงรันคำสั่งระยะไกลบนเครื่องเหยื่อ นอกจากนี้ยังพบ VS Code Extension อันตรายอีก 3 ตัวบน Marketplace อย่างเป็นทางการที่ปลอมเป็นเครื่องมือ Jupyter Notebook แต่แท้จริงแล้วเป็น Backdoor หลายขั้นตอนที่ใช้ SharePoint เป็นช่องทาง C2 ผ่าน Microsoft Graph API จากข้อมูลของบริษัท Expel แคมเปญเหล่านี้ขโมยกระเป๋าเงินดิจิทัลรวม 26,584 รายการจากนักพัฒนา 2,726 ราย คิดเป็นมูลค่า 12 ล้านดอลลาร์สหรัฐในช่วง 3 เดือนแรกของปี 2569
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 16 มิถุนายน พ.ศ. 2569 ว่า นักวิจัยจากบริษัท Proofpoint ได้เผยแพร่รายงานเกี่ยวกับแคมเปญโจมตีทางไซเบอร์ 2 แคมเปญที่มีความเชื่อมโยงกับกลุ่มภัยคุกคามจากเกาหลีเหนือที่รู้จักกันในชื่อ Contagious Interview โดยแคมเปญหลักที่มีชื่อรหัสว่า UNK_DeadDrop ใช้อีเมลฟิชชิงที่มีธีมเกี่ยวกับการสมัครงานตำแหน่งนักพัฒนาซอฟต์แวร์และการตรวจสอบโค้ด ส่งไปยังบุคลากรในเกือบ 100 องค์กรทั่วโลก ครอบคลุมภาคการเงิน คริปโทเคอร์เรนซี การศึกษา เทคโนโลยี และอุตสาหกรรมอื่นๆ
นาย Saher Naumaan และนาย Carlos Rubio นักวิจัยจาก Proofpoint อธิบายว่าห่วงโซ่การโจมตีเริ่มจากอีเมลที่มีลิงก์ไปยัง GitHub Repository ที่ควบคุมโดยผู้โจมตี ซึ่งบรรจุสคริปต์อันตรายที่นำไปสู่การรันมัลแวร์ข้ามแพลตฟอร์มทั้ง macOS, Linux และ Windows รวมถึงเฟรมเวิร์กโอเพนซอร์สภาษา Go ชื่อ Overlord จุดสำคัญที่เชื่อมโยงกับเกาหลีเหนือคือการใช้โปรเจกต์ VS Code ที่ใช้เทคนิค “runOn: folderOpen” เพื่อรันโค้ดอันตรายทุกครั้งที่เปิด Code Editor โดยไม่ต้องมีการโต้ตอบจากผู้ใช้ ซึ่งเป็นเทคนิคที่กลุ่ม Contagious Interview ใช้มาตั้งแต่เดือนธันวาคม 2568
แคมเปญนี้ส่งอีเมลกว่า 250 ฉบับในช่วง 6 สัปดาห์ โดยกว่า 75% ของเป้าหมายอยู่ในสหรัฐอเมริกา ตามด้วยสหราชอาณาจักร ออสเตรเลีย ฝรั่งเศส บราซิล เยอรมนี อินเดีย อิสราเอล ญี่ปุ่น และเนเธอร์แลนด์ ผู้โจมตีจะหลอกให้เหยื่อโคลน Repository ที่ปลอมตัวเป็นโปรเจกต์เทคนิคหรือโปรเจกต์คริปโทเคอร์เรนซี แล้วเปิดใน VS Code หรือ Cursor ซึ่งจะรันมัลแวร์ Loader เฉพาะแต่ละระบบปฏิบัติการโดยอัตโนมัติ สำหรับ macOS และ Linux ใช้ Shell Script ส่วน Windows ใช้ VBScript โดย Loader จะติดตั้ง VS Code Extension อันตราย (VSIX) ที่แฝงตัวเป็นบริการ Google เพื่อสื่อสารกับเซิร์ฟเวอร์ภายนอก รันคำสั่งระยะไกล สำรวจระบบ และขโมยข้อมูลจาก Wallet Extension, Credential และแอปกระเป๋าเงินบนเดสก์ท็อป
นอกจากแคมเปญ UNK_DeadDrop แล้ว บริษัท Yeeth Security ยังพบ VS Code Extension อันตรายอีก 3 ตัวบน Marketplace อย่างเป็นทางการ ได้แก่ ByteBinTools.jupyter-powerdev-2026.6.8.vsix, ToolCraft.jupyter-powertools-3.21.0.vsix และ OLDev.markdown-mode-devtools-2.1.0.vsix ซึ่งปลอมตัวเป็นเครื่องมือเพิ่มประสิทธิภาพ Jupyter Notebook แต่แท้จริงแล้วเป็น Backdoor หลายขั้นตอนที่ใช้ SharePoint เป็น Command Queue และช่องทางขโมยข้อมูลผ่าน Microsoft Graph API สามารถอ่าน เขียน และดึงไฟล์ออกจากระบบ รวมถึงรันโค้ดบนทั้ง Windows, Linux และ macOS
จากข้อมูลของบริษัท Expel พบว่าแคมเปญที่เกี่ยวข้องกับเกาหลีเหนือเหล่านี้ขโมยกระเป๋าเงินดิจิทัลรวม 26,584 รายการจากนักพัฒนา 2,726 ราย คิดเป็นมูลค่า 12 ล้านดอลลาร์สหรัฐในช่วง 3 เดือนแรกของปี 2569 โดยนาย Marcus Hutchins จาก Expel ระบุว่าแคมเปญเหล่านี้น่าจะดำเนินการโดยหลายทีม แต่ละทีมประกอบด้วยสมาชิกหลายคน และกลุ่ม Contagious Interview ยังใช้ AI เจนเนอเรทีฟช่วยพัฒนา Loader และจัดตั้งบริษัทบังหน้าสำหรับประกาศรับสมัครงานปลอมอีกด้วย
วิธีการโจมตี
ห่วงโซ่การโจมตีของ UNK_DeadDrop เริ่มจากอีเมลฟิชชิงที่มีลิงก์ไปยัง GitHub หรือ GitLab Repository ที่ควบคุมโดยผู้โจมตี ภายใน Repository จะมีโฟลเดอร์ซ่อน .vscode ที่บรรจุไฟล์ tasks.json ซึ่งกำหนด Task ที่มีค่า runOptions.runOn: "folderOpen" อันเป็นฟีเจอร์ของ VS Code ที่จะรัน Task โดยอัตโนมัติทันทีที่เปิดโฟลเดอร์ในโปรแกรมแก้ไขโค้ด จุดที่น่ากังวลคือ VS Code ยังแสดงกล่องแจ้งเตือนความน่าเชื่อถือ (Trust Prompt) ให้ผู้ใช้กดยืนยันก่อน แต่ Cursor กลับไม่แสดงกล่องเตือนใดๆ เลย ทำให้การเปิดโฟลเดอร์ที่มี tasks.json แบบนี้ใน Cursor เกิดการรันโค้ดอันตรายแบบเงียบทันทีโดยไม่ต้องมีการโต้ตอบจากผู้ใช้แม้แต่น้อย
Task ที่ถูกกำหนดไว้จะรันคำสั่งเฉพาะแต่ละแพลตฟอร์ม โดยบน Linux/macOS จะเรียก /bin/bash vendor/run-update.sh ส่วนบน Windows จะเรียก wscript.exe //B //Nologo vendor/run-update-hidden-launch.vbs (รันแบบซ่อนหน้าต่าง) จากนั้นห่วงโซ่การโจมตีจะแยกทางกันตามระบบปฏิบัติการ โดย Linux และ macOS ใช้ไฟล์ Binary ภาษา Go ที่ดัดแปลงจากเฟรมเวิร์กโอเพนซอร์ส Overlord (github[.]com/vxaboveground/Overlord) ทำงานเป็น RAT เต็มรูปแบบพร้อมการเชื่อมต่อ WebSocket Secure (WSS) แบบถาวร ในขณะที่ Windows รัน Pipeline แบบ Node.js ทั้งหมดภายใน Electron Process ของโปรแกรมแก้ไขโค้ดเอง
บนสาย Linux/macOS สคริปต์ run-update.sh เป็น Bash Script ที่ฝัง Payload แบบ Base64 ไว้ เมื่อรันจะติดตั้ง VSIX Extension ลงในโปรแกรมแก้ไขโค้ดทุกตัวที่มี (Cursor, VS Code, VSCodium), เลือก Go Binary ที่ตรงกับสถาปัตยกรรม, ลบ Quarantine Attribute บน macOS แล้วรัน Overlord แบบ Detached ผู้โจมตีเพิ่มโมดูลเข้ามา 3 ตัว ได้แก่ browserlogin (ขโมย Credential จาก Chrome และ Firefox), companywallet (ขโมยกระเป๋าเงินคริปโทแบบ 2 เฟส บีบอัด ZIP แล้วอัปโหลด) และ cleanup (ลบร่องรอยเชิงนิติวิทยาศาสตร์) เมื่อ Overlord ทำงานจะเชื่อมต่อ WebSocket ไปยังเซิร์ฟเวอร์ C&C ที่ IP 23.137.105[.]75 พอร์ต 5173 ทันที การขโมยข้อมูลแบ่งเป็น 2 เฟส เฟสแรกเก็บข้อมูล Wallet Extension และโปรไฟล์เบราว์เซอร์อัปโหลดขึ้น C&C แล้วรอ 5 นาที เฟสที่สองบน macOS จะใช้ Mach-O Binary ชื่อ darwin-password-prompt แสดง Popup ปลอมหลอกให้กรอกรหัสผ่านระบบ แล้วปรับ Keychain ACL ของเบราว์เซอร์ (Chrome, Brave, Edge, Opera, Vivaldi, Arc, Yandex, Chromium) ดึง Safe Storage Key และรันตัวเองใหม่ในสิทธิ์ root เพื่อ Dump Login Keychain ทั้งหมด ส่วนบน Linux ใช้เครื่องมือ Zenity สร้างกล่องโต้ตอบ GTK ปลอมเก็บรหัสผ่าน แล้วอ่านรหัสผ่านเบราว์เซอร์จาก GNOME Keyring
บนสาย Windows จะไม่มีการวาง Go Binary ลงดิสก์เลย แต่รันเป็น JavaScript ทั้งหมดภายใน Electron Process ของโปรแกรมแก้ไขโค้ดผ่านตัวแปร ELECTRON_RUN_AS_NODE=1 ซึ่งเป็นฟีเจอร์ที่มีเอกสารรองรับของ Electron ที่เปลี่ยนโปรแกรมแก้ไขโค้ดให้กลายเป็น Node.js Interpreter ธรรมดา ทำให้ Process ปรากฏเป็น Code.exe ใน Task Manager และไม่มีไฟล์ Binary ให้ตรวจจับ ไฟล์ run-update.cmd จะถอดรหัสสคริปต์ที่ฝังไว้ ติดตั้ง VSIX แล้ววางไฟล์เข้ารหัส 3 ไฟล์ (windows-js-pipeline.js.enc, windows-agent-node.js.enc, detect_malware.py.enc) ซึ่งถอดรหัสตอนรันด้วยกุญแจ AES-256-GCM ที่ฝังไว้ตายตัว: 4f7a8c3d2e1b5f9071a6b2c8d4e3f50a92b1c7d6e8f4a30b5c2d9e1f7a6b8c4d มัลแวร์จะสแกนหากระเป๋าเงินจาก Wallet Extension 35 รายการ (MetaMask, Phantom, Rabby, Keplr ฯลฯ) และแอปกระเป๋าเงินแบบ Standalone อีก 18 ตัว (Exodus, Electrum, Ledger Live, Monero, Solana CLI, Bitcoin ฯลฯ) จากนั้นดาวน์โหลด Python 3.12.8 มาติดตั้งในไดเรกทอรีของเบราว์เซอร์เพื่อผ่านการตรวจสอบ Path ของ App-Bound Encryption แล้วรันตัวขโมย Credential (detect_malware.py) ที่ใช้เทคนิคหลบหลีก DPAPI + App-Bound Encryption ผ่าน COM Elevation Service, ขโมยรหัสผ่าน Firefox จาก key4.db + logins.json, ขโมย Cookie จาก Chrome/Edge/Brave และมีวิธีอ่านฐานข้อมูลที่ถูกล็อกถึง 5 ชั้น รวมถึงการใช้ Volume Shadow Copy (VSS) เมื่อขโมยข้อมูลเสร็จ Pipeline บน Windows จะอัปโหลด ZIP ผ่าน HTTP POST ไปยัง C&C ทำความสะอาดแล้วยุติการทำงาน โดยไม่รักษาการเชื่อมต่อถาวรและไม่สร้าง Persistence ผ่าน VSIX เหมือนบน Linux/macOS
หลังจบการโจมตี ห่วงโซ่จะลบ Payload และไดเรกทอรีอันตรายออกจาก Repository ที่โคลนไว้เพื่อทำลายหลักฐาน แต่ยังคง Persistence ผ่าน VSIX Extension บน macOS และ Linux ที่จะเปิดใช้งานใหม่ทุกครั้งที่เปิดโปรแกรมแก้ไขโค้ด นอกจากนี้ยังมีรายงานพบ VS Code Extension อันตรายบน Marketplace อย่างเป็นทางการที่ใช้สถาปัตยกรรม C2 ซับซ้อนกว่า โดยใช้ SharePoint Site เป็น Command Queue, ระบบลงทะเบียนเหยื่อ และช่องทางขโมยข้อมูลผ่าน Microsoft Graph API สามารถรันคำสั่ง อ่าน-เขียนไฟล์ และดึงข้อมูลออกจากระบบได้ครบวงจร
ผลกระทบต่อไทย
แม้ว่าเป้าหมายหลักของแคมเปญ UNK_DeadDrop จะอยู่ในสหรัฐอเมริกาและยุโรป แต่นักพัฒนาซอฟต์แวร์ในประเทศไทยก็มีความเสี่ยงไม่น้อย เนื่องจากอุตสาหกรรมเทคโนโลยีและฟินเทคในไทยเติบโตอย่างรวดเร็ว นักพัฒนาจำนวนมากทำงานรับจ้างหรือ Freelance ให้กับบริษัทต่างประเทศ และมักได้รับข้อเสนอทดสอบโค้ดหรือโปรเจกต์ผ่าน GitHub เป็นประจำ การที่ผู้โจมตีใช้ธีมการสมัครงานและตรวจสอบโค้ดทำให้มีโอกาสหลอกนักพัฒนาไทยที่กำลังหางานหรือรับ Freelance ได้สูง นอกจากนี้การใช้ VS Code ซึ่งเป็น Code Editor ที่นิยมที่สุดในไทยเป็นช่องทางโจมตีก็ยิ่งเพิ่มพื้นผิวการโจมตี สิ่งที่น่ากังวลคือ Extension อันตรายบน Marketplace อย่างเป็นทางการ ซึ่งนักพัฒนาส่วนใหญ่เชื่อถือโดยไม่ตรวจสอบ
คำแนะนำ
นักพัฒนาซอฟต์แวร์ควรระมัดระวังอย่างยิ่งเมื่อได้รับอีเมลหรือข้อความชวนให้โคลน Repository จาก GitHub โดยเฉพาะที่อ้างว่าเป็นการทดสอบรับสมัครงานหรือตรวจสอบโค้ด ควรตรวจสอบไฟล์ .vscode/tasks.json, .vscode/settings.json และ package.json ก่อนเปิดโปรเจกต์ใน VS Code เสมอ ปิดการทำงานอัตโนมัติของ Task ใน VS Code โดยตั้งค่า “task.allowAutomaticTasks” เป็น “off” ตรวจสอบ VS Code Extension ที่ติดตั้งอยู่เป็นประจำ โดยเฉพาะ Extension ที่ไม่คุ้นเคยหรือมียอดดาวน์โหลดต่ำ และใช้ Endpoint Protection ที่สามารถตรวจจับพฤติกรรมผิดปกติจาก Code Editor ได้
Indicators of Compromise (IoCs)
หมายเหตุ: Indicator ทั้งหมด defang ไว้แล้ว (เช่น
evil[.]com,23.137.105[.]75) ห้ามคลิกหรือเชื่อมต่อโดยตรง
เซิร์ฟเวอร์ C&C และ IP ผู้ส่ง
| Indicator | ประเภท | รายละเอียด |
|---|---|---|
| 23.137.105[.]75:5173 | IP address | เซิร์ฟเวอร์ C&C |
| 170.205.29[.]83 | IP address | IP ผู้ส่งอีเมล |
| 170.205.30[.]227 | IP address | IP ผู้ส่งอีเมล |
โดเมนผู้ส่ง (Sender Domains)
| Indicator | ประเภท | รายละเอียด |
|---|---|---|
| ondofinance[.]tech | Domain | โดเมนผู้ส่ง (เม.ย. 2569) |
| nxlog[.]tech | Domain | โดเมนผู้ส่ง (เม.ย. 2569) |
| empowerpharmacy[.]space | Domain | โดเมนผู้ส่ง (เม.ย. 2569) |
| migadyn[.]info | Domain | โดเมนผู้ส่ง (เม.ย. 2569) |
| valorecuiting[.]online | Domain | โดเมนผู้ส่ง (เม.ย. 2569) |
| pulsynk[.]org | Domain | โดเมนผู้ส่ง (พ.ค. 2569) |
| trixauvex[.]org | Domain | โดเมนผู้ส่ง (พ.ค. 2569) |
| trixauvexnet[.]ink | Domain | โดเมนผู้ส่ง (พ.ค. 2569) |
| contacttrixauvex[.]ink | Domain | โดเมนผู้ส่ง (พ.ค. 2569) |
| onoplanoai[.]ink | Domain | โดเมนผู้ส่ง (พ.ค. 2569) |
| recruitvex[.]us | Domain | โดเมนผู้ส่ง (พ.ค. 2569) |
| predicttocareer[.]space | Domain | โดเมนผู้ส่ง (พ.ค. 2569) |
| hyperdevpipline[.]org | Domain | โดเมนผู้ส่ง (พ.ค. 2569) |
GitHub / GitLab Repository อันตราย
| Indicator | ประเภท |
|---|---|
| hxxps://github[.]com/Pulsynk/pulsynk | URL |
| hxxps://github[.]com/Trixauvex-org/trixauvex | URL |
| hxxps://github[.]com/PedrinPY/rekt-db | URL |
| hxxps://github[.]com/sr-werney/forge-4626invariants | URL |
| hxxps://github[.]com/skyjum/x402-kit | URL |
| hxxps://gitlab[.]com/pulsynk-org/rekt-db.git | URL |
File Hashes (SHA256)
| SHA256 | ไฟล์ |
|---|---|
| c935808147f0236c81483d7bbeda4b9d602f3595d5d4057f8115d39e222d1c4b | tasks.json |
| 35813f4401d3ad77b618275473a556eb47bfa6f4b7439dd8943b19f81aa7252e | settings.json |
| 4c0d9b802c075be79e9edb52d88f8dd72e6904f5c58267213745818470945c78 | run-update-hidden-launch.vbs |
| 62761f38ed194c59abe15c49f09f0ebc431ac852c965180c9327ed84d3a454fb | run-update.cmd |
| 734699773e53d995f20d485eb61261033d9d00b4332b39ca26071bcd60cd352f | run-update.sh |
| d3ebce2f05fe91a8260e87fd11a6ea17c156703d081b3f91d9bbe5fd6aeedc10 | gus-node-bootstrap.js |
| 91b9381d19b2e6a2db5cc0307167979b502731cb3fb50da684479e9ed35261aa | windows-agent-node.js.enc |
| 6cf9f7b2aa456a0b438600588df869b38d8007e28f01fa96022f9d8059f120b0 | windows-js-pipeline.js.enc |
| 2812e0847d472cb8870c94f463331dbe53b84135132b9bf5f6d84c2382be628f | detect_malware.py.enc |
| 52886aab179f26421678ff23af1b0fabf0a17ffbb534369cdbbac8008cbed8e7 | google-update-support.vsix |
| d5e9288693aa745dc89368deac677e7ea1ec81e663283af30838cdae189b7a7e | extension.js |
| a2b9a769df84d9d3a4694bb0252a2c6a5e5f5d1a85a04565362737092bbb3a86 | google-update-support-linux-amd64 |
| bb10adac5b0124efedfe71102c1d5638135ec9e1cde8c8cb3353c5ed91bb9f81 | google-update-support-darwin-amd64 |
| 339907b44f161f57ff30819f422c552382ff437b3ae437463b4222cfe86bd943 | google-update-support-darwin-arm64 |
| 808e7154b7af2bc7a4b28d577297c55f77221c355191cbe00f9f1810b6d4a619 | darwin-password-prompt |
กุญแจเข้ารหัส
| Indicator | ประเภท | รายละเอียด |
|---|---|---|
| 4f7a8c3d2e1b5f9071a6b2c8d4e3f50a92b1c7d6e8f4a30b5c2d9e1f7a6b8c4d | AES-256-GCM key | กุญแจถอดรหัส Payload บน Windows |
