Песочница и безопасность Codex CLI

Codex CLI имеет встроенные механизмы песочницы и политики безопасности, которые защищают систему и данные, помогая вам писать код. В этом разделе подробно описаны эти механизмы безопасности и способы их настройки.


Механизм песочницы

Codex выполняет команды и работает с файлами в изолированной среде песочницы. Такая архитектура обеспечивает:

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

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


Стратегия выполнения

Codex использует политику выполнения для управления поведением различных типов операций:

Типы политик

ПолитикаПоведениеПрименимые сценарии
askСпрашивать при каждом выполненииПовседневная разработка (по умолчанию)
approveАвтоматически одобрять выполнениеПолностью доверенная среда
denyОтклонять все операции, которые могут иметь побочные эффектыРежим только для чтения

Операции, требующие подтверждения

Следующие типы операций вызывают запросы на подтверждение:

  • Выполнение команд Shell (особенноrm、killи т.д.)
  • Изменение или удаление файлов
  • Создание нового файла
  • Доступ к конфиденциальным каталогам (например,~/.ssh/、/etc/)
  • Сетевые запросы (в определённых случаях)

Настройка политики выполнения

Установка политики выполнения в конфигурации

[exec]
default_policy = "ask"

Из соображений безопасности не рекомендуется устанавливать политику по умолчанию в значениеapprove, если вы не полностью понимаете потенциальные риски.


Диалог подтверждения

Когда Codex требуется выполнить чувствительные операции, отображается диалог подтверждения:

══════════════════════════════════════════════════════
  确认执行
══════════════════════════════════════════════════════

  Codex 计划执行以下操作:

  命令: rm -rf node_modules/
  目录: /path/to/project

  这将永久删除目录及其所有内容

  [Y] 确认执行  [N] 取消  [A] 始终允许此类操作
══════════════════════════════════════════════════════

Описание параметров

ПараметрыОписание
YВыполнить только один раз
NОтменить операцию
AДобавить правила, затем автоматически одобрять

Будьте осторожны при выборе «Всегда разрешать» и убедитесь, что операция действительно безопасна.


Контроль доступа к файлам

Защищённые каталоги

Некоторые системные каталоги защищены по умолчанию, и Codex запросит дополнительное подтверждение при доступе к ним:

КаталогОписание
~/.ssh/SSH-ключи и конфигурация
~/.aws/Учётные данные AWS
/etc/Конфигурация системы
~/.git-credentialsХранилище учётных данных Git

Пользовательские правила защиты

Вы можете добавить пользовательские правила защиты в конфигурации:

Правила доступа к файлу конфигурации

[sandbox]
# Разрешённые каталоги
allowed_paths = [
    "~/projects/*",
    "/workspace/*"
]

# Защищённые каталоги (требуется дополнительное подтверждение)
protected_paths = [
    "~/.ssh/*",
    "~/secrets/*"
]

Контроль доступа к сети

Codex может ограничивать область доступа сетевых запросов:

Настройка сетевого доступа

[network]
# Разрешённые домены
allowed_domains = [
    "github.com",
    "api.openai.com"
]

# Разрешать ли доступ к локальной сети
allow_localhost = false

# Разрешать ли частную сеть
allow_private_network = false
Ограничение доступа к сети предотвращает случайное подключение Codex к недоверенным сервисам.

Ограничения рабочей директории

Вы можете ограничить Codex так, чтобы он работал только в определённых директориях:

Ограничить рабочую директорию

[sandbox]
# Codex может работать только в этих директориях
working_directories = [
    "~/projects/*",
    "/workspace/*"
]

# Поведение вне директории: warn (предупреждение) или deny (отказ)
out_of_bounds = "deny"

Белый/чёрный список команд

Режим белого списка (рекомендуется)

Разрешать выполнение только явно перечисленных команд:

Белый список команд

[commands]
# Режим белого списка
whitelist_enabled = true
allowed_commands = [
    "git",
    "npm",
    "node",
    "python",
    "cargo"
]

Режим чёрного списка

Запрет выполнения определённых команд:

Чёрный список команд

[commands]
# Режим чёрного списка
blacklist_enabled = true
blocked_commands = [
    "rm -rf /",
    "dd",
    "mkfs"
]
Режим белого списка более безопасен, и его рекомендуется использовать в производственных средах или при работе с конфиденциальными проектами.

Обработка конфиденциальных данных

Автоматическая блокировка

Codex автоматически обнаруживает и блокирует конфиденциальную информацию:

  • Ключи API и пароли
  • Токены и информация для аутентификации
  • Персонально идентифицируемая информация (PII)

Защита переменных окружения

Некоторые переменные окружения автоматически скрываются:

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
OPENAI_API_KEY
DATABASE_URL

Укажите конфиденциальные данные вручную

Вы можете вручную отметить в конфигурации содержимое, требующее защиты:

Пользовательские шаблоны конфиденциальных данных

[sensitive]
# Шаблоны регулярных выражений для блокировки
patterns = [
    "password\\s*=\\s*[^\\s]+",
    "api_key\\s*=\\s*[^\\s]+",
    "secret\\s*=\\s*[^\\s]+"
]

Журналы аудита

Codex может записывать журналы аудита всех операций:

Включить ведение журнала аудита

[audit]
enabled = true
log_file = "~/.codex/log/audit.log"

Содержимое журнала

Журналы аудита фиксируют следующую информацию:

  • Отметка времени
  • Тип операции
  • Задействованные файлы или команды
  • Результат операции (успех/ошибка)
  • Статус подтверждения пользователем

Просмотр журнала аудита

# Просмотр последних записей журнала аудита
tail -f ~/.codex/log/audit.log
Журналы аудита очень важны для аудита безопасности и устранения неполадок, особенно в командных средах.

Лучшие практики безопасности

Среда разработки

  • Использовать политику выполнения по умолчанию (ask)
  • Включить ведение журнала аудита
  • Настроить белый список команд

Производственная среда

  • Ограничить рабочую директорию
  • Использовать режим белого списка
  • Отключить ненужный сетевой доступ
  • Включить полное ведение журнала аудита

Чувствительные проекты

  • Использовать самые строгие правила защиты
  • Внимательно проверяйте каждый запрос на подтверждение
  • Регулярно проверяйте журналы аудита

ЧАВО

Вопрос: Где настраивается политика выполнения?

Политика выполнения в основном настраивается через~/.codex/config.tomlНастраивается через файл конфигурации. Некоторые параметры также можно настроить через переменные среды.

Вопрос: Что делать, если я случайно нажал "Всегда разрешать"?

Удалите соответствующие правила в файле конфигурации или удалите весь файл конфигурации и перезапустите Codex — правила будут сброшены.

Вопрос: Может ли Codex получить доступ к моему токену GitHub?

Codex запрашивает необходимые разрешения GitHub для выполнения операций. Вы можете отозвать эти разрешения в любой момент в настройках GitHub.

Вопрос: Как полностью отключить изменение файлов?

Установите политику выполнения вdeny, что запретит Codex выполнять любые операции, которые могут изменить файловую систему.

Другие расширения