Eksfiltracja danych to etap, w którym dane, które powinny były pozostać na komputerze, trafiają gdzie indziej. MITRE ATT&CK, publiczna baza wiedzy o zachowaniach atakujących utrzymywana przez MITRE, poświęca jej osobną taktykę, TA0010, i definiuje ją w jednym zdaniu: „The adversary is trying to steal data”. Wszystko, co następuje wcześniej, od fałszywego instalatora po zatrutą instrukcję przekazaną agentowi AI, ma dla ofiary znaczenie głównie ze względu na ten moment. Ten artykuł wyjaśnia, jak przebiega eksfiltracja na Macu, które techniki katalogizuje MITRE, dlaczego trudno ją dostrzec i które sygnały sieciowe nadal ją zdradzają.
Zebranie, przygotowanie, wysłanie
Eksfiltracja rzadko jest pojedynczym działaniem. MITRE opisuje sekwencję. Dane są najpierw zbierane, na przykład z pęku kluczy (Keychain), który, jak odnotowuje technika ATT&CK T1555.001, „przechowuje nazwy kont, hasła, klucze prywatne, certyfikaty, wrażliwe dane aplikacji, dane płatnicze i bezpieczne notatki”. Następnie są często gromadzone w lokalnym folderze (T1074.001) oraz kompresowane lub szyfrowane (T1560); w sformułowaniu MITRE „przeciwnik może skompresować i/lub zaszyfrować dane zebrane przed eksfiltracją”, co zmniejsza ich rozmiar i utrudnia ich inspekcję w drodze na zewnątrz. Dopiero wtedy są wysyłane. Każdy krok odbywa się na Macu, ale tylko ostatni musi przejść przez sieć, i dlatego to w sieci eksfiltracja jest widoczna najbardziej konsekwentnie.
Techniki wymienione w MITRE ATT&CK
Taktyka Exfiltration obejmuje obecnie dziewięć technik. Różnią się głównie wykorzystywanym kanałem, a kilka z nich ma podtechniki dla określonych miejsc docelowych.
| ID | Technika | Znaczenie w praktyce |
|---|---|---|
| T1041 | Exfiltration Over C2 Channel | Dane wychodzą tym samym połączeniem, którym atakujący już wysyła polecenia. |
| T1048 | Exfiltration Over Alternative Protocol | Inny protokół lub miejsce docelowe niż kanał poleceń, szyfrowane lub nie (od T1048.001 do .003). |
| T1567 | Exfiltration Over Web Service | Uprawniona usługa: repozytorium kodu (.001), magazyn w chmurze (.002), serwis do przechowywania tekstu (.003), webhook (.004). |
| T1029 | Scheduled Transfer | Wysyłanie w ustalonych porach, aby wtopić się w zwykłą aktywność. |
| T1030 | Data Transfer Size Limits | Wysyłanie w porcjach o stałym rozmiarze, aby pozostać poniżej progów alertów. |
| T1020 | Automated Exfiltration | Automatyczne wysyłanie natychmiast po zebraniu danych; T1020.001 obejmuje duplikowanie ruchu. |
| T1011 | Exfiltration Over Other Network Medium | Inne medium niż główne połączenie, na przykład Bluetooth (T1011.001). |
| T1052 | Exfiltration Over Physical Medium | Nośnik wymienny, na przykład pamięć USB (T1052.001). |
| T1537 | Transfer Data to Cloud Account | Przeniesienie danych na inne konto w tej samej usłudze chmurowej. |
Infostealery: eksfiltracja jako jedyny cel
Na prywatnych Macach najczęstszymi programami zbudowanymi wokół eksfiltracji są infostealery: oprogramowanie, które zbiera hasła, dane przeglądarki i pliki, a następnie wysyła je na serwer. Wpis MITRE dotyczący Cuckoo Stealer (S1153), programu dla macOS o cechach oprogramowania szpiegującego i infostealera, opisanego przez Kandji i SentinelOne w 2024 roku, pokazuje ten schemat krok po kroku. Program zbiera zakładki, pliki cookie i historię Safari (T1217), kopiuje pliki pęku kluczy (T1555.001), prosi o hasło użytkownika za pomocą podrobionych okien systemowych (T1056.002), wykonuje zrzuty ekranu wbudowanym poleceniem screencapture (T1113), gromadzi wyniki lokalnie (T1074.001), a na koniec wysyła informacje o systemie i przechwycone hasła do swojego serwera poleceń (T1041). MITRE wymienia tę samą technikę eksfiltracji dla innych rodzin złośliwego oprogramowania dla macOS, w tym MacMa, XCSSET, ThiefQuest i LightSpy. Nasz artykuł o Atomic Stealer szczegółowiej omawia inny infostealer dla macOS.
Ostatni krok jest jedynym, który wymaga internetu, i zwykle trwa kilka sekund. Zanim cokolwiek innego na Macu zacznie wyglądać nietypowo, dane już zostały wysłane, dlatego wykrywanie musi obserwować połączenia wychodzące, a nie czekać na widoczne objawy.
Dlaczego trudno ją zauważyć
Opis techniki Exfiltration Over Web Service (T1567) w MITRE dobrze wyjaśnia tę trudność. Popularne usługi zapewniają kamuflaż, ponieważ „hosty w sieci już się z nimi komunikują przed kompromitacją”, „mogą już istnieć reguły zapory zezwalające na ruch do tych usług”, a dostawcy ci „zwykle stosują szyfrowanie SSL/TLS, co daje przeciwnikom dodatkowy poziom ochrony”. Wysyłanie danych do znanej usługi przechowywania w chmurze przez HTTPS wygląda z zewnątrz jak kopia zapasowa. Zaplanowane transfery (T1029) i porcje o stałym rozmiarze (T1030) idą dalej i celowo naśladują rytm zwykłego ruchu. Zapora filtrująca wyłącznie połączenia przychodzące, taka jak wbudowana w macOS, nie odgrywa tu żadnej roli, ponieważ każdy z powyższych kanałów eksfiltracji zaczyna się na Macu.
Agenci AI: nowa droga do tego samego wyniku
Agenci AI na Macu, tacy jak asystenci programistyczni, którzy czytają pliki, uruchamiają polecenia i otwierają połączenia, tworzą drogę, która nie wymaga zainstalowanego infostealera. OWASP Gen AI Security Project definiuje pośrednie wstrzykiwanie promptów (indirect prompt injection) jako sytuację, w której model „przyjmuje dane wejściowe ze źródeł zewnętrznych, takich jak strony internetowe lub pliki”, i podaje scenariusz eksfiltracji: użytkownik prosi model o streszczenie strony, której ukryte instrukcje każą mu wstawić odnośnik do obrazu pod zewnętrznym adresem, tak że wczytanie obrazu przenosi prywatną rozmowę pod ten adres. Agent, który może też uruchomić curl lub wywołać webhook, zamienia ten sam zabieg w wysłanie pliku. W kategoriach ATT&CK wynikiem jest nadal T1567 lub T1048; zmienił się tylko punkt wyjścia, z instalatora na zdanie przeczytane przez agenta. To, jak FireAI rozpoznaje samych agentów, omawia osobny artykuł.
Sygnały, które ją zdradzają
Wytyczne MITRE dotyczące wykrywania tych technik wracają do tych samych oznak sieciowych. Dla T1041 wskazują procesy, które zwykle generują niewielki ruch, ale nagle wysyłają dużą ilość danych, oraz szyfrowane połączenia „z rzadkimi zewnętrznymi miejscami docelowymi lub o nietypowych proporcjach bajtów”. Dla T1567 dodają procesy, które „zwykle nie inicjują komunikacji sieciowej, a nagle otwierają wychodzące połączenia HTTPS z wysokim stosunkiem danych wysyłanych do odbieranych”. Dla T1030 i T1029 sugerują szukanie jednolitych rozmiarów danych w regularnych odstępach oraz zadań LaunchAgent lub launchd, które wysyłają dane do tego samego miejsca docelowego według harmonogramu. W przełożeniu na pojedynczego Maca większość z tego obejmują cztery kwestie: czy aplikacja łączy się z miejscem docelowym, z którego nigdy wcześniej nie korzystała; czy wysyła znacznie więcej niż zwykle; czy wysyła znacznie więcej, niż odbiera; oraz czy robi to według zegara.
Ręczne sprawdzanie za pomocą nettop
macOS zawiera nettop, który raportuje wykorzystanie sieci przez poszczególne procesy. Z opcją -P pokazuje jeden wiersz na proces, -L 1 wypisuje pojedynczą próbkę w formacie rozdzielanym przecinkami, a -J ogranicza kolumny. Wartości są sumami od uruchomienia każdego procesu, więc pojedyncze wywołanie pokazuje, kto wysłał najwięcej, a nie kto wysyła w tej chwili; aby zobaczyć zmianę, uruchom je dwukrotnie w odstępie minuty i porównaj wyniki.
# bytes received and sent by each process, one sample
nettop -P -L 1 -J bytes_in,bytes_out
,bytes_in,bytes_out,
launchd.1,0,0,
syslogd.634,0,422,
apsd.640,5506,23880,
...Proces, którego liczba wysłanych bajtów znacznie przewyższa liczbę odebranych i po którym nie spodziewasz się wysyłania czegokolwiek, zasługuje na bliższe przyjrzenie się. Ograniczenia są oczywiste: nettop nie mówi, dokąd trafiły dane, nie przechowuje historii i nie zaalarmuje Cię, gdy nie patrzysz.
Co oznacza FireAI
FireAI, zapora sieciowa działająca na urządzeniu, rozwijana przez HisnLabs, mierzy w sposób ciągły dwie z tych kwestii i pyta o trzecią. Co sekundę sumuje, ile danych Mac wysyła do każdego kraju. Kraj jest oznaczany jako skok wysyłanych danych, gdy w ciągu ostatnich 10 sekund otrzymał co najmniej 5 MB i co najmniej dziesięciokrotność swojej zwykłej ilości: przesuwa się na górę listy mapy świata, wyróżniony na czerwono wraz z prędkością wysyłania, ikona na pasku menu pokazuje strzałkę i kod kraju, a ekran Home zmienia stan. Skok pozostaje oznaczony przez minutę po zakończeniu, a wysyłanie, które po prostu trwa dalej, na przykład kopia zapasowa, po kilku minutach staje się nową normą. FireAI nie blokuje skoku samodzielnie; pokazuje, które aplikacje i miejsca docelowe za nim stoją, abyś mógł podjąć decyzję.
W przypadku agentów AI Agent profile przez trzy dni uczy się, z czym zwykle łączy się każdy z 19 agentów rozpoznawanych przez FireAI. Następnie pierwsze w historii miejsce docelowe jest oznaczane do przeglądu, podobnie jak godzina, w której agent wysłał co najmniej czterokrotność swojej dotychczas najbardziej obciążonej godziny i nigdy mniej niż 25 MB. W trybie bezpieczeństwa Agent profile nowe miejsce docelowe jest blokowane, dopóki na nie nie zezwolisz. Poza agentami pytanie o połączenie obejmuje nowe miejsca docelowe każdej aplikacji: gdy aplikacja po raz pierwszy próbuje połączyć się z miejscem bez reguły, FireAI wstrzymuje to połączenie i pyta. Wszystko to działa wyłącznie na metadanych, nazwach hostów i liczbie bajtów; FireAI nie czyta zawartości połączeń.
Krótka lista kontrolna
- Ustal, które aplikacje na Twoim Macu powinny wysyłać dane, takie jak aplikacje do kopii zapasowych, synchronizacji i rozmów wideo, a wysyłanie przez inne traktuj jako powód do sprawdzenia.
- Zwracaj uwagę na miejsca docelowe pojawiające się po raz pierwszy, zwłaszcza w przypadku narzędzi wiersza poleceń i agentów AI.
- Porównuj bajty wysłane i odebrane przez poszczególne procesy; wysoki stosunek danych wysyłanych do odbieranych wymaga sprawdzenia.
- Przeglądaj LaunchAgents i rzeczy otwierane przy logowaniu w poszukiwaniu nierozpoznanych zadań, ponieważ zaplanowane transfery wymagają czegoś, co je zaplanuje.
- Przyznawaj agentom AI tylko te foldery i tokeny, których potrzebują, a ich miejsca docelowe w sieci ograniczaj do znanej listy.
Jaką rolę odgrywają FireAI i HisnLabs
Eksfiltracja musi przejść przez sieć i właśnie tam obserwuje FireAI: nowe miejsca docelowe, wysyłki według kraju i według agenta, wyłącznie na Twoim Macu. Wypróbuj bezpłatnie przez 17 dni.
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.
