สรุปสั้น
นักวิจัยด้านความปลอดภัยเปิดเผยรายละเอียดของแพ็กเกจ 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 โดยตัดฟังก์ชันอันตรายที่เคยใส่ไว้ก่อนหน้าออก

วิธีการโจมตี
หลังตรวจยืนยันว่าอยู่ในสภาพแวดล้อมนักพัฒนา 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 ย้ำว่าจะไม่มีวันขอให้ผู้ใช้ติดตั้งแพ็กเกจ สคริปต์ หรือเครื่องมือจากนอกเอกสารทางการเพื่อยืนยันหรือรักษาความปลอดภัยของบัญชี
