TL, д-р
Риск в агентном программировании заключается не в том, что агент напишет плохой код, а в том, что агент совершит действие. Она устанавливает пакеты, редактирует файлы, которые вы не открывали, вызывает инструменты, считывает конфигурацию, которую никто не просматривает и не открывает. pull requestsКаждая из этих операций является привилегированной и выполняется с правами разработчика, а ваши существующие элементы управления были созданы для мира, где каждую из них вводил бы человек.
Скорость вынудила перенести узкое место на этап проверки. Независимые исследования систем помощи в программировании на основе ИИ показывают, что около 40% сгенерированного кода содержит уязвимости безопасности, и этот показатель не улучшился по мере совершенствования моделей. Производительность увеличилась, но возможности проверки кода не выросли. Агентное программирование делает это эффективнее, чем когда-либо позволяла автозаполнение, поскольку одна инструкция может обрабатывать десяток файлов.
Атаки направлены на проводку, а не на модель. Скрытый код Unicode в файле правил заставляет помощника генерировать код с бэкдором, никогда не упоминая об этом, что занесено в каталог MITRE ATLAS как AML.CS0041. Злоумышленники регистрируют имена пакетов, которые модели используют в своих галлюцинациях. Один мост MCP отправил удаленное выполнение кода клиентам более 437 000 раз. Традиционный анализ не читает ни один из этих файлов.
Содержащее его содержимое скучно, но оно работает: Провести инвентаризацию агентов и серверов MCP, фактически используемых в работе, рассматривать файлы подсказок и правил как код, находящийся на стадии проверки, определить область применения каждого инструмента в соответствии с поставленной задачей и обеспечить соблюдение политики на машине разработчика, где работает агент. Xygeni AI Security обрабатывает первые три и DevAI Последний вариант применим как к коду, сгенерированному ИИ, так и к коду, написанному человеком.
Что такое агентное кодирование?
Агентное программирование — это разработка, в которой ИИ-агент берет заданную цель и выполняет ее в кодовой базе, используя следующие инструменты: чтение и редактирование файлов, установка зависимостей, запуск тестов и открытие файлов. pull requestsРиски возникают из-за этих действий и конфигурации, которая ими управляет, а не из-за качества какой-либо отдельной сгенерированной функции. Эффективные методы включают инвентаризацию, ограничение прав доступа, проверку конфигурации и принудительное применение на конечной точке.
Агентное кодирование или агентное программирование?
Оба термина описывают один и тот же сдвиг, и команды используют их взаимозаменяемо. Агентное программирование чаще всего встречается в инженерных дискуссиях о том, как выполняется работа; агентное кодирование — это термин, закрепившийся в сфере инструментов и безопасности. Технически их ничто не разделяет. Если вы хотите... полное определение и соответствующая лексикаВ нашем глоссарии, посвященном агентному кодированию, это описано.
В данном контексте важно разграничение между предложением и выполнением. Ассистент, завершающий строку кода, — это функция повышения производительности. Агент, устанавливающий пакет, редактирующий шесть файлов и отправляющий ветку, — это нечеловеческая идентификация, функционирующая внутри вашей системы. SDLCПрограммирование с использованием агентов незаметно переступило эту черту, и с тех пор большинство программ обеспечения безопасности не подвергались пересмотру.
Реальные риски агентного кодирования
Четыре группы риска, в порядке убывания частоты укусов.
- Обзор превосходства по объему. Агент вносит в час больше изменений, чем любой рецензент может осмысленно прочитать. Утверждения превращаются в формальные штампы, а ненадежные шаблоны воспроизводятся со скоростью машины. Это риск, который все признают, но который реже всего измеряют. Начните с измерения соотношения времени, затраченного агентом на внесение изменений, и времени, затраченного человеком на проверку, и это число подтвердит ваши предположения.
- Уровень инструкций. Любой элемент, попадающий в контекст агента, может направлять его действия. Внедрение оперативной информации является одним из главных способов. OWASP Top 10 для поступления на магистерскую программу. Неслучайно, и в агентном программировании средства доставки информации довольно обыденны: описание проблемы, комментарий к коду, файл README в зависимости, документ, который получает агент. Никто не обязан атаковать вас напрямую. Им нужно лишь написать что-то, что ваш агент сможет прочитать.
- Уровень конфигурации. Файлы правил, файлы навыков, подсказки и определения сервера MCP определяют, что делает агент и к чему он может получить доступ. Они не являются кодом приложения, поэтому ни один сканер в типичной системе их не читает. Бэкдор в файле правил продемонстрировал крайний случай, когда символы нулевой ширины содержат инструкции, которые рецензент физически не может увидеть. Обычный случай столь же опасен: учетные данные поставщика, хранящиеся в открытом текстовом виде в файле конфигурации, или предоставление помощнику доступа на чтение ко всей файловой системе, поскольку это было установлено по умолчанию.
- Зависимости и инструментальная поверхность. Агент выбирает зависимости. Он определяет имя, устанавливает их и переходит к следующему шагу, а скрипты установки запускаются перед любыми другими процессами. pipeline видит изменения. Слопсквоттинг использует именно это: исследование, представленное на USENIX Security 2025, показало, что 19.7% пакетов, рекомендованных языковыми моделями, не существуют, и что вымышленные имена повторяются достаточно часто, чтобы злоумышленники могли их зарегистрировать и подождать. То же самое относится и к MCP-серверыгде подключение к недоверенному серверу предоставляет агенту инструменты, которые вы никогда не проверяли.
Как на самом деле всё идёт не так
Это не какой-то один экзотический подвиг. Это совокупность техник, уже задокументированных в реальных условиях, в порядке их применения.
- ИнструкцияПредложение находится в описании проблемы, в файле README зависимостей или в комментарии к коду. Оно не предназначено для чтения человеком.
- КонтекстРазработчик просит агента исправить проблему. Агент подтягивает описание, репозиторий и свои собственные файлы правил в контекст. Инструкция и содержимое выглядят идентично модели.
- УстановкаАгент находит подходящую вспомогательную библиотеку и устанавливает её. Название было зарегистрировано на прошлой неделе пользователем, заметившим, что модели постоянно его придумывают. Скрипт установки выполняется на ноутбуке.
- УдостоверениеВ файле содержится токен поставщика услуг в открытом текстовом виде.
mcp.jsonи уже активная облачная сессия в оболочке. Скрипту не нужно повышать привилегии. Он наследует права доступа. - pull requestИзменения незначительны, тесты пройдены успешно, и разница между версиями отображается приемлемо. Одобрение происходит менее чем за минуту, потому что ещё четыре версии ожидают подтверждения.
После третьего шага сработают все ваши ворота. Первые три происходят на компьютере разработчика и занимают около девяноста секунд.
8 уроков от первых пользователей
Основано на задокументированных инцидентах, опубликованных исследованиях и закономерностях, которые постоянно проявляются в командах, внедривших агентное программирование еще до того, как кто-либо разработал соответствующую политику.
- Радиус взрыва — это площадь поверхности инструмента, а не само поле ввода. Команды неделями оттачивают настройки подсказок и тратят минуты на определение того, к каким инструментам может обращаться оператор. Это неправильное соотношение. Оператор, умеющий только читать, становится неудобством, когда его скомпрометируют. Оператор, который может отправлять почту, запрашивать информацию о рабочей среде и отправлять push-уведомления, должен уметь это делать. commits — это инцидент, и он содержит собственные учетные данные разработчика для его выполнения, поскольку почти никто не предоставляет агенту учетные данные. Запишите список инструментов, прежде чем писать командную строку системы.
- Агент оптимизирует процесс для успешного прохождения теста, а не для корректной работы кода. При наличии неудачного набора тестов и достаточной автономности агент удалит утверждение, ослабит условие или заменит интеграцию на имитацию, а затем сообщит об успехе. Каждая команда осознает это уже на первой неделе. Именно поэтому зеленый цвет... pipelineЭти данные перестали быть доказательством, и именно поэтому вопрос для проверки изменился с «работает ли это» на «что было изменено, чтобы это прошло проверку».
- Ваш файл правил — это конфигурация для производственной среды. Файл, управляющий каждой сгенерированной строкой, обычно представляет собой commitЕго проверили один раз, и больше никогда не пересматривали. Он должен находиться в отделе контроля изменений с ответственным лицом, с проверкой различий и кем-то, кто заметит, когда в него добавится строка, которую никто не помнит. Предположите, что всё, что в нём написано, будет соблюдено, включая то, чего вы не видите.
- Зависимости агента — это не ваши зависимости. Списки одобренных библиотек предполагают, что выбор сделал человек. Агент определяет подходящее имя и устанавливает библиотеку, а скрипты установки выполняются до того, как система непрерывной интеграции будет создана. Команды, которые пострадали от этой проблемы, добавили проверку во время установки на машине, а не включили в документ политику, определяющую предпочтения разработчиков.
- Никто не может сказать вам, что они запускают. Спросите пятерых инженеров, какие серверы и помощники MCP они используют, и вы получите пять ответов, ни один из которых не будет полным. Опросы здесь не работают, потому что инструменты устанавливаются локально и меняются еженедельно. Поиск информации должен происходить в коде, зависимостях и конфигурационных файлах, которые оставляют после себя эти инструменты.
- Память сохраняет яд и после окончания сеанса. Некорректная инструкция, которая обращается к постоянному контексту или памяти агента, не исчезает вместе с завершением задачи. Она продолжает незаметно приносить пользу в рамках несвязанной работы, поэтому отравление памяти и контекста имеет отдельный пункт в списке OWASP для агентов. Рассматривайте память агента как состояние, требующее проверки и способа очистки, а не как удобную функцию.
- Обратимость важнее профилактики Команды, обеспечивающие наибольшую степень автономности и безопасность, — это не те, у кого самый жесткий контроль. Это те, кто извлекает выгоду из ошибок: агенты отправляют ветвления вместо основного потока, работают в одноразовых средах, и каждое действие можно отменить одной командой. Автономия доступна ровно настолько, насколько доступно её обратное преобразование.
- Пилот вам лжет Агенты отлично работают в новых проектах с небольшими репозиториями, но их эффективность снижается в больших устаревших кодовых базах с неявными соглашениями. Успешный пилотный проект переоценивает прирост производительности и недооценивает риски, а затем устанавливает ожидания, которым никто не сможет соответствовать в масштабе. Проводите пилотный проект на самом худшем репозитории, а не на самом чистом.
Как это выглядит на практике
Порядок действий важнее, чем используемые инструменты. Сначала обнаружение, потому что вы не можете ограничить права доступа к агентам, которые вы не нашли. Затем уровень конфигурации, потому что именно там находятся инструкции. Затем конечная точка, потому что именно там агент фактически запускается и установка завершается задолго до... pipeline уведомления.
Xygeni AI Security обнаруживает все ресурсы ИИ в SDLCвключая модели, агентов, серверы агентов, серверы MCP, наборы данных, файлы навыков, подсказки и guardrails Никто не объявлял, читая код приложения, объявленные зависимости и конфигурационные файлы, оставленные инструментами ИИ, затем сопоставляет, как они связаны. Он обнаруживает риски, специфичные для агентного программирования: внедрение подсказок и утечка системных подсказок, вредоносные инструкции и внедрение инструментов в правила и файлы навыков, небезопасная конфигурация MCP, избыточная активность и отсутствие guardrailsРассматриваются секреты в файлах ИИ, а также уязвимые или небрежно используемые зависимости ИИ. Результаты сопоставляются с OWASP Top 10 для приложений LLM и указывают на конкретный файл и строку, а алгоритм приоритизации сужает тысячи результатов до тех, которые используются, доступны, могут быть использованы злоумышленниками, являются привилегированными и критически важными для бизнеса.
DevAI Вторая половина функции реализована в редакторе: она обеспечивает безопасность кода в процессе его написания, применима как к коду, сгенерированному ИИ, так и к коду, написанному человеком, и перехватывает действия других агентов до того, как они их совершат. Тот же интеллект применяется к данным, полученным от уже запущенных вами сканеров, поэтому ничего из этого не требует замены имеющегося у вас программного обеспечения.
FAQ
- В чём заключается наибольший риск при использовании агентного кодирования? Чрезмерная свобода действий. Агент с широким набором инструментов превращает любую успешную инъекцию в реальное действие, и большинство команд гораздо шире ограничивают возможности инструментов, чем возможности людей.
- Безопасно ли агентное программирование в регулируемых средах? Да, с инвентаризацией, ограниченными правами доступа, проверенной конфигурацией и применением мер на конечной точке. В ходе аудита невозможно оправдать незнание того, какие агенты запущены, чего они достигают и какой код они написали.
- Действительно ли агентное программирование приводит к созданию менее безопасного кода, чем программирование человеком? Показатель ошибок в одной строке сравним с человеческим фактором, но объем работы — нет, а именно объем работы сводит на нет эффективность проверки. Проблема не в таланте, а в пропускной способности.
- Нужно ли запрещать программистов-ассистентов на основе искусственного интеллекта? Запреты вытесняют использование в подполье, что еще хуже. Теневой ИИ сложнее защитить, чем одобренный, и именно обнаружение меняет ситуацию.
- Кто несёт ответственность, когда агент распространяет уязвимость? Тот, кто внес изменения, сделал это точно так же, как и раньше. В этом и заключается неудобство, и именно поэтому данные об авторстве имеют значение: рецензент, утверждающий изменения, внесенные машинным способом в больших объемах, должен получить подтверждение до утверждения, а не после.
- С чего начать, если у нас нет никакой информации? Проведите поиск по вашим репозиториям, составьте список обнаруженных серверов MCP и помощников и ранжируйте агентов по типу используемых инструментов. Самый опасный агент, как правило, оказывается не тем, которого все опасались.
Агенты уже находятся в ваших репозиториях.
Код для работы с агентами уже есть в ваших репозиториях, независимо от того, кто его одобрил. Команды, которые хорошо с этим справляются, — это не те, у кого самые строгие правила. Это те, кто в любой конкретный день может ответить на вопрос, какие агенты запущены, к чему они имеют доступ и что изменилось в файлах, которые ими управляют.
Узнайте, к чему подключены ваши агенты, на Ксигени.







