К содержимому
БИБЛИОТЕКА ЗАЩИТЫ ИИ

💻 Защита AI-ассистентов в IDE и кодовых помощников: безопасность Copilot, Cursor и agentic-кодинга

Целевая аудитория: Engineering- и AppSec-команды, использующие AI-ассистентов разработки (GitHub Copilot, Cursor, Windsurf, Cline, Claude Code и др.) на корпоративном коде, а также платформы, встраивающие кодовых помощников в свой продукт.

AI-ассистент в IDE видит ваш репозиторий целиком: исходный код, конфиги, секреты в .env, README, комментарии, файлы правил. В агентном режиме он ещё и исполняет команды — пишет файлы, ставит пакеты, запускает терминал. Это делает безопасность AI-ассистентов в IDE отдельной дисциплиной: вектором атаки становится не запрос разработчика, а сам репозиторий — строка в README, скрытый Unicode в .cursorrules, имя пакета, которое модель «придумала». Когда стоит задача обеспечить защиту кодовых помощников ИИ, защищать нужно три потока: входящий контекст (файлы репозитория, которые ассистент читает как инструкции), исходящий (код и секреты, утекающие провайдеру LLM) и поток действий (команды, которые agentic-агент исполняет в терминале).

Ниже — ключевые риски в терминах OWASP Top 10 для LLM-приложений (2025) и техник MITRE ATLAS, и то, как их прикрывают движки Spectorn, разворачиваемые как прокси между IDE/ассистентом и провайдером модели.


🛑 Ключевые риски и что Spectorn с ними делает

1. Косвенная инъекция промпта через файлы репозитория (README, комментарии, конфиги)

Риск: Атакующий размещает скрытую инструкцию в файле, который ассистент втягивает в контекст: HTML-комментарий в README, текст в issue, docstring, конфиг зависимости. Когда разработчик просит «разберись с этим репозиторием» или «допиши функцию», ассистент читает внедрённую инструкцию как часть задачи — например, «добавь в код вызов на внешний сервер» или «удали проверки безопасности». Документировано в публичных исследованиях атак на Cursor и подобные ассистенты.

OWASP LLM01:2025 Prompt Injection · MITRE ATLAS AML.T0051 (LLM Prompt Injection), AML.T0054 (Indirect Prompt Injection).

Защита Spectorn:

  • Движки: injection, jailbreak.
  • injection инспектирует контент файлов и фрагментов, попадающих в контекст ассистента, на встроенные инструкции и попытки переопределить системные указания — до того, как они дойдут до модели.
  • jailbreak ловит сопутствующие техники обхода ограничений (ролевые сценарии, отмена правил), часто встраиваемые в тот же вредоносный файл.

2. «Rules File Backdoor» — заражение файлов правил ассистента скрытым Unicode

Риск: Файлы правил агента (.cursorrules, .github/copilot-instructions.md и аналоги) воспринимаются ассистентом как доверенные системные указания. Атакующий внедряет в них вредоносный промпт, спрятанный невидимыми Unicode-символами (zero-width, bidi-override): человек на code review видит безобидный файл, а модель получает инструкцию генерировать бэкдор или сливать данные. Это самостоятельный класс supply-chain атаки на кодовых помощников.

OWASP LLM01:2025 Prompt Injection, LLM03:2025 Supply Chain · MITRE ATLAS AML.T0051, кейс «Rules File Backdoor».

Защита Spectorn:

  • Движки: injection.
  • injection выполняет нормализацию и обнаружение скрытых/невидимых символов (zero-width, гомоглифы, bidi-управление) во входящем контексте — именно тот механизм, который делает «невидимую» инструкцию видимой для детектора и позволяет заблокировать заражённый файл правил.

3. Утечка секретов и API-ключей провайдеру модели (Secret Leakage)

Риск: Код, отправляемый ассистентом в облако LLM-провайдера, содержит реальные секреты — hardcoded API-ключи, токены, строки подключения к БД, приватные ключи в .env. AI-скаффолдинг ещё и провоцирует разработчиков вписывать настоящие ключи вместо плейсхолдеров. Секрет утекает в логи провайдера и потенциально в данные обучения.

OWASP LLM02:2025 Sensitive Information Disclosure · MITRE ATLAS AML.T0024 (Exfiltration via ML Inference API).

Защита Spectorn:

  • Движки/компоненты: secret_scanner, pii.
  • secret_scanner: API-ключи, токены и пароли обнаруживаются (Bearer sk-...) в исходящем потоке до того, как запрос уйдёт провайдеру. pii находит персональные данные в коде/комментариях. В режиме блокировки запрос с секретом блокируется и до провайдера не доходит.

4. Эксфильтрация проприетарного исходного кода

Риск: Целые файлы — исходники, схемы БД, бизнес-логика — уходят в облачного провайдера ассистента, нарушая политику конфиденциальности и требования ФЗ-152/GDPR. Отдельный сценарий: вредоносная инструкция (см. риски 1–2) заставляет агента целенаправленно выгрузить код на внешний адрес.

OWASP LLM02:2025 Sensitive Information Disclosure · MITRE ATLAS AML.T0024.

Защита Spectorn:

  • Движки: exfiltration, lethal_trifecta, secret_scanner.
  • exfiltration распознаёт паттерны массовой выгрузки кода и аномальные объёмы данных в исходящем потоке. lethal_trifecta поднимает критический алерт, когда совпадают доступ к коду, недоверенный ввод и канал вывода — типичная картина при инъекции, нацеленной на кражу исходников.

5. Небезопасные предложения кода и исполнение вывода (Insecure Output Handling)

Риск: Ассистент генерирует код с уязвимостями — SQL-инъекция, XSS, command injection, небезопасная десериализация — а разработчик коммитит его без ревью. В agentic-режиме модель может тут же исполнить такой код. Вывод модели, попадающий «вниз по течению» без валидации, становится точкой компрометации.

OWASP LLM05:2025 Improper Output Handling · MITRE ATLAS AML.T0024.

Защита Spectorn:

  • Движки: output_scanner.
  • output_scanner инспектирует именно ответ модели (а не запрос) в Shield DMZ: исполняемый JavaScript, shell-команды, паттерны SQL-инъекции в сгенерированном коде помечаются, а опасный вывод блокируется или сопровождается предупреждением до того, как будет применён или исполнен.

6. Злоупотребление инструментами и автономное исполнение команд (Excessive Agency)

Риск: Agentic-режимы (auto-run, «YOLO-mode») исполняют команды терминала без подтверждения. Через инъекцию из файла репозитория атакующий получает фактический контроль над терминалом разработчика: curl ... | sh, запись в ~/.ssh, установка вредоносного MCP-сервера. Нет sandbox, нет least-privilege.

OWASP LLM06:2025 Excessive Agency · MITRE ATLAS AML.T0101 (Data Destruction via AI Agent Tool Invocation), AML.T0048 (Compromise ML Software Dependencies).

Защита Spectorn:

  • Движки/компоненты: goal_predictability, корреляция в вашей SIEM, Decision Logger.
  • goal_predictability — эвристический поведенческий движок: в рассуждениях/командах ассистента выявляет многошаговые цепочки увода с штатной цели (напр. «разведка → эксплойт», «отключить защиту → выполнить») и помечает такой паттерн до исполнения. Цепочка «инъекция из файла → опасная команда» ловится правилом корреляции, а Decision Logger фиксирует каждое исполненное действие в хеш-связанной цепочке для разбора.

7. Slopsquatting — установка пакета, «придуманного» моделью

Риск: Ассистент галлюцинирует имя несуществующего пакета; атакующий заранее регистрирует это имя в реестре с вредоносной нагрузкой. Разработчик (или agentic-агент) устанавливает пакет, не проверив существование — supply-chain компрометация через воображаемую зависимость.

OWASP LLM03:2025 Supply Chain · MITRE ATLAS AML.T0048 (Compromise ML Software Dependencies).

Защита Spectorn:

  • Движки: output_scanner, плюс корреляция в вашей SIEM.
  • output_scanner инспектирует предложения модели об установке пакетов/зависимостей в исходящем выводе как часть проверки сгенерированного кода; правило в вашей SIEM может выявлять подозрительных цепочек «сгенерированное имя → немедленная установка».

Что Spectorn честно НЕ делает за вас: статический CVE-аудит дерева зависимостей и проверку существования пакета в реестре. Это задача SCA-инструментов (Snyk, Dependabot) — Spectorn дополняет их на уровне потока ассистент↔модель, а не заменяет.


🛠️ Настройка политики

Файла конфигурации, который нужно развернуть, нет: политику вашего тенанта по запросу задаёт оператор платформы, включая режим проверки (блокировка или наблюдение, при котором видно, что было бы заблокировано), списки разрешений и запретов, порог блокировки и веса категорий. Для этой отрасли важнее всего движки: injection, jailbreak, pii, exfiltration, lethal_trifecta, output_scanner, goal_predictability. Начните с режима наблюдения на своём трафике, посмотрите, что было бы заблокировано, и затем включите блокировку. Маскирование персональных данных в облачных контурах не включено: запрос с персональными данными блокируется или отмечается, а не переписывается.

🚨 Корреляция в вашей SIEM

Spectorn отправляет каждую находку в указанную вами SIEM как JSON-событие по HTTPS (spectorn.ai-finding.v1) с правилом, категорией, серьёзностью и verdict_id. Многошаговые правила для этой отрасли стройте там, например: инъекция из файла контекста/правил, за которой следует опасная автономная команда; секрет в исходящем запросе к провайдеру модели на фоне массовой выгрузки кода. Собственная корреляция SOC в Spectorn (GoMCP) в облачных контурах RU и Global не развёрнута.

❓ Частые вопросы (FAQ)

Может ли GitHub Copilot или Cursor слить мой API-ключ? Да — если ключ присутствует в коде или .env, он уходит провайдеру модели вместе с контекстом и оседает в его логах. Spectorn ставится прокси между ассистентом и провайдером: secret_scanner находит ключи, токены и пароли в исходящем запросе до того, как он покинет периметр и в режиме блокировки блокирует его, поэтому ключ не доходит до провайдера. Вырезать секрет и отправить остальное Spectorn не умеет.

Что такое «rules file backdoor» и как от него защититься? Это атака, при которой вредоносный промпт прячут в файле правил ассистента (.cursorrules, copilot-instructions.md) с помощью невидимых Unicode-символов: на code review файл выглядит чистым, но модель исполняет скрытую инструкцию. Spectorn противодействует движком injection с нормализацией Unicode и обнаружением zero-width/bidi/гомоглифов — «невидимая» инструкция становится видимой детектору, и заражённый файл блокируется.

Как защитить исходный код от отправки в облачную модель при разработке? Разверните Spectorn как прокси перед провайдером: secret_scanner и pii находят секреты и персональные данные, а exfiltration распознаёт массовую выгрузку файлов кода. Платформа спроектирована как stateless-прокси (кроме Decision Logger) и не сохраняет полные тела запросов, что соответствует требованиям ФЗ-152/GDPR к конфиденциальности.

Безопасно ли использовать Cursor или Copilot для корпоративного кода? Безопасно при наличии контроля на трёх потоках: входящий контекст (инспекция файлов репозитория движком injection), исходящий (обнаружение секретов secret_scanner + контроль exfiltration) и поток действий agentic-режима (goal_predictability + корреляция в вашей SIEM). Без такого слоя репозиторий становится вектором инъекции, а секреты утекают провайдеру.

Что такое slopsquatting и как ассистент предлагает вредоносные пакеты? Модель иногда галлюцинирует имя несуществующего пакета; атакующий регистрирует это имя с вредоносной нагрузкой. output_scanner инспектирует предложения об установке зависимостей в выводе модели, а связать предложение с последующей установкой может правило в вашей SIEM. Для проверки самого существования пакета и CVE-аудита Spectorn рекомендует дополнить SCA-инструментами (Snyk, Dependabot).

Как заблокировать prompt injection через README в agentic-IDE? Включите инспекцию контекстных файлов: injection с флагом inspect_context_files проверяет содержимое README, комментариев и конфигов на встроенные инструкции до их попадания в модель. Закономерность, растянутую на много событий, ловит ваша SIEM: Spectorn отправляет туда каждую находку с правилом, категорией, серьёзностью и verdict_id; собственная корреляция SOC (GoMCP) в облачных контурах не развёрнута.


📚 Источники

Внутренние материалы: OWASP LLM Top 10 — карта покрытия движками · Сценарий: Стартапы и Dev-команды.

Безопасность ИИ-ассистентов в IDE | Spectorn