С развитием технологий искусственного интеллекта и их внедрением в процессы программирования инструменты, облегчающие разработку, приобретают все большую популярность. Одним из таких инструментов стал Cursor - AI-поддерживаемый интегрированный редактор кода, построенный на основе популярной платформы Visual Studio Code (VS Code). Несмотря на высокую скорость и удобство работы, а также глубокую интеграцию с передовыми AI-ассистентами, такими как GPT-4 и Claude, в Cursor обнаружена критическая уязвимость, которая может привести к серьезным последствиям для безопасности пользователей. Эту проблему выявили специалисты Oasis Security - компании, ведущей исследования и разработки в области управления невзаимодействующими идентичностями (Non-Human Identities, NHIs). Суть уязвимости связана с особенностями работы с функцией Workspace Trust, отвечающей за контроль выполнения и автоматического запуска задач в редакторе.
В Cursor эта функция по умолчанию отключена, что выводит разработчиков на риск, который раньше был значительно снижен в чистом VS Code. Дело в том, что при открытии проекта Cursor автоматом выполняет задачи, прописанные в конфигурационных файлах внутри папки .vscode, например, tasks.json. Если злоумышленник намеренно добавит вредоносный файл с набором команд или скриптом в этот каталог публичного или совместно используемого репозитория, он сможет автоматически запустить вредоносный код на устройстве пользователя сразу при открытии проекта.
Такого рода сценарий чрезвычайно опасен. Программисты могут просто просматривать проекты в Cursor, не подозревая, что вредоносные процессы уже запущены в их среде разработки без какого-либо дополнительного вмешательства с их стороны. Среди возможных последствий атаки - утечка учетных данных и ключей API, кража конфигурационных файлов, внедрение троянов и бэкдоров, которые позволяют захватывать контроль над окружением, а также старт обработки цепочек атак на более широком уровне. Важно подчеркнуть, что Visual Studio Code в стандартных настройках защищен от подобных сценариев благодаря включенной функции Workspace Trust, которая требует подтверждения пользователя для запуска потенциально опасных задач. Cursor же сделал выбор в пользу удобства и интеграции AI-инструментов, отключив подобные ограничения, аргументируя это тем, что Workspace Trust ограничивает возможности ИИ и функциональность, ценимую их пользователями.
Oasis Security продемонстрировала пагубное влияние такой политики на практике, опубликовав доказательство концепции эксперимента с задачей, запускавшей в командной строке передачу имени текущего пользователя на сервер злоумышленников в момент открытия папки проекта. Такая простая, на первый взгляд, операция демонстрирует, насколько легко можно получить контроль и доступ к чувствительным данным программы, а также возможность бесшумно манипулировать рабочим пространством программиста. В ответ Cursor подтвердила, что менять поведение автоматически запуска задач и включать Workspace Trust по умолчанию не будет. Вместо этого компания рекомендовала самим пользователям включать защитные настройки вручную либо пользоваться более базовыми редакторами, если возникает необходимость открытия подозрительных или непроверенных проектов. Несмотря на это, такой подход вызывает озабоченность среди специалистов в области информационной безопасности и разработчиков, поскольку повышает риски для миллионов пользователей Cursor.
Они потенциально подвержены угрозам при работе с широко распространенными публичными и сторонними репозиториями, которые могут неконтролируемо содержать вредоносные элементы. Помимо основных рисков, эксперты предупреждают о возможности использования подобной уязвимости для проведения сложных атак цепочки поставок (supply chain attacks). Вредоносный код, внедренный в репозиторий, автоматически распространяется дальше вместе с развитием проекта, превращая инструменты для повышения производительности в угрозу для всей экосистемы разработки. Чтобы снизить возможность нанесения ущерба, специалисты из Oasis Security рекомендуют всем владельцам и пользователям Cursor тщательно проверять проекты перед их открытием. Кроме того, не стоит экспонировать в глобальных профилях оболочки чувствительные переменные среды, включая токены доступа, ключи API и пароли.
Это ограничит доступ злоумышленников к важным данным в случае компрометации среды. Еще одним вариантом защиты является использование плагинов и настроек безопасности, которые могут контролировать или блокировать автоматический запуск задач, или же переключение на другие, более безопасные редакторы кода для просмотра непроверенного кода. Несмотря на всю критику, Cursor продолжает оставаться востребованным и одним из самых быстрорастущих AI-инструментов для программистов, благодаря своей интеграции с мощными технологиями ИИ. Однако ситуация с безопасностью демонстрирует, как важно балансировать между удобством и защитой в новых продуктах. Современным разработчикам и специалистам по безопасности необходимо внимательно следить за подобными уязвимостями и использовать комплексные методы защиты.
В целом выявленная проблема в Cursor - яркий пример вызовов, с которыми сталкиваются современные инструменты автоматизации и ИИ, интегрирующиеся в критичные сферы работы. В будущем потребуется не только улучшение функционала, но и повышение уровня безопасности, что позволит повысить доверие пользователей и избежать значительных потерь данных и времени. При работе с репозиториями, особенно теми, что получены из сомнительных источников, лучше предпочесть максимальную осторожность и применять все доступные меры по защите рабочего окружения. В противном случае автоматический запуск кода, который должен был упростить жизнь разработчикам, может стать для них серьезной угрозой. .