Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u uw ArcSight-detectieregels kunt identificeren, vergelijken en migreren naar Microsoft Sentinel analyseregels.
Regels identificeren en migreren
Microsoft Sentinel maakt gebruik van machine learning-analyse om incidenten met hoge kwaliteit en uitvoerbaar te maken. Sommige van uw bestaande detecties zijn mogelijk overbodig in Microsoft Sentinel. Migreer daarom niet al uw detectie- en analyseregels blindelings. Bekijk de volgende overwegingen bij het identificeren van uw bestaande detectieregels.
- Zorg ervoor dat u use cases selecteert die regelmigratie rechtvaardigen, rekening houdend met bedrijfsprioriteit en efficiëntie.
- Controleer of u Microsoft Sentinel regeltypen begrijpt.
- Controleer of u de terminologie van de regel begrijpt.
- Bekijk alle regels die de afgelopen zes tot twaalf maanden geen meldingen hebben veroorzaakt en bepaal of ze nog relevant zijn.
- Elimineer bedreigingen op laag niveau of waarschuwingen die u regelmatig negeert.
- Gebruik bestaande functionaliteit en controleer of de ingebouwde analyseregels van Microsoft Sentinel uw huidige gebruiksscenario's kunnen aanpakken. Omdat Microsoft Sentinel gebruikmaakt van machine learning-analyse om incidenten met hoge kwaliteit en actie mogelijk te maken, zijn sommige van uw bestaande detecties waarschijnlijk niet meer vereist.
- Bevestig verbonden gegevensbronnen en controleer uw gegevensverbindingsmethoden. Bekijk de gesprekken over gegevensverzameling opnieuw om ervoor te zorgen dat de data voldoende diepgang en breedte hebben voor de gebruiksscenario’s die u wilt kunnen detecteren.
- Verken communitybronnen zoals de SOC Prime Threat Detection Marketplace om te zien of uw regels daar beschikbaar zijn.
- Overweeg of een online queryconversieprogramma, zoals Uncoder.io, voor uw regels kan werken.
- Als regels niet beschikbaar zijn of niet kunnen worden geconverteerd, moeten ze handmatig worden gemaakt met behulp van een KQL-query. Controleer de regelmapping om nieuwe queries te maken.
Lees meer over aanbevolen werkwijzen voor de migratie van detectieregels.
Uw analyseregels migreren naar Microsoft Sentinel:
Controleer of u een testsysteem hebt voor elke regel die u wilt migreren.
Bereid een validatieproces voor voor uw gemigreerde regels, inclusief volledige testscenario's en scripts.
Zorg ervoor dat uw team nuttige bronnen heeft om uw gemigreerde regels te testen.
Controleer of u alle vereiste gegevensbronnen hebt verbonden en controleer uw gegevensverbindingsmethoden.
Controleer of uw detecties beschikbaar zijn als ingebouwde sjablonen in Microsoft Sentinel:
Als de ingebouwde regels voldoende zijn, gebruikt u ingebouwde regelsjablonen om regels voor uw eigen werkruimte te maken.
Ga in Microsoft Sentinel naar het tabblad Configuration > Analytics-regelsjablonen > en maak en werk elke relevante analyseregel bij.
Om te leren hoe je regels maakt uit ingebouwde sjablonen, zie Create scheduled analytics rules from templates.
Als u detecties hebt die niet worden gedekt door de ingebouwde regels van Microsoft Sentinel, kunt u een online queryconversieprogramma proberen, zoals Uncoder.io om uw query's te converteren naar KQL.
Identificeer de triggervoorwaarde en regelactie en stel vervolgens uw KQL-query samen en controleer deze.
Als de ingebouwde regels en een online regelconversieprogramma niet voldoende zijn, moet u de regel handmatig maken. Gebruik in dergelijke gevallen de volgende stappen om te beginnen met het maken van uw regel:
Identificeer de gegevensbronnen die u in uw regel wilt gebruiken. U wilt een toewijzingstabel maken tussen gegevensbronnen en gegevenstabellen in Microsoft Sentinel om de tabellen te identificeren die u wilt opvragen.
Identificeer kenmerken, velden of entiteiten in uw gegevens die u in uw regels wilt gebruiken.
Bepaal de criteria en logica voor uw regel. In deze fase kunt u regelsjablonen gebruiken als voorbeelden voor het samenstellen van uw KQL-query's.
Denk aan filters, correlatieregels, actieve lijsten, verwijzingssets, volglijsten, detectieafwijkingen, aggregaties, enzovoort. Je kunt referenties gebruiken die door je legacy SIEM worden geleverd om ArcSight-querysyntaxis aan KQL toe te wijzen.
Identificeer de triggervoorwaarde en regelactie en stel vervolgens uw KQL-query samen en controleer deze. Wanneer u uw query bekijkt, kunt u rekening houden met hulpmiddelen voor KQL-optimalisatie.
Test de regel met elk van uw relevante use cases. Als dit niet de verwachte resultaten oplevert, wilt u mogelijk de KQL nakijken en opnieuw testen.
Wanneer u tevreden bent, kunt u de regel als gemigreerd beschouwen. Maak zo nodig een playbook voor uw regelactie. Om playbooks te maken en te gebruiken voor regelacties, zie Automate threat response with playbooks in Microsoft Sentinel.
Meer informatie over analyseregels:
- Regels voor geplande analyses in Microsoft Sentinel: Gebruik waarschuwingsgroepering om waarschuwingsmoeheid te verminderen door meldingen die binnen een bepaalde tijdsperiode plaatsvinden te groeperen.
- Kaart datavelden toe aan entiteiten in Microsoft Sentinel: Om SOC-ingenieurs in staat te stellen entiteiten te definiëren als onderdeel van het bewijs dat tijdens een onderzoek moet worden gevolgd. Entiteitstoewijzing maakt het ook mogelijk voor SOC-analisten om te profiteren van een intuïtieve onderzoeksgrafiek die kan helpen tijd en moeite te verminderen.
- Onderzoek incidenten met UEBA-gegevens: Als voorbeeld van hoe bewijs te gebruiken om gebeurtenissen, waarschuwingen en eventuele bladwijzers die aan een bepaald incident gekoppeld zijn, naar boven te brengen in het incidentvoorbeeldvenster.
- Kusto Query Language (KQL): Je kunt KQL gebruiken om alleen-lezen verzoeken naar je Log Analytics-database te sturen om data te verwerken en resultaten terug te geven. KQL wordt ook gebruikt in andere Microsoft-services, zoals Microsoft Defender voor Eindpunt en Application Insights.
Regelterminologie vergelijken
Met deze tabel kunt u het concept van een regel in Microsoft Sentinel in vergelijking met ArcSight verduidelijken.
| ArcSight | Microsoft Sentinel | |
|---|---|---|
| Regeltype | - Filterregel - Join-regel - Actieve lijstregel - En meer |
- Geplande zoekopdracht - Fusie - Microsoft Beveiliging - Machine Learning (ML) Gedragsanalyse |
| Criteria | Definiëren in regelvoorwaarden | Definiëren in KQL |
| Triggervoorwaarde | - Definieer in actie - Definieer in aggregatie (voor gebeurtenisaggregatie) |
Drempelwaarde: aantal queryresultaten |
| Actie | - Stel eventveld in - Melding verzenden - Nieuwe case aanmaken - Toevoegen aan actieve lijst - En meer |
- Waarschuwing of incident creëren - Integreert met Logic Apps |
Regelvoorbeelden koppelen en vergelijken
Gebruik de volgende voorbeelden om ArcSight-detectieregels te vergelijken met equivalente Microsoft Sentinel-queries geschreven in Kusto Query Language (KQL).
| Regel | Beschrijving | Voorbeelddetectieregel (ArcSight) | Voorbeeld van KQL-query | Middelen |
|---|---|---|---|---|
Filteren (AND) |
Een voorbeeldregel met AND voorwaarden. De gebeurtenis moet voldoen aan alle voorwaarden. |
Filtervoorbeeld (AND) | Filtervoorbeeld (AND) | Tekenreeksfilter: - Stringoperatoren Numeriek filter: - Numerieke operatoren Datum/tijd-filter: - Geleden - Datum en tijd - Tussen - Nu Parseren: - Parse - Extractie - parse_json - parse_csv - parse_path - parse_url |
Filteren (OR) |
Een voorbeeldregel met OR voorwaarden. De gebeurtenis kan voldoen aan een van de voorwaarden. |
Voorbeeld van filter (OF) | Voorbeeld van filter (OF) |
-
Stringoperatoren - in |
| Geneste filter | Een voorbeeldregel met geneste filtervoorwaarden. De regel bevat de MatchesFilter -instructie, die ook filtervoorwaarden bevat. |
Voorbeeld van geneste filter | Voorbeeld van geneste filter |
-
Gebruik KQL-functies om de analyse te versnellen - Verrijk Windows-beveiligingsgebeurtenissen met een geparametriseerde functie - Word lid - waarbij |
| Actieve lijst (opzoeken) | Een voorbeeld van een opzoekregel die gebruikmaakt van de InActiveList -instructie. |
Voorbeeld van actieve lijst (opzoeken) | Voorbeeld van actieve lijst (opzoeken) | - Een watchlist is het equivalent van de actieve lijstfunctie. Meer informatie over volglijsten. - Andere manieren om opzoekopdrachten te implementeren |
| Correlatie (overeenkomst) | Een voorbeeldregel die een voorwaarde definieert op basis van een set basisgebeurtenissen, met behulp van de Matching Event -instructie. |
Voorbeeld van correlatie (vergelijken) | Voorbeeld van correlatie (vergelijken) | koppeloperator: - Word lid - Sluit aan met tijdsvenster - schudde - Uitzending - Unie define-instructie: - Laat Aggregatie: - make_set - make_list - make_bag - bag_pack |
| Correlatie (tijdvenster) | Een voorbeeldregel die een voorwaarde definieert op basis van een set basisgebeurtenissen, met behulp van de Matching Event instructie, en de Wait time filtervoorwaarde gebruikt. |
Voorbeeld van correlatie (tijdvenster) | Voorbeeld van correlatie (tijdvenster) |
-
Word lid - Microsoft Sentinel-regels en join-statement |
Filtervoorbeeld (AND): ArcSight
Hier volgt een voorbeeld van een filterregel met AND voorwaarden in ArcSight.
Filtervoorbeeld (AND): KQL
Dit is de filterregel met AND voorwaarden in KQL.
SecurityEvent
| where EventID == 4728
| where SubjectUserName =~ "AutoMatedService"
| where isnotempty(SubjectDomainName)
Bij deze regel wordt ervan uitgegaan dat de Azure Monitoring Agent (AMA) de Windows-beveiliging-gebeurtenissen verzamelt. Daarom gebruikt de regel de tabel Microsoft Sentinel SecurityEvent.
Houd rekening met deze aanbevolen procedures:
- Als u uw query's wilt optimaliseren, vermijdt u indien mogelijk hoofdlettergevoelige operators:
=~. - Gebruik
==als de waarde niet hoofdlettergevoelig is. - Bestel de filters door te beginnen met de
whereinstructie, waarmee de meeste gegevens worden uitgefilterd.
Voorbeeldfilter (OR): ArcSight
Hier volgt een voorbeeld van een filterregel met OR voorwaarden in ArcSight.
Voorbeeld van een filter (OR): KQL
Hier volgen enkele manieren om de filterregel te schrijven met OR voorwaarden in KQL.
Gebruik als eerste optie de in instructie:
SecurityEvent
| where SubjectUserName in
("Adm1","ServiceAccount1","AutomationServices")
Gebruik als tweede optie de or instructie:
SecurityEvent
| where SubjectUserName == "Adm1" or
SubjectUserName == "ServiceAccount1" or
SubjectUserName == "AutomationServices"
Hoewel beide opties qua prestaties identiek zijn, raden we de eerste optie aan, die gemakkelijker te lezen is.
Voorbeeld van een genest filter: ArcSight
Hier volgt een voorbeeld van een geneste filterregel in ArcSight.
Hier volgt een regel voor het /All Filters/Soc Filters/Exclude Valid Users filter.
Voorbeeld van geneste filter: KQL
Hier volgen enkele manieren om de filterregel te schrijven met OR voorwaarden in KQL.
Als eerste optie gebruikt u een direct filter met een where instructie:
SecurityEvent
| where EventID == 4728
| where isnotempty(SubjectDomainName) or
isnotempty(TargetDomainName)
| where SubjectUserName !~ "AutoMatedService"
Als tweede optie gebruikt u een KQL-functie:
Sla de volgende query op als een KQL-functie met de
ExcludeValidUsersalias.SecurityEvent | where EventID == 4728 | where isnotempty(SubjectDomainName) | where SubjectUserName =~ "AutoMatedService" | project SubjectUserNameGebruik de volgende query om de
ExcludeValidUsersalias te filteren.SecurityEvent | where EventID == 4728 | where isnotempty(SubjectDomainName) or isnotempty(TargetDomainName) | where SubjectUserName !in (ExcludeValidUsers)
Als derde optie gebruikt u een parameterfunctie:
Maak een parameterfunctie met
ExcludeValidUsersals de naam en alias.Definieer de parameters van de functie. Bijvoorbeeld:
Tbl: (TimeGenerated:datetime, Computer:string, EventID:string, SubjectDomainName:string, TargetDomainName:string, SubjectUserName:string)De
parameterfunctie heeft de volgende query:Tbl | where SubjectUserName !~ "AutoMatedService"Voer de volgende query uit om de parameterfunctie aan te roepen:
let Events = ( SecurityEvent | where EventID == 4728 ); ExcludeValidUsers(Events)
Als vierde optie gebruikt u de join functie:
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
- We raden u aan een direct filter met een
whereinstructie (eerste optie) te gebruiken vanwege de eenvoud. Vermijd voor geoptimaliseerde prestaties het gebruik vanjoin(vierde optie). - Als u uw query's wilt optimaliseren, vermijdt u indien mogelijk de
=~!~niet-hoofdlettergevoelige operatoren. Gebruik de==operators en!=als de waarde niet hoofdlettergevoelig is.
Voorbeeld van actieve lijst (opzoeken): ArcSight
Hier is een regel voor actieve lijsten (zoekopdracht) in ArcSight.
Voorbeeld van actieve lijst (opzoeken): KQL
Important
Maak voordat je deze zoekopdracht uitvoert, de Cyber-Ark Exception Accounts watchlist aan in Microsoft Sentinel en voeg een accountveld op.
De volgende KQL-query gebruikt de Cyber-Ark Exception Accounts watchlist om zoekresultaten te filteren.
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
Sorteer de filters door te beginnen met de where instructie die de meeste gegevens wegfiltert.
Voorbeeld van correlatie (vergelijken): ArcSight
Hier volgt een voorbeeld van een ArcSight-regel waarmee een voorwaarde wordt gedefinieerd op basis van een set basisgebeurtenissen, met behulp van de Matching Event -instructie.
Voorbeeld van correlatie (vergelijken): KQL
In het volgende KQL-voorbeeld ziet u hoe u de overeenkomende correlatieregel van ArcSight in Microsoft Sentinel implementeert.
let event1 =(
SecurityEvent
| where EventID == 4728
);
let event2 =(
SecurityEvent
| where EventID == 4729
);
event1
| join kind=inner event2
on $left.TargetUserName==$right.TargetUserName
Beste praktijken
- Als u uw query wilt optimaliseren, moet u ervoor zorgen dat de kleinere tabel zich aan de linkerkant van de
joinfunctie bevindt. - Als de linkerkant van de tabel relatief klein is (maximaal 100 K records), voegt u toe
hint.strategy=broadcastvoor betere prestaties.
Voorbeeld van correlatie (tijdvenster): ArcSight
Hier volgt een ArcSight-voorbeeldregel die een voorwaarde definieert op basis van een set basisgebeurtenissen, met behulp van de Matching Event instructie en de Wait time filtervoorwaarde gebruikt.
Voorbeeld van correlatie (tijdvenster): KQL
In het volgende KQL-voorbeeld wordt een correlatieregel geïmplementeerd met een tijdvenster dat gelijk is aan het ArcSight-voorbeeld.
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
Voorbeeld van aggregatie: ArcSight
Hier is een voorbeeld van een ArcSight-regel met aggregatie-instellingen: drie treffers binnen 10 minuten.
Voorbeeld van aggregatie: KQL
De volgende KQL-query laat zien hoe u drie of meer overeenkomsten kunt detecteren met behulp van aggregatie.
SecurityEvent
| summarize Count = count() by SubjectUserName,
SubjectDomainName
| where Count >3