Czy to był insider? Jak analizować logi i uprawnienia po podejrzanej aktywności

0
3
Rate this post

Nawigacja:

Szybkie rozpoznanie sytuacji: co wiesz, czego nie wiesz

Jeśli pojawiła się podejrzana aktywność i pada pytanie: „czy to był insider?”, napięcie rośnie przede wszystkim przez niepewność. Ktoś mógł wykorzystać prawdziwe konto pracownika, ktoś mógł nadużyć przydzielonych ról, a może to błędna konfiguracja. Zanim zaczniesz grzebać w SIEM-ie, zatrzymaj się i odpowiedz na kilka pragmatycznych pytań. To skraca czas analizy nawet o połowę i ogranicza ryzyko błędnych wniosków.

  • Co dokładnie jest „podejrzane”? Konkretny plik, operacja, logowanie, transfer, zmiana uprawnień?
  • Kiedy to się stało i w jakim oknie czasowym mogła zajść aktywność towarzysząca? Minuty, godziny, dni?
  • Jakie konta i systemy są potencjalnie w zasięgu (AD, M365/Google, VPN, CRM, serwery plików, bazy danych, chmura)?
  • Czy istnieje ryzyko, że to legalny proces biznesowy wygląda dziwnie w logach (np. masowa migracja danych, backup, audyt wewnętrzny)?
  • Czy są sygnały kompromitacji kont (alerty EDR/IdP, nietypowe logowania, reset haseł, tokeny sesji)?
  • Jak długo przechowujecie logi i z których źródeł możesz je mieć „od ręki”?

Najczęstsza obawa: „Nie mamy pełnych danych, więc i tak nic nie udowodnimy”. To pułapka. W praktyce wystarcza kilka dobrze dobranych źródeł: logi tożsamości (AD/IdP), logi dostępu do danych (SharePoint/serwer plików), sieć (VPN/proxy), oraz telemetria endpoint (EDR). Z nich da się złożyć wiarygodną oś czasu i ocenić, czy zachowanie przypomina wewnętrznego sprawcę.

1) Ustal oś czasu i zabezpiecz dowody, zanim „uciekną”

Zamrożenie źródeł: priorytety i retencja

Pierwszy krok to zabezpieczenie logów i artefaktów, zanim rotacja lub automatyczne czyszczenie je usunie. Zacznij od najbardziej ulotnych:

  • IdP/SSO (Azure AD/Microsoft Entra, Okta, Google Workspace): logowania, MFA, zmiany uprawnień, rejestracje urządzeń.
  • EDR/antywirus: alerty, procesy, skrypty, działania użytkownika.
  • Proxy/NGFW/VPN: połączenia wychodzące, sesje, geolokacja IP, anomalie protokołów.
  • Serwery plików/SharePoint/OneDrive/Google Drive: operacje na plikach (odczyt, eksport, synchronizacja, sharing).
  • Poczta i komunikatory: wysyłka dużych załączników, forwarding reguł, łącza do chmur publicznych.

Jeśli masz SIEM, zrób snapshot indeksów/wiązek danych z ostatnich 30–90 dni. Na hostach krytycznych wykonaj triage: kopia dzienników systemowych, historia PowerShell/bash, harmonogram zadań, profile przeglądarek (historia pobrań) oraz artefakty USB. Zadbaj o łańcuch dowodowy: notuj, co i kiedy skopiowano, z jakiego systemu, z jakim skrótem kontrolnym.

Budowa osi czasu: minimalny zestaw korelacji

Oś czasu powinna łączyć tożsamość, urządzenie, źródło danych i sieć. Minimalny szkielet:

  • Logowanie do IdP/AD (kto, kiedy, skąd, wynik MFA), następnie logowanie do VPN (IP, urządzenie, czas trwania).
  • Aktywność endpoint (uruchomione procesy, skrypty, dostęp do kluczy, sesje RDP/SSH).
  • Operacje na danych (kto, gdzie, ile plików, jaka metoda – sync/export/share).
  • Ruch wychodzący (proxy/firewall): wielkość transferu, docelowe domeny/ASN, porty, protokoły.

Jeśli nie masz pełnego łańcucha, utrwal „kotwice” czasowe (np. 10:14 – zmiana grupy w AD, 10:17 – logowanie VPN, 10:21 – eksport CSV z CRM), a luki wypełnij hipotezami i testuj je przeciw pozostałym danym.

Przykładowe minimum operacyjne

  • Włącz w SIEM time bounding: zakres T-48h do T+24h dla wszystkich powiązanych kont/hostów.
  • Eksportuj zdarzenia tożsamości i operacji na plikach do osobnego repo (immutable storage).
  • Przypisz sprawę w systemie ticketowym z checklistą źródeł i osobą odpowiedzialną za każdą domenę (IdP, EDR, sieć, dane).

2) Korelacja logów: skąd weszli, co zrobili, dokąd wyszli

Tożsamość i dostępy: AD, SSO, VPN, RADIUS

Pozorna normalność logowania jest typowa dla insideryzowanych incydentów: poprawne hasło, znane urządzenie, lokalne IP. Dlatego szukaj niuansów:

  • Nietypowe godziny (np. 03:12 dla stanowiska 8–16), ale uwzględnij zmiany i pracę zdalną.
  • Nagłe wyłączenie lub „downgrade” polityk MFA, rejestracja nowego „kompatybilnego” urządzenia.
  • Równoległe sesje z dwóch odległych lokalizacji (Impossible Travel) lub „policy bypass” w IdP.
  • Sesje VPN bez ruchu przez kilka minut, a potem gwałtowny transfer – często preludium do eksportu danych.

Operacje systemowe: Windows, Linux, MDM

Na Windows zbieraj identyfikatory zdarzeń m.in. 4624/4625 (logon), 4634 (logoff), 4672 (special privileges), 4728–4732 (zmiany grup), 4688 (procesy), 4104 (PowerShell), 7045 (instalacja usługi). Na Linux: auditd (execve, chmod, chown), auth.log (logins, sudo), cron, bash_history. Do tego Sysmon (nowe połączenia wychodzące, uruchamianie narzędzi archiwizacji typu 7z/rar).

Łącz procesy z ruchem sieciowym: jeśli w tym samym czasie PowerShell wykonuje Invoke-WebRequest, a proxy notuje ściąganie pliku z nowej domeny, to masz spójny obraz. Insider rzadziej korzysta z narzędzi ofensywnych; częściej używa narzędzi natywnych: export w aplikacji, synchronizacja folderu, Excel PowerQuery, skrypty PS do zrzutu danych.

Dostęp do danych: systemy plików, chmura, bazy

Najmocniejszym dowodem intencji bywa sekwencja operacji na zasobach:

  • SharePoint/OneDrive/Google Drive: masowe pobrania, „download all”, tworzenie linków „Anyone with the link”, dodanie prywatnego maila jako „gościa”.
  • Transakcje i eksporty: nie tylko „pobierz plik”

  • Serwery plików/NAS: zdarzenia 4663 (Object Access) z wzorcem masowych odczytów bez modyfikacji, sesje SMB z jednego hosta skanujące wiele katalogów, użycie narzędzi typu robocopy/7z (często w Sysmonie jako nowy proces).
  • Bazy danych: długie zapytania SELECT/UNLOAD, polecenia EXPORT/OUTFILE, niecodzienny client_app_name/user agent, logowania poza typowym łańcuchem (np. konto aplikacyjne użyte interaktywnie z innego hosta).
  • CRM/ERP: masowe raporty i eksporty CSV poza cyklem biznesowym, nagły skok wywołań API read-only, tworzenie tymczasowych widoków pod „zrzut danych”.
  • Integracje/SFTP/ETL: zapisy do zewnętrznych „dropów” poza harmonogramem, tworzenie nowych konektorów lub przekierowanie istniejących na nieznane adresy.
  • Poczta i komunikatory: reguły przekierowań, archiwizacja korespondencji na prywatny adres, udostępnianie plików w kanałach z gośćmi spoza domeny, wysyłka archiwów do publicznych chmur.

Krótki test praktyczny: jeśli w 15–30 minutach od logowania widzisz przygotowanie danych (filtrowanie, łączenie, eksport), a potem jednolity, duży transfer na zewnątrz – to sygnał bardziej „insiderski” niż losowy malware.

Ciche kanały wynoszenia i jak je złapać bez polowania na czarownice

  • Chmury prywatne i webmail: domeny typu drive/drop/mail z nietypowym referrerem organizacyjnym – skojarz z procesami przeglądarki użytkownika i wielkością uploadu w proxy.
  • Nośniki fizyczne: zdarzenia podłączenia USB, instalacja sterowników, wzorzec „kompresuj → kopiuj” w krótkim oknie czasu.
  • Zrzuty ekranu i druk: nagłe użycie narzędzi do snippingu, duże kolejki drukarki po godzinach, druk w lokalizacjach odległych od zwyczajowych.

Jeśli polityka prywatności ogranicza monitoring, trzymaj się metadanych: wolumen, kierunek, kontekst czasu. To wystarcza do decyzji operacyjnej bez nadmiernego wglądu w treść.

3) Sprawdź uprawnienia: co przyznano vs. co realnie użyto

Insider rzadko prosi o „roota”. Częściej wykorzystuje nagromadzone uprawnienia lub stare role projektowe. Kluczem jest porównanie uprawnień efektywnych z ich użyciem w incydencie.

  • Wylistuj efektywne role i grupy (w tym zagnieżdżone) dla kont(a) i hosta. W AD: transitive group membership; w SaaS: roleAssignments/Group-based Access.
  • Ustal „kto nadał i kiedy”: zmiany w IdP/AD, ticket, approval w narzędziu IGA. Szukaj samonadania, proxy-approvala i przyznań „na stałe” zamiast JIT.
  • Porównaj użycie vs. przyznanie: które przywileje były użyte w oknie T i czy odbiegają od 30-dniowej normy (np. dostęp do obszaru finansowego u osoby z marketingu).
  • Zidentyfikuj ścieżki eskalacji: lokalny admin na stacji, dostępy do „breakglass”, rola właściciela w pojedynczym zespole, która daje szerokie dziedziczenie.
  • Nie pomiń kont serwisowych: jeżeli logowały się interaktywnie lub z nowego hosta, to czerwone światło – ktoś mógł je „pożyczyć”.

Przykład krótkiej weryfikacji: użytkownik A eksportuje dane z CRM. Audit pokazuje, że rola „Report Exporter” została nadana 12 dni temu przez menedżera projektu bez daty wygaśnięcia. W tym samym czasie brak innych użyć tej roli poza incydentem – mocny sygnał do cofnięcia i przeglądu ścieżki nadania.

4) Od hipotezy do werdyktu: czy zachowanie wygląda na insidera

Zamiast szukać „dymiącego pistoletu”, oceń ciężar dowodów. Ułóż krótką macierz i próbuj własną hipotezę obalić.

  • Znajomość struktury i nazewnictwa: szybkie nawigowanie po „ukrytych” lokalizacjach, użycie właściwych filtrów i raportów – plus dla insidera.
  • Użycie narzędzi biznesowych zamiast hakerskich: eksporty w UI, PowerQuery, natywne API – plus dla insidera.
  • Timing i kontekst: działania tuż przed zmianą pracy, po odrzuceniu wniosku o dostęp, w trakcie sporu – wzmaga podejrzenie, ale nie jest dowodem samym w sobie.
  • Artefakty kompromitacji: nowe urządzenie, nietypowa geolokacja, alerty EDR – przechylają szalę ku zewnętrznemu atakowi.
  • Ślad eskalacji: próby zgadywania haseł, enumeracja, skanowanie portów – rzadziej u insidera, częściej u intruza.

Praktyczna zasada: jeśli co najmniej trzy sygnały wskazują na intencjonalne użycie legalnych dostępów i brak jest oznak kompromitacji konta/urządzenia, traktuj scenariusz jako wewnętrzny do czasu obalenia tej tezy.

5) Działaj ostrożnie: ogranicz ryzyko bez psucia dowodów

Naturalny odruch to „wyłączmy konto”. Zanim to zrobisz, zabezpiecz ciągłość śledztwa i biznesu.

  • Szybkie bezpieczniki: wymuś ponowną weryfikację MFA i revoke sessions w IdP, ale nie usuwaj tokenów z SIEM – zrób ich snapshot.
  • Ogranicz powierzchnię, nie odcinaj wszystkiego: zdejmij role wysokiego ryzyka, zawęź Conditional Access do zaufanych lokalizacji, zablokuj udostępnienia „Anyone with the link”.
  • Włącz „ciche” logowanie rozszerzone: pełne audyty na docelowych repozytoriach, DLP w trybie monitorowania, alerty bez powiadamiania użytkownika.
  • Honeydoki i znaczniki: pliki-kanarki w krytycznych folderach, unikatowe nazwy, które wyłapią dalsze próby eksfiltracji.
  • Mailbox snapshot/produktywnie: pojedyncze wyszukiwanie eDiscovery po słowach kluczowych i załącznikach, zamiast pełnej blokady skrzynki.

Mini-przykład: zamiast blokować konto analityka, zdejmij mu rolę właściciela zespołu finansowego i wyłącz linki „publiczne” w danej przestrzeni. Jednocześnie włącz alert na utworzenie nowego łącza udostępnienia i masowy download.

Czy to był insider? Jak analizować logi i uprawnienia po podejrzanej aktywności
Źródło: Pexels | Autor: Nikolai Kolosov

6) Eskalacja poza SOC: kiedy włączyć HR/Legal i jak nie spalić sprawy

Nie każda anomalia to sprawa kadrowa. Decyzję podeprzyj kryteriami i minimalną ekspozycją danych osobowych.

  • Włącz HR/Legal, gdy: doszło do realnego wycieku danych wrażliwych/klienckich, masz sekwencję działań wskazującą na intencję, istnieje ryzyko dalszej szkody lub wymagają tego przepisy/umowy.
  • Wstrzymaj eskalację, gdy: dominują sygnały kompromitacji technicznej lub istnieje silna hipoteza legalnego procesu (np. migracja), której jeszcze nie zweryfikowano w biznesie.
  • Materiał do przekazania: oś czasu, źródła i skróty kontrolne, opis uprawnień użytych vs. przyznanych, ocena wpływu. Bez zbędnych szczegółów treści danych.
  • Tryb komunikacji: jedna nitka, kontrola dostępu do sprawy, jasno określone działania (np. zawieszenie roli, rozmowa wyjaśniająca, powiadomienie regulatora).

7) Najczęstsze błędy w śledztwach insiderskich i jak je naprawić

  • Rozjechane czasy i strefy
    Wyjaśnienie: logi z różnych źródeł mają inne strefy i opóźnienia NTP. Oś czasu „pęka”.
    Praktyka: normalizuj do UTC i dodaj kolumnę „source_time_offset”.
    Przykład: proxy raportuje upload o 10:03 CET, a Sysmon proces 7z o 09:03 UTC – bez normalizacji wnioski będą sprzeczne.
  • Mylenie użytkownika z urządzeniem
    Wyjaśnienie: jeden host bywa współdzielony (VDI, jumpbox), a adresy publiczne – NAT-owane.
    Praktyka: koreluj po sessionID/LogonID i tokenach OAuth zamiast tylko po IP/hostname.
    Przykład: dwa konta z tej samej stacji, ale różne LogonID – inny scenariusz ryzyka.
  • Ślepa wiara w „download = kradzież”
    Wyjaśnienie: synchronizacja klienta (OneDrive/Drive) potrafi generować tysiące odczytów bez intencji użytkownika.
    Praktyka: odróżniaj API „sync” od „export”, zestawiaj z interakcją UI lub procesem kompresji.
    Przykład: ciąg FileSyncDownloaded bez FileDownloaded (UI) i bez 7z/rar – bliżej automatu niż eksfiltracji.
  • Pominięcie kontekstu biznesowego
    Wyjaśnienie: masowy eksport mógł być częścią migracji lub audytu.
    Praktyka: sprawdź kalendarz projektowy, CR/Change, JIRA – zanim zadzwonisz do HR.
    Przykład: duży SELECT w ERP w oknie „data cut” – zbieżność z harmonogramem rozwiewa wątpliwości.
  • Brak spojrzenia na łańcuch uprawnień
    Wyjaśnienie: rola przyznana przez grupę zagnieżdżoną bywa niewidoczna w prostym widoku.
    Praktyka: użyj zapytań transitive membership i snapshotuj stan ról w momencie incydentu.
    Przykład: dostęp „pośredni” przez zespół archiwalny z 2019 r. – typowa pułapka.
  • Niedoszacowanie „cichych” kanałów
    Wyjaśnienie: klipbord w przeglądarce, snipping, druk – często poza radarem DLP treściowym.
    Praktyka: monitoruj wolumen i wzorzec czynności (snip → print → USB), nie samą treść.
  • Zbyt szybkie odcięcie
    Wyjaśnienie: kasujesz sesje i tracisz szansę na kontynuację obserwacji i pełną oś czasu.
    Praktyka: najpierw snapshot artefaktów (tokeny, procesy, linki udostępnień), dopiero potem ograniczenia celowane.

8) Szybkie korelacje, które zawężą hipotezę w 15 minut

  • Oś czasu użytkownika w oknie T±30 min
    Cel: czy działania są spójne i celowe.
    Jak: połącz logon/logoff (4624/4634), procesy (4688/Sysmon), proxy/DNS, audyty chmury (FileDownloaded/SharingLinkCreated).
    Przykład: 09:12 logon, 09:14 otwarcie CRM, 09:21 eksport, 09:25 7z, 09:28 upload do nowej domeny – ciąg wskazuje na intencję.
  • „Masówka bez edycji” na plikach
    Cel: odróżnić przeglądanie od kopiowania hurtowego.
    Jak: agreguj 4663 (Read) po użytkowniku i ścieżce, licz unikalne pliki i brak Write/Delete.
    Przykład: 10k odczytów w 12 min, 0 modyfikacji – sygnał do weryfikacji eksportu.
  • Udostępnienia „Anyone with the link” vs. pobrania
    Cel: wykryć furtki do późniejszej eksfiltracji.
    Jak: koreluj SharePoint/Drive: SharingSetLink → FileDownloaded spoza korp-sieci w 24 h.
    Przykład: link publiczny o 16:05, pobranie z LTE o 19:40 – wzorzec przygotowania i wyniesienia.
  • PowerShell + ruch wychodzący
    Cel: odsiać automaty od skryptowej eksfiltracji.
    Jak: Sysmon ProcessCreate (powershell.exe) z parametrami web/zip + proxy z domeną nową dla użytkownika w 90 dniach.
    Przykład: Add-Type + Invoke-WebRequest + domena nieobecna w historii – rośnie prawdopodobieństwo nadużycia.
  • USB + archiwizacja
    Cel: potwierdzić kopiowanie na nośnik.
    Jak: zdarzenia podłączenia urządzenia + proces 7z/rar/robocopy + duży wolumen odczytów w krótkim oknie.
    Przykład: 3 min po wpięciu pendrive – 7z tworzy archiwum 2 GB, a NAS raportuje skok odczytów.

9) Co zabezpieczyć jako dowód, żeby przetrwało audyt

  • Oś czasu z odwołaniem do źródeł
    Zawartość: zdarzenie, źródło, timestamp UTC, korelacja (sessionID/RequestId), skrót kontrolny wyeksportowanego pliku logów.
  • Snapshot uprawnień
    Zawartość: członkostwo w grupach (zagnieżdżone), role w SaaS, polityki Conditional Access – z datą i podpisem systemowym.
  • Artefakty sesyjne
    Zawartość: tokeny OAuth (metadane), listy aktywnych sesji, wpisy rejestru przeglądarek dot. pobrań/udostępnień.
  • Konfiguracje repozytoriów docelowych
    Zawartość: ustawienia współdzielenia, lista linków publicznych, reguły DLP/retencji obowiązujące w chwili zdarzenia.
  • Minimalna dokumentacja łańcucha dowodowego
    Zawartość: kto, kiedy, co skopiował/wyeksportował, gdzie przechowano, hash plików, kontrola dostępu do paczki.
Czy to był insider? Jak analizować logi i uprawnienia po podejrzanej aktywności
Źródło: Pexels | Autor: StockRadars Co.,

10) Po incydencie: trwałe zabezpieczenia, które nie blokują pracy

  • Role na czas (JIT) i najmniejsze uprawnienia
    Sens: wygaszanie „starych” ról projektowych bez ręcznego polowania.
    Przykład: rola „Exporter” tylko na 2 godziny z automatycznym wygaśnięciem i uzasadnieniem w IGA.
  • Udostępnianie z automatycznym terminem
    Sens: linki publiczne wygasają same, a właściciel dostaje przypomnienie.
    Przykład: polityka: max 7 dni, brak opcji „Anyone” dla danych oznaczonych „Restricted”.
  • DLP w trybie coachingowym
    Sens: sygnał ostrzegawczy zamiast natychmiastowej blokady – mniej eskalacji, więcej zgodności.
    Przykład: baner przy próbie eksportu >10k rekordów z CRM + alternatywa: „poproś o dataset w bezpiecznym buforze”.
  • Telemetria „przed treścią”
    Sens: wolumen, kierunek, nowe domeny – skuteczne nawet przy szyfrowaniu i prywatności.
    Przykład: alert na łączny upload >500 MB do nieznanej domeny w 1 h z jednego przeglądarkowego procesu.
  • Kanarki i znaczniki
    Sens: szybkie wykrycie ciekawskich – bez dotykania treści.
    Przykład: plik „Cennik_Q4_confidential.xlsx” z webhookiem – każde otwarcie poza siecią generuje powiadomienie.

11) Decyzja operacyjna: domknąć, poszerzyć, czy przekazać dalej

  • Domknij w SOC – gdy: masz spójny ciąg zdarzeń, brak artefaktów kompromitacji, wolumen i kanał zostały ograniczone, a ryzyko resztkowe jest kontrolowane. Działania: cofnięcie zbędnych ról, wygaszenie linków, obserwacja przez 7–14 dni.
  • Poszerz technicznie – gdy: są luki w osi czasu, spór co do tożsamości sesji, wątpliwości co do integralności logów. Działania: dodatkowe zrzuty pamięci/dysków, pełne eksporty audytów chmurowych, korekta czasu i ponowna korelacja.
  • Przekaż do HR/Legal – gdy: potwierdzona eksfiltracja danych wrażliwych lub wyraźna intencja obejścia zasad, a działania prewencyjne nie zatrzymają szkody. Działania: ograniczenie dostępu celowane, formalna notyfikacja, zabezpieczenie dowodów zgodnie z procedurą.

12) Wskaźniki intencji: jak odróżnić błąd od działania celowego

  • Przygotowanie narzędzi „tuż przed”
    Wyjaśnienie: instalacja 7z/WinSCP/portabla lub skryptów chwilę przed eksportem zwykle nie jest przypadkiem.
    Praktyka: koreluj ProcessCreate/AMSI z pobraniami EXE/ZIP z mirrorów i parametrami CLI.
    Przykład: 09:18 pobranie 7z.exe do %Temp%, 09:22 uruchomienie z -mx=0 i -v100m – sygnał planu na szybki podział archiwum.
  • Optymalizacja transferu
    Wyjaśnienie: dzielenie archiwum, wyłączanie kompresji, throttle – to sygnały świadomego działania, nie „kliknięcia za dużo”.
    Praktyka: szukaj parametrów typu -v, –limit-rate, –continue i nagłych serii POST/PUT o stałej wielkości.
    Przykład: 60 żądań po ~100 MB do nowej domeny w 7 minut – bardziej skrypt niż zwykłe wgrywanie pliku.
  • Omijanie polityk
    Wyjaśnienie: tryb prywatny, portable browser, niestandardowe user-agenty czy własny DNS to sygnał „chcę minąć kontrolę”.
    Praktyka: alertuj, gdy użytkownik przełącza się z korp-przeglądarki do prywatnej w 5–10 min przed transferem.
    Przykład: EDGE-Corp wygaszony, uruchomienie FirefoxPortable z katalogu Downloads i po chwili upload poza CASB.
  • Ukrywanie śladów
    Wyjaśnienie: czyszczenie historii, kasowanie artefaktów, wyłączanie logowania PowerShell – rzadko dzieje się „samo”.
    Praktyka: koreluj wevtutil/clearev, DisableScriptLogging, kasowanie %Temp% po archiwizacji.
    Przykład: 5 min po wysyłce – Clear-EventLog System/Security i purge przeglądarki.
  • Powtarzalne próby o rosnącej złożoności
    Wyjaśnienie: najpierw nieudany eksport, potem archiwizacja, następnie zmiana kanału (USB/cloud) – eskalacja świadczy o intencji.
    Praktyka: buduj „ścieżki prób” (attempt chains) z typami kanałów i stopniem powodzenia.
    Przykład: nieudany upload do Drive, potem link publiczny w M365, na końcu kopia na dysk zewnętrzny.

13) Źródła danych, które domykają obraz (często pomijane)

  • Logi zgód OAuth i rejestracji aplikacji
    Po co: wykryją „aplikację-most” wyciągającą dane poza DLP treściowym.
    Praktyka: przeglądaj Admin Consent/Consent to app + nietypowe AppID/redirect URI; dodaj korelację z dziennikiem pobrań w chmurze.
    Przykład: prywatna aplikacja z zakresem Drive.ReadAll pojawia się godzinę przed masowym eksportem.
  • Telemetrya schowka i narzędzi zrzutów ekranu
    Po co: druk/clipboard/snipping przenoszą dane „bokiem”.
    Praktyka: włącz zdarzenia clipboard w EDR, monitoruj uruchomienia SnippingTool/Screenpresso po odczytach plików wrażliwych.
    Przykład: 400 odczytów w katalogu „Oferty”, potem seria 30 zrzutów w 10 min – nie ma śladu eksportu, a dane jednak „wychodzą”.
  • Audyt udostępnień i zmian uprawnień
    Po co: potwierdza przygotowanie furtki, nawet jeśli transfer nastąpi później i z innego IP.
    Praktyka: koreluj SharingLinkCreated/RoleAssignmentChanged z pobraniami spoza korp-sieci do 72 h później.
    Przykład: nadanie „Anyone with the link – Edit” na folderze działowym w piątek po 17:00.
  • Logi enumeracji udziałów i plików
    Po co: masowe listowania (5145/4663 ListDirectory) poprzedzają hurtowe kopie.
    Praktyka: wykrywaj wzorzec: duża liczba ListDirectory → Read bez Write/Delete w wąskim oknie czasowym.
    Przykład: 20 tys. listowań w 8 min, potem 10 tys. odczytów – klasyczny prelude do eksportu.
  • Wydruki i kolejka drukarki
    Po co: eksfiltracja „na papier” nie zostawia śladów sieciowych, ale zostawia w spoolerze.
    Praktyka: zbieraj liczbę stron, tytuły dokumentów i mapuj do klasyfikacji danych; alertuj na duże zadania poza godzinami pracy.
    Przykład: 180 stron „Raport_sprzedaży_Qx” w niedzielę wieczorem na drukarce w recepcji.
  • Warstwy decyzji dostępowych (CA/MFA/risk)
    Po co: skok ryzyka logowania + nietypowy kanał transferu = mocniejsza hipoteza kompromitacji lub obejścia.
    Praktyka: łącz sign-in risk/high + nowe urządzenie przeglądarkowe z eksportem danych w tym samym oknie.

14) Szybkie decyzje korygujące po ustaleniu faktów

  • Cofnięcie roli vs. blokada konta
    Kiedy: cofnięcie ról, gdy problem dotyczy nadmiarowych uprawnień; blokada, gdy potwierdzona intencja lub kompromitacja.
    Ryzyko uboczne: blokada przerwie procesy biznesowe zależne od konta serwisowego/osobistego.
    Przykład: rola „Exporter” zdjęta natychmiast, konto zostaje aktywne pod obserwacją 7 dni.
  • Wygaśnięcie linków vs. globalny zakaz „Anyone”
    Kiedy: wygaszaj celowanie (te foldery/projekty), globalny zakaz tylko przy szerokiej luce kulturowej/procesowej.
    Ryzyko uboczne: twardy zakaz wywoła eskalacje i „shadow IT”.
    Przykład: policy: Anyone disabled dla „Restricted”, automatyczne expiry 7 dni dla „Internal”.
  • Odcinanie bieżących sesji vs. obserwacja
    Kiedy: odetnij, gdy trwa transfer; obserwuj, gdy masz już snapshot artefaktów i brak ruchu – dozbierzesz oś czasu.
    Ryzyko uboczne: przedwczesne odcięcie niszczy ciąg przyczynowo-skutkowy.
    Przykład: najpierw export tokenów/OAuth sessions, potem kill wybranych sesji przeglądarkowych.
  • Rewokacja tokenów OAuth vs. reset haseł
    Kiedy: przy nadużyciu aplikacji – revocation; przy podejrzeniu kradzieży poświadczeń – reset i sign-out ze wszystkich urządzeń.
    Ryzyko uboczne: reset bez revocation zostawi otwarte sesje aplikacyjne.
    Przykład: unieważnienie refresh tokenów dla „self-registered app” i wymuszenie MFA re-enrollment.
  • Notyfikacja regulatora vs. komunikat wewnętrzny
    Kiedy: zgłoszenie zewnętrzne przy danych osobowych/klientów i istotnym ryzyku dla podmiotów; wewnętrzny komunikat, gdy zakres ograniczony i kontrolowany.
    Ryzyko uboczne: nadmiarowe zgłoszenie = niepotrzebne koszty reputacyjne; zbyt późne – sankcje formalne.
    Przykład: potwierdzone wyniesienie listy klientów – ścieżka formalna w 72 h i wymóg dowodowy z pkt 9.
Czy to był insider? Jak analizować logi i uprawnienia po podejrzanej aktywności
Źródło: Pexels | Autor: Joshua Mayo

15) Pułapki interpretacji: gdzie najczęściej potykamy się na logach

  • Niezgrany czas (UTC vs lokalny) i drift zegara
    Wyjaśnienie: 2–7 minut przesunięcia między hostem, proxy i chmurą rozciąga lub skleja zdarzenia – zmienia wniosek o intencji.
    Praktyka: normalizuj do UTC, dodaj kolumnę „źródło_czasu”, flaguj drift >60 s; koreluj po przedziałach, nie po równości timestampu.
    Przykład: „upload po pracy” okazuje się w godzinach pracy po przeliczeniu strefy z PST na CET.
  • Duplikaty i sampling
    Wyjaśnienie: forwardery i EDR potrafią zdublować 4663/ProcessCreate; chmury czasem próbkują eventy pobrań i nie pokażą pełnego wolumenu.
    Praktyka: deduplikuj po (hash_zdarzenia, okno 3–5 s); włącz pełny audyt na czas incydentu, potem wróć do sampling.
    Przykład: „2000 odczytów” po deduplikacji to 240 unikalnych plików – inna skala ryzyka.
  • Maskowanie przez proxy/WAF
    Wyjaśnienie: IP źródłowe zamienia się w IP bramy, UA jest ujednolicony; bez X-Forwarded-For tracisz tożsamość sesji.
    Praktyka: zachowuj XFF/XRI w SIEM, mapuj sesje po cookie/sessionId gdy dostępne, łącz z DHCP/VPN/EDR host->user.
    Przykład: ten sam „anonimowy” IP ma 3 różne JA3 i różne hosty – to 3 osoby za NAT-em.
  • Retransmisje i operacje idempotentne
    Wyjaśnienie: powtórne PUT/POST przy zrywaniu łącza nie oznacza celowego omijania DLP – to retry klienta.
    Praktyka: rozpoznawaj wzorzec retry (te same Content-Length/ETag, stałe odstępy), odróżniaj od batch skriptów (różne nazwy/offsety).
    Przykład: 5 identycznych PUT co 30 s do jednego obiektu – nie myl tego z 5 plikami po 100 MB.
  • Dziedziczenie uprawnień „po cichu”
    Wyjaśnienie: dostęp często płynie przez gniazdowane grupy lub odziedziczone linki – w logach widać użytkownika, nie łańcuch źródeł.
    Praktyka: buduj graf (user→group→role→scope), zapisuj ścieżkę przy korelacji; alarmuj na długie łańcuchy (>3).
    Przykład: prawo „Export” przyszło przez grupę projektową, której nikt nie ściągnął po zakończeniu wdrożenia.

16) Uprawnienia: jak szybko policzyć rzeczywiste ryzyko

  • Myśl „capability”, nie „rola z nazwy”
    Wyjaśnienie: te same etykiety ról w różnych systemach znaczą co innego; liczy się zdolność: Export/ShareExternal/ApproveConsent/DeleteLogs.
    Praktyka: mapuj role→capabilities i raportuj po zdolnościach; to one przewidują szkody.
    Przykład: „Analyst” w narzędziu BI ma ExportAllDatasets – ważniejsze niż sama nazwa.
  • Wskaźnik „blast radius”
    Wyjaśnienie: nie tylko co może zrobić, ale na jakim zakresie (ten folder vs cała organizacja).
    Praktyka: dodaj kolumnę „scope_size” (liczba obiektów/tenant-wide) i sortuj alerty po capability×scope_size.
    Przykład: prawo „ShareExternal” na folderze sprzedaży dla całej firmy > pojedynczy projekt R&D.
  • Unikaj ukrytych administratorów
    Wyjaśnienie: „shadow admin” ma pozornie niewinne role, które łącznie dają uprawnienia admina (np. AppRoleAssignment + KeyVault Contributor).
    Praktyka: pisz reguły kompozytowe (rola_A AND rola_B → capability_Admin), skanuj co tydzień.
    Przykład: użytkownik bez „Global Admin” może dodać appkę z Drive.ReadAll i wyciągać dane.
  • Tymczasowe podwyższenia (PIM/JIT)
    Wyjaśnienie: incydenty często dzieją się w oknie elevation; po wygaśnięciu ślady uprawnień znikają z bieżącego stanu.
    Praktyka: zbieraj activation logs + approval trail, trzymaj je obok osi czasu operacji na danych.
    Przykład: 30 min po aktywacji „Data Exporter” – masowy download raportów.
  • Dziedziczenie i linki „Anyone”
    Wyjaśnienie: dostęp do pliku bywa efektem udostępnienia nadrzędnego folderu lub starego linku bez wygaśnięcia.
    Praktyka: raportuj udział udostępnień dziedziczonych i linków bez TTL; automatycznie proponuj expiry.
    Przykład: link sprzed roku nadal działa – najpierw wygaś, potem pytaj o potrzebę.

17) Konta serwisowe i integracje: jak nie szukać człowieka, gdy działa robot

  • Interaktywne logowanie konta serwisowego
    Wyjaśnienie: SA nie powinno używać GUI/SSO; logon typu „interactive” to sygnał nadużycia lub „zastępowania” przez pracownika.
    Praktyka: alert na LogonType=interactive/Browser dla SA; wymuś non-interactive tokens z krótkim TTL.
    Przykład: konto „svc-bi-loader” nagle loguje się z przeglądarki i ściąga raporty.
  • Zakresy OAuth większe niż potrzebne
    Wyjaśnienie: integracje nierzadko mają Drive.ReadAll/Files.ReadWrite.All „na zapas”. To boczna furtka.
    Praktyka: inwentaryzuj consenty, przegląd kwartalny „least privilege”, revoke przy braku użycia 30–60 dni.
    Przykład: aplikacja ETL używa tylko metadanych, a ma też uprawnienie do eksportu zawartości plików.
  • Nietypowe źródła i harmonogram
    Wyjaśnienie: roboty działają cyklicznie, ze stałych IP. Odchylenie czasu/IP bywa pierwszym sygnałem kradzieży klucza.
    Praktyka: baseline: kiedy, skąd, jak długo; alert na odchylenie >20% czasu okna lub nowe ASN/VPN.
    Przykład: zadanie, które zwykle rusza 02:05 z DC, pojawia się 11:30 z domowego ISP.
  • Klucze i sekrety w CI/CD
    Wyjaśnienie: sekret w repo lub logach pipeline’u = ciche przejęcie integracji bez dotykania kont użytkowników.
    Praktyka: skanuj tajne w repo, rotuj sekrety po incydencie, włącz OIDC workload identity zamiast statycznych kluczy.
    Przykład: „AZURE_CLIENT_SECRET” wyciekł do artefaktów buildu – po 3 dniach widzisz nietypowe enumeracje API.

Jeśli logi pokazują „człowiecze” wzorce przy koncie serwisowym (nawigacja po GUI, zmiana ekranów, losowe przerwy), najpierw odróżnij błąd telemetrii od

18) Zachowania „ludzkie” vs. automaty: jak rozróżniać w praktyce

  • „Think time” i rytm interakcji
    Wyjaśnienie: ludzie mają zmienny czas między akcjami (5–90 s), roboty – powtarzalny (np. co 2–3 s).
    Praktyka: policz rozkład odstępów między zdarzeniami w sesji; wysokie odchylenie standardowe i nieregularne pauzy wskazują na człowieka.
    Przykład: sekwencja: widok→filtr→sort→podgląd→eksport z przerwami 8 s, 41 s, 12 s – bardziej „ludzkie” niż stałe 2 s.
  • Ścieżki GUI vs. bezpośrednie API
    Wyjaśnienie: człowiek częściej poprzedza eksport przeglądaniem/filtrami; bot uderza prosto w endpointy list/exports bez renderów widoków.
    Praktyka: koreluj żądania API z eventami UI (page/view/change_filter); flaguj eksport bez poprzedzających interakcji w oknie 5–10 min.
    Przykład: 5 eksportów CSV bez żadnego „open report” w tym samym oknie czasowym – pachnie automatem.
  • Nagłówki i biblioteki klienta
    Wyjaśnienie: headless/SDK zostawiają wzorce (np. python-requests, okhttp, selenium); przeglądarki – bogatsze i mieszane UA/JA3.
    Praktyka: utrzymuj listę znanych fingerprintów automatyzacji; podbij wagę alertu, gdy exporter używa „headless”.
    Przykład: pobrania z UA „HeadlessChrome” + stałe odstępy 1,9 s – wzorzec RPA.
  • Nazewnictwo i entropia plików
    Wyjaśnienie: boty generują deterministyczne nazwy (report_YYYYMMDD.csv), człowiek częściej nadaje opisowe lub losowe warianty.
    Praktyka: licz entropię/regularność nazw; powtarzalny schemat + stały folder docelowy = automatyzacja.
    Przykład: „export_2024-08-01.csv”, „export_2024-08-02.csv” z tej samej ścieżki – skrypt, nie incydent „ad hoc”.
  • Prefetch vs. intencjonalne pobranie
    Wyjaśnienie: aplikacje wstępnie ściągają podglądy – to nie to samo co zapis treści przez użytkownika.
    Praktyka: odróżniaj prefetch (range, preview endpoints) od pełnych downloadów; zlicz tylko finalne zakończone transfery jako ryzyko.
    Przykład: 30 hitów na „/thumbnail” ≠ 30 pobrań raportu.

19) Sygnały intencji: drobne ślady, które zmieniają werdykt

  • Wzorce wyszukiwania przed eksportem
    Wyjaśnienie: celowe frazy (np. „lista klientów”, „umowy PDF”) tuż przed transferem sugerują przygotowanie, nie przypadek.
    Praktyka: dołóż query logs do osi czasu; flaguj eksport w 10 min po zapytaniach o dane wrażliwe/kluczowe tagi.
    Przykład: „NIP”, „PESEL”, potem od razu „Eksport do CSV”.
  • Zmiany uprawnień „na chwilę”
    Wyjaśnienie: doraźne dodanie siebie do grupy/roli i szybki eksport – klasyka nadużycia uprawnień.
    Praktyka: koreluj grant→use→revoke; podbij wagę, gdy cała sekwencja mieści się w <30 min.
    Przykład: dołączenie do „Sales-Data-Exporters”, 12 minut później pełny dump klientów.
  • Tworzenie archiwów i hasłowanie
    Wyjaśnienie: zip/7z tuż po pobraniach, szczególnie z hasłem, wskazuje przygotowanie do przeniesienia poza systemy firmowe.
    Praktyka: monitoruj ProcessCreate (zip/7z/rar) + command line; alert na „-p/-password” po dużych pobraniach.
    Przykład: 10 CSV → 7z -pXxx z pulpitu użytkownika w 3 min po eksporcie.
  • Próby obejścia widoczności
    Wyjaśnienie: wyłączenie wersjonowania, kasowanie logów, zmiana retention – to silny wskaźnik złej intencji.
    Praktyka: traktuj DeleteLogs/ChangeRetention jako „multiplier” ryzyka w scoringu incydentu.
    Przykład: skrócenie retencji web-logs z 90 do 7 dni w dniu eksportu.
  • Transfer poza typowy kanał
    Wyjaśnienie: zamiast firmowego SFTP/E-Mail – upload do nowego dostawcy chmury lub prywatnego WebDAV.
    Praktyka: DLP/Proxy: wykrywaj nowe destynacje domenowe i nietypowe protokoły; lista dozwolonych egressów minimalizuje hałas.
    Przykład: pierwsze w historii połączenie WebDAV do domu użytkownika w godzinach pracy.

20) Kontekst organizacyjny: korelacja z HR, biurem i procesem

  • Zmiana statusu pracownika
    Wyjaśnienie: okres wypowiedzenia, spór o premię, przeniesienie zespołu – to katalizatory ryzyka, ale nie dowód winy.
    Praktyka: do osi czasu dodaj sygnały HR (zgrubnie: status, dział, lokalizacja); ogranicz dostęp „need-to-have” w okresach przejściowych.
    Przykład: 2 dni po ogłoszeniu restrukturyzacji pojawia się masowy eksport.
  • Badges i obecność fizyczna
    Wyjaśnienie: logowanie z biura bez wejścia kartą lub odwrotnie – znak użyczenia konta albo proxy/VPN z domu.
    Praktyka: koreluj access control (wejścia do budynku) z logami SSO/VPN; flaguj niespójności >30 min.
    Przykład: sesja „on-prem” przy braku wejścia na piętro – potencjalne przekazanie tokenu.
  • Ścieżka zgłoszeń i prośby o dostęp
    Wyjaśnienie: świeże tickety o dostęp do eksportu, a potem szybkie użycie – bywa uzasadnione projektem, ale czasem to „okno okazji”.
    Praktyka: łącz ITSM z IAM; wymagaj kontekstu biznesowego w ticketach, potem weryfikuj użycie pod kątem celu.
    Przykład: prośba „potrzebuję Export na 24 h do audytu”, a w praktyce pobrania niezgodne z opisem.
  • Godziny i rozkład pracy
    Wyjaśnienie: aktywność w 3:00 lokalnie może być normalna dla globalnego zespołu; sama pora nie decyduje.
    Praktyka: trzymaj kalendarz zespołu i strefy czasowe; oceń „poza normą” dopiero względem zwyczaju użytkownika, nie etatu.

21) Decyzja operacyjna: którą ścieżkę wybrać po analizie

  • Telemetryczny artefakt (niska wina, niskie ryzyko)
    Wyjaśnienie: duplikaty, prefetch, retry, dryf czasu – brak realnego transferu/wglądu w dane.
    Praktyka: koryguj normalizację, doprecyzuj filtry w SIEM, zamknij jako „no issue” z notatką o źródle szumu.
    Przykład: „masowe pobrania” okazują się podglądami miniaturek po korekcie parsera.
  • Błąd użytkownika w granicach obowiązków (niska wina, umiarkowane ryzyko)
    Wyjaśnienie: działanie mieści się w roli, ale kanał lub zakres są nieadekwatne (np. prywatny dysk, brak anonimizacji).
    Praktyka: krótkie „coaching + guardrail”: przypomnienie zasad, włączenie podpowiedzi w produkcie (just‑in‑time hints), wymuszenie bezpiecznego szablonu eksportu.
    Przykład: analityk sprzedaży eksportuje pełny zestaw z PESEL, choć wystarczył zagregowany CSV – wdrażasz predefiniowany widok „bez danych wrażliwych”.
  • Nadmierne uprawnienia / zła konfiguracja (niska wina, realna ekspozycja)
    Wyjaśnienie: użytkownik skorzystał z nadanych uprawnień, ale grant był ponad potrzebę lub dziedziczony zbyt szeroko.
    Praktyka: natychmiastowe „contain”: zawężenie ACL/roli, wygaśnięcie linków „Anyone”, cofnięcie grupy; po incydencie – przegląd podobnych grantów wzorcem (attack surface reduction).
    Przykład: stażysta widzi folder „Finanse” przez dziedziczenie projektu – zamykasz dostęp kaskadowo i uruchamiasz skan dziedziczeń w całej przestrzeni.
  • Wysokie ryzyko: intencjonalne nadużycie lub kradzież poświadczeń
    Wyjaśnienie: korelacja intencji (grant→eksport→zip z hasłem→egress), anomalie urządzenia/IP, próby zacierania śladów.
    Praktyka: pełny IR: blokada tokenów, reset haseł/kluczy, odcięcie egress na regułach proxy, snapshoty dowodowe, zaangażowanie HR/Compliance. Działaj etapami, by nie spłoszyć napastnika, jeśli potrzebny jest monitoring ciągły.
    Przykład: po nagłej zmianie roli następują eksporty i wysyłka do nowej chmury – blokujesz upload domenowo, rotujesz klucze i zabezpieczasz stację do analizy.

22) Zabezpieczenie dowodów: jak zbierać, by nie zniszczyć

Najczęstsze potknięcie po wykryciu anomalii to „sprzątanie” zamiast zabezpieczenia. Zanim ktokolwiek kliknie Revoke albo wyłączy użytkownika, zapisz kontekst i kopie, bo później będzie już tylko domysł. Nie chodzi o sądową ekspertyzę, lecz o spójny obraz działań i decyzji.

  • Stop-klatka czasu
    Ustal odniesienie czasowe. Zanotuj aktualny czas z dokładnością do sekundy i strefę, a w systemach bez NTP dopisz znane odchylenie. Ułatwi to zszycie logów z wielu źródeł.
  • „Freeze” retencji
    Zatrzymaj rotację kluczowych źródeł: audit logi SSO, dzienniki aplikacji, proxy/DLP, systemy plików i SaaS. Jeżeli masz WORM lub Legal Hold – włącz na wskazanych zakresach, nie na wszystkim.
  • Zgrywka niezmienialna
    Eksportuj logi w surowych formatach z metadanymi (czas, tenant, requestId, userId). Zapisz do odseparowanego, tylko-do-zapisu magazynu. Wylicz i zapisz sumy kontrolne (np. SHA-256) dla każdego pliku.
Poprzedni artykułSpring Boot dla początkujących: szybki start API
Zuzanna Wójcik
Zuzanna Wójcik zajmuje się testami sprzętu i nowymi technologiami użytkowymi: od laptopów i routerów po akcesoria do pracy zdalnej. Recenzje przygotowuje metodycznie, porównując urządzenia w tych samych warunkach i opisując, jak wyniki przekładają się na codzienne zastosowania. Zwraca uwagę na kulturę pracy, temperatury, czas działania, jakość wykonania i wsparcie aktualizacjami. Unika marketingowych skrótów, a wnioski formułuje ostrożnie, wskazując, dla kogo dany sprzęt ma sens, a komu odradza zakup.