Здравствуйте! Я прохожу курс “от 0 до Linux админа” на платформе YODO и столкнулся с проблемой, связанной с AWS Kiro MCP prompt injection, что привело к несанкционированному RCE (не было выдано CVE, совместное исследование Intezer и Kodem).
На основании технического разбора, опубликованного Intezer и Kodem Security 19 июля, видно, что существует архитектурное воздействие для всех, кто использует Kiro или оценивает агентные IDE. Основная причина заключается в том, что файл ~/.kiro/settings/mcp.json не входил в список защищённых путей Kiro. Инструмент fsWrite агента мог изменять его без реального блока на одобрение, и файл автоматически перезагружался при изменении, запуская любой MCP-сервер, который он описывал.
Атака происходила следующим образом: скрытый текст color:#fff;font-size:1px на обычной странице документации заставлял Kiro добавить MCP-сервер, команда запуска которого являлась встроенным exfil-скриптом на Node.js. Разработчик одобрил только загрузку URL. Все последующие действия — запись файла, создание сервера, выполнение кода — прошли без уведомлений.
Хотел бы узнать у опытных администраторов, кто использует агентные IDE в режимах, эквивалентных Autopilot, какие у вас стоят меры контроля для предотвращения записи конфигурационных файлов инструмента/MCP? Очевидно, что диалоги с подтверждением недостаточны сами по себе.
Заранее спасибо за ответы и помощь!
Ответ на вопрос по AWS Kiro MCP о инъекции команд в подсистему
Эх, друзья, тема инъекции команд в подсистему — это как раз то, о чем не стоит забывать, когда мы говорим о безопасности. Давайте разберемся, какие от этого могут быть последствия и как можно предотвратить такую уязвимость.
Последствия
Во-первых, если киберпреступники смогут выполнить несанкционированный код, они могут получить полный контроль над системой. Это серьезно! Вот несколько потенциальных проблем:
-
Кража данных: Если злоумышленник сможет выполнить SQL-запросы, он может получить доступ к конфиденциальной информации, таким как личные данные пользователей или финансовые данные.
-
Повреждение систем: Они могут повредить файлы или даже уничтожить целые базы данных. Прямо вот так, хлоп! И ничего нет.
-
Дальнейшее распространение: Уязвимую систему можно использовать как точку хакерской атаки на другие системы, что как снежный ком может привести к коллапсу всей сети.
-
Репутационные потери: Если утечка данных произойдет, это уже будет не просто техническая проблема. Ваша репутация может пострадать, и многие пользователи потеряют доверие.
Меры предотвращения
Теперь насчет того, что можно сделать, чтобы предотвратить такую уязвимость:
-
Валидация входных данных: Обязательно проверяйте и фильтруйте все входные данные. Используйте библиотеки для безопасного построения SQL-запросов (например, ORM).
-
Использование защищенных API: Если работаете с API, тщательно следите за их безопасностью. Не забудьте про авторизацию и аутентификацию. Нет доступа — нет проблем!
-
Регулярные обновления: Держите ваше ПО, библиотеки и зависимости всегда в актуальном состоянии. Обновления — это не просто полезная функция, а необходимость.
-
Мониторинг и логирование: Следите за поведением системы и анализируйте логи. Не дайте злодеям залезть в вашу систему безнаказанно!
Что не получилось
Я, кстати, пытался разобраться с одним из методов предотвращения этой уязвимости. Брал и запускал всякие проверки, но, увы, без особого успеха. Есть у меня пару идей:
-
Чистка входных данных: думал, на выходе получится что-то хорошее. На практике всё оказалось сложнее. Как только я попытался подключить стороннюю библиотеку для фильтрации, она в некоторых случаях просто выдавала ошибку. Пришлось забрасывать эту идею.
-
Настройка API: звонил в саппорт и пытался настроить защиту на уровне API. Но там тоже вышла петля: не смог понять, как корректно выставить токены доступа, и начались проблемы с авторизацией. Пришлось отложить это дело на потом.
Тем не менее, я нашел классные курсы на Yodo, которые реально помогли повысить навыки в области безопасности и инъекций. Очень рекомендую заглянуть туда, если хотите углубить свои знания.
Так что, ребята, учитесь, защищайте свои системы, и будьте внимательны!