Что Microsoft нашла в AutoGen Studio и почему это касается каждого разработчика ИИ.
Один вредоносный сайт может превратить ИИ-агента в проводника для атаки на компьютер разработчика. Специалисты Microsoft Defender Security Research описали цепочку AutoJack, которая позволяла удалённо выполнять команды на машине с AutoGen Studio, если агент открывал страницу злоумышленника.
Проблема затрагивала AutoGen Studio – интерфейс, в котором разработчики быстро создают прототипы многоагентных систем на базе AutoGen. Сценарий был опасен не из-за одной ошибки, а потому что несколько слабых мест сочетались друг с другом. Агент мог просматривать внешние страницы, а локальный сервис AutoGen Studio доверял тем, кто подключался с адресов localhost и 127.0.0.1. В обычном браузере такая защита отсекла бы чужой сайт, но ИИ-агент сам работал на машине разработчика, поэтому страница злоумышленника получала возможность обращаться к локальному управляющему интерфейсу.
Вторая часть цепочки была связана с тем, как проверялся доступ. В AutoGen Studio пути /api/mcp/* и /api/ws/* обходили общую промежуточную проверку подлинности, поскольку предполагалось, что такие соединения проверит сам обработчик. MCP WebSocket никто так не проверял. В итоге соединение принималось без токена, даже если остальная часть приложения работала с включённой авторизацией.
Третье слабое место оказалось самым опасным. Конечная точка принимала параметр server_params из адресной строки, декодировала его из base64, превращала в настройки StdioServerParams и передавала дальше как команду, чтобы запустить MCP-сервер . Ограничительного списка исполняемых файлов не было, поэтому вместо легитимного MCP-сервера можно было передать calc.exe, PowerShell или bash с нужными аргументами.
Демонстрируя атаку, разработчик запускал AutoGen Studio на локальном порту 8081, а затем просил агента кратко пересказать содержимое страницы. Агент открывал сайт злоумышленника, встроенный сценарий создавал WebSocket-подключение к локальному AutoGen Studio, передавал подготовленные параметры, после чего приложение запускало команду от имени пользователя. Дополнительные действия со стороны жертвы не требовались.
Microsoft передала сведения в Microsoft Security Response Center, после чего разработчики усилили защиту в основной ветке AutoGen. Обработчик WebSocket больше не берёт server_params из адресной строки, параметры теперь привязываются на стороне сервера через отдельный запрос и идентификатор сеанса. Кроме того, маршруты MCP теперь снова проверяются наравне с остальными запросами.
В Microsoft подчёркивают, что уязвимый код не попал в AutoGen Studio, опубликованный через Python Package Index. Пользователи, которые установили AutoGen Studio через pip, не подвержены именно этой цепочке. Риск касался разработчиков, которые собирали AutoGen Studio из основной ветки GitHub в промежутке между тем, как в неё добавили поддержку MCP, и тем, как уязвимость устранили.
Когда ИИ-агент может открывать непроверенные сайты и одновременно обращаться к привилегированным локальным сервисам, localhost перестаёт быть надёжной границей безопасности. Разработчикам таких систем советуют требовать авторизацию для всех управляющих интерфейсов, ограничивать возможность запускать внешние команды, изолировать агенты от учётной записи разработчика и запускать прототипы в контейнерах, виртуальных машинах или песочницах.
Один вредоносный сайт может превратить ИИ-агента в проводника для атаки на компьютер разработчика. Специалисты Microsoft Defender Security Research описали цепочку AutoJack, которая позволяла удалённо выполнять команды на машине с AutoGen Studio, если агент открывал страницу злоумышленника.
Проблема затрагивала AutoGen Studio – интерфейс, в котором разработчики быстро создают прототипы многоагентных систем на базе AutoGen. Сценарий был опасен не из-за одной ошибки, а потому что несколько слабых мест сочетались друг с другом. Агент мог просматривать внешние страницы, а локальный сервис AutoGen Studio доверял тем, кто подключался с адресов localhost и 127.0.0.1. В обычном браузере такая защита отсекла бы чужой сайт, но ИИ-агент сам работал на машине разработчика, поэтому страница злоумышленника получала возможность обращаться к локальному управляющему интерфейсу.
Вторая часть цепочки была связана с тем, как проверялся доступ. В AutoGen Studio пути /api/mcp/* и /api/ws/* обходили общую промежуточную проверку подлинности, поскольку предполагалось, что такие соединения проверит сам обработчик. MCP WebSocket никто так не проверял. В итоге соединение принималось без токена, даже если остальная часть приложения работала с включённой авторизацией.
Третье слабое место оказалось самым опасным. Конечная точка принимала параметр server_params из адресной строки, декодировала его из base64, превращала в настройки StdioServerParams и передавала дальше как команду, чтобы запустить MCP-сервер . Ограничительного списка исполняемых файлов не было, поэтому вместо легитимного MCP-сервера можно было передать calc.exe, PowerShell или bash с нужными аргументами.
Демонстрируя атаку, разработчик запускал AutoGen Studio на локальном порту 8081, а затем просил агента кратко пересказать содержимое страницы. Агент открывал сайт злоумышленника, встроенный сценарий создавал WebSocket-подключение к локальному AutoGen Studio, передавал подготовленные параметры, после чего приложение запускало команду от имени пользователя. Дополнительные действия со стороны жертвы не требовались.
Microsoft передала сведения в Microsoft Security Response Center, после чего разработчики усилили защиту в основной ветке AutoGen. Обработчик WebSocket больше не берёт server_params из адресной строки, параметры теперь привязываются на стороне сервера через отдельный запрос и идентификатор сеанса. Кроме того, маршруты MCP теперь снова проверяются наравне с остальными запросами.
В Microsoft подчёркивают, что уязвимый код не попал в AutoGen Studio, опубликованный через Python Package Index. Пользователи, которые установили AutoGen Studio через pip, не подвержены именно этой цепочке. Риск касался разработчиков, которые собирали AutoGen Studio из основной ветки GitHub в промежутке между тем, как в неё добавили поддержку MCP, и тем, как уязвимость устранили.
Когда ИИ-агент может открывать непроверенные сайты и одновременно обращаться к привилегированным локальным сервисам, localhost перестаёт быть надёжной границей безопасности. Разработчикам таких систем советуют требовать авторизацию для всех управляющих интерфейсов, ограничивать возможность запускать внешние команды, изолировать агенты от учётной записи разработчика и запускать прототипы в контейнерах, виртуальных машинах или песочницах.
- Источник новости
- www.securitylab.ru