Блог о безопасности FireAI

Автор FireAI Security & Research Team · Опубликовано

Безопасность Gemini CLI на Mac: мониторинг сетевых соединений

Безопасность Gemini CLI на Mac: мониторинг сетевых соединений

Gemini CLI — агент командной строки с открытым исходным кодом от Google. Он читает и редактирует файлы, выполняет команды оболочки и загружает веб-страницы, поэтому те, кто ищет «gemini cli security mac» или «безопасен ли Gemini CLI», хотят знать, какие ограничения существуют и куда уходит его трафик. В этой статье кратко изложена собственная документация Google, а затем показано, как за агентом наблюдает FireAI — сетевой файрвол для macOS, разработанный HisnLabs.

Что такое Gemini CLI и как он работает на Mac

Репозиторий описывает Gemini CLI как ИИ-агента с открытым исходным кодом, который переносит Gemini в терминал. Его разрабатывает Google под лицензией Apache License 2.0. Он устанавливается через npm (npm install -g @google/gemini-cli) или Homebrew (brew install gemini-cli) либо запускается без установки через npx @google/gemini-cli. Следовательно, это программа на Node.js; вход выполняется через учётную запись Google (OAuth), ключ Gemini API или Vertex AI.

К чему у него есть доступ

Встроенные инструменты охватывают операции с файловой системой, выполнение команд оболочки, загрузку веб-страниц с привязкой к Google Search и MCP-серверы для собственных интеграций. В README упоминается учёт использования, описанный в документации по телеметрии; именно там следует проверять, какие сведения передаёт инструмент.

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

Google документирует два механизма контроля, важных на Mac.

  • Песочница: на macOS облегчённый вариант использует профили Seatbelt (sandbox-exec). Профиль по умолчанию, permissive-open, ограничивает запись каталогом проекта, но разрешает широкий доступ на чтение файлов и к сети. Более строгие профили, включая варианты с прокси, выбираются переменной окружения SEATBELT_PROFILE; альтернатива — контейнеры Docker или Podman. Песочница включается флагом -s или --sandbox, переменной GEMINI_SANDBOX или через settings.json.
  • Доверенные папки (Trusted Folders): по умолчанию отключены. Если их включить, недоверенная папка переводит CLI в безопасный режим, в котором отключаются настройки рабочего пространства, подключения к MCP-серверам, пользовательские команды и автоматическое одобрение инструментов.

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

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

Наблюдение за Gemini CLI с помощью FireAI

FireAI — файрвол для macOS, работающий на устройстве, разработанный HisnLabs. Функция Agent profile включает Gemini CLI в список 19 распознаваемых ИИ-агентов; поскольку Gemini CLI работает через node, FireAI определяет его по скрипту, который выполняет среда исполнения, — так Agent profile поступает с агентами на node, bun, deno и python. Дочерние процессы агента, например запущенные им оболочка, git или curl, приписываются ему путём подъёма по цепочке родительских процессов. Затем в течение первых 3 дней FireAI изучает, к каким адресам Gemini CLI обычно обращается, группируя их по доменам, и в этот период ничего не отмечает. После этого первое в истории обращение к новому адресу отмечается в Suggestions, в карточке AI agents и в Quick Review. Отмечается и всплеск исходящего трафика: час, за который агент отправил как минимум в 4 раза больше, чем в свой самый загруженный час до этого, и не менее 25 МБ.

FireAI использует только метаданные — имена хостов и объёмы в байтах — и никогда не читает содержимое соединения. По умолчанию он отмечает событие и оставляет решение вам. Режим безопасности Agent profile идёт дальше: после завершения обучения соединение с адресом за пределами базового набора блокируется, пока вы не нажмёте Allow, а Keep blocked превращает эту блокировку в правило, действующее во всех режимах.

Пошаговая настройка

  1. Установите FireAI и завершите первоначальную настройку по руководству Install and finish setup.
  2. Пользуйтесь Gemini CLI как обычно в течение 3 дней. FireAI изучает его адреса в фоновом режиме и пока ничего не отмечает.
  3. Откройте Suggestions и найдите карточку AI agents. Когда появится отметка, прочитайте пояснение простыми словами, затем в Quick Review смахните влево, чтобы заблокировать, или вправо — «It’s fine».
  4. Если вы хотите, чтобы агент оставался в пределах уже используемых им адресов, выберите Agent profile в меню режима безопасности рядом с Home, Coffee shop, Paranoid и Under attack.
  5. Если что-то заблокировано, откройте карточку AI agents и выберите Allow, чтобы добавить адрес в базовый набор, или Keep blocked, чтобы создать правило блокировки.

Ограничения

  • FireAI не предотвращает внедрение промптов (prompt injection). Он ограничивает ущерб, отмечая путь, по которому данные покинули бы ваш Mac, и позволяя его заблокировать.
  • FireAI не видит промпты Gemini CLI, содержимое MCP-инструментов, навыки и то, какие файлы он читает, поскольку TLS скрывает содержимое, а FireAI не находится внутри агента.
  • Gemini CLI сопоставляется по имени скрипта, поэтому FireAI помечает его, а не верифицирует: с подписью разработчика сверяются только Claude Code, Claude и Cursor.
  • Веб-страница, которую загружает агент, — законный для него адрес, но она может оказаться новой для базового набора, поэтому при исследовательских запросах ожидайте отметок.
  • FireAI работает вместе с песочницей и Trusted Folders Gemini CLI, а не заменяет их.
  • В течение трёхдневного периода обучения ничего не отмечается, а всплески исходящего трафика отмечаются, но не блокируются.
  • Новый сервер в домене, который агент уже использует, считается известным, поскольку адреса группируются по доменам.

Внедрение промптов, при котором текст на загруженной странице управляет агентом, описано в каталоге OWASP. FireAI его не предотвращает. Функция описана в документации Agent profile.

Для других агентов, которых распознаёт FireAI, есть отдельные руководства: Claude Code, настольное приложение Claude, Cursor, приложение ChatGPT для Mac, OpenAI Codex CLI, OpenClaw, Hermes Agent, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse от Meta, любой ИИ-агент, запускаемый через Python или Node.

Какое место здесь занимают FireAI и HisnLabs

Gemini CLI может выполнять команды и загружать веб-страницы из терминала. FireAI показывает, куда он подключается дальше, и может это заблокировать.

FireAI — это собственный продукт HisnLabs: ИИ-файрвол, работающий прямо на вашем Mac. Он показывает простым языком каждое соединение, которое устанавливают ваши приложения, и позволяет вам решать, что покидает ваш Mac, — его ИИ работает локально, поэтому ваш трафик никогда не отправляется ни нам, ни кому-либо ещё. Команда исследователей безопасности HisnLabs — это те, кто поддерживает точность этих решений: они каталогизируют, какие домены являются обычной телеметрией, а какие — реальным сервисом, отслеживают страну и сеть, стоящие за соединением, и обучают локальную модель (функцию FireAI Pilot) на реальных шаблонах трафика — и ничего из этого не покидает ваш Mac.

Вы можете прочитать о технических решениях, лежащих в его основе, или попробовать FireAI в течение 17 дней на странице FireAI от HisnLabs.

Источники