Перейти к основному содержимому

Л5. Ограничения, риски и тёмная сторона AI-кодинга

📺 Слайды к лекции

На прошлой лекции мы построили фреймворк выбора инструментов: 6 критериев, карта рынка, стратегия диверсификации. Но фреймворк оценивает инструмент как продукт --- функциональность, цена, траектория. Сегодня --- другой угол: какие риски инструмент привносит в ваш код, процесс и команду. Не чтобы отпугнуть от AI-кодинга, а чтобы вы точно знали, что проверять.

Мы уже видели тревожные сигналы на Л4: METR -19%, GitClear 8x дублирование, Comprehension Debt -17%, DORA +91% review time. Это были входные данные. Сегодня разворачиваем их в полную картину: конкретные уязвимости, реальные атаки 2026 года, системные последствия и --- самое важное --- что с этим делать.

Пойдём от конкретного к общему: уязвимости в коде, потом активные атаки (prompt injection), потом системные последствия (техдолг, навыки), юридические вопросы (privacy, copyright) и, наконец, --- что со всем этим делать.


Блок 1. Уязвимости в AI-сгенерированном коде

Парадокс ложной уверенности

В 2023 году исследователи из Стэнфорда провели эксперимент: разработчики с доступом к AI-ассистенту (на базе OpenAI Codex) и контрольная группа без AI решали одни и те же задачи, связанные с безопасностью.

Группа с AI написала менее безопасный код. И вот что неприятно --- участники с AI чаще считали свой код безопасным. Чем больше доверяли генерации, тем хуже получалось. Те, кто активнее правил промпты и не принимал первый ответ, получали меньше уязвимостей.

"Participants with access to an AI assistant wrote significantly less secure code, yet were more likely to believe they wrote secure code." --- Perry et al., Do Users Write More Insecure Code with AI Assistants? (Stanford, ACM CCS 2023)

Дело не в конкретной модели. AI генерирует уверенно выглядящий код, человек принимает его без критической проверки --- и в итоге качество падает, хотя ощущение безопасности растёт.

Масштаб: 45% AI-кода содержит уязвимости

Veracode в 2025 году протестировал код от 100+ LLM на четырёх языках (Java, JavaScript, Python, C#):

  • 45% тестов выявили security flaws в AI-сгенерированном коде
  • 86% случаев --- проваленная XSS-защита
  • Java --- худший результат: свыше 70% уязвимого кода
  • Более крупные и новые модели не показали улучшения по безопасности

"AI-generated code introduced risky security flaws in 45% of tests." --- Veracode State of Software Security 2025

Отдельное эмпирическое исследование (arXiv, октябрь 2025) проанализировало 7 703 файла с AI-сгенерированным кодом и нашло 4 241 экземпляр CWE 77 различных типов. Python лидирует по количеству --- 16--18.5% затронутых сниппетов. Самые частые типы: CWE-79 (XSS), CWE-89 (SQL injection), CWE-22 (path traversal).

В реальных проектах

Fu et al. (ACM TOSEM 2025) проанализировали AI-сгенерированные сниппеты, которые попали в реальные GitHub-репозитории, и нашли 733 уязвимых фрагмента. 29.5% Python-кода и 24.2% JavaScript-кода содержали security weaknesses. При этом AI-ассистент исправлял только 55.5% собственных багов при повторном запросе --- остальные требовали ручного вмешательства.

"29.5% of Python snippets and 24.2% of JavaScript snippets contained security weaknesses." --- Fu et al., ACM TOSEM 2025

2026: проблема не решается

DryRun Security (март 2026) прогнал три ведущих агента --- Claude Code (Sonnet 4.6), OpenAI Codex (GPT 5.2), Google Gemini (2.5 Pro) --- на задачах создания приложений с нуля. 38 сканов, 30 pull request'ов. 143 security issues, 87% PR содержат хотя бы одну уязвимость. Агенты оптимизированы на то, чтобы код работал, а не на то, чтобы он был безопасным.

Отдельная история --- Trend Micro (апрель 2026) обнаружила сеть поддельных репозиториев «Claude Code» на GitHub, распространяющих malware. При 84% разработчиков, использующих AI-инструменты, такие атаки будут только множиться.

warning

AI делает код быстрее, но не безопаснее. Безопасность требует отдельного усилия. Чем больше вы доверяете генерации, тем тщательнее нужно проверять результат.


Блок 2. Prompt injection и атаки на кодинг-агенты

Уязвимости в сгенерированном коде --- «пассивный» риск. Код плохой, но никто не атаковал вас целенаправленно. Prompt injection --- совсем другая история. Здесь злоумышленник целенаправленно использует вашего AI-ассистента как вектор атаки. И в 2026 году это работающие эксплойты с CVE-номерами и реальными жертвами.

85%+ success rate

Мета-анализ 78 исследований за 2021--2026 год (arXiv, январь 2026): атаки на кодинг-агенты преодолевают state-of-the-art защиту в 85%+ случаев при адаптивных стратегиях. Исследование «Your AI, My Shell» описывает 314 payload'ов и 70 техник по классификации MITRE ATT&CK. Защита есть, но при целенаправленном давлении она не выдерживает.

"Attacks on coding agents overcome state-of-the-art defenses in 85%+ of cases under adaptive strategies." --- Meta-analysis of prompt injection attacks (arXiv, January 2026)

Clinejection: первая supply chain атака через prompt injection

В феврале 2026 года исследователь Adnan Khan показал Clinejection --- цепочку атак, которая превратила AI-бота для триажа issues в инструмент компрометации supply chain.

Разберём по шагам:

  1. Репозиторий Cline использовал AI-агента для автоматического разбора новых GitHub issues
  2. Заголовок issue подставлялся прямо в промпт агента --- без санитизации
  3. У агента были широкие права, включая выполнение Bash-команд
  4. Атакующий создал issue с вредоносным заголовком --- prompt injection
  5. Агент выполнил payload, который отравил GitHub Actions cache
  6. Ночной release workflow подхватил отравленный кэш
  7. Атакующий украл NPM_RELEASE_TOKEN
  8. Опубликована вредоносная версия cline@2.3.0 в npm
  9. Пакет автоматически устанавливал openclaw на машины разработчиков

Результат: ~4 000 скомпрометированных машин за 8 часов. Вся цепочка началась с одного заголовка GitHub issue.

"An attacker could craft a malicious issue title that tricked the AI into executing arbitrary commands." --- Adnan Khan, Clinejection (February 2026)

graph LR
A["Вредоносный<br/>заголовок issue"] --> B["AI-бот<br/>триажа"]
B --> C["Bash-команда<br/>в workflow"]
C --> D["Cache<br/>poisoning"]
D --> E["Ночной<br/>release"]
E --> F["npm publish<br/>cline@2.3.0"]
F --> G["~4000 машин<br/>скомпрометировано"]

3 CVE в Claude Code CLI (апрель 2026)

В апреле 2026 года в Claude Code CLI нашли три уязвимости command injection. Общая причина одна --- несанитизированная подстановка строк в shell-команды (execa(shell: true), execSync).

CVE-2026-35020 --- Zero-Interaction Command Execution. Атакующий подкладывает вредоносный .env-файл в репозиторий. Переменная TERMINAL содержит payload. Когда CLI определяет тип терминала, payload выполняется автоматически --- без единого действия пользователя.

CVE-2026-35021 --- POSIX Shell Double-Quote Bypass. Файл с вредоносным именем в репозитории. Имя содержит $() --- command substitution, которая срабатывает внутри double quotes в POSIX shell. Достаточно открыть файл в IDE.

CVE-2026-35022 --- Auth Helper Injection. Атакующий модифицирует .claude/settings.json, добавляя вредоносный apiKeyHelper. CLI выполняет команду, которая отправляет AWS-ключи, SSH-ключи или историю разговоров на внешний сервер. В CI/CD-режиме (-p) все trust-диалоги пропускаются --- CVSS 9.9.

"CVE-2026-35020/35021/35022: command injection chain — config compromise, shell injection, exfiltration of AWS keys." --- Phoenix Security (April 2026)

Это не теория

Три CVE в одном из самых популярных AI-инструментов. Вектор атаки --- файлы в репозитории, который вы клонируете. git clone может быть первым шагом к компрометации.

Гардрейлы ломаются тихо

Adversa AI (апрель 2026) обнаружила: deny rules в Claude Code перестают работать после ~50 подкоманд в одном вызове. Причина экономическая --- глубокий анализ безопасности стоит токенов. При превышении лимита система переключается на упрощённую проверку, которую можно обойти. Атакующий прячет curl с эксфильтрацией credentials в длинном build-скрипте --- и deny rule на curl не срабатывает.

Фикс существовал в кодовой базе Anthropic, но не был задеплоен на момент исследования. Патч вышел в v2.1.90.

"Deny rules fail after ~50 subcommands --- security checks are silently disabled due to token limits." --- Adversa AI (April 2026)

MCP как критический attack surface

MCP расширяет возможности агентов, но заодно и attack surface.

  • 36.7% из 7 000+ MCP-серверов потенциально уязвимы к SSRF (BlueRock Security)
  • CVE-2026-25536 (CVSS 7.1): утечка данных между клиентами в MCP TypeScript SDK
  • Rug pull атаки: MCP-сервер меняет tool definitions после установки --- описание говорит одно, а код делает другое
  • 1 из 5 пакетов на ClawHub (маркетплейс MCP) --- вредоносный (Snyk ToxicSkills)

Ещё один вектор --- Rules File Backdoor (Pillar Security, март 2025): Unicode-скрытые инструкции в .cursorrules и .github/copilot-instructions.md. Файл выглядит нормально в текстовом редакторе, но содержит невидимые символы, которые меняют поведение AI-ассистента.

IDEsaster: 24+ CVE по всем AI IDE

Проект IDEsaster (декабрь 2025) собрал 24+ CVE по всем крупным AI IDE: Cursor, Copilot, Cline, Windsurf, Claude Code. RCE, data exfiltration, command injection, trust bypass. Полностью защищённых нет.


Блок 3. Технический долг и деградация навыков

Что мы уже знаем

На Л4 мы зафиксировали четыре ключевые метрики:

МетрикаЗначениеИсточник
METR: замедление опытных разработчиков-19%METR RCT, 2025
GitClear: рост дублирования кода8xGitClear, 150M строк
Anthropic: снижение понимания кода-17%Anthropic RCT, 52 инженера
DORA: рост времени code review+91%Google DORA Report 2025

Это входные данные. Вопрос --- к чему они ведут на горизонте 1--3 лет.

Компаундинг долга

Обычный технический долг --- осознанный компромисс: «знаем, что криво, починим позже». AI-долг устроен иначе. Он копится незаметно: код проходит тесты, но архитектурной логики в нём нет.

Исследование «Debt Behind the AI Boom» (arXiv, март 2026) показало: AI-сгенерированный код требует больше рефакторинга, и сложность компаундится --- каждый новый слой AI-кода делает предыдущие слои дороже в изменении.

GitClear зафиксировал четырёхкратный рост code clones (копипасты) в эпоху AI. Впервые дублированный код превысил рефакторированный. Бизнес-логика размазана по нескольким файлам с минимальными вариациями. Обновить логику --- значит найти и поменять каждую копию.

"AI-generated code requires significantly more refactoring and introduces complexity that compounds." --- Debt Behind the AI Boom (arXiv, March 2026)

4x стоимость поддержки

Tembo проанализировал проекты с преимущественно AI-сгенерированным кодом: к году 2 стоимость поддержки вырастает в 4 раза. AI не переиспользует существующий код --- он регенерирует похожий заново. Каждое обновление логики превращается в охоту за всеми копиями.

"AI-generated code multiplies maintenance costs --- duplicated logic must be updated in every instance." --- Tembo: AI Technical Debt

Кризис Junior Pipeline

AI автоматизирует типовые задачи --- те самые, на которых учатся джуниоры. 54% компаний сократили наём junior-разработчиков. Entry-level вакансий стало на 60--67% меньше. Джуниоры --- только 7% новых наймов в IT.

Арифметика простая: нет джуниоров сегодня --- нет синьоров через 5 лет. По прогнозам, к 2032 году квалифицированных tech lead'ов и архитекторов станет на 60--70% меньше.

Параллельно появляются «hollow seniors» --- разработчики, которые продвигаются в senior-роли без опыта отладки сложных production-проблем. Промптить умеют, дебажить --- нет.

"Entry-level job postings dropped by up to 67%, and juniors now make up only 7% of new IT hires." --- Stack Overflow Blog + AlterSquare

Brain Fry --- когнитивная усталость

BCG опросил 1 488 работников (Harvard Business Review, март 2026) и описал «AI brain fry» --- когнитивную усталость от постоянного взаимодействия с AI. Больше ошибок, перегрузка решениями, рост желания уволиться.

В кодинге brain fry накладывается на comprehension debt: AI генерирует код быстрее, чем человек успевает его осмыслить. Senior-разработчики оказываются на конвейере ревью, одобряя код, который не до конца понимают. Скрытые проблемы расползаются по системе и всплывают, когда чинить уже дорого.

"AI brain fry --- a state of mental fatigue caused by excessive use or constant monitoring of AI tools --- increases employee errors and intent to quit." --- BCG/Harvard, When Using AI Leads to Brain Fry (HBR, March 2026)


Блок 4. Приватность и авторское право

До сих пор --- технические риски. Но есть ещё юридические, и они определяют, можно ли вообще использовать AI-код в продакшне.

Data leakage: Samsung и статистика

В апреле 2023 года сотрудники Samsung за 20 дней допустили три утечки через ChatGPT: исходный код, протоколы совещаний, данные полупроводниковых чипов. Samsung запретил генеративные AI-инструменты на корпоративных устройствах. 65% опрошенных сотрудников компании назвали генеративные AI-инструменты угрозой безопасности.

"Samsung temporarily banned the use of generative AI tools on all company-owned devices and internal networks." --- TechCrunch (May 2023)

Это не уникальный случай. По данным Cyberhaven, 46% нарушений, связанных с AI-инструментами, --- отправка исходного кода. 77% сотрудников делятся конфиденциальными данными через AI. 83% компаний не имеют контролей на использование AI-инструментов.

Проблема в том, что данные, попавшие в публичный AI-сервис, нельзя отозвать. Модель может запомнить фрагменты (data memorization) и воспроизвести их в ответах другим пользователям.

Doe v. GitHub: Copilot lawsuit

Первый крупный иск об авторском праве на AI-код. Претензия: GitHub Copilot воспроизводит open-source код без соблюдения лицензий и удаляет copyright-management information (нарушение DMCA).

Из 22 исходных претензий суд оставил 2 --- про нарушение open-source лицензий и DMCA. Загвоздка: DMCA требует «identicality», то есть нужно доказать, что Copilot воспроизводит код буквально. Дело сейчас на апелляции в Ninth Circuit. Решение определит правила игры для всей индустрии.

В январе 2025 года US Copyright Office сказал прямо: полностью AI-сгенерированный материал не подлежит копирайт-защите. Нужно человеческое авторство.

Промпты --- даже детальные, итеративные --- не считаются. Промпт работает как инструкция, а не как творческий вклад. Авторское право возникает, только если человек творчески отбирает, комбинирует или модифицирует AI-output.

Что это значит на практике: ваш AI-сгенерированный код может быть uncopyrightable. Конкуренты легально скопируют его, и вы ничего не сделаете.

EU AI Act: маркировка и transparency

Article 50 EU AI Act: провайдеры генеративного AI обязаны маркировать AI-сгенерированный контент. Дедлайн --- август 2026.

Если вы используете AI-код в продукте для европейского рынка, вам, возможно, придётся документировать, какие части были сгенерированы AI. Пока мало кто об этом думает, но дедлайн уже скоро.

Ответственность: git blame --- это вы

Ключевой принцип

Вы коммитите код --- вы автор по git blame --- вы несёте ответственность. «AI написал» --- не юридическая защита. Ни в одной юрисдикции мира.

Если AI-сгенерированный модуль обработки данных пациентов нарушает HIPAA --- отвечаете вы, не Anthropic и не OpenAI. Если он содержит утечку PII и нарушает GDPR --- штраф выставят вашей компании. Если код содержит фрагменты из GPL-проекта без указания лицензии --- судиться будут с вами.


Блок 5. Что делать --- sandboxing, гардрейлы и практики защиты

Проблемы описали. Теперь --- что с ними делать. Не «будьте аккуратнее», а конкретные технологии и конфигурации, которые можно запустить сегодня. Три уровня: изоляция среды (sandboxing), встроенные гардрейлы агентов, тестирование и red-teaming.

Уровень 1: Sandboxing --- изоляция среды выполнения

NVIDIA OpenShell --- open-source песочница для кодинг-агентов. Агент запускается в отдельном контейнере с четырьмя уровнями защиты:

УровеньЧто защищаетПример
FilesystemЧтение/запись за пределами разрешённых путейБлокировка доступа к ~/.ssh/
NetworkНесанкционированные исходящие соединенияL7 HTTP proxy с YAML-политиками
ProcessPrivilege escalation, опасные syscall'ыБлокировка ptrace, mount
InferenceУтечка данных через API-вызовы моделейПеренаправление на контролируемый backend

Одна команда: openshell sandbox create -- claude. Поддерживает Claude Code, Codex, Copilot CLI.

Claude Code тоже имеет встроенный sandbox: Seatbelt на macOS, bubblewrap на Linux/WSL2. Если prompt injection заставит агента выполнить вредоносную команду, sandbox ограничит доступ к файлам и заблокирует отправку данных на чужие домены.

GitHub Copilot Agent использует ephemeral GitHub Actions runners --- одноразовые контейнеры, которые уничтожаются после выполнения задачи.

Уровень 2: Гардрейлы кодинг-агентов

Claude Code permissions работает по принципу deny -> ask -> allow. Deny побеждает всегда:

  1. Deny --- запрещённые действия (чтение .env, rm -rf /)
  2. Ask --- требуют подтверждения пользователя
  3. Allow --- выполняются автоматически

6 режимов: plan (read-only) -> default -> acceptEdits -> auto -> dontAsk -> bypassPermissions. Hooks --- кастомные скрипты, которые запускаются до или после каждого tool call. Managed settings для команд --- нельзя переопределить на уровне проекта.

Auto-mode (Anthropic, 2026) добавляет classifier model (Sonnet/Opus), который проверяет каждый tool call перед выполнением. Безопасно --- auto-approve, рискованно --- block. Конфигурация: autoMode.environment (trusted infrastructure), autoMode.soft_deny (блоклист), autoMode.allow (исключения). Настройки не читаются из project settings --- защита от repo-level injection.

Но вспоминаем Adversa AI: deny rules ломаются после ~50 подкоманд. Один уровень защиты --- это не защита. Defense in depth --- не модное слово, а необходимость.

Cursor YOLO mode --- автономное выполнение без OS-level sandbox. Полагается на дисциплину пользователя. Если вы используете Cursor --- ответственность за безопасность полностью на вас.

Уровень 3: Red-teaming и тестирование

OWASP Top 10 for LLM Applications --- Prompt Injection на первом месте. OWASP также выпустила Top 10 for Agentic Applications (декабрь 2025) с рисками, специфичными для автономных агентов: Agent Goal Hijack, Tool Misuse, Agentic Supply Chain Vulnerabilities, Unexpected Code Execution.

Инструменты тестирования:

ИнструментЧто делаетКто использует
Promptfoo50+ типов уязвимостей, adaptive red teaming, CI/CD интеграция127 Fortune 500
PyRIT (Microsoft)Red teaming framework для LLMAzure AI
Garak (NVIDIA)LLM vulnerability scannerИсследователи

Security-aware промптинг --- простое изменение с большим эффектом. Black Duck/Synopsys показали: Claude при security-aware промпте улучшает Pass@1 с 13.83% до 39.89%, почти трёхкратный рост. Вместо «напиши функцию авторизации» --- «напиши функцию авторизации, устойчивую к SQL injection, с parameterized queries и валидацией input length».

Security-naive prompt -> уязвимый код
# Промпт: "напиши функцию поиска пользователя по имени"
def find_user(name):
query = f"SELECT * FROM users WHERE name = '{name}'" # SQL injection!
return db.execute(query)
Security-aware prompt -> безопасный код
# Промпт: "напиши функцию поиска пользователя по имени,
# используй parameterized queries, валидируй input"
def find_user(name: str) -> User | None:
if not name or len(name) > 100:
raise ValueError("Invalid name")
query = "SELECT * FROM users WHERE name = %s"
return db.execute(query, (name,))

Практический чеклист

6 правил безопасного AI-кодинга
  1. Sandbox --- всегда. OpenShell для незнакомых проектов, встроенный sandbox Claude Code для ежедневной работы
  2. Deny rules для .env, credentials, production configs, ~/.ssh/
  3. Проверяйте MCP-серверы. 36.7% уязвимы к SSRF, 20% пакетов на ClawHub --- вредоносные
  4. Auto-mode вместо bypassPermissions. Classifier ловит большинство опасных действий
  5. Ephemeral containers для CI/CD агентов --- одноразовый контейнер, который уничтожается после задачи
  6. git blame = ваша ответственность. «AI написал» --- не юридическая защита. Ревьюйте каждый коммит

Заключение

AI-кодинг --- это не «может быть опасно когда-нибудь». Риски измерены и задокументированы:

РискЧислоИсточник
Уязвимости в AI-коде45%Veracode 2025
Success rate prompt injection85%+Meta-analysis, 78 studies
AI PR с уязвимостями87%DryRun Security 2026
Рост стоимости поддержки4xTembo
Снижение junior-вакансий60--67%Stack Overflow, AlterSquare

Риски идут на трёх уровнях: технический (уязвимости, injection), системный (техдолг, деградация навыков, workforce), юридический (copyright, privacy). И на каждый уровень есть ответ: sandbox, guardrails, testing.

Всё это --- не повод отказаться от AI-кодинга. Это повод перестать относиться к нему как к магии. Защита работает, но только если вы её включили.

И главное: не «AI написал код». Вы закоммитили --- вы и отвечаете.


Дальнейшее чтение

Уязвимости в AI-коде

Prompt injection и атаки

Технический долг и навыки

Защита и инструменты