
เมื่อต้นเดือนกันยายน 2025 โลกของ JavaScript ต้องเผชิญกับการโจมตีที่อันตรายที่สุดครั้งหนึ่งในรอบหลายปี แฮกเกอร์ได้เข้าถึงบัญชีของนักพัฒนาที่มีชื่อเสียงและอัปโหลดเวอร์ชันใหม่ของแพ็กเกจพื้นฐานขึ้นไปบน NPM โดยมีโค้ดอันตรูปซ่อนอยู่ แพ็กเกจเหล่านี้ถูกใช้นับพันล้านครั้งทุกสัปดาห์ และการโจมตีครั้งนี้อาจนำไปสู่การโจรกรรมครั้งใหญ่จากผู้ใช้บริการคริปโตเคอร์เรนซี
โชคดีที่ด้วยความผิดพลาดของแฮกเกอร์และการตอบสนองที่รวดเร็วจากชุมชน ความเสียหายจึงน้อยมาก ทีมบรรณาธิการ Quickex ได้สร้างลำดับเหตุการณ์ขึ้นใหม่และอธิบายว่าทำไมทุกอย่างจึงจบลงอย่างไม่รุนแรงนัก
ติดตามว่า ราคาบิตคอยน์ ตอบสนองต่อความผันผวนของตลาดอย่างไรกับ Quickex
เหตุการณ์โจมตีดำเนินไปอย่างไร
ผู้ที่ รายงาน เหตุการณ์ครั้งแรกในค่ำวันที่ 8 กันยายนคือ Charles Guillaume CTO ของ Ledger เขาเตือนว่าบัญชีของนักพัฒนาที่มีชื่อเสียงถูกแฮก และเวอร์ชันที่ติดไวรัสของเครื่องมืออย่าง chalk, debug, ansi-styles และ strip-ansi ได้ถูกอัปโหลดขึ้นไปบน NPM แพ็กเกจเหล่านี้เป็นส่วนสำคัญของเว็บแอปส่วนใหญ่ การติดเชื้อครั้งนี้จึงเป็นภัยต่อทั้งระบบนิเวศ
ต่อมาพบว่าแฮกเกอร์ได้เข้าถึงบัญชีผ่านอีเมลฟิชชิงที่ปลอมเป็นข้อความจากฝ่ายสนับสนุน NPM และนำไปยังหน้าล็อกอินปลอม
NPM (Node Package Manager) เป็นแคตตาล็อกแพ็กเกจ JavaScript ที่ใหญ่ที่สุด ซึ่งนักพัฒนาสามารถเผยแพร่และดาวน์โหลดโมดูลโค้ดสำเร็จรูป ตัวอย่างเช่น chalk ใช้สำหรับจัดรูปแบบข้อความสี debug ใช้สำหรับบันทึก และ ansi-styles และ strip-ansi ใช้สำหรับการทำงานกับอักขระในคอนโซล เมื่อผู้ไม่หวังดีปล่อยเวอร์ชันใหม่ พวกมันจะถูกติดตั้งลงในโปรเจกต์โดยอัตโนมัติหากนักพัฒนาไม่ได้กำหนดเวอร์ชันเก่าไว้
เมื่อข่าวการโจมตีแพร่กระจาย โปรเจกต์คริปโตต่าง ๆ รีบโพสต์ในโซเชียลมีเดียเพื่อยืนยันว่าเหตุการณ์นี้ไม่ส่งผลกระทบต่อพวกเขา
โค้ดอันตรายทำงานอย่างไร
โปรแกรมที่แฝงมาทำงานเหมือน crypto-clipper — การโจมตีที่แทนที่ที่อยู่กระเป๋าเงินในธุรกรรม ผู้ใช้คิดว่ากำลังโอนเงินเข้าบัญชีของตนเองหรือเพื่อน แต่จริง ๆ แล้วเงินไปที่ที่อยู่ของผู้โจมตี
StarPlatinum ได้อธิบายกลไกโดยละเอียด โดยเขากล่าวว่าโค้ดมีสองโหมด
- ในโหมด “พาสซีฟ” มันจะแทนที่ที่อยู่โดยตรงในอินเทอร์เฟซของแอปพลิเคชัน
- ในโหมด “แอคทีฟ” มันจะดักธุรกรรมก่อนการลงนามและเปลี่ยนรายละเอียดปลายทาง
เพื่อปกปิดตัวเอง มันใช้ขั้นตอนวิธี Levenshtein เพื่อเลือกสตริงที่ใกล้เคียงที่สุด: ตัวอักษรแรกและตัวสุดท้ายของที่อยู่ตรงกัน ทำให้การแทนที่แทบมองไม่เห็น
เขายังได้ยกตัวอย่างบัญชีที่เงินที่ถูกขโมยควรถูกส่งไป: บัญชีหลัก 0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976 และอีกหลายบัญชีสำรอง
ในเวลาที่บล็อกเกอร์เผยแพร่ โอนเงินไปยังกระเป๋าเหล่านี้ถูกบันทึกไว้ แต่เงินยังไม่ได้ถูกเคลื่อนย้าย
นักพัฒนาทราบถึงปัญหาครั้งแรกเมื่อการบิลด์อัตโนมัติเริ่มล้มเหลว ในบันทึกแสดงข้อผิดพลาดผิดปกติ เช่น “fetch is not defined” การตรวจสอบพบโค้ดที่ถอดรหัสยากและฟังก์ชันที่น่าสงสัยเกี่ยวข้องกับ Ethereum และ Solana
ทำไมความเสียหายจึงน้อยมาก
แม้ว่าแนวคิดของการโจมตีจะดูอันตราย แต่ในทางปฏิบัติมันไม่ทำงาน โค้ดไม่เสถียรเกินไปและทำให้กระบวนการบิลด์ล้มเหลว สิ่งนี้ทำให้ชุมชนสามารถตรวจพบความผิดปกติได้อย่างรวดเร็วและบล็อกเวอร์ชันที่ติดไวรัส
Charles Guillaume ชี้แจงภายหลัง ว่าการโจมตีล้มเหลวจริง ๆ: มีเหยื่อเพียงไม่กี่ราย ตามคำกล่าวของเขา โค้ดอันตรายถูกออกแบบเพื่อโจมตีธุรกรรมคริปโตและแทนที่ที่อยู่โดยตรงในคำตอบเครือข่าย แต่เนื่องจากข้อผิดพลาดของแฮกเกอร์ที่เป็นนักพัฒนา มันจึงทำงานอย่างไม่แน่นอน
Arkham ประเมิน ว่าแฮกเกอร์สามารถขโมยไปได้เพียง 159 ดอลลาร์ เงินนี้ถูกโอนไปยังกระเป๋าที่ปรากฏในรายงานของ Ledger จำนวนเงินนี้น้อยนิดเมื่อเทียบกับความเสี่ยงที่อาจเกิดขึ้น แต่เหตุการณ์นี้แสดงให้เห็นว่าระบบนิเวศเข้าใกล้วิกฤตใหญ่เพียงใด

ยอดคงเหลือของกระเป๋าคริปโตของผู้โจมตี ตามข้อมูลของ Arkham
บทบาทของกระเป๋าฮาร์ดแวร์
ผู้ที่เสี่ยงที่สุดคือผู้ใช้กระเป๋าซอฟต์แวร์ที่เซ็นธุรกรรมโดยตรงในเบราว์เซอร์ ที่นั่น การแทนที่ที่อยู่แทบจะสังเกตไม่ได้ สถานการณ์ต่างออกไปมากสำหรับผู้ที่ใช้ฮาร์ดแวร์เพื่อเก็บกุญแจ
กระเป๋าฮาร์ดแวร์จะแสดงรายละเอียดการทำธุรกรรมทั้งหมดบนหน้าจอของตัวเอง และการยืนยันเกิดขึ้นด้วยปุ่มกายภาพ แม้ว่าแอปพลิเคชันจะแทนที่ที่อยู่ อุปกรณ์จะแสดงผู้รับที่แท้จริง ผู้ใช้ที่ใส่ใจจะสังเกตเห็นความไม่ตรงกันทันทีและยกเลิกการลงนาม
ตามคำกล่าวของ Guillaume ฟีเจอร์อย่าง Clear Signing และการตรวจสอบธุรกรรมที่ฝังอยู่ทำให้โซลูชันฮาร์ดแวร์เป็นเกราะสำคัญต่อการโจมตีลักษณะนี้
บทเรียนสำหรับชุมชนคริปโต
เรื่องนี้เป็นเครื่อง нагดุนใจว่าช่องโหว่ของห่วงโซ่อุปทานยังคงเป็นความเสี่ยงหลักของอุตสาหกรรม เพียงบัญชีของนักพัฒนาหนึ่งรายถูกเจาะก็สามารถทำให้ผู้ใช้หลายล้านคนทั่วโลกตกอยู่ในอันตรายได้
จากสถานการณ์นี้สามารถสรุปได้ 3 บทเรียนหลัก:
- นักพัฒนาควรกำหนดเวอร์ชันของ dependency ใช้บิลด์ที่สามารถทำซ้ำได้ และตรวจสอบการอัปเดตของเครื่องมือพื้นฐานอย่างรอบคอบ
- ผู้ถือคริปโตควรเก็บสินทรัพย์ไว้ในกระเป๋าฮาร์ดแวร์ และตรวจสอบที่อยู่บนหน้าจออุปกรณ์อย่างละเอียดก่อนทุกครั้งที่จะเซ็นชื่อ
บัญชีของนักพัฒนาในระบบนิเวศ NPM ต้องได้รับการป้องกันด้วยกุญแจความปลอดภัยและการยืนยันตัวตนหลายขั้นตอน เพื่อป้องกันไม่ให้ฟิชชิงนำไปสู่การรั่วไหล
บทสรุป
การโจมตี NPM แสดงให้เห็นว่าระบบโครงสร้างพื้นฐานทั้งหมดนั้นเปราะบางเพียงใด: การติดตั้งนับพันล้านครั้งขึ้นอยู่กับบัญชีเดียว คราวนี้ความเสียหายจำกัดอยู่ที่ 159 ดอลลาร์ แต่ครั้งต่อไปอาจไม่เหมือนเดิม
โชคและความผิดพลาดของผู้โจมตีไม่สามารถแทนที่ความปลอดภัยเชิงระบบได้ นั่นคือเหตุผลที่ทั้งนักพัฒนาและผู้ใช้ควรดำเนินการเพื่อไม่ให้การโจมตีครั้งใหม่ทำให้พวกเขาประหลาดใจ
ค้นหา อัตราแลกเปลี่ยนคริปโตที่ดีที่สุด ที่ Quickex