กลับไปหน้าข่าวสาร

พบ 24 แพ็กเกจ npm อันตราย ใช้ unpkg Mirror โฮสต์หน้า Cloudflare CAPTCHA ปลอม เปลี่ยนโครงสร้างพื้นฐานที่เชื่อถือได้ให้เป็นช่องทาง ClickFix Phishing

แชร์:

นักวิจัยจาก OX Security เปิดเผยรายละเอียดแคมเปญที่ใช้แพ็กเกจ npm จำนวน 24 รายการ เป็นโครงสร้างพื้นฐาน Phishing แบบไม่มีค่าใช้จ่าย โดยอาศัย Mirror ของ npm อย่าง unpkg ในการโฮสต์หน้า Cloudflare CAPTCHA ปลอม ที่ Render ได้จริงบน Domain ที่น่าเชื่อถือ ก่อนรีไดเรกต์เหยื่อไปยังโครงสร้างพื้นฐาน ClickFix Phishing โดยแคมเปญนี้ยังใช้บริการสาธารณะที่ถูกกฎหมายอย่าง api.keyval.org เป็น Dead Drop Resolver เพื่อเปลี่ยนปลายทางการโจมตีได้แบบไดนามิกโดยไม่ต้องแก้ไขแพ็กเกจเดิม


รายละเอียดการโจมตี


จุดที่น่าสนใจของแคมเปญนี้คือผู้โจมตีไม่ได้มุ่งเป้าให้ Developer ติดตั้งแพ็กเกจ ตามรูปแบบการโจมตี Supply Chain ทั่วไป แต่ใช้ npm Registry และ Mirror ของมันเป็นที่เก็บไฟล์ HTML ที่ผ่านการตรวจสอบและเชื่อถือได้ฟรี โดยตัวมัลแวร์ที่แท้จริงเป็นเพียงไฟล์ HTML หน้าเดียวภายในแพ็กเกจ npm ซึ่งการดาวน์โหลดตัวแพ็กเกจเองไม่ก่อให้เกิดอันตรายโดยตรง


เมื่อแพ็กเกจถูก Mirror ไปยังบริการอย่าง unpkg ไฟล์ HTML จะกลายเป็นหน้าเว็บที่ใช้งานได้จริงบน Domain ที่น่าเชื่อถือ เช่น unpkg[.]com/[email protected]/index.html ซึ่งแสดงผลเป็นหน้ายืนยันตัวตนแบบ Cloudflare CAPTCHA ปลอม ทำให้ผู้ที่คลิกลิงก์จากอีเมลหรือข้อความใด ๆ ที่ชี้มายัง Path นี้ ถูกหลอกให้ทำตามขั้นตอนที่นำไปสู่การติดมัลแวร์ในที่สุด


รายชื่อแพ็กเกจ npm ที่พบในแคมเปญนี้ครอบคลุม 24 รายการ อาทิ bgzxcuite2, prezdentkxheiw, egair0810, mnteckets, airdzticket, egypt0811, passport811, @worrisome/reutil และแพ็กเกจอื่นที่มีรูปแบบชื่อคล้ายกัน ซึ่งบางส่วนยังคงดาวน์โหลดได้จาก npm Registry ในขณะที่เผยแพร่รายงานนี้


กลไก Dead Drop Resolver ผ่าน api.keyval.org


หน้า CAPTCHA ปลอมฝัง JavaScript ที่ส่ง Request ไปยังเซิร์ฟเวอร์ระยะไกลเพื่อรับ URL ปลายทางสำหรับรีไดเรกต์เหยื่อ ในเวอร์ชันแรกของแคมเปญ ผู้โจมตีใช้ Domain ปลอมที่เลียนแบบหน้า Login ของ Microsoft ชื่อ login[.]microsofte[.]live แต่หลังจาก Domain ดังกล่าวถูกขึ้นบัญชีใน Google Chrome Safe Browsing ผู้โจมตีจึงเปลี่ยนมาใช้ KeyVal (api.keyval[.]org) ซึ่งเป็นบริการ Key-value Store สาธารณะที่ถูกกฎหมาย ให้นักพัฒนาใช้เก็บและดึงค่าผ่าน REST API


การเปลี่ยนมาใช้ KeyVal ทำให้บริการที่ถูกกฎหมายกลายเป็น Dead Drop Resolver (DDR) โดยโค้ดจะดึงค่าที่เข้ารหัสไว้จากบริการนี้ ถอดรหัสบน Browser ของเหยื่อ แล้วจึงรีไดเรกต์ไปยัง URL ปลายทางที่ถอดรหัสได้ วิธีนี้ทำให้ผู้โจมตีสามารถเปลี่ยนปลายทางการโจมตีจากระยะไกลได้ทุกเมื่อ โดยไม่ต้องแก้ไขหรือเผยแพร่แพ็กเกจ npm ใหม่แต่อย่างใด ในขณะที่ทีมวิจัยกำลังตรวจสอบ ปลายทางที่ตั้งค่าไว้ชี้ไปยังเว็บไซต์ ChatGPT ที่ถูกต้องตามกฎหมาย แต่สามารถถูกปรับให้ชี้ไปยังหน้า ClickFix Phishing หรือโดเมนอันตรายอื่นได้ตลอดเวลาตามที่ผู้โจมตีต้องการ


นักวิจัยยังตั้งข้อสังเกตว่านี่ไม่ใช่ครั้งแรกที่แนวทางนี้ถูกนำมาใช้ โดยในเดือนตุลาคม 2568 ทีม Socket เคยเปิดเผยแคมเปญ "Beamglea" ที่ใช้แพ็กเกจ npm ถึง 175 รายการ อาศัย CDN ของ unpkg.com โฮสต์สคริปต์รีไดเรกต์ไปยังหน้าเก็บ Credential ในลักษณะใกล้เคียงกัน


ระบบที่ได้รับผลกระทบ


  • ผู้ใช้งานทั่วไปที่คลิกลิงก์ซึ่งชี้ไปยัง Path บน unpkg.com หรือ npm Mirror อื่นที่เกี่ยวข้องกับแพ็กเกจทั้ง 24 รายการ
  • องค์กรที่ไม่มีการกรองหรือเฝ้าระวัง Traffic ไปยัง CDN/Mirror สาธารณะอย่าง unpkg.com ซึ่งมักถูกจัดอยู่ในรายการ Domain ที่เชื่อถือได้โดยปริยาย
  • ระบบกรองอีเมลและเว็บที่พึ่งพา Reputation ของ Domain เป็นหลัก ซึ่งอาจไม่ตรวจจับลิงก์ที่ชี้ไปยัง Domain ที่น่าเชื่อถืออย่าง unpkg.com หรือ keyval.org


ผลกระทบที่อาจเกิดขึ้น


  1. การใช้ npm Mirror เป็น Hosting ทำให้ไฟล์ยังคงอยู่ถาวรแม้แพ็กเกจต้นทางจะถูกลบออกจาก Registry แล้ว เนื่องจาก Mirror หลายแห่งไม่ได้ลบไฟล์ตามการลบต้นทางเสมอไป เพิ่มความยากในการกำจัดภัยคุกคามอย่างสมบูรณ์
  2. การพึ่งพา Dead Drop Resolver อย่าง api.keyval.org ทำให้ผู้โจมตีเปลี่ยนปลายทางโจมตีได้แบบ Real-time โดยไม่ทิ้งร่องรอยในโค้ดที่เผยแพร่บน npm ทำให้การวิเคราะห์แพ็กเกจ ณ เวลาหนึ่งอาจไม่สะท้อนความเสี่ยงจริงในเวลาต่อมา
  3. ลิงก์ที่ดูเหมือนมาจาก Domain ที่น่าเชื่อถือ (unpkg.com) เพิ่มโอกาสที่เหยื่อและระบบกรองอีเมล/เว็บจะไม่สงสัย เนื่องจากเป็น CDN ที่ใช้กันแพร่หลายในวงการพัฒนาซอฟต์แวร์
  4. รูปแบบการโจมตีนี้แสดงให้เห็นว่าโครงสร้างพื้นฐาน Open Source เช่น npm Registry กำลังถูกใช้เป็นทรัพยากรฟรีสำหรับ Phishing ไม่ใช่แค่เป้าหมายของ Supply Chain Attack แบบดั้งเดิม ซึ่งเป็นรูปแบบภัยคุกคามที่องค์กรจำนวนมากยังไม่ได้เตรียมมาตรการรับมือ


สิ่งที่องค์กรควรทำ


  1. บล็อกหรือเฝ้าระวังลิงก์ที่ชี้ไปยัง unpkg.com หรือ CDN Mirror ของ npm ที่มี Path หรือชื่อแพ็กเกจผิดปกติ โดยเฉพาะที่ไม่เกี่ยวข้องกับ Dependency ที่องค์กรใช้งานจริง
  2. ตรวจสอบ Outbound Traffic ไปยัง api.keyval.org และบริการ Key-value Store สาธารณะอื่นที่อาจถูกใช้เป็น Dead Drop Resolver ในลักษณะเดียวกัน
  3. ให้ความรู้พนักงานเกี่ยวกับหน้า CAPTCHA ปลอมที่นำไปสู่การหลอกให้รันคำสั่งแบบ ClickFix แม้จะปรากฏอยู่บน Domain ที่ดูน่าเชื่อถือก็ตาม
  4. ทบทวนนโยบายการกรอง Web/Email ให้ไม่พึ่งพา Domain Reputation เพียงอย่างเดียว แต่พิจารณา Path และพฤติกรรมของหน้าเว็บปลายทางประกอบด้วย


แนวทางลดความเสี่ยงระยะยาว


1. ผลักดันการตรวจสอบ Threat Intelligence ที่ครอบคลุมโครงสร้างพื้นฐาน Open Source

เช่น npm Registry และ Mirror ต่าง ๆ ไม่ใช่แค่การสแกนหา Malicious Package ที่ติดตั้งโดยตรงเท่านั้น แต่รวมถึงการถูกใช้เป็น Hosting สำหรับ Phishing ด้วย


2. พัฒนาเกณฑ์การประเมินความเสี่ยงของลิงก์ที่ครอบคลุมมากกว่า Domain Reputation

โดยพิจารณาโครงสร้าง Path, พฤติกรรมของหน้าเว็บปลายทาง และรูปแบบการรีไดเรกต์ประกอบกัน


3. ติดตามงานวิจัยด้านการ Abuse บริการสาธารณะที่ถูกกฎหมายเป็นโครงสร้างพื้นฐานโจมตี

เช่น Key-value Store, Pastebin หรือบริการ Cloud สาธารณะอื่น ซึ่งเป็นแนวโน้มที่พบมากขึ้นในการหลบเลี่ยงการตรวจจับ


4. สร้างความร่วมมือกับผู้ดูแล Package Registry และ Mirror Service

เพื่อเร่งกระบวนการลบแพ็กเกจอันตรายออกจากทั้งต้นทางและ Mirror ให้รวดเร็วยิ่งขึ้น ลดช่วงเวลาที่ภัยคุกคามยังคงเข้าถึงได้


วิเคราะห์ในมุมมองจาก TXEC


แคมเปญนี้เป็นตัวอย่างที่ชัดเจนของวิวัฒนาการภัยคุกคามที่หันมาใช้ โครงสร้างพื้นฐานที่ถูกกฎหมายและเชื่อถือได้เป็นเครื่องมือโจมตี แทนการสร้างโครงสร้างพื้นฐานของตนเองซึ่งมักถูกตรวจจับและปิดกั้นได้เร็วกว่า ทั้ง npm Registry, unpkg Mirror และ KeyVal ล้วนเป็นบริการที่ถูกกฎหมายและมีประโยชน์ต่อวงการพัฒนาซอฟต์แวร์อย่างแท้จริง แต่ก็ถูกดัดแปลงให้กลายเป็นเครื่องมือ Phishing ได้อย่างแนบเนียน


TXEC มองว่าองค์กรควรขยายขอบเขตการเฝ้าระวังภัยคุกคามด้าน Software Supply Chain ให้ครอบคลุมมากกว่าการตรวจสอบ Dependency ที่ติดตั้งโดยตรง เนื่องจากกรณีนี้แสดงให้เห็นว่าผู้โจมตีสามารถใช้ Ecosystem เดียวกันเป็นทั้งเป้าหมายและเครื่องมือโจมตีไปพร้อมกันได้ การพึ่งพา Domain Reputation เพียงอย่างเดียวในการกรองลิงก์อันตรายจึงเริ่มไม่เพียงพอในบริบทของภัยคุกคามยุคใหม่ที่ซับซ้อนขึ้นเรื่อย ๆ


รู้ก่อน ตรวจพบเร็ว ลดความเสียหายได้มากกว่า


[ แหล่งอ้างอิง: The Hacker News, OX Security, BleepingComputer ]