สรุปสั้น

บริษัท Jscrambler ผู้ให้บริการด้านความมั่นคงปลอดภัยของเว็บฝั่งไคลเอนต์ (Client-side Web Security) เปิดเผยว่ามีผู้โจมตีนำแพ็กเกจ npm เวอร์ชันอันตรายของบริษัทขึ้นเผยแพร่ และถูกดาวน์โหลดไปเกือบ 1,500 ครั้ง แพ็กเกจ jscrambler ที่เป็นอันตรายนี้ครอบคลุมรุ่น 8.14, 8.16, 8.17 และ 8.20 โดยฝังมัลแวร์ขโมยข้อมูล (Infostealer) ที่ทำงานในช่วง preinstall hook ซึ่งเป็นขั้นตอนก่อนติดตั้งแพ็กเกจ บริษัทระบุในประกาศเตือนเมื่อวันเสาร์ว่าเหตุการณ์นี้จำกัดอยู่แค่แพ็กเกจดังกล่าวและไม่กระทบผลิตภัณฑ์อื่นของ Jscrambler รวมถึง Webpage Integrity

แม้ Jscrambler จะตอบสนองอย่างรวดเร็ว แต่แพ็กเกจอันตรายก็ยังเปิดค้างอยู่นานราว 2 ชั่วโมงก่อนที่นักพัฒนาจะประกาศเลิกใช้ (Deprecate) และปล่อยเวอร์ชันปลอดภัย 8.22 ออกมา แพ็กเกจที่ถูกฝังแบ็กดอร์นี้ยังเป็น dependency ของแพ็กเกจ Jscrambler อีก 4 ตัว ซึ่งบริษัทได้ประกาศเลิกใช้และแทนที่ด้วยเวอร์ชันใหม่แล้วเช่นกัน ข้อมูลสถิติจาก Node Package Manager (npm) แสดงให้เห็นว่าแพ็กเกจอันตรายถูกดาวน์โหลดไป 1,479 ครั้งในช่วงเวลา 2 ชั่วโมงนั้น โดย Jscrambler เป็นแพลตฟอร์มเชิงพาณิชย์สำหรับปกป้องแอปพลิเคชัน JavaScript บนเว็บและมือถือจากการทำวิศวกรรมย้อนกลับ (Reverse Engineering) และการดัดแปลง ซึ่งแพ็กเกจ npm ของบริษัทมียอดดาวน์โหลดถึง 17,000 ครั้งต่อสัปดาห์

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

เว็บไซต์ BleepingComputer รายงานเมื่อวันที่ 13 กรกฎาคม พ.ศ. 2569 ว่าบริษัท Jscrambler ได้ออกประกาศเมื่อวันเสาร์ว่าตรวจพบการเผยแพร่แพ็กเกจ jscrambler npm เวอร์ชันอันตรายโดยไม่ได้รับอนุญาต ซึ่งใช้งานร่วมกับผลิตภัณฑ์ Code Integrity ของบริษัท แพ็กเกจ npm ของ Jscrambler เปิดให้นักพัฒนาแอปอัปโหลด JavaScript ของตนเข้าสู่บริการเพื่อป้องกันการดัดแปลงโค้ด ซึ่งช่วยป้องกันการแก้ไขแบบเรียลไทม์อย่างการฉีดโค้ดอันตราย

บริษัทด้านความมั่นคงปลอดภัยของแอปพลิเคชันชื่อ Socket เป็นผู้ตรวจพบการบุกรุกและวิเคราะห์แพ็กเกจ Jscrambler ที่ถูกเผยแพร่โดยไม่ได้รับอนุญาต นักวิจัยระบุว่าแพ็กเกจนี้มีมัลแวร์ขโมยข้อมูลที่มุ่งเป้าไปที่ข้อมูลสำคัญหลายประเภท ได้แก่ ซอร์สโค้ดและไฟล์โปรเจกต์, ข้อมูลรับรองและความลับของนักพัฒนา (Git, SSH, ตัวแปรสภาพแวดล้อม, โทเคน CI/CD), ข้อมูลรับรองคลาวด์และตัวจัดการความลับ (AWS, Azure, GCP, Kubernetes), เครื่องมือเขียนโค้ดด้วย AI และค่าคอนฟิก MCP (Claude, Cursor, Windsurf, VS Code, Zed), กระเป๋าเงินคริปโตและวลีกู้คืน (MetaMask, Phantom, Coinbase, Exodus, Trust Wallet), ข้อมูลเบราว์เซอร์ (คุกกี้ ข้อมูลรับรองที่บันทึกไว้) รวมถึงแอปรับส่งข้อความและทำงานร่วมกัน (Slack, Discord, Telegram) Socket รายงานว่ามัลแวร์ใช้การทำให้อ่านยาก (Obfuscation) ต่อสตริงแต่ละตัวอย่างเข้มข้นผ่านอัลกอริทึมเข้ารหัส ChaCha20-Poly1305 ซึ่งทำให้การทำวิศวกรรมย้อนกลับโค้ดยากขึ้นมาก

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

ตาม Jscrambler การบุกรุกครั้งนี้เกิดขึ้นได้เพราะข้อมูลรับรองสำหรับเผยแพร่แพ็กเกจบน npm (npm Publishing Credentials) ถูกขโมย ซึ่งบริษัทได้เพิกถอนข้อมูลรับรองดังกล่าวไปแล้ว จุดสำคัญที่ทำให้การโจมตีนี้อันตรายคือมัลแวร์ถูกตั้งให้ทำงานในช่วง preinstall hook นั่นหมายความว่าโค้ดขโมยข้อมูลจะทำงานทันทีที่นักพัฒนาสั่งติดตั้งแพ็กเกจ แม้จะยังไม่ได้เรียกใช้งานโค้ดใด ๆ ก็ตาม

การโจมตีลักษณะนี้เป็นตัวอย่างคลาสสิกของการโจมตีห่วงโซ่อุปทาน (Supply Chain) ในระบบนิเวศโอเพนซอร์ส เพราะผู้โจมตีไม่ได้เจาะเครื่องเหยื่อโดยตรง แต่เจาะเข้าที่ต้นทางคือบัญชีเผยแพร่แพ็กเกจของผู้ผลิตที่น่าเชื่อถือ แล้วปล่อยเวอร์ชันปลอมออกไป ทำให้ทุกคนที่ดาวน์โหลดแพ็กเกจในช่วงเวลานั้นตกเป็นเหยื่อโดยอัตโนมัติ ยิ่งไปกว่านั้น การที่แพ็กเกจอันตรายเป็น dependency ของแพ็กเกจ Jscrambler อีก 4 ตัว ทำให้ผลกระทบขยายวงกว้างไปยังผู้ที่ติดตั้งแพ็กเกจเหล่านั้นด้วย โดยที่ตัวเองอาจไม่รู้ตัวว่ากำลังดึงโค้ดอันตรายเข้ามา หลังเกิดเหตุ Jscrambler ระบุว่าได้เพิ่มมาตรการควบคุมความปลอดภัยเพิ่มเติมสำหรับกระบวนการเผยแพร่แพ็กเกจแล้ว

ผลกระทบต่อไทย

นักพัฒนาและองค์กรด้านซอฟต์แวร์ในไทยที่ใช้ Node.js และดึงแพ็กเกจจาก npm มาใช้งานเป็นประจำมีความเสี่ยงโดยตรงจากการโจมตีลักษณะนี้ เนื่องจากมัลแวร์เจาะจงขโมยข้อมูลรับรองที่นักพัฒนาสมัยใหม่ใช้กันทั่วไป ทั้งคีย์คลาวด์ (AWS/Azure/GCP), โทเคน CI/CD, ความลับ Git/SSH และที่น่ากังวลเป็นพิเศษคือค่าคอนฟิกของเครื่องมือ AI อย่าง Claude, Cursor และ Windsurf ซึ่งกำลังได้รับความนิยมสูงในหมู่นักพัฒนาไทย หากข้อมูลเหล่านี้รั่วไหล ผู้โจมตีอาจเข้าถึงโครงสร้างพื้นฐานคลาวด์ ระบบ CI/CD และซอร์สโค้ดขององค์กรได้ทั้งหมด นอกจากนี้การมุ่งขโมยกระเป๋าคริปโตและวลีกู้คืนยังกระทบต่อนักพัฒนาที่ถือครองสินทรัพย์ดิจิทัลอีกด้วย

คำแนะนำ

นักพัฒนาที่เคยใช้แพ็กเกจ Jscrambler เวอร์ชันอันตราย (8.14, 8.16, 8.17, 8.20) ควรถือว่าสภาพแวดล้อมของตนถูกบุกรุกแล้ว ให้เปลี่ยน (Rotate) ความลับและข้อมูลรับรองทั้งหมด และกู้คืนระบบจากการสำรองข้อมูล (Backup) ที่ปลอดภัย พร้อมอัปเดตเป็นเวอร์ชันปลอดภัยล่าสุด 8.22 องค์กรควรตรวจสอบ dependency ทั้งหมดของโปรเจกต์ ล็อกเวอร์ชันแพ็กเกจ (Lockfile) และพิจารณาปิดการทำงานของ install script อัตโนมัติเมื่อไม่จำเป็น (เช่น ตั้งค่า --ignore-scripts) เพื่อลดความเสี่ยงจากมัลแวร์ที่ทำงานผ่าน preinstall hook รวมทั้งใช้เครื่องมือตรวจสอบความมั่นคงปลอดภัยของห่วงโซ่อุปทานซอฟต์แวร์เพื่อเฝ้าระวังแพ็กเกจที่น่าสงสัยก่อนนำเข้ามาใช้

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