Диагностика доступа к файлам

Риски доступа ИИ-агента к файлам: определите границы, прежде чем открыть доступ к папке

Выясните, какие файлы ИИ-агент может читать, изменять или раскрывать, с помощью инвентаризации доступа, дерева решений для чувствительных путей и парных проверок.

Опубликовано 8 нояб. 2026 г. Обновлено 8 нояб. 2026 г. Версия методологии 2026-11-08 Снимок данных 8 нояб. 2026 г.

Папка проекта — отправная точка, а не доказательство изоляции

Доступ ИИ-агента к файлам определяется инструментами, учётной записью операционной системы и средствами изоляции, которые фактически участвуют в открытии файлов, а не просто папкой, в которой вы начали разговор. Оценивайте три отдельных риска: чтение конфиденциального содержимого, изменение важных файлов и передачу содержимого файлов модели, в журнал или удалённому сервису. Режим «только чтение» может снизить риск изменений, сохраняя возможность раскрытия данных.

Например, агенту, исправляющему парсер, могут понадобиться исходные файлы и синтетические тестовые данные, но не выгрузки клиентов, соседний репозиторий или ваши личные учётные данные. Создайте чистый каталог задачи с необходимыми материалами, ограничьте все пути доступа и проверьте как разрешённое, так и запрещённое чтение, прежде чем предоставлять реальные чувствительные данные. Инструкция «оставайся в этой папке» выражает намерение, но не устанавливает границу доступа.

Этот материал предлагает инвентаризацию области доступа к файлам и дерево решений для путей к чувствительным данным, а не отчёт о проведённом тестировании изоляции. Приведённые ниже сведения о платформах отражают публичную документацию, зафиксированную 8 ноября 2026 года. Проверьте установленную версию и фактически действующие настройки. Чтобы разобраться в различиях между полномочиями при установке и во время выполнения, начните с руководства по разрешениям платформы.

Учитывайте файлы по операциям и компонентам, которые их открывают

Зафиксируйте необходимые для задачи пути, прежде чем менять разрешения. В заметках по проверке используйте категории и синтетические примеры, а не копируйте секреты в заявку. Учитывайте скрытые файлы, созданные выходные данные, подключённые каталоги и ссылки, ведущие за пределы исходного расположения. Не считайте игнорируемый или неотслеживаемый файл недоступным: отбор файлов для системы контроля версий и доступ к файловой системе — разные механизмы контроля.

Категория файлов Необходимая операция Решение по умолчанию при исправлении парсера Что проверить
Исходный код и синтетические тестовые данные Чтение; редактирование только файлов задачи Включить ограниченный набор файлов проекта Необходимые операции чтения и редактирования выполняются успешно
Результаты сборки и временные файлы Создание и замена Использовать временный каталог выходных данных Запись нельзя перенаправить в защищённые файлы
Выгрузки клиентов или копии производственных данных Обычно никакие Исключить; заменить синтетическими данными Ни содержимое, ни имена файлов не попадают в вывод инструментов
Учётные данные и профили с активной аутентификацией Для этой задачи никакие Хранить вне доступной среды Каждый применимый путь открытия файлов блокируется
Настройки агента, хуки и файлы запуска Как правило, никакие Защитить от изменений Задача не может изменить разрешения, которые будут действовать для неё в дальнейшем
Соседние проекты, общие точки монтирования и цели ссылок Только при явной необходимости Исключить или открыть доступ к проверенному подмножеству Фактические цели после разрешения путей соответствуют намеченной области доступа

Затем добавьте по одной строке для каждого компонента: встроенного файлового инструмента, оболочки и её дочерних процессов, средства поиска или индексатора, локального сервера MCP, хука и удалённого коннектора. Укажите, где он работает, от имени какой учётной записи выполняется, какие корневые каталоги доступны для чтения и записи и куда поступает возвращаемое содержимое. Отказ редактора в доступе не доказывает, что отдельный сервер не сможет открыть тот же файл.

В документации Anthropic по песочнице это различие обозначено явно: песочница оболочки охватывает команды оболочки и их дочерние процессы, тогда как встроенные файловые инструменты, серверы MCP и хуки работают вне этой песочницы. В ней также описан широкий доступ оболочки к чтению по умолчанию, включая расположения учётных данных, если доступ не ограничен дополнительно. Не трактуйте «песочница включена» как «можно читать только файлы проекта». Контейнеру или виртуальной машине, внутри которых работает агент, нужны собственные тщательно ограниченные точки монтирования и учётные записи.

Следуйте дереву решений для путей к чувствительным данным

Применяйте эти вопросы к каждому пути или категории файлов, а не только к папке верхнего уровня проекта:

  1. Нужна ли эта информация для задачи? Если нет, оставьте её за пределами доступной среды. Если ответ неизвестен, приостановите этот доступ и запросите минимально необходимую область доступа; не просматривайте содержимое заранее, чтобы решить, важно ли оно.
  2. Можно ли ответить на вопрос с помощью синтетической или сокращённой копии? Отдайте предпочтение такой копии. Удалите учётные данные, персональные записи и файлы, не относящиеся к задаче, до того, как агент их увидит. Удалять чувствительные сведения после того, как инструмент вернул содержимое, слишком поздно для предотвращения первоначального раскрытия.
  3. Достаточно ли чтения? По возможности предоставляйте доступ только для чтения, но отдельно решайте, допустимо ли отправлять содержимое поставщику модели, сохранять его в истории взаимодействий или возвращать через другой инструмент. «Не может изменить» не означает «не может раскрыть».
  4. Указывает ли имя пути на фактическую цель? Проверьте символические ссылки, переходы через родительские каталоги, bind-монтирования и общие каталоги. Простого текстового сравнения префиксов недостаточно для авторизации в сервисе, открывающем файлы. Контроль границы доступа должен охватывать разрешение пути и фактическую операцию открытия, включая изменения между проверкой и использованием.
  5. Можно ли ограничить каждый задействованный компонент? Если нет, используйте среду с более узкой областью доступа или не предоставляйте данные. Не пытайтесь компенсировать неограниченный коннектор более строгим правилом для оболочки.

В Claude Code правила разрешений включают шаблоны файлов для конкретных инструментов, например Read(./.env). Эти правила и ограничения файловой системы для оболочки регулируют разные пути доступа. Настраивайте и проверяйте применимые средства контроля, не предполагая, что одно правило автоматически охватывает все инструменты или внешние процессы.

В документации Docker по bind-монтированиям указано, что такие монтирования по умолчанию разрешают запись на хост; readonly или ro запрещают запись в эту точку монтирования. Монтирование в режиме «только чтение» по-прежнему открывает доступ к смонтированному содержимому для чтения. Монтируйте ограниченный набор исходных файлов, а не домашний каталог с посторонними секретами. Проверяйте вложенные монтирования и фактическую конфигурацию контейнера, а не полагайтесь на обозначение в команде запуска.

Проверяйте доступ по каждому пути с помощью безвредных контрольных маркеров

Используйте временную среду, на работу с которой у вас есть разрешение, и только синтетические файлы. Контрольный маркер здесь — безвредная метка, а не реальные учётные данные. Подготовьте один маркер внутри разрешённого каталога тестовых данных, а другой — в отдельном тестовом каталоге, доступ к которому политика должна запрещать. Никогда не используйте настоящие приватные файлы для проверки того, допускает ли граница доступа утечку.

Для каждого компонента, открывающего файлы, предусмотрите следующие парные проверки: успешно прочитать разрешённый маркер; попытаться прочитать запрещённый маркер и подтвердить, что содержимое не возвращено; успешно отредактировать разрешённый выходной файл; попытаться изменить защищённый тестовый файл и независимо подтвердить, что его байты остались неизменными. Заявления агента «доступ был заблокирован» недостаточно. Проверьте результаты инструментов и синтетические файлы посредством отдельного доверенного механизма повторного чтения.

Если поддерживаются ссылки или монтирования, включите синтетическую ссылку, ведущую за пределы разрешённого корневого каталога, и монтирование, открывающее непредусмотренный каталог. Ожидаемый результат — отказ в доступе или устранение этого доступа до продолжения работы. Это предлагаемые проверки, а не демонстрации эксплуатации уязвимостей и не утверждения о том, что какой-либо названный продукт их не проходит; эти проверки не выполнялись. Повторяйте затронутые проверки после изменения монтирований, инструментов, учётных записей или разрешений. Рабочая таблица минимальных привилегий поможет сохранить необходимую функциональность при сокращении области доступа.

Ограничьте последствия неожиданного доступа, затем продолжите работу с меньшей областью доступа

Если возвращён запрещённый маркер или изменился защищённый тестовый файл, отключите затронутый путь доступа. Сохраните нечувствительные свидетельства об инструменте, операции, фактической цели после разрешения пути и действующих настройках. Удалите ненужное монтирование или предоставленное право доступа либо перенесите задачу в среду, способную обеспечить намеченную границу доступа. Перед возобновлением работы повторите неудавшуюся проверку и соответствующую проверку разрешённого действия. Не расширяйте доступ только ради успешного прохождения теста.

Если реальные конфиденциальные материалы уже могли быть прочитаны, считайте вопрос раскрытия невыясненным, пока не проверите соответствующую историю взаимодействий, журналы инструментов и записи принимающих систем по разрешённым каналам. Прекратите дальнейшую передачу; привлеките владельца данных или учётных данных для надлежащего ограничения последствий и замены учётных данных. Удаление локального выходного файла не отзывает запрос к модели и не удаляет запись в удалённом журнале. Памятка OWASP по безопасности ИИ-агентов рекомендует инструменты с минимальными привилегиями, защиту чувствительных данных и наблюдаемость действий агента; ни одна из этих мер не даёт абсолютной гарантии безопасности.

Зафиксируйте итоговое решение конкретно: какие категории файлов доступны, какие операции разрешены, какие компоненты обеспечивают соблюдение ограничений и какие проверки действительно пройдены. Ограничение доступа к файлам и сетевые ограничения дополняют друг друга. Ни то ни другое не заменяет решения о том, какие данные действительно нужны для задачи.