Twój Mac właśnie teraz rozmawia. Nie metaforycznie: w tej chwili kilkadziesiąt procesów trzyma otwarte gniazda do serwerów, o których nigdy nie słyszałeś, i większość z tego jest w porządku. Sprawdzanie aktualizacji, synchronizacja, powiadomienia push, telemetria, pobierany font. Sensem monitorowania sieci nie jest panika z powodu ilości, lecz umiejętność odpowiedzi na jedno pytanie o dowolną pojedynczą linię: która aplikacja, do kogo i dlaczego. macOS daje trzy darmowe narzędzia, które prowadzą część drogi. Ten artykuł wyjaśnia, co każde z nich pokazuje, gdzie się kończy i co zapora per aplikacja dodaje ponad to.
Monitor aktywności: sumy, nie miejsca docelowe
Otwórz Monitor aktywności, kliknij kartę Sieć i otrzymasz uczciwy przegląd, do którego Apple go zaprojektowało. Przewodnik Apple opisuje dolny panel: pakiety przychodzące i wychodzące, dane odebrane i wysłane w megabajtach oraz wykres, który można przełączać między przepustowością pakietów i danych. Lista procesów powyżej mówi, ile każdy proces wysłał i odebrał. Nie mówi natomiast, gdzie. Nie ma kolumny dla zdalnego hosta, portu ani kraju. Monitor aktywności odpowiada na pytanie „czy coś zużywa dużo pasma?” i na tym się zatrzymuje. To właściwe narzędzie, by zauważyć, że proces pomocniczy wysłał w nocy dwa gigabajty, i niewłaściwe, by dowiedzieć się, do kogo.
lsof: migawka każdego otwartego gniazda
Narzędzie wiersza poleceń lsof wypisuje otwarte pliki, a w Uniksie gniazdo sieciowe jest plikiem. Z opcją -i, którą strona man w macOS opisuje jako wybierającą pliki, których adres internetowy pasuje, dostajesz każde otwarte połączenie z nazwą procesu-właściciela, jego identyfikatorem, protokołem oraz lokalnym i zdalnym adresem i portem. Dodaj -n i -P, by adresy i porty pozostały liczbowe, zamiast czekać na odwrotne DNS. Wynik to najpełniejszy darmowy obraz bieżącej chwili, jaki można uzyskać, z naciskiem na chwilę: lsof jest migawką. Połączenia, które otworzyło się, wysłało kilobajt i zamknęło w pół sekundy przed naciśnięciem Enter, po prostu tam nie ma. Identyfikuje też proces po nazwie i PID, nie po tym, kto go podpisał, więc plik binarny o nazwie „Adobe Update Helper” w folderze tymczasowym wygląda dokładnie jak prawdziwy.
nettop: ten sam widok, aktualizowany na żywo
nettop to najbliższa rzecz do monitora połączeń na żywo, jaką dostarcza macOS. Jego strona man opisuje go jako wyświetlający listę gniazd lub tras z okresowo aktualizowanymi statystykami sieciowymi. W praktyce widzisz każdy proces, jego otwarte połączenia, bajty przychodzące i wychodzące na połączenie, używany interfejs i stan połączenia, odświeżane co sekundę. Rozwiązuje problem migawki lsof i pozostaje najlepszą wbudowaną odpowiedzią na „co ta aplikacja robi w tej chwili”. Jego ograniczenia są pod każdym innym względem takie same jak lsof: żadnej tożsamości poza nazwą procesu, żadnego pojęcia kraju czy organizacji za adresem, żadnej pamięci o tym, co działo się godzinę temu, i żadnej możliwości powiedzenia nie. Możesz obserwować połączenie w nettop; nie możesz go zatrzymać.
Wbudowana zapora tu nie pomaga
Ludzie często zakładają, że włączenie zapory w Ustawieniach systemowych to załatwia. Nie załatwia. Własny przewodnik Apple jest ostrożny w słowach: zapora macOS chroni Maca przed niechcianym kontaktem inicjowanym przez inne komputery. To filtr przychodzący. Nie ma nic do powiedzenia o tym, co twoje aplikacje wysyłają, a to kierunek, w który wskazuje każde pytanie w tym artykule. Dla wychodzącej kontroli per aplikacja Apple udostępnia framework Network Extension, którego dostawcy filtrów treści pozwalają aplikacji zewnętrznej widzieć i filtrować przepływy sieciowe wraz z tożsamością aplikacji, która je utworzyła. To fundament, na którym budują nowoczesne zapory per aplikacja na macOS, i to on zamienia listę gniazd w listę decyzji.
Co dodaje zapora per aplikacja
Konkretnie cztery rzeczy. Tożsamość: przepływ jest przypisany do podpisanej aplikacji, więc reguła dla Slacka dotyczy Slacka, a nie czegokolwiek, co przypadkiem dzieli z nim nazwę; reguły per aplikacja FireAI podążają za podpisem kodu aplikacji właśnie z tego powodu. Widoczność: każde połączenie jest pokazywane w chwili, gdy się dzieje, łącznie z tymi trwającymi pół sekundy. Kontekst: surowy adres IP jest rozwiązywany do stojącej za nim organizacji i kraju, co FireAI pokazuje na mapie świata na żywo z zablokowanymi połączeniami na czerwono. I kontrola: połączenie można zezwolić lub odmówić po hoście, domenie, IP lub porcie, a nieznana aplikacja musi zapytać przed pierwszym połączeniem, z uzasadnieniem werdyktu modelu działającego na urządzeniu pokazanym w pytaniu. Jeśli nie zgadzasz się z decyzją podjętą przez AI, cofasz ją, a cofnięcie staje się widoczną regułą, którą możesz później przeczytać lub wyeksportować jako plik tekstowy.
FireAI przyjmuje też polecenia w zwykłym języku, po angielsku lub francusku, takie jak „block Microsoft Teams”, co jest szybszym sposobem napisania reguły niż okno dialogowe z czterema polami. Czego nie robi, warto powiedzieć równie wprost: nie inspekcjonuje treści zaszyfrowanego ruchu, nie skanuje plików i nie bada procesów ani pamięci. Działa na poziomie tego, kto łączy się z czym, i jest uczciwa co do tej granicy.
Jak czytać jedno połączenie
Weź dowolną linię z nettop lub z dziennika zapory i zadaj trzy pytania. Po pierwsze, firma: kto jest właścicielem adresu? Większość ruchu idzie do garstki dostawców hostingu i sieci dostarczania treści, a aplikacja muzyczna rozmawiająca z Amazonem lub Cloudflare zwykle rozmawia po prostu ze swoim backendem. Wzorcem do zauważenia jest niedopasowanie: aplikacja do notatek łącząca się z siecią reklamową albo narzędzie do zrzutów ekranu łączące się z dostawcą hostingu, którego nie ma powodu używać. Po drugie, kraj: nie dlatego, że zagraniczny serwer jest zły, ale dlatego, że zmiana jest informacją. Aplikacja, która przez rok łączyła się z Irlandią, a dziś po raz pierwszy łączy się z nowym krajem, coś zmieniła. Po trzecie, port. 443 to HTTPS i obejmuje niemal wszystko; 80 to zwykły HTTP i w 2026 roku powinien być rzadki; 53 to DNS; 22 to SSH; 445 to udostępnianie plików SMB; 5353 to Bonjour w sieci lokalnej. Aplikacja konsumencka otwierająca port 22 lub 445 do adresu w internecie jest na tyle nietypowa, by uzasadnić pytanie.
Wzorce warte drugiego spojrzenia
- Beaconing: ten sam proces kontaktujący się z tym samym adresem w stałych odstępach, co sześćdziesiąt sekund lub co dziesięć minut, z maleńkimi ładunkami. MITRE ATT&CK opisuje dowodzenie i kontrolę jako próbę komunikacji przeciwnika ze skompromitowanymi systemami w celu ich sterowania, a regularne bicie serca to najczęstsza forma, jaką to przyjmuje. Sprawdzanie aktualizacji też „beaconuje”, więc wskazówką jest nieznany proces, nie sam rytm.
- Węzły wyjściowe Tor: Tor Project publikuje listę swoich węzłów wyjściowych i nie ma zwyczajnego powodu, by aplikacja biurowa sięgała do jednego z nich. FireAI stosuje tę listę lokalnie jako jedno ze swoich źródeł informacji o zagrożeniach.
- Zwykły HTTP przenoszący dane logowania: formularz logowania, klucz API lub numer karty wysłany przez port 80 jest czytelny dla każdego po drodze. Ochrona danych nieszyfrowanych FireAI jest zbudowana dokładnie na ten przypadek i zatrzymuje numery kart, hasła i klucze API przed wyjściem przez zwykły HTTP.
- Pierwsze połączenie od dawno zainstalowanej aplikacji: aplikacja, która milczała miesiącami i nagle otwiera gniazdo, została zaktualizowana, podmieniona lub przejęta przez wtyczkę. O wszystkich trzech warto wiedzieć.
- Niepodpisane lub nieznane pliki binarne w ogóle wychodzące do sieci: na Macu, gdzie wszystko, czego używasz, jest podpisane, niepodpisany plik binarny nawiązujący pierwsze połączenie to najbardziej użyteczny pojedynczy alert, jaki zapora może podnieść. Surowsze tryby bezpieczeństwa FireAI, Paranoiczny i Pod atakiem, blokują niepodpisane aplikacje wprost.
- Adresy na publikowanych listach blokujących: Spamhaus opisuje swoją listę DROP jako zakresy tak niebezpieczne, że udostępnia je bezpłatnie każdemu, kto chce tej warstwy ochrony; FireHOL agreguje i dokumentuje publiczne źródła IP skupione na atakach i nadużyciach; abuse.ch prowadzi społecznościowe platformy informacji o zagrożeniach. FireAI stosuje te źródła lokalnie, jako ogólnosystemowe listy blokowania IP, nie wysyłając twojego ruchu nikomu.
Filtrowanie DNS, uczciwie
DNS to miejsce, w którym żyje wiele produktów do filtrowania sieci, więc uczciwie jest zapytać, gdzie stoi FireAI. Dziś FireAI filtruje na samym połączeniu: stosuje źródła informacji o zagrożeniach i listy blokowania IP do adresów, do których twoje aplikacje faktycznie docierają, a reguły per aplikacja mogą dopasować nazwę hosta lub domeny. Czego jeszcze nie robi, to działanie jako twój resolver DNS lub oferowanie własnego szyfrowanego DNS; to jest planowane i wolimy to powiedzieć, niż sugerować. Jest tu praktyczna konsekwencja do zrozumienia. Szyfrowany DNS, określony jako DNS over TLS w RFC 7858 i DNS over HTTPS w RFC 8484, i obsługiwany ogólnosystemowo na macOS od sesji Apple na WWDC 2020 o włączaniu szyfrowanego DNS, ukrywa twoje zapytania przed każdym na ścieżce sieciowej. To dobre dla prywatności, a jednocześnie oznacza, że filtr obserwujący tylko zapytania DNS ślepnie, gdy przeglądarka używa własnego resolvera DoH. Filtr działający na adresie docelowym nadal widzi połączenie, bo aplikacja nadal musi je otworzyć. Żadne z podejść nie jest samo w sobie kompletne, dlatego uczciwym stanowiskiem jest „oba, z czasem”, a nie twierdzenie, że jedno zastępuje drugie.
Praktyczna rutyna
Nie musisz obserwować sieci cały dzień. Wykonalna rutyna to trzy minuty raz w tygodniu: otwórz listę połączeń FireAI, przejdź przez nią aplikacja po aplikacji i przyjrzyj się tym, których nie rozpoznajesz. Sprawdź firmę i kraj za wszystkim nowym. Napisz regułę dla tego, co zdecydujesz, byś nigdy nie przeglądał tego samego połączenia dwa razy, i od czasu do czasu eksportuj reguły, by nowy Mac zaczynał od twoich decyzji, a nie od zera. Darmowe narzędzia zawsze będą pod ręką, gdy zechcesz surowego widoku; zapora per aplikacja jest tym, co czyni ten widok czymś, na czym można działać.
Jaką rolę odgrywają FireAI i HisnLabs
lsof and nettop will show you a snapshot; what they cannot do is stop a connection, remember your decision, or tell you in plain words which company and country sit behind an IP address — and that gap is exactly the one FireAI was built to fill.
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ę Autopilot) 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.
