- Расширение CodeAudit AI для VS Code, которое увеличивает риски: Как это работает
- Как это работает
- Обзор расширения
- Технический анализ: Непрерывный мониторинг активности в редакторе, Автоматическая выгрузка вставленного исходного кода, Персистентное логирование активности разработчика, Фоновый сбор метаданных проекта, Незашифрованная связь
- Непрерывный мониторинг активности в редакторе
- Автоматическая выгрузка вставленного исходного кода
- Персистентное логирование активности разработчика
- Фоновый сбор метаданных проекта
- Незашифрованная связь
- Заключение
- Индикаторы компрометации: Расширения, IP-адреса
- Расширения
- IP-адреса
- Тактики, техники и процедуры
- Рекомендации
- Чем может помочь Akamai
Основные выводы
Исследование Akamai выявило дополнительный функционал в расширении для ИИ-кодинга в Visual Studio Code (VS Code), которое отслеживает всю активность разработчика в фоновом режиме, якобы предоставляя аудит кода на базе искусственного интеллекта.
Эта функция позволяет владельцам расширения перехватывать весь загруженный разработчиком код, а также все метаданные кода. Это создает серьезные риски безопасности, включая утечки кода и раскрытие ключей API, секретов, проприетарных алгоритмов и коммерческой тайны.
Данное исследование представляет собой еще один пример рисков, связанных с расширениями для браузеров и IDE, используемыми для разработки кода с помощью ИИ.
Расширение CodeAudit AI для VS Code, которое увеличивает риски
CodeAudit AI позиционирует себя как расширение для проверки кода на базе ИИ для VS Code. Хотя оно предоставляет ожидаемые возможности анализа с помощью ИИ, наш анализ выявил дополнительную функциональность, которая непрерывно отслеживает активность разработчика в фоновом режиме.
Этот скрытый механизм сбора данных создает уникальный риск в эпоху vibe coding, когда разработчики сильно полагаются на ИИ для быстрой генерации и вставки больших блоков кода, не проверяя внимательно каждую строку. Автоматически перехватывая каждое событие вставки в реальном времени, расширение незаметно собирает конфиденциальный код и секреты, которые быстро работающие разработчики могут считать остающимися локальными.
Как это работает
Вместо того чтобы передавать код только тогда, когда пользователи явно запрашивают проверку ИИ, расширение регистрирует глобальный прослушиватель ввода редактора, который отслеживает каждое изменение, сделанное в рабочей области. Самое примечательное, что оно автоматически выгружает вставленные данные/исходный код на удаленный бэкенд для анализа схожести без необходимости вызова пользователем каких-либо функций ИИ. В то же время оно ведет постоянный локальный журнал, содержащий напечатанный, вставленный и удаленный код.
Помимо захвата кода, расширение периодически передает метаданные проекта — включая информацию о рабочей области, сведения о репозитории и структуру проекта — на свой бэкенд без явного взаимодействия с пользователем. Все коммуникации осуществляются по незашифрованному HTTP-соединению, что подвергает конфиденциальный исходный код и данные аутентификации риску перехвата.
В совокупности эти действия значительно превосходят то, чего пользователи могли бы разумно ожидать от расширения для проверки кода с помощью ИИ, и создают ненужные риски для конфиденциальности и безопасности разработчиков, работающих с проприетарным исходным кодом.
Обзор расширения
CodeAudit AI опубликовано как расширение для проверки кода на базе ИИ для VS Code (Рисунок 1).
В ходе нашего анализа мы отметили две особенности, которые ограничивали прозрачность проекта:
- На момент анализа репозиторий GitHub, на который ссылалось расширение, был недоступен.
На момент анализа репозиторий GitHub, на который ссылалось расширение, был недоступен.
- Расширение не содержало опубликованного обзора или документации, описывающих его архитектуру, телеметрию или методы сбора данных.
Расширение не содержало опубликованного обзора или документации, описывающих его архитектуру, телеметрию или методы сбора данных.
Технический анализ
Непрерывный мониторинг активности в редакторе
Расширение регистрирует глобальный прослушиватель рабочей области и отслеживает каждое изменение каждого обычного файла, открытого в VS Code (Рисунок 2).
В отличие от команд проверки ИИ расширения, этот прослушиватель инициализируется при запуске расширения и остается активным в течение всего сеанса VS Code.
Каждое изменение, внесенное в любой файл рабочей области, проходит через этот обратный вызов. Для каждого изменения расширение собирает информацию, включая:
- Вставленный текст
Вставленный текст
- Удаленный текст
Удаленный текст
- Имя файла
Имя файла
- Имя рабочей области
Имя рабочей области
- Абсолютный путь к проекту
Абсолютный путь к проекту
- Местоположение изменения
Местоположение изменения
- Метка времени
Метка времени
- Идентификатор пользователя
Идентификатор пользователя
Прослушиватель классифицирует изменения как ввод, удаление или копирование/вставку и обрабатывает их независимо от любого рабочего процесса проверки ИИ.
С точки зрения функциональности это дает расширению видимость практически всех модификаций исходного кода, выполняемых разработчиком, независимо от того, используется ли функция ИИ.
Автоматическая выгрузка вставленного исходного кода
Один из наиболее тревожных выявленных нами аспектов — это автоматическая выгрузка расширением вставленного исходного кода.
В рамках фонового мониторинга редактора расширение отслеживает каждое изменение, внесенное в файлы в рабочей области. Всякий раз, когда пользователь вставляет более примерно 50 символов, оно классифицирует это действие как событие COPY_PASTE и создает полезную нагрузку, содержащую вставленный код вместе с метаданными, такими как имя файла, имя рабочей области, метка времени, идентификатор пользователя и локальный путь к проекту.
Данные следуют по потоку выполнения, показанному на Рисунке 3.
В отличие от функций проверки ИИ расширения, этот запрос не инициируется пользователем, выбирающим код и запрашивающим анализ. Вместо этого он происходит автоматически в рамках фонового мониторинга расширения.
В ходе анализа мы обнаружили, что этот путь выполнения кода не выполняет ту же проверку согласия, которая используется интерактивными командами ИИ расширения, что позволяет передавать вставленный исходный код независимо от обычного рабочего процесса проверки ИИ.
Персистентное логирование активности разработчика
Расширение также ведет постоянную локальную запись активности разработчика.
Внутри src/logger/logger.ts оно создает файл:
Журнал содержит:
- Напечатанный код
Напечатанный код
- Вставленный код
Вставленный код
- Удаленный код
Удаленный код
- Имена файлов
Имена файлов
- Идентификаторы проектов
Идентификаторы проектов
- Метки времени
Метки времени
Вместо того чтобы служить обычным диагностическим журналом, файл сохраняет фактический исходный код, отредактированный разработчиком.
После каждого обновления расширение изменяет права доступа к файлу на «только чтение», восстанавливая права на запись лишь временно при добавлении дополнительных записей. Такое поведение делает журнал менее заметным для пользователей, позволяя расширению продолжать его обновление.
Хотя эти данные хранятся локально, они создают постоянную запись активности разработчика, которая не связана с рекламируемым функционалом ИИ расширения.
Фоновый сбор метаданных проекта
Расширение выполняет несколько фоновых коммуникаций независимо от любого инициированного пользователем анализа ИИ.
Во время запуска, инициализации рабочей области, изменения ветки Git и запланированных фоновых задач расширение автоматически передает метаданные проекта, включая:
- Имя рабочей области
Имя рабочей области
- Абсолютный путь к проекту
Абсолютный путь к проекту
- Ветка Git
Ветка Git
- URL удаленного репозитория
URL удаленного репозитория
- Структура каталогов проекта
Структура каталогов проекта
- Сведения о зависимостях
Сведения о зависимостях
- Статистика проекта
Статистика проекта
Поскольку эти запросы происходят автоматически, метаданные проекта передаются на бэкенд даже тогда, когда пользователь не использует активно ИИ-возможности расширения.
Незашифрованная связь
Вся связь с бэкендом использует жестко закодированную конечную точку:
Расширение взаимодействует по незащищенному протоколу HTTP вместо HTTPS.
В результате передаваемая информация (включая исходный код, метаданные проекта и токены аутентификации) не защищена с помощью TLS и может быть перехвачена или изменена злоумышленником, имеющим доступ к сети.
Для расширения, разработанного для обработки проприетарного исходного кода, отсутствие зашифрованного транспорта представляет собой серьезную уязвимость безопасности.
Заключение
CodeAudit AI выходит за рамки поведения, которое пользователи ожидают от расширения для проверки кода с помощью ИИ. Вместо того чтобы передавать код только во время инициированных пользователем проверок, оно непрерывно отслеживает активность в редакторе, автоматически выгружает вставленный исходный код и выполняет фоновую телеметрию, которая собирает информацию о проекте.
Хотя некоторые из этих возможностей могут поддерживать легитимные функции, такие как анализ сходства или индексация проектов, они функционируют независимо от основных ИИ-рабочих процессов расширения и без той прозрачности, которую ожидают пользователи. В сочетании с использованием незашифрованного HTTP эти особенности создают ненужные риски для конфиденциальности и безопасности разработчиков, работающих с конфиденциальным или проприетарным кодом.
Индикаторы компрометации
Расширения
TejasKulkarni.codeaudit-ai
IP-адреса
65.1.14.40
Тактики, техники и процедуры
Закрепление
LXI5.001 — Закрепление расширения с помощью событий активации
Сбор данных
LXI10.005 — Мониторинг изменений документов в реальном времени
Эксфильтрация
Рекомендации
Специалисты по безопасности, корпоративные защитники и разработчики расширений для IDE должны рассмотреть следующие меры:
- Проверяйте ИИ-расширения для IDE на предмет функций, выходящих за рамки заявленной функциональности. Изучите поведение расширения во время выполнения, чтобы выявить фоновый мониторинг, телеметрию и сетевые коммуникации, которые не являются частью основного рабочего процесса пользователя.
Проверяйте ИИ-расширения для IDE на предмет функций, выходящих за рамки заявленной функциональности. Изучите поведение расширения во время выполнения, чтобы выявить фоновый мониторинг, телеметрию и сетевые коммуникации, которые не являются частью основного рабочего процесса пользователя.
- Непрерывно контролируйте сетевую активность расширений. Обнаруживайте расширения, которые передают исходный код, метаданные проекта или другую конфиденциальную информацию вне явно инициированных пользователем действий.
Непрерывно контролируйте сетевую активность расширений. Обнаруживайте расширения, которые передают исходный код, метаданные проекта или другую конфиденциальную информацию вне явно инициированных пользователем действий.
- Проверяйте соблюдение согласия во всех путях выполнения. Убедитесь, что средства контроля конфиденциальности применяются последовательно к каждому механизму, который собирает или передает данные разработчика, включая фоновые задачи.
Проверяйте соблюдение согласия во всех путях выполнения. Убедитесь, что средства контроля конфиденциальности применяются последовательно к каждому механизму, который собирает или передает данные разработчика, включая фоновые задачи.
- Ограничьте ненужную фоновую телеметрию. Расширения должны собирать только ту информацию, которая необходима для предоставления запрашиваемой функциональности, и избегать непрерывного мониторинга активности разработчика.
Ограничьте ненужную фоновую телеметрию. Расширения должны собирать только ту информацию, которая необходима для предоставления запрашиваемой функциональности, и избегать непрерывного мониторинга активности разработчика.
- Требуйте безопасных каналов связи. Все передачи, включающие исходный код, токены аутентификации или метаданные проекта, должны использовать HTTPS для предотвращения перехвата или подделки.
Требуйте безопасных каналов связи. Все передачи, включающие исходный код, токены аутентификации или метаданные проекта, должны использовать HTTPS для предотвращения перехвата или подделки.
Как Akamai может помочь
Хотя аудиты на уровне IDE имеют решающее значение, защита конечных точек сама по себе не может остановить несанкционированный трафик. По мере того как разработчики внедряют не проверенные ИИ-расширения, маршрутизация исходящего трафика через Akamai API Security гарантирует, что теневые конечные точки (например, незашифрованные HTTP-бэкенды) будут автоматически выявлены, отслежены и заблокированы до того, как проприетарный исходный код покинет периметр.
Об авторе(-ах)
Натали Загаров
Натали Загаров — специалист по исследованию безопасности с более чем 10-летним опытом работы в сфере кибербезопасности в качестве специалиста по реверсивнаму инжинирингу вредоносного ПО и исследователя киберразведки.
Клиенты Akamai могут пройти путь от нулевой монетизации трафика агентов до работающего платежного шлюза для расчетов в блокчейне (on-chain).
Монетизация ИИ-агентов на периметре с помощью Akamai Functions
Узнайте, как монетизировать трафик ИИ-агентов и ботов на периметре с помощью протокола x402 и Akamai Functions без изменения вашей устаревшей инфраструктуры происхождения.
Рекомендации Gartner для покупателей заслуживают серьезного внимания.
Искусственный интеллект
Контроль использования ИИ: почему использование ИИ сотрудниками требует собственной категории
Узнайте, почему традиционные инструменты безопасности оставляют пробелы в корпоративном использовании ИИ и как контроль использования ИИ (AIUC) обеспечивает важнейшее управление рисками на уровне идентификации, данных и промптов.
Банку не обязательно самому развертывать ИИ, чтобы столкнуться с атаками с использованием ИИ.
Искусственный интеллект
Почему безопасность API входит в планы киберопераций ЕЦБ
Узнайте, как защита теневых и зомби-API помогает банкам выполнять требования планов киберопераций ЕЦБ, улучшать состояние защиты и снижать риски, связанные с ИИ.





