
ภัยเงียบ HTTP/2: Node.js เสี่ยงโดนโจมตี DoS ถึงเวลาต้องอัปเดตด่วน!
โลกไซเบอร์เต็มไปด้วยภัยคุกคามใหม่ๆ อยู่เสมอ
บางครั้งช่องโหว่ร้ายแรงก็ซ่อนตัวอยู่ในส่วนที่เราใช้งานกันเป็นประจำ
ล่าสุดมีการค้นพบช่องโหว่สำคัญใน Node.js ที่อาจทำให้เซิร์ฟเวอร์โดนโจมตีแบบปฏิเสธการให้บริการ (Denial of Service หรือ DoS) ได้ง่ายๆ
นี่คือเรื่องที่ผู้ดูแลระบบและนักพัฒนาทุกคนต้องให้ความสนใจเป็นพิเศษ
ช่องโหว่ HTTP/2 “Continuation Flood” คืออะไร?
ช่องโหว่ที่ว่านี้ถูกระบุเป็น CVE-2023-46809
มันเกี่ยวข้องกับโปรโตคอล HTTP/2 ซึ่งเป็นรากฐานสำคัญของการสื่อสารบนเว็บในปัจจุบัน
โดยปกติแล้ว HTTP/2 จะมีการส่งข้อมูลเป็นเฟรมต่างๆ เพื่อประสิทธิภาพในการรับส่ง
แต่ช่องโหว่นี้เกิดจากการที่ผู้โจมตีสามารถส่งเฟรมประเภท “CONTINUATION” จำนวนมหาศาล
ต่อเนื่องกันโดยไม่มีการแจ้งสิ้นสุดที่ถูกต้อง
ทำให้เซิร์ฟเวอร์ Node.js ที่ประมวลผลคำขอ HTTP/2 เหล่านั้น
เกิดการใช้หน่วยความจำเกินขนาดอย่างรวดเร็วและหยุดทำงานไปในที่สุด
ผลลัพธ์คือเว็บไซต์หรือบริการที่รันอยู่บน Node.js นั้นๆ ไม่สามารถเข้าถึงได้
เป็นการโจมตีแบบ DoS ที่สามารถทำให้ระบบล่มได้ทันทีด้วยทรัพยากรที่น้อยมากของผู้โจมตี
ใครบ้างที่ได้รับผลกระทบจากภัยคุกคามนี้?
ช่องโหว่นี้ส่งผลกระทบโดยตรงต่อแอปพลิเคชันที่พัฒนาด้วย Node.js และใช้งาน HTTP/2
โดยเฉพาะเวอร์ชัน Node.js 18.x (LTS) และ 20.x (LTS) ซึ่งเป็นเวอร์ชันที่ใช้งานกันอย่างแพร่หลาย
หากบริการมีการใช้ Node.js ในเวอร์ชันเหล่านี้และมีการเปิดใช้งาน HTTP/2
ถือว่ามีความเสี่ยงสูงที่จะตกเป็นเป้าหมายของการโจมตีได้
แม้คุณจะใช้งานบริการ Reverse Proxy หรือ CDN อย่าง Nginx, Apache หรือ Cloudflare อยู่ด้านหน้า
ก็ไม่ได้หมายความว่าระบบจะปลอดภัยร้อยเปอร์เซ็นต์เสมอไป
หลายคนอาจคิดว่าพร็อกซี่เหล่านี้จะช่วยกรองการโจมตีได้ทั้งหมด
แต่ในความเป็นจริงแล้ว หาก Node.js Backend ของคุณยังคงเปิดใช้งานและประมวลผล HTTP/2 ด้วยตัวเอง
ก็ยังคงมีความเป็นไปได้ที่จะถูกโจมตีได้อยู่ดี
เพราะพร็อกซี่บางตัวอาจไม่ได้ตรวจจับหรือป้องกันการโจมตีในรูปแบบนี้ได้อย่างสมบูรณ์แบบ
การแก้ไขและป้องกัน: ต้องทำอย่างไรบ้าง?
ข่าวดีคือทางทีมงาน Node.js ได้ออกแพตช์สำหรับช่องโหว่นี้แล้ว
สิ่งที่คุณต้องทำโดยด่วนคือการ อัปเดต Node.js ของคุณเป็นเวอร์ชันที่แก้ไขช่องโหว่แล้วโดยเร็วที่สุด
สำหรับเวอร์ชัน 18.x LTS ให้อัปเดตเป็น 18.19.0 หรือสูงกว่า
และสำหรับเวอร์ชัน 20.x LTS ให้อัปเดตเป็น 20.10.0 หรือสูงกว่า
การอัปเดตนี้เป็นขั้นตอนที่สำคัญที่สุดในการป้องกันระบบของคุณจากการโจมตีประเภทนี้
หากการอัปเดตทำได้ยากในทันที หรือต้องใช้เวลาในการทดสอบ
อาจพิจารณาการปิดใช้งาน HTTP/2 บน Node.js Backend ชั่วคราว
และให้ Reverse Proxy จัดการการเชื่อมต่อ HTTP/2 เพียงอย่างเดียวแทน
อย่างไรก็ตาม นี่เป็นเพียงมาตรการชั่วคราวเท่านั้น
การ อัปเดต Node.js คือทางออกที่ยั่งยืนและปลอดภัยที่สุด
การรักษาความปลอดภัยของระบบเป็นสิ่งที่ไม่ควรมองข้ามในโลกดิจิทัลปัจจุบัน
โดยเฉพาะอย่างยิ่งเมื่อมีช่องโหว่ร้ายแรงเช่นนี้ถูกเปิดเผยออกมา
การหมั่นตรวจสอบและอัปเดตซอฟต์แวร์ที่ใช้งานให้เป็นเวอร์ชันล่าสุดอยู่เสมอ
จะช่วยให้คุณและผู้ใช้งานทุกคนได้รับประสบการณ์ที่ปลอดภัยจากการใช้งานอินเทอร์เน็ตและบริการต่างๆ
อย่ารอช้า รีบตรวจสอบและดำเนินการแก้ไขโดยเร็วที่สุดเพื่อปกป้องระบบของคุณ