Blog o bezpieczeństwie FireAI

Autor FireAI Security & Research Team · Opublikowano

Bezpieczeństwo Gemini CLI na Macu: monitorowanie połączeń sieciowych

Bezpieczeństwo Gemini CLI na Macu: monitorowanie połączeń sieciowych

Gemini CLI to otwartoźródłowy agent wiersza poleceń od Google. Czyta i edytuje pliki, uruchamia polecenia powłoki i pobiera strony internetowe, dlatego osoby wyszukujące „gemini cli security mac” lub „czy Gemini CLI jest bezpieczny” chcą wiedzieć, jakie istnieją ograniczenia i dokąd trafia jego ruch. Ten artykuł streszcza własną dokumentację Google, a następnie pokazuje, jak obserwuje go FireAI, sieciowa zapora dla macOS rozwijana przez HisnLabs.

Czym jest Gemini CLI i jak działa na Macu

Repozytorium opisuje Gemini CLI jako otwartoźródłowego agenta AI, który wprowadza Gemini do terminala. Jest rozwijany przez Google na licencji Apache License 2.0. Instaluje się go przez npm (npm install -g @google/gemini-cli) lub Homebrew (brew install gemini-cli), albo uruchamia bez instalacji przez npx @google/gemini-cli. Jest więc programem Node.js, a logowanie odbywa się kontem Google (OAuth), kluczem API Gemini lub przez Vertex AI.

Do czego ma dostęp

Jego wbudowane narzędzia obejmują operacje na systemie plików, wykonywanie poleceń powłoki, pobieranie stron z ugruntowaniem w wyszukiwarce Google (Google Search grounding) oraz serwery MCP do własnych integracji. README wspomina o śledzeniu użycia, opisanym w dokumentacji telemetrii; tam należy sprawdzić, co narzędzie raportuje.

Udokumentowany model uprawnień i piaskownicy

Google dokumentuje dwa mechanizmy kontroli istotne na Macu.

  • Piaskownica: w macOS lekka opcja korzysta z profili Seatbelt (sandbox-exec). Domyślny profil, permissive-open, ogranicza zapisy do katalogu projektu, pozwalając jednocześnie na szeroki odczyt plików i dostęp do sieci. Bardziej restrykcyjne profile, w tym warianty z proxy, wybiera się zmienną środowiskową SEATBELT_PROFILE, a alternatywą są kontenery Docker lub Podman. Włącza się ją przez -s lub --sandbox, GEMINI_SANDBOX albo settings.json.
  • Trusted Folders: domyślnie wyłączone. Po włączeniu niezaufany folder przełącza CLI w tryb bezpieczny, który wyłącza ustawienia obszaru roboczego, połączenia z serwerami MCP, własne polecenia i automatyczne akceptowanie narzędzi.

Sama strona o piaskownicy stwierdza, że piaskownica zmniejsza ryzyko, ale nie eliminuje go całkowicie. Domyślny profil Seatbelt nadal pozwala na dostęp do sieci, więc nie ogranicza, dokąd mogą zostać wysłane dane.

Przejrzana dokumentacja nie publikuje pełnej listy domen, z którymi kontaktuje się Gemini CLI. Oczywistymi kandydatami są logowanie Google, API Gemini i każda pobierana strona, ale potwierdzić je może tylko Twoja własna obserwacja.

Obserwowanie Gemini CLI z FireAI

FireAI to zapora sieciowa dla macOS działająca na urządzeniu, rozwijana przez HisnLabs. Jej funkcja Agent profile wymienia Gemini CLI wśród 19 rozpoznawanych agentów AI, a ponieważ Gemini CLI działa przez 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 Gemini 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 Gemini 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 Gemini 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.
  • Gemini 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.
  • Strona pobierana przez agenta jest dla niego uprawnionym miejscem docelowym, ale może być nowa względem jego linii bazowej, więc należy spodziewać się oznaczeń, gdy prosisz go o wyszukiwanie informacji.
  • FireAI działa obok piaskownicy i Trusted Folders w Gemini CLI, a nie zamiast nich.
  • 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.

Wstrzykiwanie promptów (prompt injection), w którym tekst na pobranej stronie steruje agentem, jest skatalogowane przez OWASP. FireAI go nie zatrzymuje. 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, GitHub Copilot 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

Gemini CLI może uruchamiać polecenia i pobierać strony z sieci z poziomu terminala. 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