Codex CLI — агент для програмування від OpenAI, що працює у вашому терміналі. Він читає проєкт, пропонує зміни й виконує команди, і OpenAI документує для нього дворівневу модель безпеки, що поєднує пісочницю з політиками схвалення. Ця стаття підсумовує цю модель у застосуванні до macOS, пояснює, що вона каже і чого не каже про мережевий трафік, і показує, як FireAI стежить за програмою.
Що таке Codex CLI і як його встановити
Репозиторій проєкту описує Codex CLI як легкого агента для програмування, що працює у вашому терміналі, створеного OpenAI й поширюваного за ліцензією Apache-2.0. Він наводить три способи встановлення: npm install -g @openai/codex, brew install --cask codex і пряме завантаження через скрипт shell або сторінку GitHub Releases. Він працює на macOS для Apple Silicon та Intel, а також на Linux і Windows.
# the documented install routes
npm install -g @openai/codex
brew install --cask codexЗадокументована модель пісочниці та схвалень
Сторінка OpenAI про схвалення та безпеку агента описує режими пісочниці й політики схвалення, що працюють разом, і зазначає, що жоден із них окремо не забезпечує повного захисту. Режими пісочниці — read-only, workspace-write і danger-full-access. У режимі read-only дії поза обмеженою межею потребують схвалення. У режимі workspace-write Codex може читати, редагувати й виконувати команди в активному робочому просторі, а доступ до мережі та редагування поза ним потребують схвалення. Danger-full-access знімає обмеження й не рекомендується.
Політики схвалення включають on-request, стандартний інтерактивний режим; never, що вимикає запити на схвалення, зберігаючи обмеження пісочниці; і granular, вибірково інтерактивний для окремих категорій дій.
Доступ до мережі в пісочниці
За тією ж сторінкою, мережеве з’єднання за замовчуванням вимкнено. Щоб увімкнути його в режимі workspace-write, задайте network_access = true у розділі [sandbox_workspace_write] файлу конфігурації, а необов’язкова функція network_proxy може обмежити трафік налаштованими списками дозволених доменів. На macOS обмеження застосовуються через політики Seatbelt за допомогою sandbox-exec; на Linux — через bwrap разом із seccomp.
[sandbox_workspace_write]
network_access = trueЦе налаштування стосується команд, що виконуються всередині пісочниці. Це корисне обмеження, і варто сказати, чим воно не є: це не журнал з’єднань, а власне з’єднання агента із сервісом моделі — окреме питання. Ця стаття не перелічує власних доменів Codex, бо переглянуті сторінки не дають задокументованого постачальником переліку.
Чому мережевий огляд усе одно корисний
Якщо ви вмикаєте доступ до мережі, щоб тести могли завантажувати залежності, або використовуєте danger-full-access, пісочниця більше не обмежує, куди підключаються команди. Тоді останньою перевіркою залишається огляд адрес, до яких програма справді зверталася. Він також охоплює випадок, коли ви забули, що змінили налаштування.
Спостереження за Codex за допомогою FireAI
FireAI — фаєрвол для macOS від HisnLabs, і починаючи з версії 1.0.2 він має функцію «Профіль агента». Вона розпізнає 19 агентів ШІ, вивчає, куди кожен зазвичай підключається, і позначає незвичну поведінку для вашого перегляду. Codex — агент командного рядка, тож FireAI розпізнає його за назвою програми.
Codex зіставляється за назвою своєї програми, codex, тобто FireAI позначає збіг міткою й не звіряє його з підписом розробника. Так перевіряються лише Claude Code, Claude і Cursor.
FireAI також розпізнає дочірні процеси агента, наприклад shell, git чи curl, які запускає агент, піднімаючись ланцюжком батьківських процесів, доки не дійде до агента. Тому ці з’єднання зараховуються самому агенту.
Що позначає FireAI
- Перші 3 дні FireAI вивчає адреси, з якими агент зазвичай зв’язується, групуючи їх за доменом. У цей період навчання нічого не позначається.
- Після цього перша за весь час адреса поза вивченою базовою лінією позначається для перегляду.
- Сплеск вивантаження теж позначається: година, за яку агент надіслав щонайменше вчетверо більше, ніж за свою найактивнішу годину досі, і ніколи не менше ніж 25 MB.
«Профіль агента» використовує лише метадані, тобто імена хостів і кількість байтів. FireAI ніколи не читає вмісту з’єднання і не може зазирнути всередину зашифрованого.
Налаштування для Codex
- Установіть FireAI і завершіть налаштування, а потім продовжуйте користуватися Codex як зазвичай. Триденний період навчання починається з того, що бачить FireAI.
- Відкрийте «Пропозиції» й подивіться на картку «Агенти ШІ». У ній перелічено агентів, яких FireAI розпізнав, і те, що він дізнався про кожного.
- Коли Codex звертається до адреси, з якою ніколи не зв’язувався, позначка з’являється в картці «Агенти ШІ» та у «Швидкому перегляді». Проведіть ліворуч, щоб заблокувати, або праворуч, щоб вибрати «It’s fine».
- «Заблокувати» створює правило для процесу, який підключився. «It’s fine» додає адресу до базової лінії агента, щоб її більше не позначали.
- Якщо ви хочете обмежити агента місцями, якими він уже користується, виберіть «Профіль агента» в меню режимів безпеки поряд із «Дім», «Кав’ярня», «Параноя» та «Під атакою». Щойно агент завершить навчання, з’єднання з адресою поза його базовою лінією блокується замість позначення.
- Заблокована адреса відображається в картці «Агенти ШІ» з кнопками «Дозволити» та «Залишити заблокованим». «Дозволити» додає її до базової лінії, і агент одразу може до неї звернутися. «Залишити заблокованим» створює правило блокування, тож адреса залишається заблокованою в усіх режимах.
Обмеження
- FireAI не запобігає prompt injection. Запит, прихований на вебсторінці чи у файлі, усе одно може скерувати агента. FireAI може позначити шлях, яким дані залишали б ваш Mac, і дати змогу його заблокувати.
- FireAI не бачить запитів, вмісту інструментів MCP чи того, які файли читає Codex, як-от ~/.ssh. TLS приховує вміст, а FireAI не працює всередині агента.
- Дочірні процеси, що завершуються дуже швидко, можуть залишитися непоміченими, а дочірні процеси зіставляються за шляхом, а не за підписом.
- Протягом триденного періоду навчання нічого не позначається.
- У режимі «Профіль агента» з’єднання з «голою» IP-адресою без імені хоста зіставляється за адресою. Якщо сервіс, яким агент зазвичай користується, відповідає з нової адреси, її буде заблоковано, доки ви її не дозволите.
- Пояснення позначки простими словами FireAI складає з виміряних ним фактів. Він ніколи не стверджує, що адреса безпечна чи небезпечна. Рішення за вами.
Пов’язані посібники
Той самий підхід застосовується до інших агентів, яких розпізнає FireAI: Claude Code, настільний застосунок Claude, Cursor, застосунок ChatGPT для Mac, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse від Meta, будь-який інший агент ШІ, запущений через Python чи Node. Повний опис функції наведено в документації «Профілю агента».
Яке місце тут посідають FireAI та HisnLabs
Codex за замовчуванням вимикає мережу у власній пісочниці. FireAI стежить за рештою картини.
FireAI — це власний продукт HisnLabs: ШІ-фаєрвол, який працює безпосередньо на вашому Mac. Він показує простою мовою кожне з’єднання, яке встановлюють ваші застосунки, і дає вам вирішувати, що покидає ваш Mac, — його ШІ працює локально, тож ваш трафік ніколи не надсилається ні нам, ні будь-кому іншому. Команда дослідників безпеки HisnLabs — саме вона підтримує точність цих рішень: каталогізує, які домени є звичайною телеметрією, а які — справжнім сервісом, відстежує країну та мережу за з’єднанням і навчає локальну модель (функцію FireAI Pilot) на реальних шаблонах трафіку — і нічого з цього не покидає ваш Mac.
Ви можете почитати про технічні рішення, що лежать в його основі, або спробувати FireAI протягом 17 днів на сторінці FireAI від HisnLabs.
