SANS Internet Storm Center รายงานสิ่งที่เรียกได้ว่าเป็น "Background Radiation of the AI Era" นั่นคือการสแกนอินเทอร์เน็ตแบบ Active เพื่อค้นหา MCP (Model Context Protocol) Server ที่ไม่มีการ Authenticate และไฟล์ Configuration ของ AI Coding Assistant เช่น Claude และ Cursor ที่อาจหลุดโผล่บนอินเทอร์เน็ตโดยที่ Developer ไม่รู้ตัว
สิ่งที่ทำให้การสแกนนี้แตกต่างจาก Bot ทั่วไปคือผู้โจมตีส่ง MCP Handshake ที่ถูกต้องตาม Protocol ไม่ใช่แค่การเช็ค Path ธรรมดา ซึ่งหมายความว่าพวกเขาเข้าใจ MCP Protocol เป็นอย่างดีและกำลังหา MCP Server ที่พร้อมสื่อสารด้วยจริง ๆ
และที่น่าตกใจยิ่งกว่าคือ Lakera ค้นพบว่า Credential ของ Claude หลุดติดไปใน npm Package สาธารณะ 30 รายการ จาก 46,500 รายการที่สแกน เพราะ Developer เผยแพร่ Package โดยไม่รู้ว่าโฟลเดอร์ .claude ติดมาด้วย
MCP Server คืออะไร และทำไมถึงตกเป็นเป้าหมาย
Model Context Protocol (MCP) เป็น Open Protocol ที่พัฒนาโดย Anthropic เพื่อให้ AI Agent สามารถเชื่อมต่อและใช้งาน External Tool และบริการต่าง ๆ ได้ เช่น Database, File System, API, Code Repository, Browser และอื่น ๆ อีกมากมาย
MCP Server คือ Service ที่รัน "ฝั่งเครื่องมือ" ที่ AI จะเรียกใช้ ตัวอย่างเช่น MCP Server สำหรับ File System จะช่วยให้ Claude อ่านและเขียนไฟล์ในเครื่องได้, MCP Server สำหรับ GitHub จะให้ Claude ดู Repository และสร้าง Pull Request ได้ และ MCP Server สำหรับ Database จะให้ Claude Query ข้อมูลได้โดยตรง
ความสำคัญของ MCP Server จึงอยู่ที่ว่ามันเป็น ประตูสู่ระบบและข้อมูลสำคัญขององค์กร ถ้า MCP Server ถูกเข้าถึงได้โดยไม่มี Authentication ผู้โจมตีอาจสั่งการผ่าน Protocol นั้นได้เหมือนกับ AI Agent จริง ๆ
รายละเอียดการสแกนที่พบ
จากการวิเคราะห์ของ SANS Internet Storm Center พบคำขอสแกนประมาณ 200 รายการ ที่เกี่ยวข้องกับ AI Agent Reconnaissance โดยมาจาก 49 Source IP Address ที่แตกต่างกัน
สิ่งที่โดดเด่นเป็นพิเศษคือลักษณะของคำขอที่ส่งมา ผู้โจมตีส่ง JSON-RPC Message ที่ถูกต้องตามมาตรฐาน MCP เพื่อพยายามเริ่ม MCP Conversation จริง ไม่ใช่แค่การ GET Path ธรรมดาเพื่อดูว่ามีไฟล์อยู่หรือเปล่า นั่นหมายความว่าหาก MCP Server ไม่มีการ Authenticate และตอบสนองต่อ Handshake นั้น ผู้โจมตีสามารถเริ่มสั่งงาน Server ได้ทันที
ไฟล์ที่ถูกสแกนหา
นอกจาก MCP Server โดยตรง ยังมีการสแกนหาไฟล์ Configuration และ Credential ของ AI Coding Assistant โดยเฉพาะ Path ที่เป็น Default ของ Claude และ Cursor
สำหรับ Claude:
/.claude/mcp.json— ไฟล์ตั้งค่า MCP Server ที่ Claude เชื่อมต่อ/.claude/settings.local.json— ไฟล์ Settings ที่อาจมี API Key/.claude/.credentials.json— ไฟล์ Credential ของ Claude โดยตรง/.config/claude/.credentials.json— อีก Path หนึ่งสำหรับ Credential
สำหรับ Cursor:
/.cursor/mcp.json— ไฟล์ตั้งค่า MCP ของ Cursor/.cursor/mcp_config.json— Config ทางเลือก
อื่น ๆ:
/.vscode/mcp.json— Integration กับ VS Code/.mcp/config.json— Path ทั่วไปของ MCP Config
Path เหล่านี้เป็น Default Location ที่ Claude Code และ Cursor เขียนไฟล์ Config ลงไป ซึ่งบน Developer Machine ปกติจะอยู่ใน Home Directory ไม่ได้เปิดสู่อินเทอร์เน็ต แต่ถ้า Developer ใช้งาน Claude บน Server หรือ VPS ที่เปิด Web Server ด้วย ไฟล์เหล่านี้อาจเข้าถึงได้จากภายนอก
ปัญหา npm Package — Credential ที่ "หลุดโดยไม่รู้ตัว"
Lakera ค้นพบปัญหาที่น่ากังวลมากอีกประเภทหนึ่ง เมื่อสแกน npm Package สาธารณะกว่า 46,500 รายการ พบว่า 30 Package มี Credential ของ Claude ติดมาด้วยโดยไม่ได้ตั้งใจ
กระบวนการที่ทำให้เกิดปัญหานี้คือ Developer ใช้ Claude Code (CLI Tool ของ Anthropic) ในการพัฒนา Project โดย Claude Code สร้างโฟลเดอร์ .claude/ ไว้ใน Project Directory เมื่อ Developer เผยแพร่ Project ขึ้น npm Registry โดยไม่ได้เพิ่ม .claude/ ลงใน .npmignore หรือ .gitignore โฟลเดอร์นั้นก็ถูกรวมเข้าไปใน Package ด้วย ทำให้ใครก็ตามที่ดาวน์โหลด Package นั้นได้รับ Credential ของ Developer ไปด้วยโดยอัตโนมัติ
ทำไมการโจมตีผ่าน MCP ถึงอันตราย
MCP Server มี Attack Surface ที่กว้างกว่า API ทั่วไปในหลายด้าน
สิทธิ์ที่ครอบคลุม MCP Server มักได้รับการตั้งค่าให้มีสิทธิ์กว้างเพื่อให้ AI ทำงานได้อย่างยืดหยุ่น ตัวอย่างเช่น File System MCP อาจอ่านและเขียนไฟล์ได้ทั้ง Home Directory, MCP ของ Code Repository อาจมีสิทธิ์ Push Code ได้
Protocol ที่ AI เข้าใจ ผู้โจมตีที่เข้าถึง MCP Server ที่ไม่มี Auth ไม่ต้องการ Exploit พิเศษ เพียงแค่ส่ง MCP Message ที่ถูกต้องก็สามารถสั่งให้ Server ทำสิ่งต่าง ๆ ได้เลย รวมถึงอ่านไฟล์, รัน Command หรือดึงข้อมูลจาก Database
ขาด Logging ที่เพียงพอ MCP เป็น Protocol ที่ค่อนข้างใหม่ ทำให้หลายองค์กรยังไม่มีระบบ Monitor หรือ Audit Log ที่ครอบคลุม Action ที่ทำผ่าน MCP
ผลกระทบที่อาจเกิดขึ้น
- MCP Server ที่ไม่มี Auth เปิดให้ผู้โจมตีสั่งงาน Tool ที่ AI เชื่อมต่ออยู่ได้โดยตรง ซึ่งอาจรวมถึง Database, Cloud Storage หรือ Code Repository
- Credential ที่หลุดใน npm ทำให้ Anthropic API Key, MCP Token หรือ Configuration ที่มี Secret ตกไปอยู่ในมือคนอื่นโดยไม่รู้ตัว
- AI Agent ที่ถูก Hijack หากผู้โจมตีควบคุม MCP Server ที่ AI เชื่อมต่ออยู่ อาจสามารถส่งข้อมูลเท็จให้ AI และบังคับให้ดำเนินการที่เป็นอันตรายได้ (เช่น Tool Poisoning)
- Supply Chain Risk npm Package ที่มี Credential อาจถูกดาวน์โหลดโดย Developer หลายร้อยคนก่อนที่ปัญหาจะถูกค้นพบ
สิ่งที่องค์กรควรตรวจสอบทันที
- ตรวจสอบว่า MCP Server ที่ใช้งานอยู่ ไม่ได้เปิด Port สู่อินเทอร์เน็ต โดยตรง และมีการ Authenticate ทุก Connection
- ตรวจสอบ npm Package ที่ทีม Publish ขึ้นไปว่ามีโฟลเดอร์
.claude/หรือ.cursor/ติดมาหรือไม่ - ตรวจสอบ Git Repository สาธารณะที่เกี่ยวข้องกับทีมว่ามีไฟล์
.claude/,.cursor/, หรือ MCP Config หลุดออกไปหรือไม่ - ตรวจสอบ Anthropic API Key ว่ามีการใช้งานจาก IP ที่ผิดปกติหรือมี Usage สูงผิดปกติหรือไม่
- ตรวจสอบว่ามี Web Server หรือ Service ที่รันบนพอร์ตเดียวกับ MCP Default Port ของ Tool ที่ใช้อยู่หรือไม่
แนวทางลดความเสี่ยง
1. เพิ่ม .claude/ และ .cursor/ ใน .gitignore และ .npmignore ทันที
นี่คือมาตรการที่ง่ายและสำคัญที่สุด Developer ทุกคนที่ใช้ Claude Code หรือ Cursor ควรตรวจสอบและเพิ่ม Directory เหล่านี้ใน Ignore File ของทุก Project
2. ตั้งค่า MCP Server ให้ต้องการ Authentication เสมอ
MCP Server ที่ไม่มี Authentication ควรถือว่าเป็น Misconfiguration ไม่ใช่ Default ที่ยอมรับได้ ใช้ Token, API Key หรือ Mutual TLS สำหรับทุก Connection
3. จำกัด MCP Server ไว้ใน Local Network เท่านั้น
MCP Server ที่ใช้สำหรับ Development ไม่ควร Bind กับ Public Interface (0.0.0.0) แต่ควร Bind เฉพาะ 127.0.0.1 หรือ Internal Network เท่านั้น
4. ใช้ Secret Scanning ใน CI/CD Pipeline
เพิ่ม Tools เช่น GitLeaks, TruffleHog หรือ GitHub Secret Scanning เพื่อตรวจจับไฟล์ Credential ที่อาจหลุดเข้า Repository โดยอัตโนมัติก่อน Publish หรือ Push
5. Rotate API Key อย่างสม่ำเสมอ
โดยเฉพาะ Anthropic API Key และ Token ที่ใช้ใน MCP Configuration ควรมีการ Rotate เป็นระยะ และตั้ง Alert เมื่อมีการใช้งานจาก IP ที่ไม่คุ้นเคย
6. Monitor MCP Traffic ใน Production
หาก MCP Server ถูกใช้งานใน Production Environment ควรมีการ Log และ Monitor Request ทุกรายการ เพื่อตรวจจับ Pattern ที่ผิดปกติ
วิเคราะห์ในมุมมองจาก TXEC
การสแกนหา MCP Server และ Claude Credential ที่เกิดขึ้นนี้สะท้อนให้เห็นว่า ผู้โจมตีปรับเป้าหมายให้ทันกับเทคโนโลยีใหม่ได้รวดเร็วมาก MCP เป็น Protocol ที่ยังอายุไม่ถึง 2 ปี แต่ก็มีการสแกนหาช่องโหว่แล้ว
สิ่งที่น่ากังวลที่สุดในบริบทขององค์กรไทยคือ AI Coding Tool กำลังถูกนำมาใช้อย่างกว้างขวาง แต่นโยบายด้าน Security ยังไม่ทันตาม หลายองค์กรยอมให้ Developer ใช้ Claude Code, Cursor หรือ GitHub Copilot โดยไม่มี Guideline ที่ชัดเจนว่าไฟล์ใดบ้างที่ห้าม Commit, MCP Server ควรตั้งค่าอย่างไร หรือ Credential ที่เก็บในเครื่อง Developer ควรจัดการอย่างไร
ปัญหา npm Package ที่หลุด Credential ออกมานั้นเกิดจากไม่ใช่ความประมาทของ Developer แต่เกิดจาก การขาด Awareness เกี่ยวกับ Artifact ที่ AI Tool สร้างขึ้นในเครื่อง องค์กรที่นำ AI Coding Tool มาใช้จึงต้องลงทุนในการให้ความรู้ Developer ควบคู่กับการนำ Tooling มาป้องกันด้วย
รู้ก่อน ตรวจพบเร็ว ลดความเสียหายได้มากกว่า
[ แหล่งอ้างอิง: SANS Internet Storm Center, CyberSecurityNews, Lakera, CyberPress, Obot.ai ]