Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano, jak identyfikować, porównywać i migrować reguły wykrywania ArcSight do reguł analitycznych platformy Microsoft Sentinel.
Identyfikowanie i migrowanie reguł
Microsoft Sentinel używa analizy uczenia maszynowego do tworzenia zdarzeń o wysokiej wierności i możliwych do działania, a niektóre z istniejących wykryć mogą być nadmiarowe w Microsoft Sentinel. W związku z tym nie należy ślepo migrować wszystkich reguł wykrywania i analizy. Zapoznaj się z poniższymi zagadnieniami, aby zidentyfikować istniejące reguły wykrywania.
- Pamiętaj, aby wybrać przypadki użycia, które uzasadniają migrację reguł, biorąc pod uwagę priorytet biznesowy i wydajność.
- Sprawdź, czy rozumiesz typy reguł Microsoft Sentinel.
- Sprawdź, czy rozumiesz terminologię reguł.
- Przejrzyj wszystkie zasady, które nie wywołały żadnych powiadomień w ciągu ostatnich sześciu do dwunastu miesięcy i sprawdź, czy nadal są aktualne.
- Eliminuj zagrożenia niskiego poziomu lub alerty, które są rutynowo ignorowane.
- Użyj istniejących funkcji i sprawdź, czy wbudowane reguły analizy Microsoft Sentinel mogą dotyczyć bieżących przypadków użycia. Ponieważ Microsoft Sentinel używa analizy uczenia maszynowego do generowania zdarzeń o wysokiej wierności i możliwych do działania, prawdopodobnie niektóre istniejące wykrycia nie będą już wymagane.
- Potwierdź połączone źródła danych i przejrzyj metody połączenia danych. Wróć do rozmów dotyczących zbierania danych, aby zapewnić odpowiednią szczegółowość i zakres danych dla przypadków użycia, które planujesz wykrywać.
- Zapoznaj się z zasobami społecznościowymi, takimi jak SOC Prime Threat Detection Marketplace, aby sprawdzić, czy Twoje reguły są dostępne.
- Zastanów się, czy internetowy konwerter zapytań, taki jak Uncoder.io, może sprawdzić się w przypadku Twoich reguł.
- Jeśli reguły nie są dostępne lub nie można ich przekonwertować, należy je utworzyć ręcznie przy użyciu zapytania KQL. Przejrzyj mapowanie reguł , aby utworzyć nowe zapytania.
Dowiedz się więcej o najlepszych rozwiązaniach dotyczących migracji reguł wykrywania.
Aby przeprowadzić migrację reguł analizy do Microsoft Sentinel:
Sprawdź, czy masz wdrożony system testowy dla każdej reguły, którą chcesz przenieść.
Przygotowanie procesu weryfikacji dla zmigrowanych reguł, w tym pełnych scenariuszy testowych i skryptów.
Upewnij się, że twój zespół ma przydatne zasoby do testowania zmigrowanych reguł.
Upewnij się, że masz podłączone wymagane źródła danych i przejrzyj metody połączenia danych.
Sprawdź, czy twoje wykrycia są dostępne jako wbudowane szablony w Microsoft Sentinel:
Jeśli wbudowane reguły są wystarczające, użyj wbudowanych szablonów reguł, aby utworzyć reguły dla własnego obszaru roboczego.
W Microsoft Sentinel przejdź do karty Szablony reguł analizy > konfiguracji > i utwórz i zaktualizuj każdą odpowiednią regułę analizy.
Aby dowiedzieć się, jak tworzyć reguły z wbudowanych szablonów, zobacz Stwórz reguły planowanej analityki z szablonów.
Jeśli masz wykrycia, które nie są objęte wbudowanymi regułami Microsoft Sentinel, wypróbuj konwerter zapytań online, taki jak Uncoder.io, aby przekonwertować zapytania na KQL.
Zidentyfikuj warunek wyzwalacza i akcję reguły, a następnie utwórz i sprawdź zapytanie KQL.
Jeśli ani wbudowane reguły, ani konwerter reguł online nie są wystarczające, należy utworzyć regułę ręcznie. W takich przypadkach wykonaj następujące kroki, aby rozpocząć tworzenie reguły:
Zidentyfikuj źródła danych, których chcesz użyć w regule. W Microsoft Sentinel warto utworzyć tabelę mapowania między źródłami danych a tabelami, aby określić, które tabele chcesz odpytywać.
Zidentyfikuj wszystkie atrybuty, pola lub jednostki w danych, których chcesz użyć w regułach.
Określ kryteria i logikę swojej reguły. Na tym etapie warto użyć szablonów reguł jako przykładów do konstruowania zapytań KQL.
Należy wziąć pod uwagę filtry, reguły korelacji, aktywne listy, zestawy odwołań, listy obserwowanych, anomalie wykrywania, agregacje itd. Możesz użyć referencji udostępnionych przez starszy SIEM do mapowania składni zapytań ArcSight do KQL.
Zidentyfikuj warunek wyzwalacza i akcję reguły, a następnie utwórz i przejrzyj swoje zapytanie KQL. Analizując zapytanie, skorzystaj z materiałów zawierających zalecenia dotyczące optymalizacji języka KQL.
Przetestuj regułę dla każdego odpowiedniego przypadku użycia. Jeśli nie daje oczekiwanych wyników, możesz przejrzeć zapytanie KQL i przetestować je ponownie.
Gdy uznasz, że wszystko jest w porządku, możesz uznać regułę za zmigrowaną. W razie potrzeby utwórz podręcznik procedur dla działania reguły. Aby tworzyć i używać playbooków do akcji reguł, zobacz Automate threat response with playbooks in Microsoft Sentinel.
Dowiedz się więcej o regułach analizy:
- Zasady zaplanowanej analityki w Microsoft Sentinel: Wykorzystaj grupowanie alertów, aby zmniejszyć zmęczenie alertami poprzez grupowanie alertów, które pojawiają się w określonym czasie.
- Mapowanie pól danych na jednostki w Microsoft Sentinel: Aby umożliwić inżynierom SOC definiowanie jednostek jako części dowodów do śledzenia podczas dochodzenia. Mapowanie encji umożliwia również analitykom SOC korzystanie z intuicyjnego grafu dochodzenia, co pomaga zaoszczędzić czas i ograniczyć nakład pracy.
- Badanie incydentów na podstawie danych UEBA: Przykład, jak wykorzystać dowody do wyświetlenia zdarzeń, alertów i zakładek związanych z danym incydentem w panelu podglądu incydentu.
- Kusto Query Language (KQL): Możesz użyć KQL do wysyłania żądań tylko do odczytu do bazy Log Analytics w celu przetwarzania danych i zwracania wyników. Język KQL jest również używany w innych usługach firmy Microsoft, takich jak Ochrona punktu końcowego w usłudze Microsoft Defender i Application Insights.
Porównanie terminologii reguł
Ta tabela ułatwia wyjaśnienie koncepcji reguły w Microsoft Sentinel w porównaniu z usługą ArcSight.
| ArcSight | Microsoft Sentinel | |
|---|---|---|
| Typ reguły | - Reguła filtrów - Reguła łączenia - Reguła aktywnej listy - I więcej |
- Zaplanowane zapytanie - Fuzja - rozwiązania zabezpieczające firmy Microsoft - Machine Learning (ML) analiza zachowań |
| Kryteria | Zdefiniuj w warunkach reguły | Definiuj w języku KQL |
| Warunek wyzwalacza | - Definiuj w akcji - Zdefiniuj w agregacji (dla agregacji zdarzeń) |
Próg: liczba wyników zapytania |
| Akcja | - Ustaw pole wydarzenia - Wyślij powiadomienie - Utworzenie nowej sprawy - Dodaj do listy aktywnej - I więcej |
- Utworzenie alertu lub incydentu - Integruje się z aplikacjami logicznymi |
Mapowanie i porównywanie przykładów reguł
Użyj poniższych przykładów, aby porównać reguły wykrywania ArcSight z równoważnymi zapytaniami Microsoft Sentinel napisanymi w Kusto Query Language (KQL).
| Reguły | Opis | Przykładowa reguła wykrywania (ArcSight) | Przykładowe zapytanie KQL | Zasoby |
|---|---|---|---|---|
Filtr (AND) |
Przykładowa reguła z warunkami AND . Zdarzenie musi spełniać wszystkie warunki. |
Przykład filtru (AND) | Przykład filtru (AND) | Filtr ciągów: - Operatory ciągów znaków Filtr liczbowy: - Operatory numeryczne Filtr daty/godziny: - ago - Czas na spotkanie - pomiędzy - teraz Parsowanie: - Parse - Ekstrakt - parse_json - parse_csv - parse_path - parse_url |
Filtr (OR) |
Przykładowa reguła z warunkami OR . Zdarzenie może odpowiadać dowolnemu z warunków. |
Przykład filtru (OR) | Przykład filtru (OR) |
-
Operatory ciągów znaków - w |
| Filtr zagnieżdżony | Przykładowa reguła z zagnieżdżonymi warunkami filtrowania. Reguła zawiera instrukcję MatchesFilter , która obejmuje również warunki filtrowania. |
Przykład zagnieżdżonego filtru | Przykład zagnieżdżonego filtru |
-
Użyj funkcji KQL do przyspieszenia analizy - Wzbogacaj zdarzenia bezpieczeństwa Windows o funkcję parametryzowaną - dołącz - gdzie |
| Aktywna lista (wyszukiwanie) | Przykładowa reguła wyszukiwania, która używa instrukcji InActiveList. |
Przykład aktywnej listy (wyszukiwanie) | Przykład aktywnej listy (wyszukiwanie) | - Lista obserwacyjna jest odpowiednikiem funkcji aktywnej listy. Dowiedz się więcej o listach obserwowanych. - Inne sposoby implementacji wyszukiwania |
| Korelacja (dopasowywanie) | Przykładowa reguła definiująca warunek dla zbioru zdarzeń bazowych przy użyciu instrukcji Matching Event. |
Przykład korelacji (dopasowania) | Przykład korelacji (dopasowania) | operator złączenia: - dołącz - Dołącz do Time Window - tasuj - Emisja - Unia instrukcja definicji: - niech Agregacja: - make_set - make_list - make_bag - bag_pack |
| Korelacja (przedział czasu) | Przykładowa reguła, która definiuje warunek dla zestawu zdarzeń podstawowych za pomocą instrukcji Matching Event oraz warunku filtrowania Wait time. |
Przykład korelacji (przedział czasu) | Przykład korelacji (przedział czasu) |
-
dołącz - Reguły Microsoft Sentinel i oświadczenie o dołączeniu |
Przykład filtru (AND): ArcSight
Oto przykładowa reguła filtru z warunkami AND w usłudze ArcSight.
Przykład filtru (AND): KQL
Oto reguła filtrowania z warunkami AND w języku KQL.
SecurityEvent
| where EventID == 4728
| where SubjectUserName =~ "AutoMatedService"
| where isnotempty(SubjectDomainName)
Ta reguła zakłada, że agent monitorowania Azure (AMA) zbiera zdarzenia Zabezpieczenia Windows. W związku z tym reguła używa tabeli Microsoft Sentinel SecurityEvent.
Rozważmy następujące najlepsze rozwiązania:
- Aby zoptymalizować zapytania, unikaj operatorów bez uwzględniania wielkości liter, gdy jest to możliwe:
=~. - Użyj
==, jeśli wielkość liter w wartości nie ma znaczenia. - Uporządkuj filtry, zaczynając od instrukcji
where, która odfiltrowuje najwięcej danych.
Przykład filtru (OR): ArcSight
Oto przykładowa reguła filtru z warunkami OR w usłudze ArcSight.
Przykład filtru (OR): KQL
Poniżej przedstawiono kilka sposobów zapisu reguły filtru z warunkami OR w języku KQL.
Jako pierwszą opcję użyj in instrukcji:
SecurityEvent
| where SubjectUserName in
("Adm1","ServiceAccount1","AutomationServices")
Jako drugą opcję użyj or instrukcji:
SecurityEvent
| where SubjectUserName == "Adm1" or
SubjectUserName == "ServiceAccount1" or
SubjectUserName == "AutomationServices"
Obie opcje są identyczne pod względem wydajności, ale zalecamy pierwszą opcję, która jest łatwiejsza do odczytania.
Przykład zagnieżdżonego filtru: ArcSight
Oto przykładowa reguła zagnieżdżonego filtru w usłudze ArcSight.
Oto reguła dla filtru /All Filters/Soc Filters/Exclude Valid Users .
Przykład zagnieżdżonego filtru: KQL
Poniżej przedstawiono kilka sposobów zapisu reguły filtru z warunkami OR w języku KQL.
Jako pierwszą opcję użyj filtru bezpośredniego z instrukcją where :
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName) or
isnotempty(TargetDomainName)
| where SubjectUserName !~ "AutoMatedService"
Jako drugą opcję użyj funkcji KQL:
Zapisz następujące zapytanie jako funkcję KQL z aliasem
ExcludeValidUsers.SecurityEvent | where EventID == 4728 | where isnotempty(SubjectDomainName) | where SubjectUserName =~ "AutoMatedService" | project SubjectUserNameUżyj następującego zapytania, aby odfiltrować
ExcludeValidUsersalias.SecurityEvent | where EventID == 4728 | where isnotempty(SubjectDomainName) or isnotempty(TargetDomainName) | where SubjectUserName !in (ExcludeValidUsers)
Jako trzecią opcję użyj funkcji parametru:
Utwórz funkcję parametru z nazwą i aliasem
ExcludeValidUsers.Zdefiniuj parametry funkcji. Przykład:
Tbl: (TimeGenerated:datetime, Computer:string, EventID:string, SubjectDomainName:string, TargetDomainName:string, SubjectUserName:string)Funkcja
parameterma następujące zapytanie:Tbl | where SubjectUserName !~ "AutoMatedService"Uruchom następujące zapytanie, aby wywołać funkcję parametru:
let Events = ( SecurityEvent | where EventID == 4728 ); ExcludeValidUsers(Events)
Jako czwartą opcję użyj join funkcji:
let events = (
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName)
or isnotempty(TargetDomainName)
);
let ExcludeValidUsers = (
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName)
| where SubjectUserName =~ "AutoMatedService"
);
events
| join kind=leftanti ExcludeValidUsers on
$left.SubjectUserName == $right.SubjectUserName
Considerations
- Zalecamy użycie filtru bezpośredniego z instrukcją
where(pierwsza opcja) ze względu na jego prostotę. Aby uzyskać zoptymalizowaną wydajność, unikaj używaniajoin(czwarta opcja). - Aby zoptymalizować zapytania, w miarę możliwości unikaj operatorów
=~i!~, które są niewrażliwe na wielkość liter. Użyj operatorów==i!=, jeśli wielkość liter w wartości nie ma znaczenia.
Przykład aktywnej listy (odnośnika): ArcSight
Oto reguła listy aktywnej (wyszukiwanie) w ArcSight.
Przykład listy aktywnej (wyszukiwanie): KQL
Ważna
Zanim uruchomisz to zapytanie, stwórz listę obserwacji Cyber-Ark Konta Wyjątkowe w Microsoft Sentinel i dołącz pole Konta.
Poniższe zapytanie KQL wykorzystuje listę obserwacji Cyber-Ark Exclusive Accounts do filtrowania wyników wyszukiwania.
let Activelist=(
_GetWatchlist('Cyber-Ark Exception Accounts')
| project Account );
CommonSecurityLog
| where DestinationUserName in (Activelist)
| where DeviceVendor == "Cyber-Ark"
| where DeviceAction == "Get File Request"
| where DeviceCustomNumber1 != ""
| project DeviceAction, DestinationUserName,
TimeGenerated,SourceHostName,
SourceUserName, DeviceEventClassID
Uporządkuj filtry, zaczynając od instrukcji where, która odfiltrowuje najwięcej danych.
Przykład korelacji (dopasowywania): ArcSight
Oto przykładowa reguła ArcSight, która definiuje warunek dla zestawu zdarzeń podstawowych przy użyciu instrukcji Matching Event.
Przykład korelacji (dopasowania): KQL
Poniższy przykład w języku KQL pokazuje, jak zaimplementować regułę korelacji dopasowującej ArcSight w usłudze Microsoft Sentinel.
let event1 =(
SecurityEvent
| where EventID == 4728
);
let event2 =(
SecurityEvent
| where EventID == 4729
);
event1
| join kind=inner event2
on $left.TargetUserName==$right.TargetUserName
Najlepsze rozwiązania
- Aby zoptymalizować zapytanie, upewnij się, że mniejsza tabela znajduje się po lewej
joinstronie funkcji. - Jeśli lewa strona tabeli jest stosunkowo mała (do 100 tys. rekordów), dodaj
hint.strategy=broadcast, aby uzyskać lepszą wydajność.
Przykład korelacji (przedział czasu): ArcSight
Oto przykładowa reguła ArcSight, która definiuje warunek dla zestawu zdarzeń podstawowych za pomocą instrukcji Matching Event i używa warunku filtrowania Wait time.
Przykład korelacji (przedział czasu): KQL
Poniższy przykład języka KQL implementuje regułę korelacji z oknem czasu odpowiadającym przykładowi usługi ArcSight.
let waittime = 10m;
let lookback = 1d;
let event1 = (
SecurityEvent
| where TimeGenerated > ago(waittime+lookback)
| where EventID == 4728
| project event1_time = TimeGenerated,
event1_ID = EventID, event1_Activity= Activity,
event1_Host = Computer, TargetUserName,
event1_UPN=UserPrincipalName,
AccountUsedToAdd = SubjectUserName
);
let event2 = (
SecurityEvent
| where TimeGenerated > ago(waittime)
| where EventID == 4729
| project event2_time = TimeGenerated,
event2_ID = EventID, event2_Activity= Activity,
event2_Host= Computer, TargetUserName,
event2_UPN=UserPrincipalName,
AccountUsedToRemove = SubjectUserName
);
event1
| join kind=inner event2 on TargetUserName
| where event2_time - event1_time < lookback
| where tolong(event2_time - event1_time ) >=0
| project delta_time = event2_time - event1_time,
event1_time, event2_time,
event1_ID,event2_ID,event1_Activity,
event2_Activity, TargetUserName, AccountUsedToAdd,
AccountUsedToRemove,event1_Host,event2_Host,
event1_UPN,event2_UPN
Przykład agregacji: ArcSight
Oto przykładowa reguła ArcSight z ustawieniami agregacji: trzy wystąpienia w ciągu 10 minut.
Przykład agregacji: KQL
Poniższe zapytanie KQL pokazuje, jak wykryć trzy lub więcej dopasowań przy użyciu agregacji.
SecurityEvent
| summarize Count = count() by SubjectUserName,
SubjectDomainName
| where Count >3