สรุปสั้น
ทีม Sysdig Threat Research Team (TRT) เปิดเผยการบุกรุกที่ขับเคลื่อนด้วย AI agent เป็นครั้งแรกเท่าที่เคยบันทึกได้ เมื่อวันที่ 10 พฤษภาคม 2569 ผู้โจมตีใช้ large language model (LLM) agent สั่งการห่วงโซ่ post-exploitation ทั้งหมด เริ่มจาก notebook server ที่เปิดสู่อินเทอร์เน็ต และจบลงด้วยการดึงฐานข้อมูลภายในออกในเวลาไม่ถึงสองนาที จุดเข้าคือ marimo notebook ที่มีช่องโหว่ CVE-2026-39987 ซึ่งเปิดให้เปิด shell ได้ด้วย WebSocket request เพียงครั้งเดียวบน marimo server ที่ยังไม่ได้แพตช์ นี่ไม่ใช่การโจมตีแบบสคริปต์สำเร็จรูป แต่คำสั่งถูกแต่งขึ้นแบบเรียลไทม์และปรับตัวในแต่ละขั้นตามสิ่งที่เป้าหมายเปิดเผยออกมา ทั้งห่วงโซ่ทำงานครบจบภายในไม่ถึงหนึ่งชั่วโมง โดยกระจายทราฟฟิกผ่าน Cloudflare Workers หลาย IP เพื่อหลบการตรวจจับแบบอิงต่อ source IP
รายละเอียดข่าว
เว็บไซต์ Cyber Security News รายงานเมื่อวันที่ 28 พฤษภาคม 2569 ว่า Sysdig จับภาพการบุกรุกนี้ได้ผ่านทีม TRT ผู้โจมตีเจาะ marimo notebook ที่เปิดสู่อินเทอร์เน็ตด้วย CVE-2026-39987 จากนั้นเก็บ cloud credential จากไฟล์สภาพแวดล้อมและ AWS credential store แล้วใช้ดึง SSH private key จาก AWS Secrets Manager กุญแจดังกล่าวเปิดเซสชัน SSH แบบขนานแปดเซสชันไปยัง bastion server ปลายทาง ซึ่งฐานข้อมูล PostgreSQL ภายในถูกดึงออกทั้งหมด Sr. Director Michael Clark ของ Sysdig กล่าวว่า “เราไม่ได้กำลังดู AI เข้ามาแทนผู้โจมตี แต่กำลังดูผู้โจมตีเปลี่ยนสคริปต์ของตนเป็น AI” สิ่งที่ทำให้การโจมตีนี้โดดเด่นคือวิธีจัดเส้นทางทราฟฟิกเพื่อหลบการตรวจจับ มีการกระจาย AWS API call สิบสองครั้งไปยัง Cloudflare Workers IP ที่ต่างกันสิบเอ็ด IP ในเวลาเพียง 22 วินาที ทำลายการเชื่อมโยงแบบ per-source-IP ที่ผู้ป้องกันคลาวด์พึ่งพา และมีเซสชัน SSH แปดเซสชันมาจากหก IP พร้อมกันในช่วงเจาะ bastion
วิธีการโจมตี

Sysdig TRT ระบุสัญญาณสี่อย่างที่ยืนยันว่า LLM agent เป็นผู้ขับเคลื่อนการโจมตี อย่างแรก agent ด้นสด dump ฐานข้อมูลโดยไม่มีความรู้ schema มาก่อน ไล่นับตาราง (table) และพุ่งเป้าตาราง credential ที่ไม่มีอยู่จริงในแอปที่ schema คล้ายคลึง แสดงว่าใช้การให้เหตุผลจากความรู้ทั่วไป ไม่ใช่ข่าวกรองที่เตรียมไว้ล่วงหน้า อย่างที่สอง พบความคิดเห็นวางแผนเป็นภาษาจีนแปลว่า “ดูซิว่าเราทำอะไรได้อีก” ปรากฏในสายคำสั่งโดยตรง ซึ่ง dispatch ข้ามหก IP ในระดับต่ำกว่าวินาที ไม่ใช่สิ่งที่มนุษย์พิมพ์หรือสคริปต์นิ่ง ๆ จะสร้างได้ อย่างที่สาม ทุกคำสั่งถูกสร้างมาเพื่อให้เครื่องอ่านง่าย ใช้ตัวคั่นแบบมีโครงสร้าง จำกัด output และทิ้ง error stream เพื่อให้ agent อ่านผลลัพธ์ได้สะอาด อย่างที่สี่คือวิธีที่ค่าต่าง ๆ ไหลระหว่างขั้นตอน รหัสผ่านฐานข้อมูลมาจากไฟล์ .pgpass ที่อ่านก่อนหน้า เส้นทาง SSH key ตามมาจากการ listing ที่ยืนยันว่าไฟล์มีอยู่ และ AWS secret ID ถูกเลือกจากผลลัพธ์ ListSecrets ก่อนหน้า 20 วินาที agent ป้อน output ของตัวเองเข้าสู่ action ถัดไปแบบสด ๆ โดยไม่มีมนุษย์สั่ง
ผลกระทบต่อไทย
marimo เป็น notebook สำหรับงานวิทยาศาสตร์ข้อมูลและ machine learning ที่ได้รับความนิยมเพิ่มขึ้นในหมู่ developer และทีมข้อมูลรวมถึงในไทย instance ที่เปิดสู่อินเทอร์เน็ตโดยไม่ได้แพตช์จึงเสี่ยงถูกเจาะด้วย CVE-2026-39987 โดยตรง ที่น่ากังวลกว่านั้นคือการโจมตีที่ขับเคลื่อนด้วย AI ทำให้ผู้โจมตีไม่จำเป็นต้องสำรวจสภาพแวดล้อมล่วงหน้า สามารถปรับตัวและเคลื่อนที่ภายในเครือข่ายได้รวดเร็ว ทำให้การตรวจจับแบบ signature-based ขององค์กรไทยจำนวนมากใช้ไม่ได้ผล เพราะ agent เขียนวิธีโจมตีใหม่ทุกครั้ง องค์กรที่ใช้คลาวด์ AWS และมี bastion/ฐานข้อมูลภายในควรทบทวนการตรวจจับเชิงพฤติกรรมและการแยกสิทธิ์ credential โดยเร่งด่วน
คำแนะนำ
- อัปเดต marimo เป็นเวอร์ชัน 0.23.0 หรือใหม่กว่าทันที หากอัปเกรดไม่ได้ ให้จำกัดการเข้าถึง endpoint
/terminal/wsหรือปิดฟีเจอร์ terminal - ถือว่า marimo instance ที่เปิดสาธารณะทุกตัวอาจถูกเจาะแล้ว และหมุนเวียน (rotate) credential, API key, SSH key และรหัสผ่านฐานข้อมูลที่เกี่ยวข้องทั้งหมด
- เปลี่ยนการตรวจจับไปเน้นพฤติกรรม เช่น การเข้าถึง credential หรือการดึงฐานข้อมูล แทนการอิงคำสั่งเฉพาะ
- เปิด deep telemetry ทั่วทั้งเครือข่าย และใช้ runtime threat detection ที่ตรวจจับรูปแบบเชิงพฤติกรรม
- ตรวจสอบ CVE-2026-39987 ซึ่งอยู่ในแคตตาล็อก KEV ของ CISA และเลยกำหนดเส้นตายการแก้ไขแล้ว
- เฝ้าระวัง AWS API call ที่กระจายหลาย IP ในเวลาสั้น และเซสชัน SSH พร้อมกันจากหลายแหล่ง
Indicators of Compromise (IoCs)
| Type | Indicator | Description |
|---|---|---|
| IP Address | 157.66.54.26 | IP ต้นทางของทั้งสองเซสชัน marimo terminal (AS141892, อินโดนีเซีย) |
| IP Range | 104.28.0.0/16 | Cloudflare Workers egress pool (AS13335) ใช้สำหรับ AWS API call และเซสชัน SSH bastion |
| IP Address | 104.28.162.160 | Cloudflare Workers IP ใช้ใน schema enumeration และ HEREDOC PostgreSQL dump |
| IP Address | 104.28.165.251 | Cloudflare Workers IP ใช้ dump ตาราง credential แบบเจาะจง |
| IP Address | 104.28.165.169 | Cloudflare Workers IP ใช้ค้นหาไฟล์ credential |
| IP Address | 104.28.157.50 | Cloudflare Workers IP ใช้ enumerate container และ SSH key |
| CVE | CVE-2026-39987 | ช่องโหว่ marimo terminal WebSocket RCE (จุดเข้าของห่วงโซ่การโจมตี) |
หมายเหตุ: IP และโดเมนถูก defang โดยตั้งใจ (เช่น
[.]) เพื่อป้องกันการ resolve โดยไม่ตั้งใจ ให้ re-fang เฉพาะในแพลตฟอร์มข่าวกรองภัยคุกคามที่ควบคุมได้ เช่น MISP, VirusTotal หรือ SIEM
