Mistrzowskie korzystanie z Graph Explorer: śledzenie śladu użytkownika od początku do końca
By Mirko Peters ·
Witamy ponownie w blogu towarzyszącym podcastowi! W dzisiejszym wpisie wychodzimy daleko poza rozdrobnione administracyjne interfejsy użytkownika, które wszyscy znamy i z którymi czasem mamy problem…
Automatically translated with AI from the original post. Read the English original
Witamy ponownie w blogu towarzyszącym podcastowi! W dzisiejszym wpisie wychodzimy daleko poza rozdrobnione administracyjne interfejsy użytkownika, które wszyscy znamy i z którymi czasem mamy problem. Jeśli kiedykolwiek próbowałeś złożyć w całość pełny ślad audytu tego, do czego konkretny użytkownik uzyskał dostęp, co udostępnił lub z czym wchodził w interakcję w usługach Microsoft 365, wiesz już, jak bardzo rozproszone mogą wydawać się natywne centra administracyjne. Dlatego zagłębiamy się w Microsoft Graph. Dzięki Graph API możemy płynnie przechodzić od pojedynczych użytkowników do grup, witryn SharePoint, plików, zewnętrznych linków, a nawet aktywnych przeglądających. Jeśli chcesz śledzić dyskusję audio, która bezpośrednio uzupełnia ten przewodnik, koniecznie posłuchaj powiązanego odcinka „Map Microsoft 365 Users, Groups, Files, and Shares with Graph”.
Dlaczego M365 nie jest odizolowane
Jednym z najczęstszych błędnych przekonań wśród administratorów i zespołów bezpieczeństwa jest to, że poszczególne usługi Microsoft 365 działają jak bezpieczne, samowystarczalne silosy. W rzeczywistości czaty w usłudze Teams, biblioteki dokumentów SharePoint i foldery w usłudze OneDrive stale się przenikają za pośrednictwem bazowych członkostw w grupach i dziedziczenia uprawnień.
- Czaty w usłudze Teams, biblioteki SharePoint i foldery OneDrive przenikają się nawzajem poprzez członkostwo w grupach.
- Pojedyncze działanie polegające na dodaniu jednej osoby do jednej grupy może po cichu otworzyć dostęp do wielu bazowych witryn, kanałów i zewnętrznych udostępnień, nie pozostawiając przy tym widocznej ciągłości w audycie w standardowych widokach.
- Twoje ryzyko związane ze zgodnością wynika z tych niewidocznych ścieżek, takich jak linki gościnne wklejone do prywatnych czatów, pliki zduplikowane w wielu bibliotekach oraz osierocone udostępnienia pozostawione długo po zakończeniu projektów.
Mapowanie śladu za pomocą Graph Explorer (punkty styku użytkownika z plikami)
Aby naprawdę zrozumieć, jak dostęp rozchodzi się po całej dzierżawie, potrzebujesz powtarzalnego wzorca zapytań. W Graph Explorer możemy wykonać przemyślany łańcuch wywołań API, aby zmapować pełny ślad punktów styku użytkownika:
- Zakotwicz się na docelowym użytkowniku:
GET /v1.0/users/{userPrincipalName}?$select=id,displayName,userPrincipalName - Wylicz jego bezpośrednie i pośrednie członkostwa:
GET /v1.0/users/{id}/memberOf?$select=id,displayName - Przejdź do zasobów, do których prowadzą te grupy. Dla grup Microsoft 365 i zespołów Teams sięgnij do bazowej witryny SharePoint:
GET /v1.0/groups/{groupId}/drive/root/children?$select=id,name,lastModifiedDateTime,webUrl
Lub wylicz dyski i biblioteki witryny bezpośrednio:
GET /v1.0/sites/{siteId}/drives - Pobierz uprawnienia elementów i linki udostępniania:
GET /v1.0/drives/{driveId}/items/{itemId}/permissions?$select=id,grantedToV2,link,roles,shareId - Tam, gdzie jest to możliwe, prześledź, kto i kiedy uzyskał dostęp do czego, korzystając z dzienników audytu i logowania:
GET /v1.0/auditLogs/signIns lub /security/alerts, połączone z kontekstem pliku, witryny lub udostępniania. - Zamknij pętlę, wracając do wpisów i wiadomości kanałów w usłudze Teams:
GET /v1.0/teams/{teamId}/channels/{channelId}/messages?$search="filename" (wymaga punktów końcowych beta i odpowiednich uprawnień).
Filtry eliminujące szum, z których naprawdę warto korzystać
Pobieranie surowych danych z Microsoft Graph może szybko przypominać picie wody z hydrantu. Aby przekształcić ogromne zbiory danych w użyteczne informacje, musisz korzystać z precyzyjnych parametrów zapytań.
- Wyizoluj udostępnienia zewnętrzne utworzone w ciągu ostatnich 7 dni, stosując filtry zakresu:
GET /v1.0/drives/{driveId}/items/{itemId}/permissions?$filter=link/scope eq 'anonymous' or link/scope eq 'organization'&$select=… - Wyizoluj ryzykowne typy plików, dopisując rozszerzenia nazw plików:
Dodaj $filter=endsWith(resourceReference/name,'.xlsm') or endsWith(resourceReference/name,'.pst') - Śledź wzmianki o wrażliwych terminach poza godzinami pracy w kanałach Teams:
GET /v1.0/teams/{teamId}/channels/{channelId}/messages?$search="confidential", a następnie przefiltruj wyniki według createdDateTime poza normalnymi godzinami pracy. - Utrzymuj lekkie i wydajne ładunki, zawsze dodając $select, aby zwracać tylko identyfikatory, nazwy, adresy URL witryn, znaczniki czasu ostatniej modyfikacji i minimalne pola uprawnień.
- Ogranicz liczbę wyników na potrzeby szybkiej selekcji, używając $top=50 do szybkich kontroli próbkowych, ale pamiętaj, aby usunąć to ograniczenie podczas eksportowania danych do trwałego magazynu.
Wymagania dla skali enterprise (stronicowanie i ograniczanie żądań)
Gdy przenosisz te zapytania z pojedynczego konta testowego na dzierżawę enterprise, w której znajdują się setki tysięcy obiektów, wydajność i niezawodność stają się absolutnie kluczowe.
- Pobieranie danych nigdy nie jest zakończone, dopóki dla każdej pojedynczej strony wyników nie podążysz jawnie za właściwością @odata.nextLink.
- Reaguj na odpowiedzi HTTP 429 o ograniczeniu liczby żądań, stosując procedury wykładniczego ponawiania (exponential backoff) i dbając o to, aby skrypt mógł bezpiecznie wznowić pracę od miejsca, w którym się zatrzymał.
- Grupuj zapytania z rozwagą. Preferuj mniejszą liczbę większych, dobrze ustrukturyzowanych żądań zamiast lawiny drobnych wywołań i agresywnie buforuj mapowania grupa–witryna.
- Dziel masowe przeszukiwania dzierżawy według konkretnych identyfikatorów witryn SharePoint lub zakresów dat, aby uniknąć przekroczeń czasu żądań, i planuj te ciężkie operacje na okresy poza szczytem obciążenia.
Typowe pułapki (i szybkie rozwiązania)
Nawet doświadczeni administratorzy napotykają przeszkody podczas budowy zautomatyzowanych potoków zapytań do Graph. Miej na uwadze te częste pułapki i ich szybkie naprawy:
- Pułapka: eksporty CSV z czasem się rozjeżdżają i psują, gdy zmieniają się schematy danych.
Rozwiązanie: Korzystaj bezpośrednio z Graph API z wersjonowanymi transformacjami i solidną obsługą pól „unknown”. - Pułapka: mieszane identyfikatory, takie jak GUID-y i nazwy UPN, psują złączenia w bazie danych.
Rozwiązanie: Znormalizuj dane do spójnego modelu semantycznego obejmującego użytkowników, grupy, witryny, dyski, elementy i uprawnienia. - Pułapka: „odchylenie ku pierwszej stronie” zaślepia monitoring i ukrywa poważne incydenty bezpieczeństwa zakopane na głębszych stronach.
Rozwiązanie: Zawsze rejestruj łączną liczbę przetworzonych stron i wyzwalaj alerty, gdy oczekiwana liczba rekordów nieoczekiwanie spadnie. - Pułapka: zalew nieistotnych plików, których liczba jest nie do opanowania.
Rozwiązanie: Jawnie filtruj według zakresów linków, konkretnych okien czasowych utworzenia lub modyfikacji oraz ukierunkowanych list wrażliwych terminów. - Pułapka: udostępnienia w kanałach Teams, których nie da się powiązać z plikami źródłowymi.
Rozwiązanie: Koreluj adresy URL wiadomości z kanałów bezpośrednio z elementami dysku i przechowuj oba unikatowe identyfikatory.
Wskaźniki KPI na poziomie kierownictwa, jakie to umożliwia
Przekształcenie surowych wyników Graph API w ustrukturyzowane metryki daje kierownictwu widoczność, której tak bardzo potrzebuje. Wskaźniki efektywności, które możesz uzyskać, to między innymi:
- Tempo ekspozycji zewnętrznej: pomiar liczby nowych linków dla gości generowanych w ciągu tygodnia, z podziałem według witryny lub zespołu.
- Wskaźnik dostępu do wrażliwych plików: śledzenie unikatowych odbiorców treści oznaczonych etykietami, z rozdzieleniem użytkowników wewnętrznych od gości zewnętrznych.
- Ryzyko efektu falowego grup: identyfikowanie plików, które nagle stają się dostępne w ciągu 24 godzin od zmiany członkostwa w grupie.
- Nieautoryzowana cyrkulacja: śledzenie wrażliwych plików, które rozprzestrzeniają się między wieloma zespołami i witrynami w ramach jednego sprintu.
- Skuteczność porządków: liczenie unieważnionych linków udostępniania i pomiar łącznego czasu do usunięcia problemu.
Szybki start: gotowy przepis na zapytania (przepływ do kopiowania i wklejania)
Jeśli chcesz od razu uruchomić pierwszy kompleksowy test w Graph Explorer, skorzystaj z tego sekwencyjnego przepływu kopiuj-wklej:
- Pobierz podstawowe dane użytkownika i jego grupy:
/users/{upn}?$select=id,displayName
/users/{id}/memberOf?$select=id,displayName - Dla każdej znalezionej grupy Microsoft 365 pobierz elementy dysku:
/groups/{groupId}/drive/root/children?$select=id,name,webUrl,lastModifiedDateTime&$top=200
Pamiętaj, aby podążać za @odata.nextLink - Dla każdego elementu pliku sprawdź uprawnienia:
/drives/{driveId}/items/{itemId}/permissions?$select=id,roles,grantedToV2,link
Filtruj tak, aby link/zakres należał do ('anonymous','organization') - Wyeksportuj oczyszczone wiersze do hurtowni danych, uwzględniając czas dzierżawy, identyfikator witryny, identyfikator dysku, identyfikator elementu, adres URL, właściciela, zakres oraz dane o dacie wygaśnięcia.
- Zwizualizuj zagregowane dane w Power BI, aby na bieżąco nadzorować organizację.
Przekształcenie tego w żywy pulpit
Jednorazowe zapytania w Graph Explorer są doskonałe do dochodzeń, ale prawdziwe zarządzanie wymaga automatyzacji. Przekształć swoje zapytania w żywy pulpit operacyjny, tworząc solidne przepływy danych, normalizując tabele dla użytkowników, grup, witryn, dysków, elementów, uprawnień i wiadomości oraz budując schemat gwiazdy wokół elementów plików. Skonfiguruj przyrostowe odświeżanie danych na podstawie dat modyfikacji i ustaw alerty w czasie rzeczywistym, które uruchomią się przy każdym pojawieniu się nowego linku zewnętrznego do wysoko wrażliwej, oznaczonej etykietą treści.
Plan wdrożenia na 30 dni
Gotowy wdrożyć to w całej organizacji? Skorzystaj z tej uporządkowanej czterotygodniowej ramy wdrożenia:
- Tydzień 1: Dokończ rejestrację aplikacji, przypisz uprawnienia Graph API z zasadą najmniejszych uprawnień i ustal bazowe zapytania, używając precyzyjnych parametrów $select i $filter.
- Tydzień 2: Zbuduj skrypty stronicowania, wdróż normalizację identyfikatorów z ID do UPN i wykonaj pierwszy udany eksport danych.
- Tydzień 3: Zbuduj model danych w Power BI oraz podstawowe wskaźniki KPI, obejmujące śledzenie zewnętrznej ekspozycji i analizę ryzyka rozprzestrzeniania się danych.
- Tydzień 4: Zautomatyzuj odświeżanie danych, skonfiguruj alerty o anomaliach i udokumentuj standardowe procedury operacyjne dla zespołów ds. bezpieczeństwa i zgodności.
Dla kogo ta metoda
Ta metodyka została przygotowana z myślą o konkretnych rolach w Twojej organizacji:
- Administratorzy Microsoft 365 i liderzy SecOps, którzy podejrzewają, że domyślne pulpity administracyjne ukrywają krytyczne szare strefy.
- Zespoły ds. zgodności, które potrzebują pełnej widoczności udostępniania bez dokładania kolejnego, kosztownego oprogramowania zewnętrznego.
- Właściciele współpracy, którzy ostatecznie odpowiadają za bezpieczne i kontrolowane praktyki zewnętrznego udostępniania.
Praktyczne wskazówki
Miej te praktyczne wskazówki pod ręką, rozbudowując swoją automatyzację opartą na Graph:
- Zawsze zaczynaj analizę od użytkownika lub pliku, a następnie badaj zależności w obu kierunkach, aby wyeliminować martwe punkty.
- Traktuj każde działanie „dodaj do grupy” jako zmianę wysokiego ryzyka i sprawdzaj skutki dla dostępu w ciągu 24 godzin.
- Prowadź aktualną listę wrażliwych terminów, którymi przeszukujesz wiadomości w Microsoft Teams i nazwy plików, i regularnie ją przeglądaj.
- Uważnie monitoruj liczbę przetworzonych stron i wolumen rekordów w logach. Czasem całkowita cisza w logach jest właśnie sygnałem, że zadanie potoku danych przestało działać.
Podsumowanie
Opanowanie Microsoft Graph w celu śledzenia śladów użytkowników od początku do końca pozwala zniwelować lukę między rozproszonymi widokami administracyjnymi a rzeczywistą widocznością w skali przedsiębiorstwa. Przechodząc od izolowanych silosów do relacyjnego mapowania dostępu, możesz proaktywnie chronić wrażliwe dane, wyeliminować nieautoryzowany obieg plików i dostarczyć kierownictwu praktyczne wskaźniki KPI, których potrzebuje. Aby posłuchać więcej szczegółowych omówień eksperckich, przykładów z życia wziętych i dogłębnych analiz scenariuszy takich jak ten, koniecznie posłuchaj całego odcinka na stronie Map Microsoft 365 Users, Groups, Files, and Shares with Graph.
Subskrybuj
Więcej szczegółowych omówień i praktycznych przepisów na Graph znajdziesz w nowych odcinkach pod adresem m365.show/subscribe