Blog o bezpieczeństwie FireAI

Autor FireAI Security & Research Team · Opublikowano

Bezpieczeństwo agenta Crush na Macu: monitorowanie sieci z FireAI

Bezpieczeństwo agenta Crush na Macu: monitorowanie sieci z FireAI

Crush to terminalowy agent programistyczny od Charm, firmy stojącej za znaną rodziną narzędzi wiersza poleceń. Pyta przed uruchomieniem narzędzia, można mu tego zabronić, a jego README dokumentuje więcej niż jedno zachowanie sieciowe. To czyni go dobrym tematem dla czytelników, którzy wyszukują „crush ai agent security mac”, „crush dostęp do sieci” lub „czy Crush jest bezpieczny”. Ten artykuł zbiera to, co podaje README, a następnie wyjaśnia, jak FireAI, zapora sieciowa dla macOS działająca na urządzeniu, tworzona przez HisnLabs, obserwuje połączenia pojedynczego skompilowanego programu.

Czym jest Crush

Crush jest rozwijany przez Charm (charmbracelet na GitHubie) i napisany w Go. README opisuje go jako oprogramowanie do programowania agentowego w terminalu, które łączy narzędzia, kod i przepływy pracy z modelami językowymi. Obsługuje wielu dostawców, w tym OpenAI, Anthropic, Gemini, Ollama i Bedrock, a jego katalog modeli jest aktualizowany z Catwalk, otwartoźródłowej bazy dostawców. Może korzystać z serwerów MCP przez stdio, HTTP i SSE, z OAuth dla HTTP, oraz z serwerów językowych (LSP) dla kontekstu kodu [1].

Jak Crush działa w macOS

README wymienia brew install charmbracelet/tap/crush, npm install -g @charmland/crush, go install github.com/charmbracelet/crush@latest oraz gotowe pliki binarne dla macOS. Ponieważ jest to program w Go, proces na Macu to pojedynczy natywny plik wykonywalny o nazwie crush, a nie interpreter uruchamiający skrypt.

Do czego ma dostęp i jak jest kontrolowany

Domyślnie Crush prosi o zgodę przed wykonaniem wywołań narzędzi. Flaga --yolo pomija wszystkie pytania, a README ostrzega: „Be very, very careful with this feature.” (Bądź bardzo, bardzo ostrożny z tą funkcją). Uprawnienia można też skonfigurować: permissions allow pozwala wskazanym narzędziom działać bez pytania, a permissions deny całkowicie ukrywa narzędzia przed agentem. Konfiguracja obejmuje dostawców, LSP, MCP, uprawnienia, motywy i umiejętności (skills) [2].

Te mechanizmy decydują, które wywołania narzędzi zostaną wykonane. README nie opisuje listy dozwolonych adresów sieciowych.

Z czym się łączy

README dokumentuje dwa zachowania, które otwierają połączenia bez Twojego potwierdzenia. Po pierwsze, Crush zbiera pseudonimowe metadane o użyciu i deklaruje, że prompty i odpowiedzi nigdy nie są zbierane; wyłącza się to przez CRUSH_DISABLE_METRICS=1 lub respektowanie DO_NOT_TRACK. Po drugie, automatycznie pobiera katalog dostawców z Catwalk, co można wyłączyć przez CRUSH_DISABLE_PROVIDER_AUTO_UPDATE=1 i odświeżać ręcznie poleceniem crush update-providers [2]. Pozostałe miejsca docelowe zależą od skonfigurowanego dostawcy i serwerów MCP.

Obserwowanie agenta Crush z FireAI

FireAI to zapora sieciowa dla macOS działająca na Macu. Jej funkcja Agent profile rozpoznaje 19 agentów AI, uczy się, z czym każdy z nich zwykle się łączy, i oznacza to, co nowe. Strona Agent profile w FireAI wymienia Crush wśród agentów wiersza poleceń rozpoznawanych po nazwie programu. Połączenia programu o nazwie crush oraz jego procesów potomnych, takich jak powłoka, git czy curl, są przypisywane do agenta Crush.

  • Przez pierwsze 3 dni FireAI uczy się miejsc docelowych, z którymi agent zwykle się kontaktuje, pogrupowanych według domeny, więc api.anthropic.com staje się anthropic.com. W tym okresie nic nie jest oznaczane.
  • Po tym czasie pierwsze w historii miejsce docelowe spoza linii bazowej jest oznaczane do przeglądu w Suggestions, na karcie agentów AI i w Quick Review. Przesuń w lewo, aby zablokować, lub w prawo, aby wybrać „It’s fine”.
  • 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, czyli nazw hostów i liczby bajtów. Nigdy nie czyta zawartości połączenia.

Konfiguracja FireAI dla agenta Crush

  1. Zainstaluj FireAI i korzystaj z agenta jak zwykle. 3-dniowy okres nauki rozpoczyna się sam i niczego nie oznacza.
  2. Otwórz Suggestions i znajdź kartę agentów AI. Po okresie nauki oznaczenie dla agenta pojawia się tam oraz w Quick Review.
  3. Przejrzyj każde oznaczenie. Wybierz Block, aby utworzyć regułę dla procesu, który się połączył, lub „It’s fine”, aby dodać miejsce docelowe do linii bazowej agenta.
  4. Aby 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. Twoje reguły działają jak w trybie Home, a po zakończeniu nauki przez agenta połączenie z miejscem docelowym spoza linii bazowej jest blokowane zamiast oznaczane.
  5. Zablokowane miejsce docelowe pojawia się na karcie agentów AI z opcjami Allow i Keep blocked. Allow dodaje je do linii bazowej i agent od razu może się z nim połączyć. Keep blocked tworzy regułę blokującą obowiązującą w każdym trybie.

Napisana przez Ciebie reguła zezwalająca dla strony, domeny lub adresu nadal ma pierwszeństwo, a DNS i sieć lokalna nigdy nie są blokowane. Dla agenta, którego FireAI nie wymienia, napisz ręcznie regułę dla jego programu w regułach dla aplikacji. Tryb Agent profile wymaga FireAI 1.0.3 lub nowszego, a rozpoznawanie agenta Crush wersji 1.0.4.

Ograniczenia

  • Zmienne środowiskowe, takie jak CRUSH_DISABLE_METRICS, zmieniają to, co wysyła sam Crush. FireAI nie odczytuje tych ustawień; raportuje jedynie, z którymi hostami kontaktuje się program i ile danych wysyła.
  • Agent Crush jest rozpoznawany po nazwie swojego programu, co oznacza, że jest etykietowany, a nie weryfikowany: tylko Claude Code, Claude i Cursor są sprawdzani pod kątem podpisu dewelopera.
  • FireAI nie zatrzymuje wstrzykiwania 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, zawartości narzędzi MCP, dostępu do plików ani umiejętności (skills). TLS ukrywa zawartość, a FireAI nie działa wewnątrz agenta.
  • Procesy potomne, które kończą się bardzo szybko, mogą zostać pominięte i są dopasowywane po ścieżce, a nie po podpisie.
  • W 3-dniowym okresie nauki nic nie jest oznaczane, a skoki wysyłanych danych są oznaczane, nie blokowane.
  • W trybie Agent profile połączenie nawiązane z samym adresem IP, bez nazwy hosta, jest dopasowywane po adresie, więc nowy adres usługi, z której agent zwykle korzysta, pozostaje zablokowany, dopóki go nie zezwolisz.

Inni agenci

To samo podejście dotyczy każdego agenta rozpoznawanego przez FireAI. Zobacz pozostałe przewodniki: Claude Code, aplikacja Claude na komputer, Cursor, aplikacja ChatGPT na Maca, OpenAI Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Windsurf, Kiro, Trae, Muse od Meta, każdy inny agent AI działający na pythonie lub node. Pełny opis funkcji znajduje się na stronie dokumentacji Agent profile, opublikowanej przez HisnLabs.

Jaką rolę odgrywają FireAI i HisnLabs

FireAI uczy się, z czym Crush zwykle łączy się na Twoim Macu, i oznacza pierwsze w historii miejsce docelowe lub skok wysyłanych danych, nie czytając Twoich danych.

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