สรุปสั้น

นักวิจัยด้านความปลอดภัยเปิดเผยรายละเอียดของแพ็กเกจ npm อันตรายชื่อ tw-pkgprobe-7731 ที่ปลอมตัวเป็นเครื่องมือความปลอดภัยสำหรับนักพัฒนาที่นำ Twilio ไปใช้งานในแอปพลิเคชันของตน แต่แอบพยายามเก็บเกี่ยวข้อมูลอ่อนไหวอย่างเงียบ ๆ แพ็กเกจนี้ถูกอัปโหลดขึ้น npm registry ครั้งแรกเมื่อกลางเดือนสิงหาคม 2569 โดยบัญชีชื่อ twdepprobe7731 และมีการเผยแพร่ถึง 11 เวอร์ชันภายในวันเดียวในช่วงเวลาราว 45 นาที ปัจจุบันบัญชีผู้ใช้ดังกล่าวไม่มีอยู่แล้ว

โค้ดในแพ็กเกจอ้างว่าเป็น “authorized bug-bounty research probe” ในโครงการ HackerOne ของ Twilio ที่ทำงานเฉพาะภายใน sandbox ของ Twilio เท่านั้น แต่พฤติกรรมจริงกลับพยายามขโมยข้อมูลรับรอง โดยเวอร์ชัน 1.0.4 เพิ่มความสามารถดูดค่า process.env.ACCOUNT_SID และ process.env.AUTH_TOKEN ซึ่งเท่ากับยึดข้อมูลรับรองบัญชี Twilio ของเหยื่อและอาจให้ผู้โจมตีสั่งเรียกเก็บเงินหรือส่งการสื่อสารในนามเหยื่อได้ ต่อมา Twilio ยืนยันว่าแพ็กเกจถูกลบออกจาก npm แล้ว และไม่พบหลักฐานว่าระบบของบริษัทถูกเจาะ

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

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 22 กันยายน 2569 ว่า นางสาว Lucija Valentić นักวิจัยของบริษัท ReversingLabs ได้เผยแพร่รายงานเกี่ยวกับแพ็กเกจ npm อันตราย tw-pkgprobe-7731 ที่มุ่งเป้านักพัฒนาซึ่งใช้งาน Twilio โดยเวอร์ชันแรกวางตัวเป็น “โพรบวิจัยความปลอดภัยที่ได้รับอนุญาต” ในโครงการ bug-bounty ของ Twilio บน HackerOne พร้อมคอมเมนต์ในโค้ดที่อ้างว่าเก็บเพียงบริบทของโปรเซสและโฮสต์ในเครื่อง และ “ไม่มีการกระทำที่ทำลายล้าง”

เมื่อถูกรัน แพ็กเกจจะตรวจสอบก่อนว่าสภาพแวดล้อมปัจจุบันเป็นของนักพัฒนา Twilio หรือไม่ หากไม่ใช่ก็จะออกจากการทำงานทันที แต่หากผ่านการตรวจสอบ มัลแวร์จะเริ่มดึงตัวแปรสภาพแวดล้อม (environment variables) พร้อมรายละเอียดระบบอย่างจุด mount โฟลเดอร์ชั่วคราว และค่าคอนฟิกต่าง ๆ แล้วส่งข้อมูลที่รวบรวมได้ออกไปผ่าน webhook

เวอร์ชันถัด ๆ มา (1.0.1, 1.0.2 และ 1.0.3) หันไปเจาะจงนักพัฒนาที่ใช้ Twilio API มากขึ้น โดยค้นหาโฟลเดอร์ที่ผูกกับ Twilio account String Identifier (SID) เฉพาะราย และหากพบโฟลเดอร์เป้าหมาย ก็จะสแกนแพ็กเกจ npm และ node_modules ที่ติดตั้งไว้เพื่อ inject แพ็กเกจ PoC ของตนเองเข้าไป โดยสร้างไฟล์ package.json และ index.js ทิ้งไว้ ที่น่าสังเกตคือ ผู้พัฒนาสามเวอร์ชันสุดท้าย (1.0.8, 1.1.0 และ 1.1.1) กลับย้อนไปใช้โปรไฟล์โพรบพื้นฐานแบบเวอร์ชัน 1.0.0 โดยตัดฟังก์ชันอันตรายที่เคยใส่ไว้ก่อนหน้าออก

Malicious npm package tw-pkgprobe-7731 impersonates a Twilio bug-bounty probe to steal developer credentials

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

หลังตรวจยืนยันว่าอยู่ในสภาพแวดล้อมนักพัฒนา Twilio แพ็กเกจจะดึงตัวแปรสภาพแวดล้อมและรายละเอียดระบบส่งออกผ่าน webhook เวอร์ชันกลาง ๆ ต่อยอดด้วยการค้นหาโฟลเดอร์ตาม SID ของบัญชี Twilio แล้ว inject แพ็กเกจ PoC เข้าไปใน node_modules ส่วนเวอร์ชัน 1.0.4 เป็นจุดที่อันตรายที่สุด เพราะเพิ่มการดูด ACCOUNT_SID และ AUTH_TOKEN ซึ่งเป็นกุญแจเข้าถึงบัญชี Twilio โดยตรง

สองเวอร์ชันสุดท้ายยังทำ OSINT ด้วยการโพรบโฮสต์ที่เกี่ยวข้องกับ Twilio หลายรายการ เช่น support-api.us1.twilio[.]com, kafka-ui.au1.twilio[.]com และ litellm.ai-services.corp.twilio[.]com รวมถึงพยายามดึง AWS metadata ที่ 169.254.169[.]254/latest/meta-data/ ReversingLabs ระบุว่าแคมเปญนี้ไม่มีการทำ obfuscation ไม่มี typosquatting และไม่พยายามทำให้บัญชีผู้เผยแพร่ดูน่าเชื่อถือ ซึ่งต่างจากแคมเปญก่อน ๆ จึงประเมินว่าน่าจะเป็นฝีมือของผู้โจมตีที่ซับซ้อนน้อยกว่า แต่พฤติกรรมโดยรวมยังละเมิดแนวทางการวิจัยความปลอดภัยของ Twilio ชัดเจน

ผลกระทบ

หากข้อมูลรับรองบัญชี Twilio อย่าง ACCOUNT_SID และ AUTH_TOKEN ถูกขโมยไป ผู้โจมตีจะสามารถสั่งเรียกเก็บเงินและกระตุ้นการสื่อสาร (เช่น การส่ง SMS หรือโทรออก) ในนามเหยื่อได้ ซึ่งอาจนำไปสู่ค่าใช้จ่ายที่พุ่งสูงและการนำช่องทางสื่อสารของเหยื่อไปใช้ในทางมิชอบ

แม้ Twilio จะยืนยันว่าไม่พบเหตุการณ์ด้านความปลอดภัยและระบบยังปลอดภัย แต่กรณีนี้ตอกย้ำความเสี่ยงของห่วงโซ่อุปทานซอฟต์แวร์ (supply chain) ที่ผู้โจมตีอาศัยการปลอมเป็นเครื่องมือของผู้ให้บริการที่น่าเชื่อถือ เพื่อล่อให้นักพัฒนาติดตั้งแพ็กเกจอันตรายในสภาพแวดล้อมพัฒนาของตนเอง

คำแนะนำ

Twilio แนะนำแนวปฏิบัติผ่าน Trust Center ให้ตรวจสอบแพ็กเกจก่อนติดตั้งจาก public registry และติดตั้ง Twilio SDK จากหน้าไลบรารีทางการเท่านั้น ตรวจสอบสคริปต์ที่รันตอนติดตั้ง (install scripts) และใช้ API key ที่จำกัดสิทธิ์ให้น้อยที่สุดเพื่อลดสิ่งที่แพ็กเกจอันตรายจะขโมยได้

นอกจากนี้ควรเพิ่มการสแกน dependency และใช้ lockfile ในไปป์ไลน์ CI/CD เพื่อจับการเปลี่ยนแปลง dependency ที่น่าสงสัยหรือไม่คาดคิด และตรวจสอบการเชื่อมต่อของ third-party integration ก่อนผูกเข้ากับบัญชี Twilio โดย Twilio ย้ำว่าจะไม่มีวันขอให้ผู้ใช้ติดตั้งแพ็กเกจ สคริปต์ หรือเครื่องมือจากนอกเอกสารทางการเพื่อยืนยันหรือรักษาความปลอดภัยของบัญชี

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