สรุปสั้น
ผู้โจมตีที่มีความเชื่อมโยงกับเกาหลีเหนือถูกระบุว่าอยู่เบื้องหลังแคมเปญ malvertising บนระบบปฏิบัติการ macOS ที่ซับซ้อน ซึ่งเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าเว็บปลอมที่แสดงลำดับการอัปเดตระบบแบบเต็มจอทั้งที่ไม่มีการอัปเดตจริง เพื่อส่งมัลแวร์ในฐานะวิวัฒนาการรอบใหม่ของแคมเปญ Contagious Interview ที่ดำเนินมายาวนาน โดยบริษัท AllSecure ซึ่งเป็นผู้เปิดเผยรายงานต่อ The Hacker News ระบุว่าจุดเด่นของการโจมตีคือหน้าจออัปเดต macOS ปลอมที่แอบคัดลอกคำสั่งโจมตีลงคลิปบอร์ดของเหยื่อ แล้วหลอกให้เหยื่อเปิดแอป Terminal เพื่อวางคำสั่งนั้นและกดรัน ซึ่งเป็นเทคนิคที่รู้จักกันในชื่อ ClickFix
“ประสบการณ์นี้ถูกออกแบบมาเพื่อกระตุ้นความตื่นตระหนก” AllSecure ระบุในรายงาน “เครื่องคอมพิวเตอร์ดูเหมือนค้างหรือกำลังรีบูต ผู้ใช้ที่เชื่อว่าระบบปฏิบัติการล้มเหลวจึงทำตามคำสั่งที่ปกติแล้วเขาจะรู้สึกว่าน่าสงสัย” อีกจุดที่น่าสนใจของแคมเปญนี้คือการวางเซิร์ฟเวอร์ควบคุมไว้บนบล็อกเชน โดยมัลแวร์จะดึงที่อยู่เซิร์ฟเวอร์ที่ใช้งานจริงออกมาจากสัญญาอัจฉริยะบน Ethereum ซึ่งเป็นแนวทางที่ทนต่อการถูกปิดกั้นและเรียกกันว่า EtherHiding โดยกลุ่มภัยคุกคามเกาหลีเหนือเคยใช้ในแคมเปญที่เกี่ยวข้องกับ Contagious Interview (หรือที่รู้จักในชื่อ UNC5342) มาก่อนแล้ว
เป้าหมายปลายทางของการโจมตีคือการเปิดทางให้รันโค้ดจากระยะไกล ทำให้อิมแพลนต์สามารถติดต่อเซิร์ฟเวอร์ควบคุมเพื่อดึงเพย์โหลดเพิ่มอีก 2 ตัว ได้แก่ ตัวขโมยข้อมูลที่เล็งกระเป๋าเงินคริปโตถึง 157 ยี่ห้อ และส่วนขยาย Chrome อันตราย จุดที่ทำให้แคมเปญนี้ต่างจาก Contagious Interview รุ่นก่อน ๆ อย่างชัดเจนคือเหยื่อล่อ เพราะแทนที่จะเป็นข้อเสนองานที่น่าสงสัย การประเมินผ่านวิดีโอ หรือแบบทดสอบเขียนโค้ดอย่างที่กลุ่มนี้เคยใช้ คราวนี้มันเริ่มจากการค้นหาข้อมูลบนเว็บที่ดูไม่มีพิษภัยเลย
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 30 กรกฎาคม 2569 ว่า บริษัท AllSecure ได้เปิดเผยแคมเปญ malvertising บน macOS ที่เชื่อมโยงกับเกาหลีเหนือ ซึ่งใช้หน้าอัปเดตปลอมส่งมัลแวร์ขโมยคริปโต โดยลูกโซ่การโจมตีเริ่มจากการคลิกผลการค้นหาของบริษัทเป้าหมายรายหนึ่งที่ไม่มีการเปิดเผยชื่อ และทันทีที่เว็บไซต์เปิดขึ้น เบราว์เซอร์ก็จะแสดงข้อความรีบูต macOS แบบเต็มจอ สร้างภาพลวงว่ากำลังมีการอัปเดตซอฟต์แวร์อยู่ ขณะเดียวกันก็แอบจัดฉากสำหรับขั้นตอนติดเชื้อถัดไปไปด้วย
ในกรณีที่ AllSecure พบ เหยื่อกำลังค้นหาข้อมูลเกี่ยวกับเครื่อง electrophoresis ซึ่งเป็นอุปกรณ์ห้องปฏิบัติการ แล้วคลิกผลการค้นหาแบบสปอนเซอร์ของบริษัทที่ดูเหมือนขายอุปกรณ์ชนิดนั้น ลำดับการติดเชื้อก็เริ่มขึ้นทันทีที่หน้าเว็บปลอมโหลดขึ้นมาในเบราว์เซอร์ ซึ่งแสดงให้เห็นว่าผู้โจมตีลงทุนซื้อโฆษณาบนเครื่องมือค้นหาเพื่อดักเหยื่อที่กำลังหาข้อมูลเชิงธุรกิจอยู่จริง
เมื่อลำดับการอัปเดตปลอมทำงานจนจบ หน้าเว็บปลอมจะแจ้งให้ผู้ใช้เปิดแอป Terminal แล้ววางคำสั่งที่ถูกคัดลอกลงคลิปบอร์ดไว้เรียบร้อยแล้ว สิ่งที่น่าสนใจคือความพยายามทำซ้ำลำดับเดียวกันนี้กลับไม่ให้ผลแบบเดิม ซึ่งหมายความว่ากลไกกระตุ้นการทำงานถูกออกแบบมาให้ใช้ได้ครั้งเดียว เป็นเทคนิคที่ทำให้นักวิจัยวิเคราะห์ย้อนหลังได้ยากขึ้นและช่วยยืดอายุของโครงสร้างพื้นฐานฝั่งผู้โจมตี
คำสั่งที่ถูกวางลงใน Terminal คือคำสั่ง curl ที่ออกแบบมาเพื่อดึงมัลแวร์ขั้นถัดไปเข้ามา นำไปสู่การรันแบ็กดอร์ที่เขียนด้วย Node.js ซึ่งใช้ LaunchAgent เป็นกลไกฝังตัว และเรียกสัญญาบน Ethereum เพื่อหาที่อยู่ของเซิร์ฟเวอร์ควบคุม อิมแพลนต์ตัวนี้ถูกตั้งค่าให้ติดต่อเซิร์ฟเวอร์ทุก 5 นาที และรันโค้ด JavaScript ใด ๆ ที่เซิร์ฟเวอร์ส่งกลับมา
นาย Christian Papathanasiou ผู้ร่วมก่อตั้งและประธานเจ้าหน้าที่บริหารของ AllSecure ระบุว่า “บริบทของการส่งมัลแวร์ก็น่าสนใจไม่แพ้กัน แคมเปญที่เชื่อมโยงกับเกาหลีเหนือมักถูกอธิบายผ่านมุมของการสัมภาษณ์งานปลอมและการชักชวนนักพัฒนา แต่กรณีนี้แสดงให้เห็นว่าตรรกะการทำงานแบบเดียวกันปรากฏขึ้นในสถานการณ์การท่องเว็บทั่วไปด้วย นี่ไม่ได้มาแทนที่รูปแบบงานปลอม แต่เป็นการขยายกรอบภัยคุกคามให้กว้างขึ้น”

วิธีการโจมตี
กลไก EtherHiding ทำหน้าที่เป็นท่อส่งเพย์โหลด 2 ตัว ตัวแรกคือมัลแวร์ขโมยข้อมูลที่กวาดข้อมูลจากเว็บเบราว์เซอร์หลายยี่ห้อ ได้แก่ Chrome, Brave, Edge, Firefox, Opera และ Vivaldi พร้อมทั้งเล็งกระเป๋าเงินคริปโตถึง 157 ยี่ห้อ และยังกวาดรหัสผ่านที่บันทึกไว้ คุกกี้ ประวัติการเข้าชม บุ๊กมาร์ก กุญแจ SSH ข้อมูลรับรองของ AWS, Azure และ npm รวมถึงไฟล์ keystore ของ Foundry ซึ่งเป็นชุดเครื่องมือพัฒนาสัญญาอัจฉริยะ ข้อมูลชุดหลังนี้อันตรายกว่าที่คิด เพราะเปิดทางให้ผู้โจมตีต่อยอดไปยังโครงสร้างพื้นฐานคลาวด์และห่วงโซ่อุปทานซอฟต์แวร์ขององค์กรที่เหยื่อทำงานอยู่ได้
เพย์โหลดตัวที่สองคือส่วนขยายเบราว์เซอร์อันตรายชื่อ “Google Drive Offline” ที่ถูก sideload เข้าไปในเบราว์เซอร์ด้วยการแก้ไขไฟล์ Secure Preferences ของ Chrome โดยตรง แล้วใช้ดูดเงินออกจากกระเป๋าคริปโตของเหยื่อ วิธีนี้ข้ามขั้นตอนการติดตั้งผ่าน Chrome Web Store ไปทั้งหมด ทำให้ผู้ใช้ไม่เห็นคำขออนุญาตติดตั้งส่วนขยายใด ๆ
ในส่วนของโครงสร้างพื้นฐาน มัลแวร์ฝังที่อยู่ Ethereum ไว้ 2 รายการ ซึ่งทั้งคู่ทำหน้าที่เป็นการตั้งค่า EtherHiding สำหรับดึงเซิร์ฟเวอร์ควบคุมตัวจริง คือ rg-telemetry[.]sbs/api และ th-updates[.]sbs/analytics บริษัท AllSecure ระบุว่า “สัญญาแต่ละตัวถูกสร้างโดยกระเป๋าใช้แล้วทิ้งที่รันสคริปต์ 4 ขั้นตอนเหมือนกันทุกครั้ง คือเติมเงินราว 0.0126 ETH, ปล่อยสัญญา, เขียนค่าคอนฟิก, ส่งเงินที่เหลือราว 0.006 ETH ต่อไป แล้วทิ้งกระเป๋านั้นไป รูปแบบนี้บ่งชี้ถึงผู้ดำเนินการที่ทำให้การปล่อยสัญญาเป็นระบบอุตสาหกรรม คือเติมเงิน ปล่อย ตั้งค่า ดูดเงินที่เหลือ ทิ้ง แล้วทำซ้ำ”
การวิเคราะห์เพิ่มเติมยังพบว่าทั้งแบ็กดอร์และส่วนขยายที่ใช้ดูดกระเป๋าถูกจ่ายเงินสนับสนุนจากคลัสเตอร์กระเป๋าเดียวกัน ซึ่งบ่งชี้ว่ากิจกรรมทั้งสองสายน่าจะเชื่อมโยงกัน อย่างไรก็ตามรายงานฉบับเดียวกันที่ Cyber Security News นำเสนอระบุชัดว่านักวิจัยของ AllSecure ไม่ได้ฟันธง ว่าลูกโซ่การส่งมัลแวร์ทั้งสองสายมีผู้ดำเนินการที่ยืนยันได้ว่าเป็นรายเดียวกัน จุดนี้จึงควรอ่านเป็นความเชื่อมโยงทางการเงินที่ตรวจสอบได้ ไม่ใช่ข้อสรุปเรื่องตัวผู้ก่อเหตุ
ในเชิงตัวเลข AllSecure ติดตามการโอนเงินเข้าคลังของฝั่งแบ็กดอร์ได้ 464.80 ETH หรือคิดเป็นมูลค่าราว 890,000 ดอลลาร์สหรัฐ ผ่านธุรกรรมทั้งหมด 281 รายการในช่วงตั้งแต่ปลายเดือนพฤษภาคมถึงเดือนกรกฎาคม 2569 ซึ่งสะท้อนว่าแคมเปญนี้ไม่ใช่การทดลองขนาดเล็ก แต่มีรายรับสม่ำเสมอในระดับที่หล่อเลี้ยงปฏิบัติการต่อเนื่องได้จริง จุดที่ต้องเน้นคือการวางที่อยู่เซิร์ฟเวอร์ควบคุมไว้ในสัญญาอัจฉริยะทำให้การถอนหรือปิดกั้นทำได้ยากมาก เพราะไม่มีผู้ให้บริการรายใดที่จะไป “ลบ” ข้อมูลบนบล็อกเชนได้ ผู้โจมตีเพียงแค่เขียนค่าคอนฟิกใหม่ก็ย้ายเซิร์ฟเวอร์ได้ทันทีโดยไม่ต้องแก้ไขมัลแวร์ที่ฝังอยู่ในเครื่องเหยื่อเลย
ผลกระทบต่อไทย
สิ่งที่ทำให้แคมเปญนี้น่ากังวลสำหรับผู้ใช้ไทยคือการย้ายเหยื่อล่อจาก “ข้อเสนองาน” ไปเป็น “การค้นหาข้อมูลทั่วไป” เพราะเดิมทีคำแนะนำในการป้องกัน Contagious Interview คือให้ระวังคนแปลกหน้าที่ทักมาชวนสัมภาษณ์งานหรือส่งโค้ดให้ทดสอบ แต่แคมเปญนี้ไปดักที่ผลการค้นหาแบบสปอนเซอร์ ซึ่งหมายความว่าพนักงานที่แค่หาข้อมูลสินค้าหรืออุปกรณ์ตามงานประจำก็ตกเป็นเหยื่อได้ กลุ่มเสี่ยงจึงขยายจากนักพัฒนาและคนสายคริปโตไปสู่พนักงานจัดซื้อ ฝ่ายวิจัย และบุคลากรห้องปฏิบัติการทั่วไป
ผู้ใช้ Mac ในไทยเป็นกลุ่มเสี่ยงเพิ่มขึ้นอีกชั้น เพราะยังมีความเชื่อฝังลึกว่า macOS ไม่ติดมัลแวร์ องค์กรจำนวนมากจึงไม่ติดตั้ง EDR บนเครื่อง Mac ของผู้บริหารและทีมออกแบบ ขณะที่เทคนิค ClickFix ที่หลอกให้ผู้ใช้เป็นคนพิมพ์คำสั่งเองนั้นข้ามการป้องกันอย่าง Gatekeeper และการตรวจ notarization ไปได้ทั้งหมด เพราะไม่มีการดาวน์โหลดแอปที่ต้องผ่านการตรวจสอบเลย นอกจากนี้ไทยยังมีผู้ถือครองสินทรัพย์ดิจิทัลจำนวนมาก และการที่มัลแวร์ขโมยกุญแจ AWS, Azure และ npm ไปด้วย ทำให้เหตุการณ์ที่ดูเหมือนเป็นเรื่องส่วนตัวของพนักงานคนเดียวอาจลุกลามเป็นการเจาะระบบขององค์กรได้ทั้งองค์กร
คำแนะนำ
กฎเหล็กที่ต้องสื่อสารกับพนักงานทุกคนคือ ห้ามคัดลอกคำสั่งจากหน้าเว็บไปวางใน Terminal โดยเด็ดขาด ไม่ว่าหน้าเว็บนั้นจะอ้างว่าเป็นการอัปเดตระบบ การแก้ปัญหา หรือการยืนยันตัวตนก็ตาม เพราะระบบปฏิบัติการ macOS ของแท้ไม่เคยขอให้ผู้ใช้เปิด Terminal เพื่ออัปเดตตัวเอง และหน้าอัปเดตจริงจะไม่มีวันปรากฏขึ้นในเบราว์เซอร์ องค์กรควรใส่ตัวอย่างหน้าจอปลอมแบบนี้เข้าไปในหลักสูตรอบรมความตระหนักด้านความมั่นคงปลอดภัยด้วย
ในเชิงเทคนิค ควรติดตั้งและเปิดใช้งาน EDR บนเครื่อง macOS ให้ครบเท่ากับที่ทำกับ Windows แล้วตั้งกฎเฝ้าระวังการรัน curl หรือ osascript ที่ตามด้วยการรันสคริปต์จากอินเทอร์เน็ต การสร้าง LaunchAgent ใหม่ในโฟลเดอร์ของผู้ใช้ และโปรเซส Node.js ที่ติดต่อออกอินเทอร์เน็ตเป็นช่วงเวลาสม่ำเสมอ เช่นทุก 5 นาที ซึ่งเป็นสัญญาณ beacon ที่ชัดเจน พร้อมทั้งตรวจสอบความเปลี่ยนแปลงของไฟล์ Secure Preferences ของ Chrome และตรวจรายการส่วนขยายที่ติดตั้งอยู่จริงเทียบกับที่ควรมี โดยเฉพาะส่วนขยายชื่อ Google Drive Offline
ในระดับเครือข่าย ควรพิจารณาบล็อกหรือเฝ้าระวังการเข้าถึงโดเมนระดับบนสุด .sbs ซึ่งพบเป็นโครงสร้างพื้นฐานในแคมเปญนี้ และเฝ้าระวังการเชื่อมต่อไปยัง RPC endpoint ของ Ethereum จากเครื่องที่ไม่มีเหตุผลทางธุรกิจต้องใช้บล็อกเชน เพราะเป็นสัญญาณของการดึงคอนฟิกแบบ EtherHiding สุดท้าย หากสงสัยว่าเครื่องติดเชื้อ ให้ถือว่าข้อมูลรับรองทั้งหมดบนเครื่องนั้นรั่วแล้ว ทั้งกุญแจ SSH ข้อมูลรับรองคลาวด์ โทเค็น npm และ seed phrase ของกระเป๋าคริปโต ต้องเพิกถอนและสร้างใหม่ทั้งหมด ไม่ใช่แค่ลบมัลแวร์ทิ้ง
Indicators of Compromise (IoCs)
หมายเหตุ: ตัวบ่งชี้ด้านล่างถูก defang (ใส่วงเล็บคั่นจุด) เพื่อป้องกันการคลิกโดยไม่ตั้งใจ
| ประเภท | ตัวบ่งชี้ | คำอธิบาย |
|---|---|---|
| SHA-256 | 529815d365a8ec8da165f3993ada3ad452381b56c736cd25cdf328968b4ab795 | แบ็กดอร์ Node.js RAT เวอร์ชัน 1.0.3 |
| SHA-256 | 7eca7aef8dcc46f15349509ac3dff8c0a71295c233787872c3842e058f9d7c50 | โมดูลขโมยข้อมูล |
| SHA-256 | 370a5ae7f91291559ce514f44c50430dd2c35ed866bedcf6ac5f4f896259fbed | ส่วนขยาย Chrome MV3 อันตราย |
| โดเมน | real-tumble[.]pro | โดเมนส่งมัลแวร์ขั้นแรก (stage 0) |
| C2 | rg-telemetry[.]sbs/api | เซิร์ฟเวอร์ควบคุมของแบ็กดอร์ที่ดึงมาจากสัญญาอัจฉริยะ Ethereum |
| C2 | th-updates[.]sbs/analytics | เซิร์ฟเวอร์ควบคุมของส่วนขยายที่ดึงมาจากสัญญาอัจฉริยะ Ethereum |
| RPC endpoint | eth-mainnet[.]rpcfast[.]com (ฝัง API key ไว้ในมัลแวร์) | ปลายทาง RPC ของผู้ก่อเหตุที่ใช้เรียกอ่านค่าจากสัญญา |
| Ethereum contract | 0x2acA749b59529f5CBCd6fbd34B35b1A546713dF6 | สัญญา EtherHiding เก็บคอนฟิกของแบ็กดอร์ |
| Ethereum contract | 0x85a6d913aaC80286f01Fa082ef0B96C188673043 | สัญญา EtherHiding เก็บคอนฟิกของส่วนขยาย |
| Contract selector | 0x3bc5de30 | ตัวเลือกฟังก์ชัน getter ของสัญญาอัจฉริยะ |
| XOR key | 9f10d0899beff7952f586a49305f8b14, 2752df77aeb348657f5fb59a22d65f4a | กุญแจ XOR ที่ใช้เข้ารหัสทราฟฟิก C2 |
| Ethereum wallet | 0x277765FB63601cE5A9814daf68aA2A57F54eA968, 0x89c5151236De544d077fC69813A4db89224EE8A1 | กระเป๋าที่ใช้เติมเงินให้สัญญา |
| Ethereum wallet | 0xdf16a4d0a234a2bbc4d21645d4c7a19d2db8f192, 0x75ac1ebf164c6f2ac24e73bb4c9518b8d93559e2 | กระเป๋าคลังรวมเงินของผู้ก่อเหตุ |
| Browser extension | Google Drive Offline | ส่วนขยาย Chrome ปลอมที่ sideload เข้ามาเพื่อดูดเงินจากกระเป๋าคริปโต |
| Persistence | ~/Library/LaunchAgents/com.<random>.plist, บรรทัดที่ถูกเติมใน .zshrc, ~/Library/Caches/<random>, /tmp/<random>lock | ร่องรอยกลไกฝังตัวบน macOS ติดต่อ C2 ทุก 5 นาที |
| พฤติกรรม | NODE_TLS_REJECT_UNAUTHORIZED=0, Notification Center ถูกสั่งหยุด, โปรเซส Node.js ที่รันจาก Library/Caches, เครื่องนักพัฒนาที่เรียก eth_call | ตัวบ่งชี้เชิงพฤติกรรมสำหรับตั้งกฎตรวจจับ |
| พฤติกรรม | หน้าอัปเดต macOS เต็มจอในเบราว์เซอร์ + คำสั่ง curl ในคลิปบอร์ด | ขั้นตอน ClickFix ที่หลอกให้เหยื่อรันคำสั่งเอง |
| ไฟล์ที่ถูกแก้ | Chrome Secure Preferences | ถูกแก้ไขเพื่อ sideload ส่วนขยายอันตราย |
