
Разбор · Опубликовали 08.10.2026
Обфускация кода не гарантирует его конфиденциальность при передаче ИИ-агенту
Что остаётся в коде после переименования и что CTO нужно проверить до разрешения внешней модели.
Текст подготовлен машиной агентов под надзором автора vibecoding.ru · факты проверены 8 октября 2026
Скрытые имена сами по себе не обеспечивают конфиденциальность кода. Обфускация затрудняет чтение, но внешняя модель всё ещё получает то, что ей отправили.
Если CTO предлагают «переименуем переменные и разрешим агента», нужна проверка содержания передачи, доступов и условий сервиса. Клиентского кейса такой защиты у нас нет.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
1. Переименование скрывает названия, но оставляет операции.
Обфускация меняет программу так, чтобы её было труднее понять. Замена осмысленных имён короткими обозначениями убирает подсказки, но сохраняет вычисления. OWASP показывает это на переименовании функций.
Для бизнеса секретом может быть само правило расчёта. Если оно осталось в отправленном фрагменте, получателю не обязательно знать имя переменной, чтобы увидеть зависимость.
Не любая модель восстановит любой проект. Сложные преобразования затрудняют анализ; разрешение на передачу нельзя строить на предположении, что модель ничего не поймёт.
После переименования арифметика остаётся видимой.
Учебный пример редакции, 08.10.2026. Это не код клиента и не замер восстановления моделью. Смысл переименования сверён с OWASP MASTG.
Обфускация полезна как препятствие при анализе распространяемой программы. OWASP описывает усложнение работы исследователя. Вывод «теперь исходники можно передавать кому угодно» из этого не следует.
2. Агент читает больше, чем обфусцированный файл.
Передача зависит от среды агента. Например, агент Claude Code использует файлы и результаты команд. Скрыть имена недостаточно, если исходная версия лежит рядом и доступна процессу.
Задача требует контекста: тест объясняет ожидаемый результат, документ описывает правило, ошибка показывает значение. Эти подсказки способны раскрыть то, что убрали из имени функции.
Проверять нужно весь разрешённый пакет. В нём могут оказаться данные клиентов, скопированные в тест или отчёт об ошибке. Обфускация программы их не удаляет.
Имена скрыты, а контекст способен раскрыть смысл.
Вопросы редакции по документации Claude Code Security и Sandboxing, проверка 08.10.2026. Это не список сведений, которые любой агент отправляет автоматически.
3. Запрет обучения не означает отсутствие хранения.
Условия сервиса определяют обработку полученного. По документации Anthropic на 8 октября 2026, код и промпты Claude Code для коммерческих аккаунтов Team, Enterprise и API не идут в обучение по умолчанию. Этот вывод нельзя автоматически применять к личной подписке сотрудника.
Стандартный коммерческий срок хранения указан как 30 дней. Режим без хранения подключают отдельно для подходящей организации. Название корпоративного тарифа само по себе его не включает.
Обфускация эти условия не меняет. Важны конкретный аккаунт, включённые функции и договор; добровольную передачу для улучшения моделей Anthropic оговаривает отдельно.
Обучение, хранение и место результата проверяются отдельно.
Anthropic Data usage и Zero data retention, 08.10.2026. Срок 30 дней не означает удаления всех локальных копий и отдельно переданных отчётов.
Что и как мы проверяли
| Факт | Что известно | Проверено |
|---|---|---|
| Обфускация | Официальные руководства OWASP и PyArmor. Они описывают преобразования программы; стойкость конкретного клиентского кода мы не испытывали. | 2026-10-08 |
| Условия сервиса | Страницы Anthropic Data usage и Zero data retention. Разделили обучение, стандартное коммерческое хранение и отдельный режим без хранения. Это не проверка договора вашей компании. | 2026-10-08 |
| Наш опыт | Перечитали записи журналов машины от 13 и 18 июля 2026. Сверили публичные /open и /services. Ревью ответчика нашло возможность утечки, состоявшейся атаки в записи нет. | 2026-10-08 |
| Учебный пример | Формула составлена редакцией, не взята из кода клиента. Нет своего парного теста обычного и обфусцированного кода, процента восстановления или клиентского кейса такой защиты. | 2026-10-08 |
4. Доступ к секрету ограничивают права процесса.
Инженер ведёт нашу машину агентов, которая строит vibecoding.ru. В её опыте есть поломки границ доступа, которые не зависели от читаемости кода.
Процесс с доступом к секрету способен прочитать его и передать в вывод команды. Переименование функций не меняет эти права и не очищает результат работы инструмента.
Эти уроки закрепились в правилах для агентов. Инструкция «не читайте секреты» не заменяет ограничения доступа. В обеих историях ниже правило появилось после найденной поломки, а не вместо настройки среды.
Наши поломки закрывали доступами и проверкой вывода.
13.07
Команда настройки напечатала секреты в вывод, и они попали в транскрипт. Вывод с секретами перестали передавать в диалог, раскрытый токен ротировали. Чистый Git не закрыл этот путь.
18.07
Ревью ответчика нашло доступ процесса к секретам при обработке недоверенного письма. Для процесса убрали секреты из окружения и рабочей папки, перед отправкой проверяли ответ. Это найденная возможность утечки, не подтверждённая атака.
Записи журналов машины 13 и 18 июля 2026, перечитаны 08.10.2026. Безопасный пересказ своего опыта, не испытание обфускации и не клиентский кейс.
5. Защита пакета Python и доступ агента решают разные задачи.
Под словом «обфускация» предлагают разные преобразования. PyArmor умеет переименовывать имена и переводить функции Python в C. Оценивать метод только по виду коротких переменных неверно.
Для правки бизнес-правила агенту нужны сведения о правиле. Защищённый пакет для запуска решает другую задачу. Спрятать смысл и потребовать содержательную правку означает поставить противоречивую задачу.
Можно отделить разрешённую работу от закрытой реализации. Агент готовит интерфейс, а закрытый модуль подключает ваша команда. Переданное описание входа и выхода тоже проверяют на конфиденциальность.
Задачу можно выделить, не отдавая закрытый модуль.
Редакционная схема, 08.10.2026; свойства PyArmor сверены с Advanced Tutorial и RFT Mode. Применимость определяет владелец кода, готовое решение не обещается.
6. Перед запуском CTO согласует содержание, доступы и условия.
Сначала нужен список разрешённого к передаче. Подрядчик описывает инструмент, аккаунт и содержание запросов; CTO согласует границу. Обфускация не превращает запрещённую передачу исходников в разрешённую.
Отдельно рассматривают ИИ в закрытом контуре или задачу без закрытого модуля. Среду проверяют на своих задачах, условие о конфиденциальности согласуют до запуска.
Проверку начинают на вымышленном примере, сверяя переданный контекст с разрешённым списком. Один запуск подтверждает только этот сценарий. Новые инструменты требуют новой проверки.
До запуска нужно проверить содержание, доступы и условия.
Порядок проверки редакции, 08.10.2026. Основания: OWASP, документы Anthropic и разобранные истории нашей машины. Разрешение даёт владелец кода.
Если решение о запуске ещё не принято, вход из статьи ведёт на страницу для руководителя. Адрес теста теперь перенаправляет на услуги.
В подписке на разработку «Один проект» стоит 250 000 ₽ в месяц на 8 октября 2026. Допустимость передачи исходников нужно оценить до начала; неподходящий контур обозначить заранее.
7. Частые вопросы
Можно ли отправить код онлайн-обфускатору, а затем агенту?+
Онлайн-обфускатор сам становится получателем исходников. Допустимость передачи ему проверяется до загрузки, иначе появляется ещё один несогласованный сервис.
Восстановит ли ИИ оригинальные имена?+
Не обязательно. Несколько разных исходников могут выполнять одинаковую работу. Для раскрытия правила расчёта не требуется восстановить исходный текст буква в букву.
Нужно ли обфусцировать Python перед передачей модели?+
Это не универсальный этап подготовки. Сначала согласуют, какой код можно передавать и для какой задачи. Защищённый пакет для запуска не заменяет исходники, если нужно менять их логику.
Если у агента только чтение, код остаётся внутри?+
Право чтения ограничивает изменение файлов, но разрешает получить их содержание. Внешняя модель может обрабатывать прочитанный текст, если так работает выбранный инструмент.
Нужен ли режим без хранения?+
Это зависит от требований компании. Он регулирует хранение поставщиком, но не даёт разрешения на передачу запрещённых исходников и не заменяет ограничения инструментов.
Источники
- OWASP MASTG: Obfuscation, проверено 08.10.2026 — методическое руководство
- OWASP: Bytecode Obfuscation, проверено 08.10.2026 — методическое руководство
- Anthropic: Data usage, проверено 08.10.2026 — документация вендора
- Anthropic: Zero data retention, проверено 08.10.2026 — документация вендора
- Anthropic: Security, проверено 08.10.2026 — документация вендора
- Anthropic: Sandboxing, проверено 08.10.2026 — документация вендора
- PyArmor: Advanced Tutorial, проверено 08.10.2026 — документация вендора
- PyArmor: RFT Mode, проверено 08.10.2026 — документация вендора
- Машина vibecoding.ru, /open; записи журналов 13 и 18 июля перечитаны 08.10.2026 — свой опыт; частные журналы не опубликованы
- Условия подписки /services, проверено 08.10.2026 — свой продукт
Запомнить
1. Скрытые имена не дают разрешения передавать исходники. Сначала согласуйте, какие сведения могут получить внешние сервисы.
2. Секретом бывает сама логика. Проверяйте содержание программы, тестов и описаний, а не только имена переменных.
3. Обучение и хранение регулируются отдельно. Уточните условия своего аккаунта и используемых функций.
4. Доступ ограничивают настройкой среды. Проверьте чтение файлов, команды и подключения на вымышленном примере.
5. Если передача запрещена, выделите другую задачу или разрешённую среду. Обфускация запрет не отменяет.