Введення команд MCP

Введення команд MCP

Крапка з комою в аргументі інструменту стає командою оболонки.

Що таке Введення команд MCP?

Інструмент MCP працює на сервері, тому кожен аргумент, який він отримує, є ненадійним введенням. Створіть команду оболонки, вставивши цей вхідний сигнал у рядок, і крапка з комою або зворотна галочка перестануть бути даними: вони стають командою, яку виконує ваш сервер. Ви знайдете введений аргумент у трасуванні агента, спостерігаєте, як інструмент повертає звичайний порожній результат, поки коренева зворотна оболонка виконує облікові дані бази даних, а потім викликаєте git безпосередньо без оболонки в шляху. Виправлення коду не скасовує вже запущений код.

Що ви дізнаєтесь у Введення команд MCP

Введення команд MCP — Кроки навчання

  1. Інструмент, який запускає Git

    Sarnholt керує помічником публічного репо. Один із його інструментів, commit_search, шукає коміти за автором. Боб не знає, як це написано, але інструмент, який шукає git за ім’ям, яке він надає, вартий перевірки. Він відкриває той самий агент, яким може скористатися кожен.

  2. Подивіться, як це працює

    Спочатку звичайний запит, щоб дізнатися, що інструмент робить із наданою назвою.

  3. Назва десь закінчується

    Автор, якого він вводить, повертається як git-запит. Git — це інструмент командного рядка, тож десь на сервері це ім’я майже напевно додається до команди git. Якщо його помістити як текст, Боб може додати до команди.

  4. Закрийте аргумент, додайте команду

    Боб запитує коміти автора, чиє ім’я не є іменем. Він закінчує команду git крапкою з комою та додає свою власну: отримати сценарій із свого хоста та запустити його.

  5. Нудна відповідь приховала шкоду

    Відповідь помічника нічим не примітна: не знайдено відповідних комітів. Це суть. Введена команда не звітує через інструмент, вона тихо виконується на сервері.

  6. Оболонка на сервері

    Сценарій, який повернув сервер Боба, відкрив з’єднання прямо до його слухача. Він перемикається на нього, щоб побачити, що отримав один виклик commit_search.

  7. Чому це спрацювало

    Інструмент робив саме те, про що говорив його код. Питання в тому, що в цьому коді перетворило аргумент на команду.

  8. Оболонка, де її бути не повинно

    Алісу викликає служба безпеки. Сповіщення стосується не входу чи файлу, а процесу.

  9. Що сповіщення закріплює

    Сповіщення звузило його до одного інструменту та однієї форми введення.

  10. Дзвінок у слід

    Агент веде облік кожного виклику інструменту. В ньому отруєний.

Охоплення стандартів безпеки

OWASP MCP Top 10

  • MCP05:2025 Command Injection & Execution

CWE

  • CWE-78 Improper Neutralization of Special Elements used in an OS Command

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security