เปิดโปงช่องโหว่ AI IDEs กว่า 30 รายการ: ภัยร้าย 'IDEsaster' ที่พร้อมขโมยข้อมูลและรันโค้ดจากระยะไกล!

 

มีรายงานด้านความปลอดภัยสุดอื้อฉาวที่เปิดเผยถึง ช่องโหว่ด้านความปลอดภัยมากกว่า 30 รายการ ในเครื่องมือช่วยเขียนโค้ดที่ขับเคลื่อนด้วยปัญญาประดิษฐ์ (AI-powered Integrated Development Environments หรือ IDEs) หลายตัว ซึ่งนักวิจัยตั้งชื่อภัยคุกคามชุดนี้ว่า "IDEsaster"

ช่องโหว่เหล่านี้สามารถใช้เทคนิคการโจมตีแบบ Prompt Injection ร่วมกับฟีเจอร์ที่ถูกต้องตามกฎหมายของ IDE เพื่อให้ผู้โจมตีสามารถ ดึงข้อมูลลับ (Data Exfiltration) และ สั่งรันโค้ดจากระยะไกล (Remote Code Execution - RCE) ได้อย่างง่ายดาย

เครื่องมือยอดนิยมที่ได้รับผลกระทบ

ช่องโหว่ IDEsaster ส่งผลกระทบต่อ IDEs และส่วนขยายยอดนิยมหลายตัว เช่น:

  • Cursor
  • Windsurf
  • Kiro.dev
  • GitHub Copilot
  • Zed.dev
  • Roo Code
  • Junie
  • Cline
  • และอื่น ๆ

นักวิจัยด้านความปลอดภัย Ari Marzouk (MaccariTA) ผู้ค้นพบเรื่องนี้กล่าวว่า สิ่งที่น่าประหลาดใจที่สุดคือ "ชุดการโจมตีสากลหลายชุดส่งผลกระทบต่อ AI IDEs ทุกตัวที่ถูกทดสอบ" ซึ่งแสดงให้เห็นว่านักพัฒนา AI IDEs ต่างมองข้ามความเสี่ยงด้านความปลอดภัยของซอฟต์แวร์พื้นฐาน (IDE) เมื่อเพิ่มความสามารถของ AI Agent เข้าไป

กลไกการโจมตี 3 ขั้นตอนของ IDEsaster

การโจมตีเหล่านี้เกิดจากการเชื่อมโยง 3 ขั้นตอนหลักที่พบได้ทั่วไปใน IDEs ที่ขับเคลื่อนด้วย AI:

  1. ข้ามผ่านการป้องกัน (Guardrails) ของ LLM: ใช้เทคนิค Prompt Injection เพื่อ "ยึดบริบท (Context)" และสั่งให้ AI ทำตามคำสั่งของผู้โจมตี
  2. สั่งการผ่าน AI Agent โดยอัตโนมัติ: ใช้ความสามารถของ AI Agent ในการเรียกใช้เครื่องมือ (Tool Calls) ที่ถูกอนุมัติโดยอัตโนมัติ โดยไม่ต้องการการยืนยันจากผู้ใช้
  3. เปิดใช้งานฟีเจอร์ปกติของ IDE: ใช้ฟีเจอร์ที่ถูกต้องตามกฎหมายของ IDE เพื่อทะลวงขอบเขตความปลอดภัย และทำให้ข้อมูลรั่วไหล หรือรันคำสั่งตามอำเภอใจ

การโจมตีตัวอย่างที่ถูกเปิดเผย

ช่องโหว่เหล่านี้สามารถนำไปสู่การโจมตีที่น่ากลัวหลายรูปแบบ:

  • การขโมยไฟล์ลับ: ใช้ Prompt Injection เพื่อสั่งให้ AI อ่านไฟล์ที่มีความอ่อนไหว (เช่น ไฟล์ตั้งค่าหรือโค้ด) จากนั้นใช้ฟีเจอร์เขียนไฟล์ของ IDE (เช่น write_file หรือ edit_file) เพื่อสร้างไฟล์ JSON ที่มีการอ้างอิงถึง Schema ภายนอกที่ผู้โจมตีควบคุม ทำให้ IDE ทำการร้องขอข้อมูล (GET request) และส่งข้อมูลลับนั้นออกไป
    • ตัวอย่าง CVE: CVE-2025-49150 (Cursor), CVE-2025-53097 (Roo Code), GitHub Copilot (ไม่มี CVE)
  • การรันโค้ดจากระยะไกล (RCE) ผ่านการตั้งค่า IDE: ใช้ Prompt Injection เพื่อแก้ไขไฟล์การตั้งค่าของ IDE (เช่น .vscode/settings.json) และกำหนดเส้นทางของโปรแกรมที่ใช้ตรวจสอบความถูกต้อง (Validator) หรือเครื่องมืออื่น ๆ ให้ชี้ไปยังไฟล์สั่งการที่มีโค้ดอันตรายของผู้โจมตี

    • ตัวอย่าง CVE: CVE-2025-53773 (GitHub Copilot), CVE-2025-54130 (Cursor)

หมายเหตุสำคัญ: การโจมตี RCE สองรูปแบบสุดท้ายอาศัยการที่ AI Agent ถูกตั้งค่าให้ อนุมัติการเขียนไฟล์โดยอัตโนมัติ ซึ่งเป็นพฤติกรรมเริ่มต้นสำหรับไฟล์ภายในพื้นที่ทำงาน (in-workspace files) ทำให้เกิดการรันโค้ดโดยไม่ต้องมีปฏิสัมพันธ์ใด ๆ จากผู้ใช้

คำแนะนำด้านความปลอดภัยสำหรับนักพัฒนา

เพื่อรับมือกับภัยคุกคามเหล่านี้ นักวิจัยมีคำแนะนำดังนี้:

สำหรับผู้ใช้งาน:

  • ใช้ AI IDEs กับโครงการที่เชื่อถือได้เท่านั้น: ไฟล์กฎอันตราย, คำสั่งที่ซ่อนอยู่ในซอร์สโค้ด (เช่น ในไฟล์ README) หรือแม้แต่ชื่อไฟล์ ก็สามารถเป็นช่องทางในการโจมตีแบบ Prompt Injection ได้
  • ตรวจสอบแหล่งที่มาด้วยตนเอง: หากมีการเพิ่มบริบท (Context) ผ่าน URL หรือการคัดลอก/วาง ควรตรวจสอบหาคำสั่งที่ซ่อนอยู่ (เช่น ข้อความที่ซ่อนด้วย CSS, อักขระ Unicode ที่มองไม่เห็น)
  • เชื่อมต่อกับ Model Context Protocol (MCP) Server ที่เชื่อถือได้เท่านั้น: และคอยเฝ้าระวังการเปลี่ยนแปลงอย่างต่อเนื่อง

สำหรับนักพัฒนา AI Agent และ AI IDEs:

  • ใช้หลักการสิทธิ์ขั้นต่ำสุด (Principle of Least Privilege) กับเครื่องมือของ LLM
  • ลดช่องทางโจมตี Prompt Injection
  • ใช้ Sandboxing เพื่อรันคำสั่งที่มาจาก AI Agent
  • ดำเนินการทดสอบความปลอดภัยอย่างเข้มงวด โดยเฉพาะการป้องกัน Path Traversal, การรั่วไหลของข้อมูล, และ Command Injection

การค้นพบนี้ตอกย้ำความสำคัญของแนวคิด "Secure for AI" ซึ่งเป็นกระบวนทัศน์ใหม่ที่เน้นว่าผลิตภัณฑ์ไม่เพียงแต่ต้องปลอดภัยโดยค่าเริ่มต้น (Secure by Default) และปลอดภัยจากการออกแบบ (Secure by Design) เท่านั้น แต่ยังต้องคำนึงถึงวิธีการที่ส่วนประกอบ AI สามารถถูกนำไปใช้ในทางที่ผิดได้ด้วย

#ดรกฤษฎาแก้ววัดปริง #ไทยสมาร์ทซิตี้ #SmartCity #DRKRIT #สมาร์ทซิตี้คลิก