14-дневный пилот контроля AI-кодинга: какие репозитории брать и какие KPI смотреть
Практическое руководство для CTO, VP Engineering и AppSec-команд, которые уже используют AI в разработке и хотят понять, что именно контролировать
Почему именно 14 дней и зачем вообще пилотить контроль
Большинство команд прошли стадию "разрешить или запретить AI" ещё в 2023–2024 годах. В 2025–2026 году вопрос звучит иначе: как масштабировать AI-кодинг без того, чтобы security-долг рос быстрее, чем скорость доставки.
Данные это подтверждают. По исследованию Faros AI на базе 10 000 разработчиков, опубликованному в 2025 году, AI-ассистенты дали прирост в 21% выполненных задач и 98% больше смёрженных PR — но при этом число инцидентов на один PR выросло на 242,7%, а количество багов на разработчика — на 54% [1]. Это и есть "Acceleration Whiplash": ускорение наверху, накапливающиеся проблемы качества на всех этапах ниже.
Одновременно доля AI-генерируемого кода растёт: по данным Checkmarx (2025), около 70% респондентов среди CISOs, AppSec-менеджеров и разработчиков оценивают долю AI-кода в своих организациях выше 40% [2]. При этом security-review coverage для AI-кода на 20–30% ниже, чем для написанного вручную [3].
14 дней — оптимальный горизонт для первичного пилота по нескольким причинам:
- Это достаточно, чтобы пройти 2–3 sprint-цикла и получить статистически значимый baseline по PR-потоку.
- Это достаточно мало, чтобы не требовать длинных согласований и не ломать текущие процессы команды.
- Это позволяет зафиксировать до- и после-картину по ключевым метрикам перед принятием решения о масштабировании.
Важная оговорка: 14 дней — это не полный security-аудит и не замена пентесту или SCA-сканированию всего кодебейза. Это структурированное наблюдение за потоком изменений с AI-меткой с целью понять базовый уровень риска именно в вашей команде и ваших репозиториях.
Что реально происходит в AI-коде: цифры, которые важно знать до пилота
Прежде чем выбирать репозитории и KPI, стоит понять, что именно контролировать. Исследовательская база здесь уже достаточно плотная.
Уязвимости генерируются системно, а не случайно
Veracode в отчёте 2025 года протестировал более 100 LLM-моделей на 80 реальных задачах кодирования и зафиксировал: 45% случаев генерации кода, где есть security-требования, дали уязвимости. AI-код содержит в 2,74 раза больше уязвимостей, чем написанный вручную [4].
Детализация по типам: 86% сгенерированных образцов не защищают от Cross-Site Scripting (CWE-80), 88% уязвимы к log injection (CWE-117) [4]. Исследование arxiv 2025 года, изучившее публичные репозитории с AI-кодом, нашло 4 241 уязвимость по 77 типам CWE. Топ-5 CWE в AI-коде совпадают с MITRE Top 25 Most Dangerous Software Weaknesses 2024 года [5].
Важный нюанс: в том же исследовании 87,9% AI-файлов не содержат идентифицируемых CWE — это означает, что проблема концентрирована в определённых паттернах и типах задач, а не равномерно размазана по всему коду.
По данным Apiiro, к июню 2025 года AI-код добавлял более 10 000 новых security-находок в месяц в изученных корпоративных репозиториях — рост в 10 раз по сравнению с декабрём 2024 года [3].
Секреты утекают чаще, чем кажется
GitHub зафиксировал 39 миллионов утечек секретов в публичных репозиториях в 2024 году. AI-ассистенты вносят вклад в эту статистику, воспроизводя паттерны из обучающих данных: example API keys, токены, конфигурационные файлы с хардкодными credentials [6].
Зависимости — отдельный класс риска
Исследование 576 000 образцов Python и JavaScript кода (март 2025, University of Texas, Virginia Tech) показало: примерно в 20% случаев LLM рекомендуют несуществующие пакеты [7]. Эта ситуация получила название "slopsquatting": злоумышленники регистрируют пакеты с именами, которые регулярно галлюцинируют модели, и встраивают в них вредоносный код.
Sonatype в отчёте State of the Software Supply Chain 2026 нашёл ещё более тревожную цифру: при анализе 36 870 реальных корпоративных upgrade-рекомендаций от AI-ассистентов 27,75% указывали на несуществующие версии пакетов [8]. Это не только security-риск, но и прямое операционное воздействие на CI/CD-пайплайны.
Реальный кейс: исследователь Чарли Эриксен зарегистрировал npm-пакет react-codeshift, который галлюцинировал один LLM — и немедленно начал получать скачивания из 237 GitHub-репозиториев, где этот пакет уже был включён в AI-сгенерированный код [9].
Поведенческий парадокс: разработчики доверяют AI больше, чем следует
58% разработчиков доверяют AI-выводу без тестирования [3]. При этом исследование Perry et al. показало: участники, использовавшие AI-ассистентов, написали значительно больше security-уязвимостей, чем те, кто кодировал с нуля — и при этом выражали более высокую уверенность в качестве своего кода [10].
Выбор репозиториев для пилота: критерии и антипаттерны
Выбор репозиториев — ключевое методологическое решение. Неправильный выбор даст нерелевантные данные или, хуже, ложное ощущение безопасности.
Принцип "золотой середины"
Репозитории для пилота должны находиться между двумя крайностями:
С одной стороны — не брать production-core с payment processing, аутентификационными сервисами или прямым доступом к PII в первый пилот. Там риск слишком высок, а сигнал от инструментов контроля ещё не откалиброван.
С другой — не брать "мёртвые" репозитории с минимальной активностью. Там не будет PR-потока, и вы не получите статистически значимых данных за 14 дней.
Оптимальная зона: репозитории со средней критичностью и высокой активностью AI-использования.
Критерии для включения репозитория в пилот
Первый критерий — подтверждённое использование AI. Выбирайте репозитории, где разработчики уже используют Copilot, Cursor, Claude Code или аналоги регулярно. Метрика: AI-assisted commit rate выше 30% за последние 30 дней. Если этот показатель не отслеживается, можно провести короткий опрос команды.
Второй критерий — активный PR-поток. Для получения значимой выборки за 14 дней нужно минимум 20–30 PR за период. Репозитории с 1–2 PR в неделю дадут слишком мало точек для анализа.
Третий критерий — наличие зависимостей (dependencies). Репозитории с npm, pip, Maven или Go modules представляют наибольший интерес с точки зрения supply chain риска — именно там проявляется проблема hallucinated packages и устаревших транзитивных зависимостей.
Четвёртый критерий — покрытие тестами. Репозиторий с нулевым тестовым покрытием — плохой кандидат: невозможно отделить функциональные дефекты от security-проблем.
Пятый критерий — работающий CI/CD. Пилот предполагает встраивание security-проверок в пайплайн, поэтому базовый CI должен существовать.
Рекомендуемый portfolio из 3–4 репозиториев
Для команды от 10 разработчиков рекомендуется взять следующий набор:
Первый репозиторий — backend API сервис (REST или GraphQL). Высокая вероятность injection-уязвимостей (SQL, command injection), проблем с аутентификацией и неправильной обработкой ошибок. Типичные CWE в AI-коде для этого класса: CWE-89, CWE-78, CWE-918.
Второй репозиторий — frontend или BFF (Backend for Frontend). Высокая вероятность XSS (CWE-80), CSRF, небезопасной работы с токенами. AI-код для web-слоя показывает 86% провалов по XSS в тестах Veracode.
Третий репозиторий — infrastructure as code или internal tooling (CI/CD-скрипты, Terraform, Helm-чарты, GitHub Actions). Этот класс особенно опасен: конфиги и IaC читают хуже всего при ревью, а AI-ассистенты генерируют там слишком широкий CORS, публичные bucket-политики, debug-флаги в production-окружениях.
Четвёртый репозиторий (опционально) — библиотека с активным dependency management. Идеально для тестирования slopsquatting и supply chain detection.
Что не брать в первый пилот
Не включать в пилот репозитории, которые обрабатывают платёжные данные, медицинские данные или PII в объёме, требующем compliance (PCI DSS, HIPAA, 152-ФЗ) — не потому что там нет проблем, а потому что регуляторные требования создадут дополнительные ограничения на инструментарий, которые лучше решать отдельно.
Также не брать репозитории, где нет agreement со стороны команды разработки. Пилот требует сотрудничества, а не аудита через голову.
Структура 14-дневного пилота
День 1–2: baseline и инвентаризация
Прежде чем запускать любые security-проверки, нужно зафиксировать текущее состояние. Без baseline невозможно доказать ни улучшение, ни ухудшение.
Что делать в эти дни:
Запустить сканирование выбранных репозиториев SAST-инструментом в read-only режиме — без блокировок. Задача: получить исходный уровень vuln density (количество уязвимостей на 1 000 строк кода).
Провести инвентаризацию зависимостей: составить список всех прямых и транзитивных зависимостей, зафиксировать известные CVE через SCA-инструмент (Dependabot, Snyk, OWASP Dependency-Check).
Зафиксировать DORA-метрики за предыдущие 30 дней: deployment frequency, lead time for changes, change failure rate, rework rate.
Провести secret scan на historical commits — часто секреты были закоммичены месяцы назад и до сих пор остаются в истории.
День 3–7: наблюдение за потоком PR
В эти дни начинается активное наблюдение за новыми PR с AI-меткой. Для каждого AI-assisted PR фиксируются:
- Размер изменения (строки кода, количество изменённых файлов).
- Новые зависимости, добавленные в PR.
- Результаты SAST-проверки по diff (не по всему файлу).
- Наличие изменений в конфигурационных файлах, IaC, CI/CD-скриптах.
- Время ревью и глубина ревью (revision depth).
Важно на этом этапе не блокировать PR автоматически, а только наблюдать и собирать данные. Преждевременные блокировки сломают процесс команды и дадут ложный сигнал о бесполезности инструментов.
День 8–10: анализ паттернов
К середине второй недели накапливается достаточно данных для первичного анализа. Здесь ищут паттерны:
- Какие типы уязвимостей встречаются чаще всего в AI-коде именно этой команды?
- Есть ли корреляция между размером PR и числом security-находок?
- Какой процент новых зависимостей не существовал в lock-файле на момент начала пилота?
- Сколько секретов было добавлено за 7 дней наблюдения?
День 11–14: настройка сигналов и финальный срез
В последние дни калибруются пороги для будущих автоматических проверок. Задача — не максимизировать число блокировок, а определить, где хватает предупреждения, а где нужен hard gate.
Финальный срез: повторить baseline-сканирование и сравнить с исходными показателями.
KPI для пилота: три уровня и что за ними стоит
Метрики пилота контроля AI-кодинга делятся на три группы, которые нельзя смешивать: они отвечают на разные вопросы.
Уровень 1: Productivity KPI (показывают ускорение)
Это метрики, которые команды обычно и без пилота уже умеют считать. Их задача в контексте пилота — зафиксировать baseline и проверить, не ухудшаются ли они при добавлении security-контроля.
AI-assisted commit rate — доля коммитов, где зафиксировано использование AI. Считается через IDE-телеметрию или атрибуцию в commit messages. Нужен как знаменатель для всех остальных метрик.
AI suggestion acceptance rate — доля принятых AI-предложений от общего числа показанных. По данным 2025 State of AI-Assisted Software Development Report, менее 44% AI-предложений принимаются as-is в профессиональных командах [11]. Если acceptance rate ниже 30% — это сигнал к пересмотру tool setup или onboarding.
PR cycle time для AI-assisted PR vs. non-AI PR — ключевое сравнение. По данным Faros AI, медианное время ревью PR выросло на 441% в командах с высоким AI-adoption, а 31% PR сливаются без какого-либо ревью вообще [1]. Именно это — главный операционный риск AI-кодинга.
Lead time for changes (DORA) — от создания PR до production. Согласно DORA Report 2025, 90% разработчиков используют AI, и deployment frequency растёт, но change failure rate остаётся под давлением [12].
Уровень 2: Quality KPI (показывают стабильность)
Это метрики, которые показывают не скорость, а надёжность того, что поехало в production.
Rework rate — доля незапланированных исправлений в production. DORA 2025 добавил rework rate как пятую официальную метрику именно потому, что без неё картина AI-ускорения выглядит слишком оптимистично [12]. Рост rework rate при росте deployment frequency — признак "Acceleration Whiplash".
Bugs per developer — количество дефектов, атрибутированных конкретному разработчику или типу кода. По данным Faros AI, рост составил 54% в командах с высоким AI-adoption [1].
Change failure rate — процент деплойментов, вызвавших инцидент в production. По DORA, это первичный сигнал о проблемах quality gates.
Revision depth — насколько глубоко человек правит AI-предложение перед принятием. Высокая глубина ревизии означает, что AI увеличивает review effort вместо его снижения [11].
Уровень 3: Security KPI (показывают реальный риск)
Это метрики, которые в большинстве команд либо не считают вообще, либо не атрибутируют к AI-коду. Именно они — цель пилота.
Vulnerability density в AI-assisted PR — количество находок SAST на 1 000 строк кода именно в AI-diff, а не по всему репозиторию. Это позволяет сравнить с non-AI baseline и получить конкретное число риска, добавляемого AI.
Secret leakage rate — количество обнаружений секретов (API keys, tokens, credentials) в коммитах за период. Важно разделять: добавлено в текущем PR vs. присутствует в исторических коммитах.
Dependency risk score — количество новых зависимостей, добавленных AI, с CVE выше CVSS 7.0; количество зависимостей без lock-file pin; количество новых пакетов, созданных менее 30 дней назад (признак потенциального slopsquatting).
Unreviewed merge rate — доля PR, ушедших в merge без code review. Именно здесь живёт основной риск: функционально работающий PR, не прочитанный до конца, может нести уязвимость класса CWE-918 (SSRF) или hardcoded credential, невидимую при беглом просмотре.
Config and IaC change rate — количество изменений в конфигурационных файлах, Terraform, Helm, GitHub Actions за период, не прошедших отдельное security-ревью. Этот тип кода читается хуже всего и генерируется AI хуже всего: debug-флаги, публичные bucket ACL, слишком широкий CORS — типичные паттерны.
False positive rate — доля срабатываний security-инструментов, признанных нерелевантными после ревью. Этот показатель нужен для калибровки: если false positive rate выше 40%, инструменты создают шум вместо сигнала и команда начнёт их игнорировать.
Как считать ROI пилота: что измерять и чего не обещать
ROI контроля AI-кодинга — одна из самых сложных тем для обоснования перед бизнесом. Основная проблема сформулирована точно в исследовании IBM: как доказать ценность катастроф, которые не произошли [13].
Тем не менее есть практический подход, применимый уже по результатам 14-дневного пилота.
Прямые операционные метрики
Стоимость уязвимости, найденной до merge, против стоимости той же уязвимости в production — стандартная оценка IBM/NIST даёт разницу в 6–30 раз в зависимости от типа уязвимости и сложности её эксплуатации. Умножить число критических находок за 14 дней на медианную стоимость remediation в production по данной команде — это уже конкретная цифра для разговора с CFO.
Время, сэкономленное на ревью — если security-контроль уменьшает среднее время ревью на 15–20% за счёт фокусирования внимания рецензента на реально рискованных изменениях, это тоже считается в часах и умножается на ставку разработчика.
Снижение incident rate — разница в числе production-инцидентов между периодами. Важно: этот показатель будет виден не через 14 дней, а через 2–3 месяца после полного развёртывания контроля.
Что не стоит обещать
Не стоит утверждать "полную безопасность" или "отсутствие инцидентов" как результат пилота: это недостижимые цели для любого инструмента. Корректная формулировка — снижение риска на X% для данного класса уязвимостей в данном PR-потоке.
Также не стоит экстраполировать результаты 14-дневного пилота на весь кодебейз: пилот даёт ориентиры, а не финальные числа.
По данным Deloitte, только 5% AI-инициатив в enterprise показывают измеримый ROI — в первую очередь потому, что большинство не устанавливают baseline до начала и не связывают метрики с бизнес-результатами [14]. Пилот — это именно инструмент для создания правильной точки отсчёта.
Типичные ошибки и как их избежать
Ошибка 1: Выбрать "правильный" репозиторий вместо "активного"
Соблазн взять репозиторий с хорошо настроенными процессами, опытной командой и существующими security-проверками велик — там пилот выглядит успешнее. Но данные из такого репозитория не отражают реального состояния команды.
Правило: выбирать репозитории, где уровень AI-использования выше среднего, а не где меньше проблем.
Ошибка 2: Путать функциональную корректность с безопасностью
Главная когнитивная ловушка AI-кодинга: код, прошедший все unit-тесты и code review по функциональным критериям, может нести уязвимости, невидимые при обычном ревью. По данным Perry et al. (2023), разработчики, использующие AI-ассистентов, выражали более высокую уверенность в безопасности своего кода при том, что вносили больше уязвимостей [10].
Ошибка 3: Запустить блокировки с первого дня
Преждевременные hard gates ломают поток команды и создают сопротивление инструменту. Первая неделя пилота — наблюдение, а не блокирование. Блокировки настраиваются по результатам анализа паттернов на 8–10-й день.
Ошибка 4: Смотреть только на SAST-находки
SAST — это только один слой. Package hallucinations не обнаруживаются SAST-инструментами: это задача SCA и dependency-validation. Secret leakage требует отдельного инструмента (GitHub Secret Scanning, Gitleaks, TruffleHog). IaC-мисконфигурации требуют специализированных проверок (Checkov, tfsec).
Ошибка 5: Не дифференцировать AI-код от non-AI кода при анализе
Если security-метрики считаются по всему репозиторию без атрибуции к AI vs. non-AI, пилот не даст полезного сигнала. Необходима возможность отфильтровать именно AI-assisted PR и коммиты.
Ошибка 6: Игнорировать конфиги и IaC
По практике безопасных команд, конфигурационные файлы, Helm-чарты, Terraform и CI/CD-скрипты читаются при ревью хуже всего — и именно туда AI чаще всего встраивает debug-настройки, слишком широкие CORS-политики или небезопасные defaults. Это должно быть отдельной категорией наблюдения с первого дня пилота.
Роль security-контроля до merge: почему сигнал важнее отчёта
Цель пилота — не получить длинный security-отчёт по итогам. Цель — внедрить механизм, дающий короткий и ясный сигнал команде в момент, когда он ещё может повлиять на решение о merge.
Это важное методологическое различие. Традиционные SAST-отчёты часто содержат сотни и тысячи находок с разными приоритетами — и команды перестают их читать. По данным исследования 2024 года, только 20% из 1 003 опрошенных разработчиков используют SAST-инструменты в своём workflow [6].
Эффективный сигнал для команды до merge должен отвечать на конкретный вопрос: можно ли безопасно принять это конкретное изменение прямо сейчас? Что именно блокирует merge, а что требует внимания, но не останавливает выпуск?
Именно в этот разрыв — между скоростью AI-генерации и скоростью осмысленного ревью — встраивается дополнительный слой контроля. Инструменты вроде HighVibe работают не как замена SAST/SCA/CI-проверок, а как дополнительный слой: анализируют конкретное изменение в контексте релиза, объясняют проблему простым языком и предлагают следующий шаг — исправить, перепроверить или остановить merge. Это особенно актуально для конфигов, новых зависимостей и служебного кода, которые при ревью читают хуже всего.
OpenSSF в своём руководстве по AI-ассистентам (2025) подчёркивает: эффективные security-инструкции для AI-инструментов и эффективный security-контроль на выходе — это взаимодополняющие уровни, а не альтернативы друг другу [15].
Что делать после 14 дней: от пилота к системе
По итогам пилота у команды должен быть ответ на следующие вопросы:
Первый вопрос — какой тип уязвимостей доминирует в AI-коде именно этой команды и этих стеков? Это определяет приоритеты для постоянного контроля.
Второй вопрос — какой процент AI-assisted PR сливается без полноценного ревью? Это определяет необходимость hard gate vs. advisory mode.
Третий вопрос — каков реальный supply chain риск: сколько новых зависимостей появилось за 14 дней, сколько из них потенциально опасны?
Четвёртый вопрос — насколько security-сигналы воспринимались командой как полезные vs. шум? Это определяет конфигурацию порогов.
По результатам пилота принимается одно из трёх решений: масштабировать контроль на все репозитории в текущей конфигурации; изменить конфигурацию (пороги, инструменты, типы проверок) и провести второй пилот; зафиксировать baseline и использовать его как точку сравнения для следующего квартального review.
DORA-исследование 2025 года говорит прямо: AI не исправляет команду, а усиливает то, что уже есть [12]. Пилот контроля — это способ понять, что именно усиливает AI в вашем конкретном процессе, до того как это стало production-инцидентом.
Заключение
AI-кодинг уже изменил скорость разработки. Вопрос не в том, использовать ли его, а в том, как выстроить контроль, который не убьёт скорость, но сделает риск видимым.
14-дневный пилот — это минимально достаточный эксперимент для ответа на этот вопрос с данными, а не с интуицией. Правильно выбранные репозитории дают репрезентативную выборку. Трёхуровневые KPI (productivity, quality, security) дают полную картину. Наблюдение без блокировок в первую неделю даёт честный baseline.
Главный вывод из существующих исследований: функционально работающий PR — это не синоним безопасного PR. Это разрыв, который нужно закрыть до масштабирования AI-кодинга, а не после первого инцидента.
Источники
[1] Faros AI — "DORA Report 2025 Key Takeaways: AI Impact on Dev Metrics" — https://www.faros.ai/blog/key-takeaways-from-the-dora-report-2025
[2] Checkmarx — "2025 CISO Guide to Securing AI-Generated Code" — https://checkmarx.com/blog/ai-is-writing-your-code-whos-keeping-it-secure/
[3] SQ Magazine — "AI Coding Security Vulnerability Statistics 2026" — https://sqmagazine.co.uk/ai-coding-security-vulnerability-statistics/
[4] Help Net Security — "AI can write your code, but nearly half of it may be insecure" — https://www.helpnetsecurity.com/2025/08/07/create-ai-code-security-risks/
[5] arxiv — "Security Vulnerabilities in AI-Generated Code" (Schreiber & Tippe, 2025) — https://arxiv.org/pdf/2510.26103
[6] Knostic — "How to Secure AI Coding Assistants and Protect Your Codebase" — https://www.knostic.ai/blog/ai-coding-assistant-security
[7] BleepingComputer — "AI-hallucinated code dependencies become new supply chain risk" — https://www.bleepingcomputer.com/news/security/ai-hallucinated-code-dependencies-become-new-supply-chain-risk/
[8] AI Unfiltered — "Sonatype Finds AI Coding Assistants Hallucinate 27.75% of Package Upgrades" — https://www.arturmarkus.com/sonatype-finds-ai-coding-assistants-hallucinate-27-75-of-package-upgrades-10000-non-existent-versions-recommended/
[9] CSO Online — "Supply-chain attacks take aim at your AI coding agents" — https://www.csoonline.com/article/4167465/supply-chain-attacks-take-aim-at-your-ai-coding-agents.html
[10] arxiv — "Broken by Default: A Formal Verification Study of Security Vulnerabilities in AI-Generated Code" — https://arxiv.org/pdf/2604.05292
[11] Axify — "20 AI Performance Metrics to Follow in Software Development" — https://axify.io/blog/ai-performance-metrics
[12] Future Processing — "DORA metrics in the age of AI-driven delivery" — https://www.future-processing.com/blog/dora-devops-metrics/
[13] IBM — "How to calculate your AI-powered cybersecurity's ROI" — https://www.ibm.com/think/insights/how-to-calculate-your-ai-powered-cybersecurity-roi
[14] Deloitte Insights — "AI and tech investment ROI" — https://www.deloitte.com/us/en/insights/topics/digital-transformation/ai-tech-investment-roi.html
[15] OpenSSF — "New OpenSSF Guidance on AI Code Assistant Instructions" — https://openssf.org/blog/2025/09/16/new-openssf-guidance-on-ai-code-assistant-instructions/
[16] Black Duck — "Mitigating AI Risks in Software Development" — https://www.blackduck.com/blog/mitigating-ai-risks-in-software-development0.html
[17] Veracode — "Secure AI Code Generation: Policies, Risks, and Best Practices" — https://www.veracode.com/blog/secure-ai-code-generation-in-practice/
[18] WWT — "How to Securely Implement AI Coding Assistants Across the Enterprise" — https://www.wwt.com/wwt-research/how-to-securely-implement-ai-coding-assistants-across-the-enterprise