Blog o bezpieczeństwie FireAI

Autor FireAI Security & Research Team · Opublikowano

Bezpieczeństwo GitHub Copilot CLI na Macu: obserwacja jego połączeń

Bezpieczeństwo GitHub Copilot CLI na Macu: obserwacja jego połączeń

GitHub Copilot CLI wprowadza agenta programistycznego do terminala. Potrafi edytować pliki, uruchamiać polecenia oraz pracować z repozytoriami, zgłoszeniami (issues) i pull requestami. Osoby wyszukujące „github copilot cli security” lub „czy Copilot CLI jest bezpieczny” chcą przede wszystkim wiedzieć, co może uruchamiać i co wysyła. Ten artykuł streszcza własną dokumentację GitHub i pokazuje, jak FireAI, sieciowa zapora dla macOS rozwijana przez HisnLabs, obserwuje jego połączenia.

Czym jest Copilot CLI i jak działa na Macu

Repozytorium podaje, że narzędzie jest tworzone przez GitHub i napędzane tym samym mechanizmem agentowym co Copilot coding agent. Obsługuje macOS, Linuksa i Windows, a instaluje się je przez npm (npm install -g @github/copilot), Homebrew (brew install copilot-cli) lub skrypt instalacyjny. Logujesz się poleceniem /login albo osobistym tokenem dostępu z uprawnieniem Copilot Requests, podanym jako GH_TOKEN lub GITHUB_TOKEN. Działa w trybie interaktywnym i w trybie programowym z flagą -p, domyślnie zawiera serwer MCP GitHub i obsługuje własne serwery.

Do czego ma dostęp

Dokumentacja GitHub podaje, że w zaufanych katalogach Copilot może czytać, modyfikować i wykonywać pliki, a agent pracuje z GitHub.com przez Twoje uwierzytelnione konto. Ponieważ może uruchamiać polecenia, może też otwierać połączenia sieciowe, na przykład przez curl lub git.

Udokumentowany model uprawnień

  • Zaufane katalogi: potwierdzasz zaufanie do katalogu, w którym uruchamiasz CLI. Dokumentacja odradza uruchamianie z katalogu domowego lub z lokalizacji zawierających niezaufane pliki wykonywalne.
  • Zatwierdzanie narzędzi: w przypadku narzędzi, które modyfikują lub wykonują, takich jak rm, node czy sed, Copilot prosi o jednorazowe zatwierdzenie, zatwierdzenie na całą sesję albo odrzucenie i zaproponowanie alternatywy.
  • Flagi: --allow-tool='shell(COMMAND)' i --deny-tool='shell(COMMAND)' ustawiają reguły dla poszczególnych poleceń, przy czym --deny-tool ma pierwszeństwo. --allow-all-tools pomija zatwierdzanie i, słowami dokumentacji, daje Copilotowi taki sam dostęp, jaki masz Ty.

Na ten ostatni przypadek dokumentacja sugeruje lokalne lub chmurowe piaskownice albo odizolowane maszyny wirtualne. Przejrzana strona nie wyjaśnia szczegółowo, jakie dane są przesyłane do GitHub lub dostawców modeli, więc w kwestii dokładnych miejsc docelowych należy polegać na obserwacji. To sytuacja, którą OWASP nazywa nadmierną sprawczością (excessive agency): agent może działać bez kontroli człowieka na każdym kroku.

Obserwowanie GitHub Copilot CLI z FireAI

FireAI to zapora sieciowa dla macOS działająca na urządzeniu, rozwijana przez HisnLabs. Jej funkcja Agent profile wymienia GitHub Copilot CLI wśród 19 rozpoznawanych agentów AI, a ponieważ Copilot CLI działa pod node, identyfikuje go po skrypcie wykonywanym przez środowisko uruchomieniowe, tak jak Agent profile robi to dla agentów node, bun, deno i python. Procesy potomne agenta, takie jak uruchomiona przez niego powłoka, git czy curl, są mu przypisywane przez przejście w górę po procesach nadrzędnych. Przez pierwsze 3 dni FireAI uczy się następnie, z jakimi miejscami docelowymi GitHub Copilot CLI zwykle się kontaktuje, pogrupowanymi według domeny, i w tym okresie niczego nie oznacza. Po tym czasie pierwsze w historii miejsce docelowe jest oznaczane w Suggestions, na karcie agentów AI i w Quick Review. Oznaczany jest także skok wysyłanych danych: godzina, w której agent wysłał co najmniej 4 razy więcej niż w swojej dotychczas najbardziej obciążonej godzinie, i nigdy mniej niż 25 MB.

FireAI korzysta wyłącznie z metadanych, nazw hostów i liczby bajtów, i nigdy nie czyta zawartości połączenia. Domyślnie oznacza i zostawia decyzję Tobie. W trybie bezpieczeństwa Agent profile idzie dalej: po zakończeniu nauki połączenie z miejscem docelowym spoza linii bazowej jest blokowane, dopóki nie naciśniesz Allow, a Keep blocked zamienia tę blokadę w regułę obowiązującą w każdym trybie.

Konfiguracja krok po kroku

  1. Zainstaluj FireAI i dokończ konfigurację przy pierwszym uruchomieniu, zgodnie z Install and finish setup.
  2. Korzystaj z GitHub Copilot CLI jak zwykle przez 3 dni. FireAI uczy się jego miejsc docelowych w tle i jeszcze niczego nie oznacza.
  3. Otwórz Suggestions i znajdź kartę agentów AI. Gdy pojawi się oznaczenie, przeczytaj zdanie napisane prostymi słowami, a następnie w Quick Review przesuń w lewo, aby zablokować, lub w prawo, aby wybrać „It’s fine”.
  4. Jeśli chcesz ograniczyć agenta do miejsc, z których już korzysta, wybierz Agent profile w menu trybu bezpieczeństwa, obok Home, Coffee shop, Paranoid i Under attack.
  5. Gdy coś zostanie zablokowane, otwórz kartę agentów AI i wybierz Allow, aby dodać to do linii bazowej, lub Keep blocked, aby utworzyć regułę blokującą.

Ograniczenia

  • FireAI nie zapobiega wstrzykiwaniu promptów (prompt injection). Ogranicza szkody, oznaczając drogę, którą dane opuściłyby Maca, i pozwalając ją zablokować.
  • FireAI nie widzi promptów agenta GitHub Copilot CLI, zawartości narzędzi MCP, umiejętności (skills) ani tego, które pliki czyta, ponieważ TLS ukrywa zawartość, a FireAI nie działa wewnątrz agenta.
  • Copilot CLI jest dopasowywany po nazwie skryptu, więc FireAI go etykietuje, a nie weryfikuje: tylko Claude Code, Claude i Cursor są sprawdzani pod kątem podpisu dewelopera.
  • Połączenia nawiązywane przez programy gh lub git są dopasowywane przez drzewo procesów, czyli po ścieżce, a procesy potomne, które kończą się bardzo szybko, mogą zostać pominięte.
  • FireAI nie odczytuje zatwierdzeń ani poleceń, więc nie potrafi wskazać, które polecenie otworzyło połączenie.
  • W 3-dniowym okresie nauki nic nie jest oznaczane, a skoki wysyłanych danych są oznaczane, nie blokowane.
  • Nowy serwer w domenie, z której agent już korzysta, jest traktowany jako znany, ponieważ miejsca docelowe są grupowane według domeny.

Funkcja jest opisana w dokumentacji Agent profile.

Inni agenci rozpoznawani przez FireAI mają własne przewodniki: Claude Code, aplikacja Claude na komputer, Cursor, aplikacja ChatGPT na Maca, OpenAI Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, Amp, Qwen Code, opencode, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse od Meta, dowolny agent AI uruchamiany przez Pythona lub Node.

Jaką rolę odgrywają FireAI i HisnLabs

Copilot CLI może uruchamiać polecenia po Twojej akceptacji. FireAI pokazuje, a także może zablokować, z czym połączy się następnie.

FireAI to własny produkt HisnLabs: zapora sieciowa z AI działająca bezpośrednio na Macu. Pokazuje prostym językiem każde połączenie nawiązywane przez twoje aplikacje i pozwala ci decydować, co opuszcza twojego Maca — jej AI działa lokalnie, więc twój ruch nigdy nie jest wysyłany do nas ani do nikogo innego. Zespół badań nad bezpieczeństwem HisnLabs dba o to, by te decyzje pozostały trafne: kataloguje, które domeny to zwykła telemetria, a które prawdziwa usługa, śledzi kraj i sieć stojące za połączeniem oraz trenuje lokalny model (funkcję FireAI Pilot) na rzeczywistych wzorcach ruchu — a nic z tego nie opuszcza twojego Maca.

Możesz przeczytać o decyzjach technicznych, które za tym stoją, albo wypróbować FireAI przez 17 dni na FireAI od HisnLabs.

Źródła