เปิดโปงช่องโหว่ 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:
- ข้ามผ่านการป้องกัน (Guardrails) ของ LLM: ใช้เทคนิค Prompt Injection เพื่อ "ยึดบริบท (Context)" และสั่งให้ AI ทำตามคำสั่งของผู้โจมตี
- สั่งการผ่าน AI Agent โดยอัตโนมัติ: ใช้ความสามารถของ AI Agent ในการเรียกใช้เครื่องมือ (Tool Calls) ที่ถูกอนุมัติโดยอัตโนมัติ โดยไม่ต้องการการยืนยันจากผู้ใช้
- เปิดใช้งานฟีเจอร์ปกติของ 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 #สมาร์ทซิตี้คลิก