Blog o bezpieczeństwie FireAI

Autor FireAI Security & Research Team · Opublikowano

Jak FireAI ogranicza sieciowe skutki ryzykownych błędów OpenClaw na Twoim Macu

Jak FireAI ogranicza sieciowe skutki ryzykownych błędów OpenClaw na Twoim Macu

Uruchomienie autonomicznego agenta, takiego jak OpenClaw, na Macu daje modelowi językowemu uprawnienia konta, które go uruchamia, a publikowane od stycznia 2026 roku raporty bezpieczeństwa dokumentują kilka sposobów, w jakie taki układ zawiódł. Większość tych awarii kończy się połączeniem sieciowym: danymi wysłanymi na nieznany serwer, lokalną usługą dostępną z zewnątrz lub pobranym złośliwym ładunkiem. FireAI jest zaporą sieciową dla macOS, więc może ograniczyć tę część. Nie może powstrzymać agenta przed odczytaniem lub usunięciem plików lokalnych, a ten artykuł wskazuje, gdzie przebiega ta granica.

Kontekst

Dokumentacja OpenClaw stwierdza, że narzędzia działają na hoście, chyba że skonfigurowano piaskownicę, że wiadomości przychodzące są niezaufanymi danymi wejściowymi oraz że agenci z dostępem do narzędzia wiadomości mogą domyślnie wysyłać wiadomości między rozmowami i dostawcami kanałów [1]. Agent łączy więc trzy cechy: czyta niezaufany tekst, może działać na komputerze i może komunikować się na zewnątrz. Zapora dotyczy trzeciej z nich. Poniższe sekcje omawiają kolejno każdą udokumentowaną klasę ryzyka, wskazują odpowiedni mechanizm FireAI i wymieniają kroki konfiguracji. Ogólne porównanie OpenClaw z Hermes Agent zawiera osobny artykuł.

Przed krokami: jak FireAI identyfikuje agenta

FireAI identyfikuje aplikację po podpisie kodu pliku wykonywalnego, który otwiera połączenie, a w przypadku programu niepodpisanego po jego ścieżce. Nie ma integracji z OpenClaw ani Hermes Agent i nie rozpoznaje żadnego z nich po nazwie. Agenci tego rodzaju działają wewnątrz interpretera ogólnego przeznaczenia, zwykle Node.js lub Pythona, więc FireAI pokazuje połączenia od „node” lub „python3”. Reguła dla tego interpretera dotyczy każdego skryptu uruchamianego przez ten sam plik binarny, w tym niezwiązanych narzędzi.

Przypisywanie połączeń do poszczególnych skryptów nie jest obecnie dostępne. Każda z poniższych reguł dotyczy zatem interpretera jako całości, a reguła blokująca miejsca docelowe agenta wpływa również na każdy inny skrypt uruchamiany przez ten sam interpreter. Praktycznym sposobem przypisania połączenia jest odczytanie nazwy interpretera w pytaniu i powiązanie go z momentem, w którym agent pracował.

Ryzyko 1: wstrzyknięcie promptu, które wysyła dane na zewnątrz

Kaspersky poinformował, że OpenClaw okazał się podatny na wydobywanie danych za pomocą złośliwej treści wiadomości e-mail, w tym w demonstracji badacza, który wydobył prywatne klucze kryptograficzne, osadzając instrukcje w wiadomości, a użytkownicy zgłaszali, że bot po prompcie socjotechnicznym zrzucił zawartość katalogu domowego do czatu grupowego [3]. Etap eksfiltracji to połączenie wychodzące z procesu agenta do serwera kontrolowanego przez atakującego lub do usługi komunikacyjnej.

FireAI identyfikuje każdą aplikację po podpisie kodu i sprawdza swoje reguły dla każdego połączenia. W trybie Alert wstrzymuje pierwsze połączenie z miejscem docelowym, dla którego nie ma reguły, i pyta [12]. Konfiguracją ograniczającą to ryzyko jest lista dozwolonych zbudowana wokół agenta:

  1. Uruchom agenta raz i pozwól FireAI pokazać jego pierwsze połączenia. W pytaniu kliknij Options, wybierz Always i The whole website dla domeny dostawcy modelu, z której faktycznie korzystasz, a następnie Allow. Pytanie podaje nazwę interpretera, a nie agenta.
  2. Zablokuj każde inne miejsce docelowe dla tej aplikacji: otwórz Rules, kliknij Add rule, wybierz Stop the connection, wskaż interpreter, w którym działa agent (node lub python3), i ustaw Which website or server na Anywhere on the internet.
  3. Otwórz utworzoną regułę Allow dla dostawcy modelu i włącz Quick, aby pierwsza pasująca reguła Quick rozstrzygała, zanim zostanie uwzględniona szeroka blokada.
  4. Na kolejne pytania odpowiadaj Block, chyba że potrafisz wskazać, czym jest miejsce docelowe. Pytanie o nieznaną domenę tuż po tym, jak agent przeczytał wiadomość e-mail, jest sygnałem, który ten mechanizm ma ujawniać.
  5. Otwórz Details w pytaniu, aby sprawdzić adres, port i stan podpisu kodu, a gdy jest dostępna, użyj opcji Why block this?.

Obowiązują ograniczenia. Jeśli agent może łączyć się z usługą komunikacyjną lub ze swoim dostawcą modelu, wstrzyknięta instrukcja może wysłać tam dane, a FireAI widzi, ile zostało wysłane, a nie co, ponieważ nie czyta zawartości szyfrowanych połączeń (jak połączenia są analizowane bez odszyfrowywania).

Ryzyko 2: złośliwe lub skompromitowane umiejętności (skills)

Koi Security przeanalizowało 2857 umiejętności w ClawHub i zidentyfikowało 341 złośliwych, z czego 335 pochodziło z jednej kampanii; eSecurity Planet podaje, że umiejętności prosiły użytkowników o zainstalowanie „wymagań wstępnych”, które dostarczały Atomic macOS Stealer, atakujący dane logowania z przeglądarek, hasła z pęku kluczy, portfele, klucze SSH i tokeny API [6]. Umiejętność działa z uprawnieniami agenta, więc jej wywołania sieciowe wyglądają jak wywołania agenta.

Mechanizmy FireAI działają na to, dokąd trafiają te wywołania, na dwa sposoby. Po pierwsze, lista dozwolonych z poprzedniej sekcji odrzuca miejsca docelowe, które nigdy nie zostały zatwierdzone. Po drugie, FireAI może korzystać z publicznych list zagrożeń:

  1. Otwórz w FireAI stronę list zagrożeń i włącz Use public threat data. FireAI pobiera wtedy raz dziennie listy takie jak abuse.ch URLhaus, ThreatFox i Feodo Tracker, a Twój ruch nigdy nie jest do nich wysyłany. Zob. dokumentację.
  2. Włącz Block what a threat list confirms, aby potwierdzone dopasowanie skutkowało blokadą, a nie tylko oznaczeniem.
  3. Otwórz Threats i użyj Investigate dla każdego wiersza, którego nie rozpoznajesz; raport wyjaśnia połączenie krok po kroku.
  4. Pozostaw włączoną Connection history (Settings, Connection history), aby później sprawdzić, która aplikacja kontaktowała się z którym miejscem docelowym; przechowuje ona 7-dniowy zapis wyłącznie na tym Macu.

Umiejętność, która kontaktuje się z serwerem nieznanym żadnej liście lub która tylko czyta pliki lokalne, nie zostanie wychwycona przez ten mechanizm. Podstawową ochroną pozostaje przegląd umiejętności przed instalacją.

Ryzyko 3: lokalna bramka dostępna z zewnątrz lub z przeglądarki

Censys odnotował wzrost liczby publicznie dostępnych instancji OpenClaw z około 1000 do 21 639 w niespełna tydzień do 31 stycznia 2026 roku, zaznaczając jednocześnie, że Gateway jest zaprojektowany do nasłuchiwania lokalnie na porcie TCP 18789 [4]. Kaspersky opisał instalacje bez uwierzytelniania, które ufały localhost i znajdowały się za błędnie skonfigurowanymi odwrotnymi serwerami proxy [3]. Odkrycie ClawJacked firmy Oasis Security wykazało, że strona internetowa mogła połączyć się z lokalnym Gateway z poziomu przeglądarki; błąd naprawiono w OpenClaw 2026.2.25 [5].

FireAI egzekwuje reguły dla połączeń przychodzących do Maca, a także wychodzących, choć nigdy nie pyta o połączenia przychodzące. Zob. dokumentację. Odpowiednie kroki:

  1. Przełącz się na tryb Coffee shop, gdy Mac jest w sieci, której nie kontrolujesz. Blokuje on połączenia przychodzące oraz udostępnianie plików i ekranu innym urządzeniom, zgodnie z opisem w trybach bezpieczeństwa.
  2. Aby działo się to automatycznie, przypisz tryb Coffee shop do miejsc publicznych zgodnie z dokumentacją miejsc lub użyj Coffee Shop Armor, który dokumentacja FireAI opisuje w kontekście publicznych sieci Wi-Fi.
  3. W Rules dodaj przychodzącą regułę Block dla aplikacji agenta (w sekcji Advanced ustaw Direction na incoming) w każdej sieci, której w pełni nie ufasz.
  4. Sprawdź też konfigurację samego agenta: Gateway powinien pozostać powiązany z interfejsem loopback, jak opisuje dokumentacja OpenClaw dla zwykłych instalacji na hoście [1].

Ryzyko 4: dane logowania i pliki opuszczające komputer

Te same raporty wymieniają jako cele klucze API, tokeny, klucze SSH i pliki portfeli [6]. W przypadku eksfiltracji przez sieć zastosowanie mają trzy funkcje FireAI:

  1. Inspekcja protokołów blokuje nieszyfrowane żądania sieciowe zawierające numery kart, dane bankowe, hasła lub klucze, zanim opuszczą Maca, oraz blokuje dane przemycane na zewnątrz jako zapytania DNS; nic nie jest przechowywane ani wysyłane. Zob. dokumentację.
  2. World map i Activity pokazują każde połączenie na żywo oraz w przeszukiwalnej historii. Kliknij połączenie prawym przyciskiem, aby wybrać Deny host, Block IP for all apps lub Block this app everywhere. Zob. dokumentację.
  3. Ask FireAI przyjmuje polecenia w języku naturalnym, takie jak „block” i nazwa aplikacji w postaci widocznej w FireAI (w przypadku agenta nazwa interpretera), pokazuje podgląd i niczego nie stosuje, dopóki nie klikniesz Apply. Zob. dokumentację.

Dane logowania wysłane do dozwolonego miejsca docelowego szyfrowanym połączeniem znajdują się poza zasięgiem tego, co widzi FireAI.

Ryzyko 5: nieoczekiwane połączenia, gdy nikt nie obserwuje

Agenci pracują bez nadzoru. Dokumentacja OpenClaw odnotowuje, że nieznani nadawcy są domyślnie parowani oraz że agenci mogą wysyłać wiadomości między kanałami, o ile nie zostaną ograniczeni [1]; dokumentacja Hermes Agent opisuje system zatwierdzania poleceń, którego tryb można ustawić na off [7]. To podczas pracy bez nadzoru błędne lub wstrzyknięte działanie wyrządza najwięcej szkód, zanim ktoś to zauważy.

  1. Użyj reguły czasowej, utworzonej przez Ask FireAI, aby agent łączył się tylko w ustalonych godzinach, na przykład „allow the agent during work hours”; cztery wbudowane przedziały to noc, wieczór, godziny pracy i weekendy. Zob. dokumentację.
  2. Używaj trybu Paranoid, gdy agent działa bez nadzoru. Blokuje on ruch śledzący, niepodpisane aplikacje i każdy nieszyfrowany port, a nawet narzędzia systemowe Apple wymagają zatwierdzenia [10].
  3. Używaj trybu Under attack lub wyłącznika awaryjnego (kill switch), gdy agent zachowuje się niewłaściwie. Under attack zezwala tylko aplikacjom z jawną regułą Allow i przestaje pytać. Wyłącznik awaryjny odrzuca nowe połączenia ze wszystkim poza siecią domową lub biurową i jest również dostępny z paska menu [11].
  4. Pozostaw FireAI Pilot dla innych aplikacji lub przeglądaj jego decyzje w Suggestions, ponieważ automatycznie odpowiada na połączenia, co do których ma pewność; w przypadku agenta jawne reguły łatwiej poddać audytowi.

Zalecenia

  1. Uruchamiaj agenta na dedykowanym koncie użytkownika macOS lub w maszynie wirtualnej, z dostępem tylko do potrzebnych folderów.
  2. Przyznawaj mu odwoływalne dane logowania o wąskim zakresie i nigdy nie udostępniaj głównego menedżera haseł ani kluczy SSH.
  3. Przeczytaj kod źródłowy umiejętności przed jej instalacją i odrzucaj te, które jako wymaganie wstępne każą wkleić polecenie powłoki.
  4. Aktualizuj agenta; poprawka ClawJacked dotarła do użytkowników wyłącznie przez aktualizację.
  5. Pozostaw zatwierdzanie poleceń w trybie ręcznym tam, gdzie agent to oferuje.
  6. Łącz listę dozwolonych, wyłącznik awaryjny i tryb dopasowany do miejsca pracy.

Ograniczenia

  • FireAI widzi interpreter, który otwiera połączenie (na przykład node lub python3), a nie nazwę agenta; reguła dotyczy wszystkiego, co ten interpreter uruchamia. Nie ma integracji z tymi agentami.
  • FireAI kontroluje, która aplikacja z czym się łączy, i może odciąć internet. Nie może zapobiec usuwaniu, szyfrowaniu ani odczytywaniu plików lokalnych przez agenta, uruchamianiu poleceń ani zmianie ustawień na Macu.
  • Wyłącznik awaryjny odrzuca nowe połączenia; nie zamyka połączeń już otwartych.
  • FireAI nie czyta zawartości szyfrowanych połączeń, więc dane wysyłane do dozwolonego miejsca docelowego nie są analizowane.
  • Filtrowanie ruchu loopback między przeglądarką a usługą lokalną nie jest udokumentowane; takie luki należy zamykać przez aktualizację agenta.
  • Listy zagrożeń blokują tylko to, co potwierdzają; nowy serwer lub umiejętność działająca wyłącznie lokalnie nie są objęte.
  • Zapora nie naprawia własnych decyzji projektowych agenta, takich jak Gateway powiązany z adresem publicznym.
  • Konieczne są środki uzupełniające: konta o minimalnych uprawnieniach, piaskownice lub maszyny wirtualne, kopie zapasowe oraz przegląd umiejętności przed instalacją.

Jaką rolę odgrywają FireAI i HisnLabs

Agenci działają szybko. Zapora sieciowa decyduje, z czym wolno im się łączyć.

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