สรุปสั้น

บริษัท CrowdStrike โดยทีม Counter Adversary Operations เผยแพร่บทวิเคราะห์ในสัปดาห์นี้ เชื่อมโยงผู้ก่อภัยคุกคามที่มีแรงจูงใจทางการเงินเข้ากับการพัฒนาและแพร่กระจายมัลแวร์ขโมยข้อมูลที่เขียนด้วย JavaScript ชื่อ PhantomRaven ผ่านคลังแพ็กเกจ npm จุดที่น่าสนใจคือ CrowdStrike ประเมินด้วยความมั่นใจสูงว่าผู้พัฒนา “น่าจะเขียนมัลแวร์นี้ด้วยโมเดลภาษาขนาดใหญ่ (LLM)” โดยดูจากคอมเมนต์ที่ยืดยาวผิดปกติ โค้ดที่เป็น placeholder ทิ้งไว้ และรูปแบบทางสถิติของการวิเคราะห์โทเคนในโค้ด สะท้อนแนวโน้มที่ผู้โจมตีหันมาใช้ AI ช่วยลดเวลาและความพยายามในการสร้างเครื่องมือโจมตี

PhantomRaven ถูกพบครั้งแรกเมื่อปลายเดือนตุลาคม 2568 โดยบริษัท Koi Security และ DCODX ในแคมเปญ slopsquatting และ typosquatting ที่อัปโหลดแพ็กเกจอันตรายกว่า 100 ตัวขึ้น npm เพื่อขโมยโทเคนยืนยันตัวตน ความลับของระบบ CI/CD และข้อมูลรับรอง GitHub จากเครื่องของนักพัฒนา สิ่งที่ทำให้เคสนี้แปลกกว่าอาชญากรไซเบอร์ทั่วไปคือ ผู้อยู่เบื้องหลังอ้างตัวว่าเป็นนักล่าบั๊ก (bug bounty hunter) และดูเหมือนจะใช้ข้อมูลที่ขโมยมาไปตามหาช่องโหว่เพื่อเคลมเงินรางวัลจากโครงการเปิดเผยช่องโหว่ที่ถูกต้องตามกฎหมาย มากกว่าจะนำข้อมูลไปขายในตลาดมืด

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

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 18 กันยายน 2569 ว่า จากการวิเคราะห์ของบริษัท CrowdStrike ผู้ก่อภัยคุกคามรายนี้เคลื่อนไหวมาตั้งแต่เดือนพฤศจิกายน 2565 และอ้างว่าตนเป็นนักล่าบั๊กที่เก็บเงินรางวัลได้จากองค์กรอย่างน้อย 9 แห่งในภาคเทคโนโลยี ค้าปลีก และการบริการ CrowdStrike ระบุว่ายังไม่พบข้อมูลที่ถูกขโมยด้วยมัลแวร์นี้ปรากฏในร้านขายล็อกของ stealer ทั่วไป ซึ่งบ่งชี้ว่า “ผู้ปฏิบัติการน่าจะใช้มัลแวร์ขโมยข้อมูลเพียงเพื่อค้นหาโอกาสในการเคลม bug bounty เท่านั้น”

นักวิจัยพบบัญชีผู้ใช้ npm อย่างน้อยสองบัญชีที่ผู้ปฏิบัติการดูแลและใช้ผลักดันแพ็กเกจที่มี PhantomRaven ได้แก่ jpdhellonpm1 (แพ็กเกจ transform-jsbi-to-bigint) และ jpd15 (แพ็กเกจ sort-imports-es6-autofix) ซึ่งทั้งสองบัญชีถูกปิดไปแล้ว ส่วนตัวตนออนไลน์อื่นที่เชื่อมโยงกับปฏิบัติการเดียวกันได้แก่ jpd12, jpd13, npmhell, npmpackagejpd, npmtestdharsh, jpdhackerone11 และ packagedharsh นอกจากนี้เมื่อเดือนสิงหาคม 2568 ผู้ก่อภัยคุกคามยังอ้างว่าค้นพบช่องโหว่รันโค้ดทางไกล (RCE) ผ่านแพ็กเกจ npm อันตรายที่ตนเผยแพร่ โดยอธิบายว่าได้เจาะเครื่องเป้าหมายและรันสคริปต์ preinstall จนได้สิทธิ์ RCE และยังมีหลักฐานว่าผู้โจมตีพยายามผลักดันแพ็กเกจที่มีโค้ดขโมยข้อมูลคล้าย PhantomRaven ขึ้นคลัง PyPI ของภาษา Python ด้วย

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

หัวใจของ PhantomRaven อยู่ที่เทคนิคที่เรียกว่า remote dynamic dependency (RDD) แทนที่จะฝังโค้ดอันตรายไว้ในแพ็กเกจโดยตรง แพ็กเกจบน npm จะทำหน้าที่เป็นฉากบังหน้าเพื่อไปดึง dependency แบบไดนามิกจากเซิร์ฟเวอร์ภายนอกมาอีกทอด ทำให้ตัวไลบรารีบน npm เองไม่ถูกเครื่องมือความปลอดภัยตรวจจับ เพราะโค้ดอันตรายจริงไม่ได้อยู่ในแพ็กเกจที่สแกน เมื่อติดตั้งแล้ว มัลแวร์ที่ฝังอยู่ใน dependency ระยะไกลจะสแกนสภาพแวดล้อมของนักพัฒนาเพื่อหาที่อยู่อีเมล เก็บข้อมูลเกี่ยวกับระบบ CI/CD รวบรวมลายนิ้วมือของระบบ (system fingerprint) ซึ่งรวมถึงที่อยู่ IP สาธารณะ แล้วส่งผลลัพธ์กลับไปยังเซิร์ฟเวอร์ของผู้โจมตี

นอกจากนี้มัลแวร์ยังเก็บรายละเอียดขณะรัน วันเวลาปัจจุบัน ชื่อผู้ใช้และอีเมลจากการตั้งค่า Git และ npm ตลอดจนตัวแปรสภาพแวดล้อมของ CI/CD สำหรับ GitHub Actions, GitLab CI, Jenkins และ CircleCI ข้อมูลเหล่านี้มีค่าอย่างยิ่งในบริบทของห่วงโซ่อุปทานซอฟต์แวร์ เพราะโทเคนและความลับที่หลุดจากไปป์ไลน์ CI/CD สามารถถูกนำไปใช้เข้าถึงคลังโค้ด รันเวิร์กโฟลว์ หรือแทรกโค้ดอันตรายเข้าสู่ผลิตภัณฑ์ปลายทางได้อีกต่อ

รูปแบบที่ผิดปกติ: สร้างมัลแวร์เพื่อเคลมเงินรางวัล

CrowdStrike ชี้ว่ารูปแบบการทำงานของผู้โจมตีรายนี้ต่างจากอาชญากรไซเบอร์ส่วนใหญ่ ซึ่งมักเช่าเครื่องมือสำเร็จรูปหรือใช้มัลแวร์ของตนเองเพื่อขโมยเงินหรือขายข้อมูลโดยตรง แต่ผู้ก่อภัยคุกคามรายนี้กลับพัฒนา PhantomRaven ขึ้นมาเองเพื่อเจาะทรัพย์สินขององค์กร แล้วใช้การเจาะสำเร็จนั้นเป็นข้ออ้างในการเรียกร้องเงินรางวัลจากโครงการเปิดเผยช่องโหว่ที่มีชื่อเสียง กล่าวคือแทนที่จะขายข้อมูลในตลาดมืด ผู้โจมตีเปลี่ยนการบุกรุกให้กลายเป็น “หลักฐาน” เพื่อรับเงินจากโปรแกรม bug bounty ซึ่งเป็นการบิดเบือนกลไกที่ออกแบบมาเพื่อส่งเสริมการรายงานช่องโหว่อย่างมีจริยธรรม

ผลกระทบ

เป้าหมายหลักของ PhantomRaven คือนักพัฒนาซอฟต์แวร์และไปป์ไลน์ CI/CD ซึ่งเป็นจุดที่มีความลับสำคัญกระจุกตัวอยู่ ทั้งโทเคน GitHub คีย์ของระบบ build และตัวแปรสภาพแวดล้อมที่ให้สิทธิ์เข้าถึงโครงสร้างพื้นฐาน การที่มัลแวร์ใช้เทคนิค RDD หลบการสแกนทำให้แพ็กเกจอันตรายอยู่รอดบน npm ได้นานกว่าปกติ และการยืนยันว่าผู้โจมตีเคยพยายามขยับไป PyPI ก็แสดงว่าภัยนี้ไม่จำกัดอยู่แค่ระบบนิเวศ JavaScript ประเด็นที่กว้างกว่าคือการที่มัลแวร์น่าจะถูกสร้างด้วย LLM ตอกย้ำว่ากำแพงด้านทักษะในการพัฒนาเครื่องมือโจมตีกำลังลดลง ผู้โจมตีที่มีความสามารถจำกัดก็สามารถผลิตมัลแวร์ที่ทำงานได้จริงในเวลาอันสั้น

คำแนะนำ

ทีมพัฒนาและทีมความปลอดภัยควรตรวจสอบ dependency ที่ดึงเข้ามาในโปรเจกต์อย่างเข้มงวด โดยเฉพาะแพ็กเกจใหม่หรือแพ็กเกจที่มีชื่อใกล้เคียงกับไลบรารียอดนิยม (typosquatting) ควรตรึงเวอร์ชัน (pin) ของ dependency และใช้ lockfile เพื่อป้องกันการดึงโค้ดที่เปลี่ยนแปลงแบบไดนามิก พร้อมเฝ้าระวังพฤติกรรมของสคริปต์ preinstall/postinstall ที่ติดต่อเซิร์ฟเวอร์ภายนอกระหว่างการติดตั้ง สำหรับไปป์ไลน์ CI/CD ควรจำกัดสิทธิ์ของโทเคนให้แคบที่สุด หมุนเปลี่ยนความลับเป็นระยะ และแยกสภาพแวดล้อม build ออกจากเครือข่ายที่เข้าถึงข้อมูลสำคัญ การใช้เครื่องมือวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA) และเฝ้าระวังการเชื่อมต่อขาออกที่ผิดปกติจากเครื่องนักพัฒนา จะช่วยลดโอกาสถูกขโมยข้อมูลรับรองผ่านช่องทางนี้

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