สรุปสั้น

นักวิจัยจากบริษัท Socket ค้นพบเอ็กซ์เทนชัน Mozilla Firefox อันตราย 16 ตัวที่ขโมย recovery phrase (mnemonic) และ private key ของกระเป๋าคริปโต เอ็กซ์เทนชันเหล่านี้ปลอมตัวเป็นพอร์ทัลกระเป๋า ยูทิลิตีบนเดสก์ท็อป และเครื่องมือเบราว์เซอร์ โดย 4 ตัวเป็นร่างโคลนของ Rabby Wallet ที่ตั้งชื่อหลอกตาว่า “Raabby WaIIet” ส่วนอีก 12 ตัวเป็นร่างโคลนที่เลียนแบบหน้าตา OKX Wallet โค้ดจะดักจับความลับระหว่างขั้นตอนนำเข้ากระเป๋า แล้วส่งไปยัง Cloudflare Workers ที่ผู้โจมตีควบคุม ขณะที่ manifest ของทุกตัวประกาศว่าไม่เก็บข้อมูลใด ๆ ซึ่งขัดกับพฤติกรรมจริง

Socket ประเมินด้วยความมั่นใจสูงว่าแคมเปญนี้เป็นความต่อเนื่องของระลอกที่บริษัทเคยรายงานในเดือนสิงหาคม 2569 ผู้โจมตีเปลี่ยนชื่อแพ็กเกจ เวอร์ชัน ID เอ็กซ์เทนชัน คำอธิบาย และหน้าตาไปเรื่อย ๆ แต่ใช้หน้าจอกระเป๋า ตรรกะจัดการ credential และโครงสร้างเครือข่ายชุดเดิม ซึ่ง Socket สรุปว่ามีระบบ builder สร้างร่างแปลงอัตโนมัติ ณ วันที่ 5 ตุลาคม 2569 Mozilla ถอดเอ็กซ์เทนชันทั้งหมดออกแล้ว แต่ผู้ที่เคยกรอก seed phrase หรือ private key จริงลงไปต้องถือว่ากระเป๋าถูกเจาะ และย้ายทรัพย์สินไปยังกระเป๋าใหม่ที่สร้างจากเครื่องที่สะอาด

รายละเอียดข่าว

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 8 ตุลาคม 2569 อ้างรายงานของ Socket ที่เขียนโดยนาย Joseph Edwards ซึ่งเผยแพร่เมื่อวันที่ 7 ตุลาคม ว่า “เอ็กซ์เทนชันเหล่านี้ปลอมเป็นพอร์ทัลกระเป๋า ยูทิลิตีเดสก์ท็อป และเครื่องมือเบราว์เซอร์ แต่โค้ดของมันดักจับ recovery phrase และ private key ระหว่างขั้นตอนนำเข้ากระเป๋า แล้วพยายามส่งความลับเหล่านั้นไปยัง Cloudflare Workers ที่ผู้โจมตีควบคุม” เอ็กซ์เทนชัน 15 จาก 16 ตัวติดต่อโดเมนใต้ icy-star-f45c.workers[.]dev ทั้งหมดใช้ตัวระบุแคมเปญ EQOx7EIPZSNi เดียวกัน ซึ่งเคยพบในงานวิจัยก่อนหน้าของ Socket

ข่าวนี้ออกมาพร้อมกับการค้นพบเอ็กซ์เทนชันอันตรายหรือน่าสงสัยอีกหลายกลุ่มบน Firefox, Chrome และ Edge ในช่วงหลายเดือนที่ผ่านมา เช่น เอ็กซ์เทนชัน Firefox ชื่อ “ID- Pay” ที่ปลอมเป็นเครื่องมือยืนยันตัวตนก่อนเปิด PDF แต่ inject JavaScript เข้าโดเมน accounts.google[.]com เพื่อขโมย session cookie กลุ่มเอ็กซ์เทนชัน 32 ตัวบน Chrome Web Store และ Edge Add-ons ที่สลับแท็บไปยัง URL ที่กำหนดจากคอนฟิกระยะไกล ซึ่งโยงกับผู้โจมตีที่ใช้ภาษาเกาหลี กลุ่มราว 30 ตัวที่แอบอ้างชื่อบุคคลดังในวงการการเงินเพื่อพาเหยื่อไปหน้าฟิชชิงกระเป๋าคริปโต และกลุ่ม 31 ตัวภาษารัสเซียที่โฆษณาเป็น VPN สำหรับบริการที่ถูกบล็อกในรัสเซียแต่ส่งทราฟฟิกผ่าน proxy ที่ดึงรายชื่อเซิร์ฟเวอร์จาก GitHub Pages รวมถึงเอ็กซ์เทนชัน Stylish และ Poper Blocker บน Chrome ที่ถูกพบว่าเก็บบทสนทนากับแชตบอต AI

วิธีการโจมตี

ร่างโคลน Rabby

ใน background.js มีฟังก์ชัน self._lv ที่รับ phrase 12 คำ 24 คำ หรือ private key แบบ hex 64 ตัวอักษร ตัดค่าซ้ำ เข้ารหัส URL แล้วส่งไปยัง Worker การเรียกฟังก์ชันนี้ถูกแทรกไว้หลังการทำงานจริงของกระเป๋า เช่น การนำเข้า private key และการสร้าง mnemonic keyring ทำให้กระเป๋ายังใช้งานได้ปกติและผู้ใช้ไม่ทันสังเกต ยังมีฟังก์ชันช่วยอีกตัวใน 977.js ที่ถูกคัดลอกไปไว้ในเส้นทางนำเข้าของ UI หลายจุด ความลับหนึ่งค่าจึงอาจถูกส่งออกหลายครั้ง การส่งใช้ HTTPS GET แบบ no-cors และ keepalive ไปยัง silent-wind-get.icy-star-f45c.workers[.]dev โดยใส่ความลับดิบไว้ในพารามิเตอร์ w ของ query string และสำรองด้วย XMLHttpRequest หาก fetch ล้มเหลว ซึ่ง Socket ชี้ว่าทำให้ความลับไปปรากฏในล็อกของเซิร์ฟเวอร์และตัวกลางระหว่างทางด้วย

ร่างโคลน OKX

หน้าจอขอ recovery phrase จากผู้ใช้แล้วส่งไปยัง background script ในข้อความ SEED_PHRASE_IMPORT ซึ่งยังรับข้อความแบบเก่า WALLET_SYNC ด้วย โดยบังคับให้มี 12 หรือ 24 คำพอดี แล้วส่ง JSON ที่มี phrase ดิบในฟิลด์ w ด้วย HTTPS POST ไปยัง Worker 3 โฮสต์ สคริปต์หนึ่งใช้ช่องทางส่งออกถึง 3 แบบ คือ navigator.sendBeacon, fetch แบบ no-cors และ GET ผ่านรูปภาพพิกเซลเป็นทางสำรอง ร่างแปลงตัวหนึ่งมีคอมเมนต์ในโค้ดอ้างว่าส่งไปเพียงแฮชและจำนวนคำ แต่โค้ดจริงส่ง phrase ดิบ ซึ่ง Socket มองว่าเป็นการปกปิดโดยเจตนา ส่วนตัว sipoo-grozza ใช้งานไม่ได้เพราะ manifest ไม่ได้ประกาศ background.js แต่ Socket ย้ำว่าเป็นความผิดพลาดในการส่งมอบ ไม่ใช่หลักฐานว่าไม่เป็นอันตราย รายงานของ Socket ยังระบุจำนวนร่างโคลน OKX ไม่ตรงกันในสองจุด คือ 12 ตัวและ 10 ตัวอย่าง Web3 Portal

ผลกระทบ

recovery phrase หรือ private key ที่หลุดไปแล้วคือการเสียสิทธิ์ควบคุมกระเป๋าอย่างถาวร การเปลี่ยนรหัสผ่านของเอ็กซ์เทนชันไม่ช่วยอะไร เพราะ seed phrase ยังใช้กู้กระเป๋าได้ทุกที่ ทุกบัญชีที่ derive มาจาก mnemonic เดียวกันจึงต้องถือว่าถูกเจาะทั้งหมด ความเสี่ยงยังกระจายไปถึงทุกโปรไฟล์ Firefox และอุปกรณ์ที่ซิงก์เอ็กซ์เทนชันไว้

ในภาพรวม การที่ผู้โจมตีใช้ builder สร้างร่างแปลงใหม่ได้เร็วทำให้การถอดเอ็กซ์เทนชันทีละรอบเป็นเพียงการไล่ตาม และการตรวจรีวิวของร้านเอ็กซ์เทนชันยังไม่เพียงพอจะจับเอ็กซ์เทนชันที่โค้ดหลักเหมือนเดิมแต่เปลี่ยนเปลือกนอก ประกอบกับกระแสเอ็กซ์เทนชันที่เก็บบทสนทนา AI และส่งทราฟฟิกผ่าน proxy เอ็กซ์เทนชันเบราว์เซอร์จึงเป็นพื้นผิวการโจมตีที่องค์กรควรบริหารจัดการเหมือนซอฟต์แวร์ที่ติดตั้งบนเครื่อง

คำแนะนำ

  • ผู้ใช้ที่ติดตั้งเอ็กซ์เทนชันในรายการ ให้ลบออกจากทุกโปรไฟล์ Firefox และทุกอุปกรณ์ที่ซิงก์ไว้
  • หากเคยกรอก seed phrase หรือ private key จริง ให้สร้างกระเป๋าใหม่ด้วย recovery phrase ใหม่บนเครื่องที่สะอาด ย้ายทรัพย์สินออก และเพิกถอน token approval ของกระเป๋าเดิม
  • ติดตั้งกระเป๋าคริปโตจากลิงก์บนเว็บไซต์ทางการของผู้ให้บริการเท่านั้น และตรวจชื่อผู้พัฒนาให้ตรงก่อนติดตั้ง
  • องค์กรควรใช้นโยบาย allowlist เอ็กซ์เทนชันผ่าน enterprise policy ของ Firefox/Chrome/Edge บล็อก ID และแฮช XPI ที่ระบุ และค้นคลังเอ็กซ์เทนชันหาแฮช background.js และสตริง EQOx7EIPZSNi, Raabby WaIIet, SEED_PHRASE_IMPORT, WALLET_SYNC
  • ค้นล็อก proxy/DNS หาโฮสต์ Worker ในตาราง IoC โดยปิดบังค่าในฟิลด์ w เพราะเป็น seed phrase ของเหยื่อ ห้ามคัดลอกลงบันทึกเคสหรือการแจ้งเตือน และห้ามรันเอ็กซ์เทนชันบนเครื่องของนักวิเคราะห์

Indicators of Compromise (IoCs)

โดเมนทั้งหมด defang แล้ว ([.]) ก่อนใช้งานต้องแปลงกลับ

โฮสต์ปลายทาง (Cloudflare Workers)

โฮสต์คำอธิบาย
silent-wind-get.icy-star-f45c.workers[.]devปลายทางของร่างโคลน Rabby (GET)
green-firefly-ab28.icy-star-f45c.workers[.]devปลายทางของร่างโคลน OKX (POST)
small-boat-969c.icy-star-f45c.workers[.]devปลายทางของร่างโคลน OKX (POST)
flat-wildflower-f954.fondationanimalaidrelief.workers[.]devปลายทางของร่างแปลงที่ใช้งานไม่ได้

เอ็กซ์เทนชัน (ID@เวอร์ชัน · XPI SHA-256)

Extension IDเวอร์ชันXPI SHA-256
view-focus-bright@webtools.co6.12.22f9270269e631bc4fd634d741afcfc3df8f54e43e40b16f38660fe8ce6c26f51
quick-track-nest@tabtools.co8.1.18225f5d6c5d70a7e7f3abf62ea0dda1cf8bf8e70565f7db748b0d8fa602da939b
vibe-kit-tool@fasttools.co9.21.96b53369fb868efb92b60af40fbd5906fa3d3d8785a7878b4af6e4efd333a4de8
edge-hub-snap@protools.net4.12.248906dd85b0991fac14e5973b3f3f61d93ef1101504cb5867a004c762ee184ef7
core-hub-peak@neattools.example8.24.219fea0ee3c81047f5e50eeb3a2ab2a7cd70357f3e49944b7079ab3e90c9ea0e8b
sipoo-grozza@browserweb.com2.10aed5f24ce625ee6b9422083302766f74b0b9a57e1b18213328b950cc7057e35
mozart-seo@webtools.com1.4635b31b4a19b5673fcbe0fedeb3f7ed2c27fddb739685f19ca5f3d1f1d7f0083
clean-file-bar@neattools.com4.21.8d9432e41e0401715bce4ce11f4a7104d94fab1ec89be553ba57a2097e418c1a1
clean-net-timer@plugify.example4.17.1458e7255438f15aaede02fd7f8fcfdf762aa6e08608b9546fe8aa8aa399c76b7
manager-square@webtools.com1.4bb8f60b3f77d96adc93bf0515b34df7c5f1f560a9f6d0c353b7d849609e3557d
manager-course@webtools.com1.471ec70479ab78efb1e1f9507f8ff7348d5711c837cc50a0120f3a188c340f3f4
val-andrew@browserweb.com1.4e96c75cd0c9b35000b4a3ec12d5dd23ca157e94aee7271a0fe8d8d7c9f2e9096
manager-team@browserweb.com1.4faf174414ddc7099360c4ae4d16497b9846cfae71ffad5bbab820bba657f94d3
valory-andrew@browserweb.com1.4b02ae1d5a0d2a5b28f8baa2afcdc7d7090fab051536303cba3ba1f17860da980
franklin-uk@browserweb.com1.44512389444a767f12211beeb5f2ad165aca4a558e88e8f111affb30b77ed6a5a
franklin-uro@browserweb.com1.4e5c9a29d5ba0f53a49d8b333bfab17bf9878f94e8c3f325f5afacad44bb26fb5

ไฟล์ background.js (SHA-256)

แฮชคำอธิบาย
7d9d7e80ed52350616be0215a7ded10aaeb9aaa64e34ff8af7f9177c8c855799ร่างโคลน Rabby
da447fe02e4577da97144a4d92b395078954fde1ff196746413837e1e4a20bcdแกนร่างโคลน OKX
be246ca5cb1372394e0443df45454f88ca39eb4a8dcfc4a99cb8865100fb4897ร่างแปลงที่ใช้งานไม่ได้
c550f0860012e0dfab14ed65a9425961e22025e0ab23fd9d69d294a8aa34db2fOKX Web3 Portal
eb134bbf73046800c8177383754cf754b8776ec30cf5cc8a13655d259e49a4bffrontend แบบย่อที่ใช้ร่วมกัน

แหล่งอ้างอิง