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

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

Безопасность GitHub Copilot CLI на Mac: наблюдение за соединениями

Безопасность GitHub Copilot CLI на Mac: наблюдение за соединениями

GitHub Copilot CLI переносит агента для программирования в терминал. Он может редактировать файлы, выполнять команды и работать с репозиториями, задачами (issues) и pull request. Те, кто ищет «github copilot cli security» или «безопасен ли Copilot CLI», в основном хотят знать, что он может запускать и что отправляет наружу. В этой статье кратко изложена собственная документация GitHub и показано, как за его соединениями наблюдает FireAI — сетевой файрвол для macOS, разработанный HisnLabs.

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

В репозитории сказано, что инструмент создан GitHub и работает на той же агентной основе, что и агент Copilot coding agent. Он поддерживает macOS, Linux и Windows и устанавливается через npm (npm install -g @github/copilot), Homebrew (brew install copilot-cli) или установочный скрипт. Вход выполняется командой /login или с помощью персонального токена доступа с разрешением Copilot Requests, переданного как GH_TOKEN или GITHUB_TOKEN. Инструмент работает в интерактивном режиме и в программном режиме с флагом -p, по умолчанию поставляется с MCP-сервером GitHub и поддерживает собственные серверы.

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

Согласно документации GitHub, в доверенных каталогах Copilot может читать, изменять и выполнять файлы, а с GitHub.com агент работает через вашу аутентифицированную учётную запись. Поскольку он может выполнять команды, он может и открывать сетевые соединения, например через curl или git.

Документированная модель разрешений

  • Доверенные каталоги: вы подтверждаете доверие к каталогу, в котором запускаете CLI. Документация не рекомендует запускать его из домашнего каталога или из мест с недоверенными исполняемыми файлами.
  • Одобрение инструментов: для инструментов, которые изменяют или выполняют что-либо, например rm, node или sed, Copilot просит одобрить действие один раз, одобрить на весь сеанс или отклонить и предложить альтернативу.
  • Флаги: --allow-tool='shell(COMMAND)' и --deny-tool='shell(COMMAND)' задают правила для отдельных команд, причём --deny-tool имеет приоритет. --allow-all-tools обходит одобрения и, по словам документации, даёт Copilot тот же доступ, что и у вас.

Для последнего случая документация предлагает локальные или облачные песочницы либо изолированные виртуальные машины. Изученная страница не уточняет, какие данные передаются GitHub или поставщикам моделей, поэтому точные адреса назначения следует устанавливать наблюдением. Это ситуация, которую OWASP называет избыточной автономией (excessive agency): агенту разрешено действовать без проверки человеком на каждом шаге.

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

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

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

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

  1. Установите FireAI и завершите первоначальную настройку по руководству Install and finish setup.
  2. Пользуйтесь GitHub Copilot 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 не видит промпты GitHub Copilot CLI, содержимое MCP-инструментов, навыки и то, какие файлы он читает, поскольку TLS скрывает содержимое, а FireAI не находится внутри агента.
  • Copilot CLI сопоставляется по имени скрипта, поэтому FireAI помечает его, а не верифицирует: с подписью разработчика сверяются только Claude Code, Claude и Cursor.
  • Соединения программ gh и git сопоставляются через дерево процессов, то есть по пути, а очень быстро завершающиеся дочерние процессы могут быть пропущены.
  • FireAI не читает одобрения и команды, поэтому не может сказать, какая именно команда открыла соединение.
  • В течение трёхдневного периода обучения ничего не отмечается, а всплески исходящего трафика отмечаются, но не блокируются.
  • Новый сервер в домене, который агент уже использует, считается известным, поскольку адреса группируются по доменам.

Функция описана в документации Agent profile.

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

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

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

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

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

Источники