สรุปสั้น
บอตเน็ตตัวใหม่ที่เขียนด้วยภาษา Go ชื่อ NadMesh ปรากฏตัวเมื่อต้นเดือนกรกฎาคม 2569 โดยมุ่งกวาดหาบริการปัญญาประดิษฐ์ที่ถูกเปิดทิ้งไว้บนอินเทอร์เน็ต และแดชบอร์ดของผู้ควบคุมเองอ้างว่าเก็บกุญแจ AWS ที่ไม่ซ้ำกันได้แล้วถึง 3,811 ชุด ระบบเก็บเกี่ยวข้อมูลจาก Shodan คอยเติมคิวการสแกนอย่างต่อเนื่องด้วยเป้าหมายอย่าง ComfyUI, Ollama, n8n, Open WebUI, Langflow และ Gradio ซึ่งล้วนเป็นเครื่องมือสร้างภาพ รันโมเดลในเครื่อง และสร้างเวิร์กโฟลว์ที่ทีมงานมักติดตั้งอย่างรวดเร็วแต่กลับตั้งไฟร์วอลล์ทีหลัง
ทีม XLab ของบริษัท QiAnXin เผยแพร่รายงานเมื่อวันศุกร์ที่ผ่านมา พร้อมตั้งชื่อมัลแวร์ตามสตริง “n4d mesh controller” ที่พบในซอร์สโค้ด สิ่งที่บอตส่งกลับบ้านคือกุญแจคลาวด์ที่ดึงออกจากตัวแปรสภาพแวดล้อม โทเคนบัญชีบริการของ Kubernetes รวมถึงเนื้อหาของไฟล์ ~/.aws/config, .env และ ~/.docker/config.json นักวิจัยสรุปตรงไปตรงมาว่าผู้ควบคุมไม่ได้ต้องการตัวเครื่อง แต่ต้องการ “ข้อมูลรับรองคลาวด์และสิทธิ์บนคลัสเตอร์ Kubernetes” ที่อยู่บนเครื่องนั้น โดยตัวเลขจากเซ็นเซอร์ของ XLab เองแสดงให้เห็นว่าจำนวนไอพีต้นทางที่ปล่อย NadMesh แทบเป็นศูนย์ในช่วงปลายเดือนมิถุนายน ก่อนจะพุ่งขึ้นแนวดิ่งในสัปดาห์แรกของเดือนกรกฎาคมมาอยู่ที่ราว 139 ไอพีต่อวัน
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 17 กรกฎาคม 2569 ว่า ทีมวิจัย XLab ของบริษัท QiAnXin เผยแพร่รายงานวิเคราะห์บอตเน็ตตัวใหม่ชื่อ NadMesh พร้อมภาพหน้าจอแผงควบคุมของผู้โจมตี โดยตั้งชื่อมัลแวร์ตามสตริงที่พบในซอร์สโค้ด
ตัวเลขบนแผงควบคุมซึ่งเป็นของผู้ควบคุมเองและถูกบันทึกภาพไว้เมื่อวันที่ 10 กรกฎาคม กลับขัดแย้งกันเอง ตัวนับที่ระบุยอดติดตั้งรวม 17,700 ครั้ง วางอยู่เหนือกรวยข้อมูลที่อ้างว่ามี 95,700 ครั้งในช่วง 24 ชั่วโมงที่ผ่านมา ช่องหนึ่งบอกว่ามีบอตทำงานอยู่ 16 ตัว ส่วนช่องถัดไปบอกว่า 12 ตัว มีเพียงตัวเลขจำนวนข้อมูลรับรองที่ปรากฏซ้ำกันสองจุด ทำให้พอเชื่อได้ว่าเป็นค่าต่ำสุดที่เก็บได้จริง ขณะที่ฟีดข่าวกรองเบื้องหลังตัวนับนั้นแสดงว่าใน 100 รายการล่าสุด มีการเก็บเกี่ยวข้อมูลรับรอง 47 ครั้งและสำรวจรายการโมเดล 41 ครั้ง โดยรายการโมเดลที่พบมีตัวระบุของ DeepSeek, GLM และ Kimi กำกับด้วยแท็ก :cloud ซึ่งบ่งชี้ว่าสิ่งที่บอตทำบัญชีไว้นั้นเอื้อมไปไกลกว่าตัวเครื่องที่ถูกเจาะ
ในแง่ของช่องทางการโจมตีที่สังเกตได้จริง XLab จัดทำแผนภูมิปริมาณการโจมตีที่ตรวจพบ พบว่า docker_containers_api_rce คิดเป็น 30.31% ตามด้วย jenkins_scripttext_rce อีก 22.28% ส่วนรหัสผ่านที่อ่อนแอบน Telnet คิดเป็น 10.36% และ Redis อีก 8.29% ขณะที่ mcp_cmd_execute แม้จะปรากฏบนแผนภูมิ แต่อยู่ในส่วนหางที่ไม่มีป้ายกำกับ ต่ำกว่าชิ้นส่วนที่เล็กที่สุดที่มีการติดป้าย โดยอยู่ที่เพียง 0.78% สรุปได้ว่าการมุ่งเป้าไปที่บริการ AI นั้นเป็นเรื่องจริงทั้งในขั้นตอนคัดเป้าหมายและในของที่ปล้นได้ แต่ปริมาณการโจมตีส่วนใหญ่ยังคงพุ่งไปที่ซ็อกเก็ต Docker และคอนโซล Jenkins อยู่ดี
รายงานยังชี้ว่าแผงควบคุมมีเชิงอรรถที่เผยความจริงบางอย่าง นั่นคือการนับความสำเร็จอิงกับบัญชีรายการผลลัพธ์ที่อนุญาต ซึ่งไม่นับรวมการเก็บเกี่ยวข้อมูลจาก Ollama และ AWS เข้าไปด้วย พูดง่ายๆ คือกระดานคะแนนของผู้ควบคุมไม่ได้นับสิ่งที่ผู้ควบคุมกำลังขโมยอยู่จริง นอกจากนี้ยังพบว่ามีการรันบิลด์พร้อมกัน 5 เวอร์ชัน โดยมีบอต 11 ตัวอยู่บนเวอร์ชัน 33.8-GO-TITAN ขณะที่ตัวที่ตกรุ่นยังอยู่บนเวอร์ชัน 30.0 และมีจุดปลายทางทดสอบสำหรับทยอยปล่อยบิลด์ใหม่ให้บอตบางส่วน
วิธีการโจมตี
ระบบสแกนของ NadMesh ถูกออกแบบให้เลี้ยงตัวเองได้ เครือข่ายย่อยที่เคยให้ผลลัพธ์จะถูกสุ่มตรวจซ้ำถี่ขึ้นทุกห้านาที ส่วนไอพีที่ถูกทำเครื่องหมายว่าอันตรายในช่วง 24 ชั่วโมงที่ผ่านมาจะถูกวนกลับมาสแกนซ้ำแบบเจาะจงทุกสิบห้านาที โดยไล่พอร์ตของบริการ AI ก่อนเป็นอันดับแรก และเมื่อมีการกวาดเต็มรูปแบบ ทุกเป้าหมายที่ถูกทำเครื่องหมายว่าอันตรายในรอบเจ็ดวันจะถูกดึงกลับขึ้นมาไว้บนสุด หากคิวว่างลง บอตจะสุ่มสร้างช่วงเครือข่าย /24 ขึ้นมาเองแล้วเดินหน้าสแกนต่อ
จุดที่สะท้อนว่าผู้พัฒนารู้ตัวว่ามีนักวิจัยจับตาอยู่คือ เป้าหมายใดก็ตามที่รับการพยายามติดตั้งไปแล้วสิบครั้งโดยไม่เคยส่งผลลัพธ์กลับมา จะถูกขึ้นบัญชีดำอัตโนมัติในฐานะที่ต้องสงสัยว่าเป็นกับดักล่อ (Honeypot) นอกจากนี้การถอนมัลแวร์ออกยังถูกออกแบบมาให้ล้มเหลว เพราะเอเจนต์ฝังตัวไว้พร้อมกันถึงสามวิธี การถอนออกวิธีเดียวจึงเหลืออีกสองวิธีคอยดึงกลับมาใหม่ ยิ่งไปกว่านั้นทุกบิลด์ผ่านการทำให้อ่านยากด้วย Garble บีบอัดด้วย UPX -9 และเติมข้อมูลสุ่มเข้าไป ทำให้ไม่มีเอเจนต์สองตัวใดมีค่าแฮชตรงกัน การใช้ค่าแฮชของตัวอย่างที่เผยแพร่ไปตรวจจับจึงจับได้เพียงบิลด์เดียวและพลาดที่เหลือทั้งหมด
ในลำดับความสำคัญของการโจมตีบนตัวควบคุม MCP (Model Context Protocol) ถูกจัดไว้เหนือกว่า Kubernetes, Docker API และ Redis โดยช่องทางที่ XLab บันทึกไว้ข้างๆ คือการเรียก JSON-RPC ไปยัง tools/call เพื่อสั่ง execute_command ซึ่งไม่มีหมายเลข CVE กำกับและรายงานก็ไม่ได้อ้างว่ามี เหตุผลอยู่ที่ข้อกำหนดฉบับแรกของ MCP วางเรื่องการยืนยันตัวตนไว้นอกตัวโปรโตคอลหลักทั้งหมด และกระบวนการให้สิทธิ์ที่เพิ่มเข้ามาเมื่อเดือนมีนาคม 2568 ก็ยังเป็นทางเลือกตามถ้อยคำในข้อกำหนดเอง การติดตั้งจำนวนมากจึงข้ามขั้นตอนนี้ไป โดยบริษัท Censys เคยนับบริการ MCP ที่เข้าถึงได้จากภายนอกไว้ 12,520 รายการบน 8,758 ไอพีเมื่อวันที่ 28 เมษายน และเกิน 21,000 รายการภายในวันที่ 6 พฤษภาคม ในจำนวนนั้นราว 90 รายการโฆษณาเครื่องมือที่รันคำสั่งได้ และ 39 รายการใช้ชื่อเครื่องมือว่า execute_command พอดีกับที่อยู่บนสุดของตาราง NadMesh
นอกจากบริการที่เปิดทิ้งไว้แล้ว NadMesh ยังมีคิวช่องโหว่ที่ต้องแพตช์ด้วย โดยแผนภูมิรวม CVE-2026-39987 ซึ่งเป็นช่องโหว่รันโค้ดระยะไกลก่อนยืนยันตัวตนใน Marimo notebooks เวอร์ชันก่อน 0.23.0 ที่ CISA เพิ่มเข้าแคตตาล็อก KEV เมื่อเดือนเมษายนหลังถูกโจมตีภายในไม่กี่ชั่วโมงนับจากเปิดเผย ถัดมาคือ CVE-2026-41176 ที่เปิดให้ผู้เรียกซึ่งไม่ผ่านการยืนยันตัวตนสลับค่า rc.NoAuth บนเซิร์ฟเวอร์ RC ของ rclone เวอร์ชัน 1.45.0 ถึง 1.73.5 ที่ถูกเริ่มต้นโดยไม่มีการยืนยันตัวตน HTTP ซึ่งไฟล์ตั้งค่าของ rclone ก็คือข้อมูลรับรองคลาวด์นั่นเอง ส่วนรายการเก่ากว่าอย่าง CVE-2022-22947 ที่ 6.48% จะโจมตีได้ก็ต่อเมื่อเปิดใช้และเปิดเผยจุดปลายทาง Actuator ของ Spring Cloud Gateway โดยไม่มีการป้องกัน และ CVE-2017-12611 ที่ 4.15% คือช่องโหว่แท็ก Freemarker ของ Struts
ผลกระทบต่อไทย
องค์กรและทีมพัฒนาในประเทศไทยกำลังตั้งบริการ AI ขึ้นใช้งานเองอย่างรวดเร็ว ทั้ง Ollama สำหรับรันโมเดลภาษาในเครื่อง ComfyUI สำหรับสร้างภาพ และ n8n สำหรับสร้างเวิร์กโฟลว์อัตโนมัติ โดยหลายกรณีติดตั้งบนเซิร์ฟเวอร์คลาวด์เพื่อทดลองใช้งานแล้วเปิดพอร์ตสู่อินเทอร์เน็ตไว้ชั่วคราวเพื่อความสะดวก ก่อนจะลืมปิดหรือไม่ได้ตั้งการยืนยันตัวตน ซึ่งตรงกับพฤติกรรมที่ NadMesh ไล่ล่าพอดี
สิ่งที่ทำให้ความเสี่ยงรุนแรงกว่าที่คิดคือ เครื่องที่ใช้ทดลองระบบ AI มักถูกมองว่าเป็นเครื่องทดสอบที่ไม่มีข้อมูลสำคัญ แต่ในความเป็นจริงมักมีกุญแจ AWS ไฟล์ .env และโทเคนของคลัสเตอร์ Kubernetes วางอยู่ เพราะจำเป็นต้องใช้เชื่อมต่อบริการอื่นระหว่างพัฒนา เมื่อบอตเน็ตขโมยข้อมูลรับรองเหล่านี้ไป ผู้โจมตีสามารถเดินต่อเข้าไปยังระบบผลิตจริงที่มีความสำคัญสูงกว่ามาก โดยไม่ต้องเจาะระบบนั้นโดยตรงเลย ยิ่งไปกว่านั้นกุญแจคลาวด์ที่ถูกขโมยยังถูกนำไปใช้เปิดทรัพยากรราคาแพงเพื่อขุดคริปโตเคอร์เรนซี ซึ่งสร้างค่าใช้จ่ายมหาศาลให้เจ้าของบัญชีในเวลาไม่กี่วัน
คำแนะนำ
ประเด็นสำคัญที่สุดคือ การโจมตีส่วนใหญ่ของ NadMesh พุ่งเป้าไปที่บริการที่เปิดทิ้งไว้และฟังก์ชันผู้ดูแลที่ยังเรียกใช้ได้ ไม่ว่าจะเป็น Docker API ที่เปิดบนพอร์ต 2375 คอนโซลสคริปต์ของ Jenkins, Redis ที่ไม่ต้องยืนยันตัวตน, Telnet ที่ใช้รหัสผ่านอ่อนแอ และรหัสผ่าน SSH ซึ่งไม่มีแพตช์ใดปิดช่องเหล่านี้ได้ ทางแก้คือย้ายทุกอย่างไปอยู่หลังการยืนยันตัวตนหรือถอดออกจากอินเทอร์เน็ตสาธารณะ โดยเริ่มจากสี่พอร์ตที่บอตเน็ตจัดลำดับให้สแกนก่อน ได้แก่ 8188 (ComfyUI), 11434 (Ollama), 7860 (Gradio) และ 5678 (n8n)
ในส่วนของช่องโหว่ที่ต้องแพตช์ ควรเร่งอัปเดต Marimo notebooks ให้เป็นเวอร์ชัน 0.23.0 ขึ้นไปเพื่อปิด CVE-2026-39987 และอัปเดต rclone ให้พ้นช่วง 1.45.0 ถึง 1.73.5 เพื่อปิด CVE-2026-41176 พร้อมตรวจสอบว่าเซิร์ฟเวอร์ RC ถูกเริ่มต้นโดยมีการยืนยันตัวตน HTTP เสมอ สำหรับองค์กรที่ใช้ MCP ควรเปิดใช้กระบวนการให้สิทธิ์ที่เป็นทางเลือกในข้อกำหนด และอย่าเปิดบริการ MCP ที่มีเครื่องมือรันคำสั่งอย่าง execute_command สู่อินเทอร์เน็ตโดยเด็ดขาด
หากสงสัยว่าถูกเจาะ ให้ตรวจเส้นทางที่มัลแวร์มักวางไฟล์ ได้แก่ ~/.ssh/authorized_keys ที่อาจมีกุญแจซึ่งไม่มีใครจำได้ว่าเพิ่มเข้าไป, /dev/shm/.a, /var/tmp/.a, /tmp/.a รวมถึง /etc/cron.d/.sys_monitor และ /etc/cron.d/.s หากพบสิ่งใดสิ่งหนึ่ง ให้แยกเครื่องออกจากเครือข่ายทันทีและเพิกถอนข้อมูลรับรองทุกชุดที่เครื่องนั้นมองเห็นได้ ทั้งกุญแจ AWS โทเคนคลัสเตอร์ เนื้อหาไฟล์ .env และข้อมูลล็อกอินของ registry โดยต้องเน้นว่าการเพิกถอนไม่เหมือนการหมุนเปลี่ยน ต้องถอนกลไกฝังตัวออกให้หมดก่อนออกกุญแจชุดใหม่ มิฉะนั้นกุญแจใหม่จะรั่วซ้ำรอยเดิม จากนั้นจึงย้อนตรวจว่ากุญแจชุดเก่าถูกนำไปใช้ที่ใดบ้างในช่วงที่ยังใช้งานได้
Indicators of Compromise (IoCs)
| ประเภท | ตัวบ่งชี้ | คำอธิบาย |
|---|---|---|
| IP (C2) | 209.99.186[.]235 | เซิร์ฟเวอร์สั่งการและควบคุมของ NadMesh (defang แล้ว) |
| โดเมน | cdnorigin[.]net | โดเมนที่ใช้ในโครงสร้างพื้นฐานของบอตเน็ต (defang แล้ว) |
| SHA1 | 31c69b3e12936abca770d430066f379ec1d997ec | ตัวอย่างเอเจนต์ NadMesh หนึ่งบิลด์ |
| ไฟล์ | /dev/shm/.a, /var/tmp/.a, /tmp/.a | เส้นทางที่มัลแวร์วางไฟล์ |
| ไฟล์ | /etc/cron.d/.sys_monitor, /etc/cron.d/.s | งานตามเวลาที่ใช้ฝังตัว |
หมายเหตุ: ตัวบ่งชี้ประเภทไอพีและโดเมนถูก defang ไว้เพื่อความปลอดภัย หากนำไปใช้งานต้องแปลงกลับเป็นรูปแบบปกติก่อน และเนื่องจากทุกบิลด์ผ่านการทำให้อ่านยากและเติมข้อมูลสุ่ม ค่าแฮชจึงใช้ตรวจจับได้เพียงบิลด์เดียวเท่านั้น
