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.

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.

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.

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.






