Блог з безпеки FireAI

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

Моніторинг мережевих з’єднань Claude Code на Mac: безпека з FireAI

Моніторинг мережевих з’єднань Claude Code на Mac: безпека з FireAI

Claude Code — агент для програмування від Anthropic, що працює в терміналі на вашому Mac. Він читає ваш проєкт, редагує файли й виконує команди shell від вашого імені, і кожна з цих дій може завершитися мережевим з’єднанням. Ця стаття викладає, що Anthropic документує про роботу Claude Code на macOS, до чого він має доступ і які з’єднання є звичайними, а потім показує, як стежити за ними за допомогою FireAI. Якщо факт узято з документації Anthropic, джерело наведено наприкінці.

Що таке Claude Code і як він працює на Mac

Сторінка налаштування Anthropic перелічує три способи встановити Claude Code на macOS. Рекомендований нативний інсталятор — це скрипт curl, який завантажує бінарний файл і оновлює себе у фоновому режимі. Homebrew пропонує два cask: claude-code для стабільного каналу і claude-code@latest для найновішого, причому встановлення через Homebrew не оновлюються автоматично. Доступний також глобальний пакет npm @anthropic-ai/claude-code; за тією ж сторінкою, він встановлює той самий нативний бінарний файл, а встановлений бінарний файл claude сам не викликає Node. На macOS бінарний файл, за документацією, підписано «Anthropic PBC» і нотаризовано Apple, і це можна перевірити командою codesign --verify --verbose.

Термінал
# check the signature of the claude binary, as the setup page describes
codesign --verify --verbose ./claude

До чого він має доступ і задокументована модель дозволів

Claude Code діє з дозволами облікового запису, що його запустив. Сторінка безпеки Anthropic описує дві початкові точки. У режимі Manual він стартує лише для читання й питає, перш ніж редагувати файли, запускати тести чи виконувати команди, а вбудований набір команд лише для читання, як-от ls, cat і git status, виконується без запиту. Режим Auto — вбудований початковий режим для інтерактивних сеансів у терміналі та VS Code: окрема модель-класифікатор перевіряє дії й блокує ті, які вважає небезпечними, а ваші явні правила ask і deny і далі діють.

Для мережевої поведінки важливі три задокументовані деталі. По-перше, команди, що завантажують вміст з інтернету, як-от curl і wget, за замовчуванням не схвалюються автоматично. По-друге, межа робочого каталогу — це запит на дозвіл, тож схвалена вами команда Bash усе одно може записувати будь-куди, куди може ваш обліковий запис. По-третє, необов’язковий ізольований інструмент Bash, що налаштовується через /sandbox, застосовує до команд shell ізоляцію файлової системи та мережі на рівні операційної системи. Anthropic зазначає, що пісочниця охоплює лише команди shell, а файлові інструменти, сервери MCP і hooks працюють поза нею.

Сторінка безпеки також зазначає, що жодна система не є повністю захищеною від усіх атак, і рекомендує перевіряти запропоновані команди, не передавати недовірений вміст безпосередньо до Claude і використовувати віртуальні машини для скриптів, що звертаються до зовнішніх вебсервісів.

Домени, які документує Claude Code

Сторінка мережевої конфігурації Anthropic перелічує URL-адреси, потрібні автономному CLI. Ось задокументовані постачальником адреси, найважливіші для фаєрвола:

Джерело: документація Claude Code, Enterprise network configuration, «Network access requirements».
ХостЗадокументоване призначення
api.anthropic.comЗапити до Claude API, перевірка безпеки домену для WebFetch, завантаження прапорців функцій і журналювання подій телеметрії
claude.ai, claude.com, platform.claude.comВхід в обліковий запис та обмін токенами OAuth
mcp-proxy.anthropic.comКонектори MCP з claude.ai
downloads.claude.aiНативний інсталятор, автооновлення, перевірка оновлень і завантаження плагінів
registry.npmjs.orgВстановлення Claude Code через npm і bun, встановлення плагінів і сервери MCP, запущені через npx
github.com, raw.githubusercontent.comКлонування маркетплейсів плагінів; стрічка змін для /release-notes
http-intake.logs.us5.datadoghq.com, browser-intake-us5-datadoghq.comНеобов’язкова операційна телеметрія та звіти про помилки; за документацією вимикаються через DISABLE_TELEMETRY або CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC

Та сама сторінка зазначає, що Claude Code враховує стандартні змінні HTTPS_PROXY і HTTP_PROXY та не підтримує проксі SOCKS. Усе поза цим переліком, наприклад реєстр пакетів, до якого звертається команда збирання, запущена Claude, — це власний трафік проєкту, а не Claude Code.

Чому мережевий огляд усе одно корисний

Запити на дозвіл показують команду, яку хоче виконати Claude Code. Вони не показують кожного з’єднання, що виникає внаслідок раніше схвалених вами команд, сервера MCP, плагіна чи скрипта в репозиторії. Огляд на рівні мережі відповідає на вужче й доповнювальне питання: куди насправді підключався цей комп’ютер, поки працював агент. Саме на це питання розраховано відповідати «Профіль агента» у FireAI.

Спостереження за Claude Code за допомогою FireAI

FireAI — фаєрвол для macOS від HisnLabs, і починаючи з версії 1.0.2 він має функцію «Профіль агента». Вона розпізнає 19 агентів ШІ, вивчає, куди кожен зазвичай підключається, і позначає незвичну поведінку для вашого перегляду. Claude Code розпізнається за підписом коду.

Список «Активність» у FireAI з фільтром «claude»: три рядки claude, до api.anthropic.com і до DNS-запитів, кожен із персонажем Claude Code, і рядок Brave Browser Helper до claude.ai зі звичайною іконкою застосунку.
Список «Активність» у FireAI на Mac: процес командного рядка claude має персонажа Claude Code, тоді як браузер, що відвідує claude.ai, залишається звичайним застосунком.

Claude Code — один із трьох агентів, яких FireAI звіряє з підписом коду розробника, тож збіг означає більше, ніж просто назву.

FireAI також розпізнає дочірні процеси агента, наприклад shell, git чи curl, які запускає агент, піднімаючись ланцюжком батьківських процесів, доки не дійде до агента. Тому ці з’єднання зараховуються самому агенту.

Що позначає FireAI

  1. Перші 3 дні FireAI вивчає адреси, з якими агент зазвичай зв’язується, групуючи їх за доменом. У цей період навчання нічого не позначається.
  2. Після цього перша за весь час адреса поза вивченою базовою лінією позначається для перегляду.
  3. Сплеск вивантаження теж позначається: година, за яку агент надіслав щонайменше вчетверо більше, ніж за свою найактивнішу годину досі, і ніколи не менше ніж 25 MB.

«Профіль агента» використовує лише метадані, тобто імена хостів і кількість байтів. FireAI ніколи не читає вмісту з’єднання і не може зазирнути всередину зашифрованого.

Налаштування для Claude Code

  1. Установіть FireAI і завершіть налаштування, а потім продовжуйте користуватися Claude Code як зазвичай. Триденний період навчання починається з того, що бачить FireAI.
  2. Відкрийте «Пропозиції» й подивіться на картку «Агенти ШІ». У ній перелічено агентів, яких FireAI розпізнав, і те, що він дізнався про кожного.
  3. Коли Claude Code звертається до адреси, з якою ніколи не зв’язувався, позначка з’являється в картці «Агенти ШІ» та у «Швидкому перегляді». Проведіть ліворуч, щоб заблокувати, або праворуч, щоб вибрати «It’s fine».
  4. «Заблокувати» створює правило для процесу, який підключився. «It’s fine» додає адресу до базової лінії агента, щоб її більше не позначали.
  5. Якщо ви хочете обмежити агента місцями, якими він уже користується, виберіть «Профіль агента» в меню режимів безпеки поряд із «Дім», «Кав’ярня», «Параноя» та «Під атакою». Щойно агент завершить навчання, з’єднання з адресою поза його базовою лінією блокується замість позначення.
  6. Заблокована адреса відображається в картці «Агенти ШІ» з кнопками «Дозволити» та «Залишити заблокованим». «Дозволити» додає її до базової лінії, і агент одразу може до неї звернутися. «Залишити заблокованим» створює правило блокування, тож адреса залишається заблокованою в усіх режимах.

Обмеження

  • FireAI не запобігає prompt injection. Запит, прихований на вебсторінці чи у файлі, усе одно може скерувати агента. FireAI може позначити шлях, яким дані залишали б ваш Mac, і дати змогу його заблокувати.
  • FireAI не бачить запитів, вмісту інструментів MCP чи того, які файли читає Claude Code, як-от ~/.ssh. TLS приховує вміст, а FireAI не працює всередині агента.
  • Дочірні процеси, що завершуються дуже швидко, можуть залишитися непоміченими, а дочірні процеси зіставляються за шляхом, а не за підписом.
  • Протягом триденного періоду навчання нічого не позначається.
  • У режимі «Профіль агента» з’єднання з «голою» IP-адресою без імені хоста зіставляється за адресою. Якщо сервіс, яким агент зазвичай користується, відповідає з нової адреси, її буде заблоковано, доки ви її не дозволите.
  • Пояснення позначки простими словами FireAI складає з виміряних ним фактів. Він ніколи не стверджує, що адреса безпечна чи небезпечна. Рішення за вами.

Пов’язані посібники

Той самий підхід застосовується до інших агентів, яких розпізнає FireAI: настільний застосунок Claude, Cursor, застосунок ChatGPT для Mac, Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse від Meta, будь-який інший агент ШІ, запущений через Python чи Node. Повний опис функції наведено в документації «Профілю агента».

Яке місце тут посідають FireAI та HisnLabs

Claude Code запитує, перш ніж діяти. Мережевий брандмауер додає другий погляд на те, куди він підключається.

FireAI — це власний продукт HisnLabs: ШІ-фаєрвол, який працює безпосередньо на вашому Mac. Він показує простою мовою кожне з’єднання, яке встановлюють ваші застосунки, і дає вам вирішувати, що покидає ваш Mac, — його ШІ працює локально, тож ваш трафік ніколи не надсилається ні нам, ні будь-кому іншому. Команда дослідників безпеки HisnLabs — саме вона підтримує точність цих рішень: каталогізує, які домени є звичайною телеметрією, а які — справжнім сервісом, відстежує країну та мережу за з’єднанням і навчає локальну модель (функцію FireAI Pilot) на реальних шаблонах трафіку — і нічого з цього не покидає ваш Mac.

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

Джерела