เตือนภัย! พบแพ็กเกจ npm ปลอมเลียนแบบ Telegram Bot API เพื่อติดตั้ง SSH Backdoor บนระบบ Linux
ในขณะที่นักพัฒนาแห่ใช้แพ็กเกจโอเพนซอร์สจาก npm เพื่อลดเวลาและต้นทุนการพัฒนา ระบบความปลอดภัยของแพลตฟอร์มกลับถูกท้าทายอีกครั้ง เมื่อมีการค้นพบว่าแพ็กเกจ npm บางรายการถูกสร้างขึ้นโดยมีเป้าหมายเพื่อแฝงมัลแวร์ที่สามารถควบคุมเครื่องของเหยื่อจากระยะไกล
ล่าสุด นักวิจัยด้านความปลอดภัยจาก Checkmarx ได้เปิดเผยการโจมตีรูปแบบใหม่ที่ใช้แพ็กเกจ npm ที่ปลอมตัวเป็นไลบรารีของ Telegram Bot API แต่ภายในซ่อนฟังก์ชันที่แอบติดตั้ง SSH Backdoor ลงบนระบบ Linux โดยเฉพาะ
รูปแบบการโจมตี เมื่อแพ็กเกจที่ดู “ธรรมดา” กลายเป็นอาวุธ
แพ็กเกจที่ตรวจพบมีชื่อใกล้เคียงกับไลบรารียอดนิยมของ Telegram เช่น telegram-bot-api, telegram-bot-client เป็นต้น โดยตั้งใจให้ชื่อใกล้เคียงกับไลบรารีจริง เพื่อหลอกให้นักพัฒนาไม่ทันระวัง และติดตั้งโดยไม่ตรวจสอบโค้ดภายในอย่างละเอียด
เมื่อถูกติดตั้ง แพ็กเกจเหล่านี้จะทำงานคล้ายกับไลบรารีทั่วไป แต่มีการเรียกใช้โค้ดแอบแฝงที่เชื่อมต่อกับเซิร์ฟเวอร์ภายนอกเพื่อติดตั้ง backdoor ในรูปแบบ SSH key ทำให้ผู้ไม่หวังดีสามารถเข้าใช้งานระบบได้ตลอดเวลา โดยไม่ต้องใช้รหัสผ่านหรือกระบวนการยืนยันตัวตนใดๆ
เป้าหมาย เครื่อง Linux ที่รันแอป Node.js
จากการวิเคราะห์ พบว่าแพ็กเกจอันตรายนี้ถูกออกแบบมาเพื่อโจมตีเฉพาะระบบปฏิบัติการ Linux โดยจะค้นหาบัญชีผู้ใช้บนเครื่อง แล้วแทรก public SSH key ลงในไฟล์ ~/.ssh/authorized_keys ของแต่ละบัญชี ทำให้แฮกเกอร์สามารถเข้าสู่ระบบผ่าน SSH ได้โดยอัตโนมัติ
ไม่เพียงเท่านั้น แพ็กเกจยังมีโค้ดที่ใช้ตรวจสอบสภาพแวดล้อมของระบบ เพื่อหลีกเลี่ยง sandbox หรือการวิเคราะห์จากระบบความปลอดภัยอัตโนมัติอีกด้วย
ความเสียหายที่อาจเกิดขึ้น
หากระบบของเหยื่อตกเป็นเป้าหมายและถูกแฮกเกอร์เข้าถึงผ่าน SSH สำเร็จ ผู้ไม่หวังดีจะสามารถ
-
เข้าถึงไฟล์และข้อมูลสำคัญทั้งหมด
-
ติดตั้งมัลแวร์เพิ่มเติม เช่น RAT หรือ Cryptominer
-
ใช้ระบบที่ถูกแฮกเป็นฐานโจมตีระบบอื่นในเครือข่าย
-
ขโมย credentials และข้อมูลผู้ใช้
ยิ่งแอปพลิเคชันนั้นมีสิทธิ์ root หรือทำงานบน production server ความเสียหายก็จะยิ่งรุนแรง
วิธีการป้องกัน
นักพัฒนาและผู้ดูแลระบบควรปฏิบัติดังนี้
-
ตรวจสอบแพ็กเกจ npm ก่อนติดตั้ง
ดูชื่อผู้พัฒนา จำนวนดาว เวอร์ชัน และความเคลื่อนไหวของโครงการ
หากมีชื่อใกล้เคียงกับไลบรารียอดนิยม แต่ไม่มีข้อมูลย้อนหลังหรือดาวน้อยผิดปกติ ควรระวัง -
ใช้
npm auditและnpm audit signatures
ตรวจสอบแพ็กเกจที่ติดตั้งแล้วว่ามีรายงานด้านความปลอดภัยหรือไม่ -
จำกัดสิทธิ์ของ user ที่รันแอปพลิเคชัน Node.js
เพื่อไม่ให้สามารถเขียน SSH key หรือเปลี่ยนแปลงระบบได้ -
ตั้งค่าไฟร์วอลล์ และระบบตรวจจับพฤติกรรมผิดปกติ (IDS)
เพื่อตรวจสอบความพยายามในการเชื่อมต่อ SSH จาก IP แปลกปลอม -
ตรวจสอบไฟล์
authorized_keysเป็นประจำ
โดยเฉพาะบนเครื่องที่ใช้พัฒนา ทดสอบ หรือรันแอป Node.js
แนวโน้มและบทเรียนจากเหตุการณ์นี้
เหตุการณ์นี้สะท้อนว่าการโจมตีซัพพลายเชนซอฟต์แวร์ (Software Supply Chain Attack) ยังคงเป็นภัยคุกคามสำคัญ และมักอาศัยความประมาทของนักพัฒนาในการติดตั้งไลบรารีที่ดูเหมือนปลอดภัย
แพลตฟอร์มอย่าง npm ที่เปิดกว้างให้ใครก็ได้เผยแพร่แพ็กเกจ จึงเป็นช่องโหว่สำคัญที่ควรได้รับการจัดการอย่างเป็นระบบ ไม่ว่าจะเป็นการใช้ระบบ sign & verify, การรายงานแพ็กเกจต้องสงสัย หรือระบบแจ้งเตือนอัตโนมัติเมื่อชื่อแพ็กเกจใกล้เคียงกันมากผิดปกติ
สรุป ความปลอดภัยต้องเริ่มจากการ “ระวัง” มากกว่า “แก้ไข”
การติดตั้งแพ็กเกจ npm โดยไม่ตรวจสอบให้ดี อาจนำมาซึ่งความเสียหายที่เกินกว่าคาดคิดได้ โดยเฉพาะกับเครื่อง Linux ที่เชื่อมต่ออินเทอร์เน็ตอยู่ตลอดเวลา
คุณเคยเจอแพ็กเกจ npm ที่ดูน่าสงสัยหรือไม่? หรือมีวิธีป้องกันเพิ่มเติมที่คุณใช้อยู่?ร่วมแสดงความคิดเห็นกับเรา แชร์บทความนี้ให้เพื่อนนักพัฒนาได้รับรู้ และสมัครรับข่าวสารจากเว็บไซต์ของเรา เพื่ออัปเดตทุกภัยคุกคามทางไซเบอร์ก่อนใคร






