ಒಬ್ಬ ಭದ್ರತಾ ಸಂಶೋಧಕರು 24 ಓಪನ್-ಸೋರ್ಸ್ MCP (Model-Control-Protocol) ಸರ್ವರ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದಾಗ, CVSS ಸ್ಕೇಲ್‌ನಲ್ಲಿ 9.8 ರಷ್ಟು ಅಂಕಗಳನ್ನು ಹೊಂದಿರುವ ಒಂದು ಗಂಭೀರವಾದ 'sandbox command-injection' ದೋಷವನ್ನು ಪತ್ತೆಹಚ್ಚಿದ್ದಾರೆ. ಈ ಬಗ್ ಮಧ್ಯಮ ಹಂತದ AI-agent ಫ್ರೇಮ್‌ವರ್ಕ್ ಆದ AgenticX ನಲ್ಲಿ ಕಂಡುಬಂದಿದ್ದು, ಇದು ದಾಳಿಗಾರರು ಸರ್ವರ್ ಚಲಾಯಿಸುವ Docker ಕಂಟೇನರ್‌ನಲ್ಲಿ ಯಾವುದೇ shell commands ಅನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

MCP ಸರ್ವರ್‌ಗಳು ಏಕೆ ಮುಖ್ಯ

MCP ಎಂಬುದು ಸ್ವಾಯತ್ತ AI ಏಜೆಂಟ್‌ಗಳು ಬಾಹ್ಯ ಪರಿಕರಗಳಾದ ಫೈಲ್‌ಗಳು, ಡೇಟಾಬೇಸ್‌ಗಳು, ಬ್ರೌಸರ್‌ಗಳು ಮತ್ತು ಇತ್ಯಾದಿಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಸಹಾಯ ಮಾಡುವ ಒಂದು ಕೊಂಡಿಯಾಗಿದೆ. ಭಾಷಾ ಮಾದರಿಗೆ (language model) ನೈಜ ಪ್ರಪಂಚದ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಓದಲು, ಬರೆಯಲು ಮತ್ತು ಅವುಗಳ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಸಾಮರ್ಥ್ಯ ನೀಡಲು ಡೆವಲಪರ್‌ಗಳು ತಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ MCP ಸರ್ವರ್ ಅನ್ನು ಅಳವಡಿಸುತ್ತಾರೆ. ಈ ಪ್ರೊಟೊಕಾಲ್ ಸ್ವತಃ ಲಘುವಾಗಿದೆ ಮತ್ತು ವ್ಯಾಪಕವಾಗಿ ಅಳವಡಿಸಿಕೊಳ್ಳಲ್ಪಟ್ಟಿದೆ, ಆದರೆ ಪ್ರತಿಯೊಂದು ಪ್ರಾಜೆಕ್ಟ್‌ನ ನಿರ್ವಾಹಕರು (maintainers) ಸುತ್ತಲಿನ ಕೋಡ್ ಅನ್ನು ಸುರಕ್ಷಿತಗೊಳಿಸುವ ಜವಾಬ್ದಾರಿಯನ್ನು ಹೊಂದಿರುತ್ತಾರೆ.

Cline ಅಥವಾ Aider ನಂತಹ ದೊಡ್ಡ ಪ್ರಮಾಣದ MCP ಅನುಷ್ಠಾನಗಳು ಈಗಾಗಲೇ ನಿಯಮಿತವಾಗಿ ಆಡಿಟ್ ಆಗುತ್ತಿವೆ ಮತ್ತು ಪ್ರಬುದ್ಧ ಭದ್ರತಾ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಹೊಂದಿವೆ. ಇಲ್ಲಿ ಪರಿಶೀಲಿಸಲಾದ 24 ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು GitHub ನಲ್ಲಿ 100 ರಿಂದ 1,000 ಸ್ಟಾರ್‌ಗಳಿರುವ "mid-tier" ಶ್ರೇಣಿಯಲ್ಲಿವೆ. ಅಂತಹ ರೆಪೊಸಿಟರಿಗಳು ಹೆಚ್ಚಾಗಿ ಕೋಡ್ ಅನ್ನು ಗಟ್ಟಿಗೊಳಿಸುವ ಬದಲು ವೇಗವಾಗಿ ಫೀಚರ್‌ಗಳನ್ನು ನೀಡಲು ಆದ್ಯತೆ ನೀಡುತ್ತವೆ, ಇದು ಯಾವುದೇ ಓಪನ್-ಸೋರ್ಸ್ MCP ಸರ್ವರ್ ಡಿಫಾಲ್ಟ್ ಆಗಿ ಸುರಕ್ಷಿತ ಎಂದು ಭಾವಿಸುವ ಬಳಕೆದಾರರಿಗೆ ಒಂದು ಅಸುರಕ್ಷಿತ ಬಿಂದುವನ್ನು (blind spot) ಸೃಷ್ಟಿಸುತ್ತದೆ.

ಸ್ಕ್ಯಾನ್

ಸಂಶೋಧಕರು ಐದು ಕ್ಲಾಸಿಕ್ ವೆಬ್-ಆಪ್ ದಾಳಿ ಮಾದರಿಗಳನ್ನು ಹುಡುಕಲು ಒಂದು ಸ್ಕ್ಯಾನರ್ ಅನ್ನು ನಿರ್ಮಿಸಿದರು:

  • Command injection
  • Path traversal
  • Server-Side Request Forgery (SSRF)
  • SQL injection
  • Sandbox escape

5,911 ಸೋರ್ಸ್ ಫೈಲ್‌ಗಳ ಮೇಲೆ ಸ್ಕ್ಯಾನರ್ ಅನ್ನು ರನ್ ಮಾಡಿದಾಗ ಆರಂಭದಲ್ಲಿ 94 ಅಲರ್ಟ್‌ಗಳು ಬಂದವು. ಮ್ಯಾನುಯಲ್ ಟ್ರೈಯಾಜ್ (manual triage) ಮಾಡಿದ ನಂತರ, ಕೇವಲ ಒಂದು ಅಲರ್ಟ್ ಮಾತ್ರ ನೈಜ ದುರ್ಬಲತೆಯಾಗಿ (vulnerability) ಸಾಬೀತಾಯಿತು.

AgenticX ಬಗ್‌ನ ಒಳಗೆ

AgenticX ಬಳಕೆದಾರರು ನೀಡಿದ ಸ್ಟ್ರಿಂಗ್‌ಗಳನ್ನು Python f-strings ನಲ್ಲಿ ಸೇರಿಸುವ ಮೂಲಕ ಶೆಲ್ ಕಮಾಂಡ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ ಫಲಿತಾಂಶವನ್ನು ನೇರವಾಗಿ ಕಂಟೇನರ್‌ನ ಶೆಲ್‌ಗೆ ವರ್ಗಾಯಿಸುತ್ತದೆ. ಇಲ್ಲಿ ಫೈಲ್ ಪಾತ್‌ಗಳ (file paths) ಯಾವುದೇ ವ್ಯಾಲಿಡೇಶನ್ ಅಥವಾ ಕೋಟಿಂಗ್ (quoting) ನಡೆಯುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಒಂದು ವಿರೋಧಾತ್ಮಕ ಪ್ರಾಂಪ್ಟ್ (adversarial prompt) ಸೆಮಿಕೋಲನ್ ಅಥವಾ ಇತರ ಶೆಲ್ ಮೆಟಾಕ್ಯಾರೆಕ್ಟರ್ ಅನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡಬಹುದು, ಇದರಿಂದ ದಾಳಿಗಾರರು ಬಯಸುವ ಯಾವುದೇ ಕಮಾಂಡ್ ಅನ್ನು ಕಂಟೇನರ್ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ.

ಸಂಶೋಧಕರು ಈ ಕೆಳಗಿನ ಕ್ರಮಗಳ ಮೂಲಕ ಕೋಡ್ ಅನ್ನು ಪ್ಯಾಚ್ ಮಾಡಿದರು:

  1. ಭಾಷಾ ಮಾದರಿಯು ನೀಡುವ ಯಾವುದೇ ಪಾತ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಎಸ್ಕೇಪ್ ಮಾಡಲು shlex.quote() ಬಳಸುವುದು.
  2. ಕಮಾಂಡ್ ಅನ್ನು ರಚಿಸುವ ಮೊದಲು ಪಾತ್-ಟ್ರಾವರ್ಸಲ್ ಮಾದರಿಗಳಿಗಾಗಿ (../) ಸ್ಪಷ್ಟವಾದ ಪರಿಶೀಲನೆಗಳನ್ನು ಸೇರಿಸುವುದು.

ಸರಿಪಡಿಸಿದ ನಂತರ ಸ್ಕ್ಯಾನರ್ ಅನ್ನು ಮತ್ತೆ ರನ್ ಮಾಡಿದಾಗ ಅಪಾಯದ ಮಟ್ಟವು ಗಣನೀಯವಾಗಿ ಕುಸಿದಿದ್ದು ಕಂಡುಬಂದಿತು, ಇದು ಪರಿಹಾರವು ಮೂಲ ಕಾರಣವನ್ನು (root cause) ಪರಿಹರಿಸಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.

ಯಾರು ಗೆಲ್ಲುತ್ತಾರೆ, ಯಾರು ಸೋಲುತ್ತಾರೆ

  • AI ಡೆವಲಪರ್‌ಗಳು ತಮ್ಮ ಉತ್ಪನ್ನಗಳಲ್ಲಿ MCP ಸರ್ವರ್ ಅನ್ನು ಅಳವಡಿಸುವವರು, ಕೇವಲ ಒಂದು ಸಣ್ಣ ಸ್ಯಾನಿಟೈಸೇಶನ್ ಹಂತದ ಕೊರತೆಯು ಇಡೀ ಭದ್ರತಾ ಸರಪಳಿಯನ್ನು ಹೇಗೆ ಮುರಿಯಬಹುದು ಎಂಬುದಕ್ಕೆ ಈಗ ಒಂದುជាក់ಗಟ್ಟಿಯ ಉದಾಹರಣೆಯನ್ನು ಹೊಂದಿದ್ದಾರೆ. ಯಾವುದೇ ಬಾಹ್ಯ API ಪೇಲೋಡ್ ಅನ್ನು ನೀವು ಹೇಗೆ ಪರಿಗಣಿಸುತ್ತೀರೋ, ಹಾಗೆಯೇ ಭಾಷಾ ಮಾದಲಿಯಿಂದ ಬರುವ ಪ್ರತಿಯೊಂದು ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ನಂಬಲಾರದ ಇನ್‌ಪುಟ್ (untrusted input) ಎಂದು ಪರಿಗಣಿಸಿ.

ಕಥೆಯ ಇನ್ನೊಂದು ಮುಖ

MCP ಪ್ರೊಟೊಕಾಲ್ ಸ್ವತಃ ಸದೃಢವಾಗಿದೆ ಎಂದು ಸಂಶೋಧಕರು ಒತ್ತಿಹೇಳುತ್ತಾರೆ. ಈ ದೋಷವು ವಿನ್ಯಾಸದ ದೌರ್ಬಲ್ಯವಲ್ಲ, ಬದಲಿಗೆ ನಿರ್ದಿಷ್ಟ ಅನುಷ್ಠಾನದಲ್ಲಿನ ಕೋಡಿಂಗ್ ಲೋಪವಾಗಿದೆ. ದೊಡ್ಡದಾದ, ಸರಿಯಾಗಿ ಆಡಿಟ್ ಮಾಡಲಾದ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ಈಗಾಗಲೇ ಇಂತಹ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಿವೆ ಮತ್ತು ಓಪನ್-ಸೋರ್ಸ್ ಸಮುದಾಯವು AgenticX ಪ್ಯಾಚ್‌ನಿಂದ ಕಲಿಯಬಹುದು. ಆದರೂ, ಈ ಘಟನೆಯು "mid-tier" ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು ಕಡಿಮೆ ಸ್ಟಾರ್ ಎತ್ತಿದ್ದರೂ ಸಹ ಹೆಚ್ಚಿನ ಪರಿಣಾಮ ಬೀರುವ ಬಗ್‌ಗಳನ್ನು ಹೊಂದಿರಬಹುದು ಎಂದು ತೋರಿಸುತ್ತದೆ.

ತಗೆದುಕೊಳ್ಳಬೇಕಾದ ಪಾಠ

AgenticX ನಲ್ಲಿನ ಕೇವಲ ಒಂದು ಅನ್‌ಚೆಕ್ ಮಾಡಲಾದ f-string ಇಡೀ MCP ಸರ್ವರ್ ಅನ್ನು 임의의 ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಷನ್ (arbitrary code execution) ಗಾಗಿ ಲಾಂಚ್‌ಪ್ಯಾಡ್ ಆಗಿ ಬದಲಾಯಿಸಿತು. AI-ಏಜೆಂಟ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯ ಭದ್ರತೆಯು ಪ್ರೊಟೊಕಾಲ್ ಮೇಲೆ ಕಡಿಮೆ ಮತ್ತು ಶಿಸ್ತುಬದ್ಧ ಅನುಷ್ಠಾನದ ಮೇಲೆ ಹೆಚ್ಚು ಅವಲಂಬಿತವಾಗಿದೆ ಎಂದು ಈ ಘಟನೆಯು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ. ಡೆವಲಪರ್‌ಗಳು ಪ್ರತಿಯೊಂದು LLM-ಜನರೇಟೆಡ್ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಶತ್ರುತ್ವದ ಇನ್‌ಪುಟ್ ಎಂದು ಪರಿಗಣಿಸಬೇಕು, ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ರನ್‌ಟೈಮ್ ಸೇಫ್‌ಗಾರ್ಡ್‌ಗಳನ್ನು ಜಾರಿಗೆ ತರಬೇಕು ಮತ್ತು AI ಏಜೆಂಟ್‌ಗಳು ಸೃಷ್ಟಿಸುವ ವಿಶಿಷ್ಟ ಟ್ರಸ್ಟ್ ಚೇನ್‌ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಭದ್ರತಾ ಸಾಧನಗಳು ವಿಕಸನಗೊಳ್ಳಬೇಕಾಗಿದೆ.

ಮೂಲ: dev.to/easterndev/i-scanned-24-mcp-server-projects-and-found-a-real-sandbox-command-injection-cvss-98-4k9h