ArcSight-detectieregels migreren naar Microsoft Sentinel
In dit artikel wordt beschreven hoe u uw ArcSight-detectieregels identificeert, vergelijkt en migreert naar analyseregels van Microsoft Sentinel.
Regels identificeren en migreren
Microsoft Sentinel maakt gebruik van machine learning-analyses om hoogwaardige en bruikbare incidenten te maken. Sommige van uw bestaande detecties zijn mogelijk overbodig in Microsoft Sentinel. Migreer daarom niet al uw detectie- en analyseregels blind. Bekijk deze overwegingen wanneer u uw bestaande detectieregels identificeert.
- 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.
- Controleer de regels die de afgelopen 6-12 maanden geen waarschuwingen hebben geactiveerd en bepaal of ze nog steeds relevant zijn.
- Verwijder bedreigingen op laag niveau of waarschuwingen die u regelmatig negeert.
- Gebruik bestaande functionaliteit en controleer of de ingebouwde analyseregels van Microsoft Sentinel uw huidige use cases kunnen aanpakken. Omdat Microsoft Sentinel gebruikmaakt van machine learning-analyses om hoogwaardige en bruikbare incidenten te produceren, is het waarschijnlijk dat sommige van uw bestaande detecties niet meer nodig zijn.
- Bevestig verbonden gegevensbronnen en controleer uw gegevensverbindingsmethoden. Ga opnieuw naar gesprekken over het verzamelen van gegevens om gegevensdiepte en breedte te garanderen in de use cases die u wilt detecteren.
- Verken communitybronnen zoals soc Prime Threat Detection Marketplace om te controleren of uw regels beschikbaar zijn.
- Overweeg of een online queryconversieprogramma, zoals Uncoder.io werkt voor uw regels.
- Als regels niet beschikbaar zijn of niet kunnen worden geconverteerd, moeten ze handmatig worden gemaakt met behulp van een KQL-query. Controleer de toewijzing van regels om nieuwe query's te maken.
Meer informatie over aanbevolen procedures voor het migreren van detectieregels.
Uw analyseregels migreren naar Microsoft Sentinel:
Controleer of er een testsysteem is ingesteld 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 resources heeft om uw gemigreerde regels te testen.
Controleer of u alle vereiste gegevensbronnen hebt verbonden en controleer de methoden voor gegevensverbindingen.
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 Sjablonen voor configuratieanalyseregels > > en maak en werk elke relevante analyseregel bij.
Zie Geplande analyseregels maken op basis van sjablonen voor meer informatie.
Als u detecties hebt die niet worden gedekt door de ingebouwde regels van Microsoft Sentinel, kunt u een onlinequeryconversieprogramma proberen, zoals Uncoder.io om uw query's te converteren naar KQL.
Identificeer de actie triggervoorwaarde en regel en bouw en controleer vervolgens uw KQL-query.
Als de ingebouwde regels of een online regelconversieprogramma niet voldoende zijn, moet u de regel handmatig maken. In dergelijke gevallen gebruikt u de volgende stappen om te beginnen met het maken van uw regel:
Identificeer de gegevensbronnen die u wilt gebruiken in uw regel. U wilt een toewijzingstabel maken tussen gegevensbronnen en gegevenstabellen in Microsoft Sentinel om de tabellen te identificeren waarop u een query wilt uitvoeren.
Identificeer kenmerken, velden of entiteiten in uw gegevens die u wilt gebruiken in uw regels.
Bepaal uw regelcriteria en logica. In deze fase kunt u regelsjablonen gebruiken als voorbeelden voor het maken van KQL-query's.
Overweeg filters, correlatieregels, actieve lijsten, referentiesets, volglijsten, detectieafwijkingen, aggregaties, enzovoort. U kunt verwijzingen van uw verouderde SIEM gebruiken om te begrijpen hoe u de querysyntaxis het beste kunt toewijzen.
Identificeer de actie triggervoorwaarde en regel en bouw en controleer vervolgens uw KQL-query. Wanneer u uw query bekijkt, kunt u hulpbronnen voor KQL-optimalisatie overwegen.
Test de regel met elk van uw relevante use cases. Als er geen verwachte resultaten worden opgegeven, kunt u de KQL controleren en opnieuw testen.
Wanneer u tevreden bent, kunt u de gemigreerde regel overwegen. Maak indien nodig een playbook voor uw regelactie. Zie voor meer informatie Bedreigingsrespons automatiseren met playbooks in Microsoft Sentinel.
Meer informatie over analyseregels:
- Geplande analyseregels in Microsoft Sentinel. Gebruik waarschuwingsgroepering om de vermoeidheid van waarschuwingen te verminderen door waarschuwingen te groeperen die binnen een bepaalde periode plaatsvinden.
- Wijs gegevensvelden toe aan entiteiten in Microsoft Sentinel om SOC-technici in staat te stellen entiteiten te definiëren als onderdeel van het bewijs dat tijdens een onderzoek moet worden bijgehouden. Met entiteitstoewijzing kunnen SOC-analisten ook profiteren van een intuïtieve onderzoeksgrafiek die kan helpen tijd en moeite te verminderen.
- Onderzoek incidenten met UEBA-gegevens, als voorbeeld van het gebruik van bewijs om gebeurtenissen, waarschuwingen en bladwijzers weer te geven die zijn gekoppeld aan een bepaald incident in het voorbeeldvenster van het incident.
- Kusto-querytaal (KQL), waarmee u alleen-lezenaanvragen naar uw Log Analytics-database kunt verzenden om gegevens te verwerken en resultaten te retourneren. KQL wordt ook gebruikt in andere Microsoft-services, zoals Microsoft Defender voor Eindpunt en Application Insights.
Regelterminologie vergelijken
Deze tabel helpt u om het concept van een regel in Microsoft Sentinel te verduidelijken in vergelijking met ArcSight.
ArcSight | Microsoft Sentinel | |
---|---|---|
Regeltype | • Filterregel • Join-regel • Actieve lijstregel • En meer |
• Geplande query •Samensmelting • Microsoft-beveiliging • Machine Learning (ML) Behavior Analytics |
Criteria | Definiëren in regelvoorwaarden | Definiëren in KQL |
Triggervoorwaarde | • Definiëren in actie • Definiëren in aggregatie (voor gebeurtenisaggregatie) |
Drempelwaarde: aantal queryresultaten |
Actie | • Gebeurtenisveld instellen • Melding verzenden • Nieuwe case maken • Toevoegen aan actieve lijst • En meer |
• Waarschuwing of incident maken • Integreert met Logic Apps |
Regelvoorbeelden toewijzen en vergelijken
Gebruik deze voorbeelden om regels van ArcSight in verschillende scenario's te vergelijken en toe te wijzen aan Microsoft Sentinel.
Regel | Beschrijving | Voorbeelddetectieregel (ArcSight) | Voorbeeld van KQL-query | Resources |
---|---|---|---|---|
Filter (AND ) |
Een voorbeeldregel met AND voorwaarden. De gebeurtenis moet overeenkomen met alle voorwaarden. |
Voorbeeld van filteren (AND) | Voorbeeld van filteren (AND) | Tekenreeksfilter: • Tekenreeksoperatoren Numeriek filter: • Numerieke operatoren Datum/tijd-filter: • geleden • Datum/tijd • tussen • nu Parsing: • parseren • extract • parse_json • parse_csv • parse_path • parse_url |
Filter (OR ) |
Een voorbeeldregel met OR voorwaarden. De gebeurtenis kan overeenkomen met een van de voorwaarden. |
Voorbeeld van filter (OR) | Voorbeeld van filter (OR) | • Tekenreeksoperatoren • in |
Genest filter | Een voorbeeldregel met geneste filtervoorwaarden. De regel bevat de MatchesFilter instructie, die ook filtervoorwaarden bevat. |
Voorbeeld van geneste filter | Voorbeeld van geneste filter | • KQL-voorbeeldfunctie • Voorbeeldparameterfunctie • lid worden • waar |
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 volglijst is het equivalent van de actieve lijstfunctie. Meer informatie over volglijsten. • Andere manieren om opzoekacties te implementeren |
Correlatie (overeenkomend) | Een voorbeeldregel waarmee een voorwaarde wordt gedefinieerd voor een set basisgebeurtenissen, met behulp van de Matching Event instructie. |
Voorbeeld van correlatie (overeenkomende) | Voorbeeld van correlatie (overeenkomende) | join-operator: • lid worden • deelnemen met tijdvenster • willekeurige volgorde • Uitzending • Unie instructie definiëren: • 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) | • lid worden • Microsoft Sentinel-regels en join-instructie |
Filtervoorbeeld (AND): ArcSight
Hier volgt een voorbeeldfilterregel met AND
voorwaarden in ArcSight.
Filtervoorbeeld (AND): KQL
Hier volgt 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:
- Om uw query's te optimaliseren, vermijdt u indien mogelijk hoofdlettergevoelige operators:
=~
- Gebruik
==
deze optie als de waarde niet hoofdlettergevoelig is. - Bestel de filters door te beginnen met de
where
instructie, waarmee de meeste gegevens worden gefilterd.
Filtervoorbeeld (OR): ArcSight
Hier volgt een voorbeeldfilterregel met OR
voorwaarden in ArcSight.
Filtervoorbeeld (OR): KQL
Hier volgen een aantal manieren om de filterregel te schrijven met OR
voorwaarden in KQL.
Als eerste optie gebruikt u de in
instructie:
SecurityEvent
| where SubjectUserName in
("Adm1","ServiceAccount1","AutomationServices")
Gebruik de or
instructie als tweede optie:
SecurityEvent
| where SubjectUserName == "Adm1" or
SubjectUserName == "ServiceAccount1" or
SubjectUserName == "AutomationServices"
Hoewel beide opties identiek zijn in de prestaties, raden we de eerste optie aan, die gemakkelijker te lezen is.
Geneste filtervoorbeeld: 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.
Geneste filtervoorbeeld: KQL
Hier volgen een aantal 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
ExcludeValidUsers
alias.SecurityEvent | where EventID == 4728 | where isnotempty(SubjectDomainName) | where SubjectUserName =~ "AutoMatedService" | project SubjectUserName
Gebruik de volgende query om de
ExcludeValidUsers
alias 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
ExcludeValidUsers
als naam en alias.Definieer de parameters van de functie. Voorbeeld:
Tbl: (TimeGenerated:datetime, Computer:string, EventID:string, SubjectDomainName:string, TargetDomainName:string, SubjectUserName:string)
De
parameter
functie 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
Overwegingen:
- We raden u aan een direct filter te gebruiken met een
where
instructie (eerste optie) vanwege de eenvoud. Vermijd voor geoptimaliseerde prestaties het gebruikjoin
(vierde optie). - Om uw query's te optimaliseren, vermijdt u indien mogelijk de
=~
en!~
niet hoofdlettergevoelige operators. Gebruik de==
en!=
operators als de waarde niet hoofdlettergevoelig is.
Voorbeeld van actieve lijst (opzoeken): ArcSight
Hier volgt een actieve lijstregel (opzoekregel) in ArcSight.
Voorbeeld van actieve lijst (opzoeken): KQL
Bij deze regel wordt ervan uitgegaan dat de watchlist Cyber-Ark Exception Accounts bestaat in Microsoft Sentinel met een accountveld.
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
Bestel de filters door te beginnen met de where
instructie waarmee de meeste gegevens worden gefilterd.
Voorbeeld van correlatie (overeenkomend): ArcSight
Hier volgt een ArcSight-voorbeeldregel die een voorwaarde definieert voor een set basisgebeurtenissen, met behulp van de Matching Event
instructie.
Voorbeeld van correlatie (overeenkomend): KQL
let event1 =(
SecurityEvent
| where EventID == 4728
);
let event2 =(
SecurityEvent
| where EventID == 4729
);
event1
| join kind=inner event2
on $left.TargetUserName==$right.TargetUserName
Best practices:
- Als u de query wilt optimaliseren, moet u ervoor zorgen dat de kleinere tabel zich aan de linkerkant van de
join
functie bevindt. - Als de linkerkant van de tabel relatief klein is (maximaal 100 K-records), voegt u dit toe
hint.strategy=broadcast
voor betere prestaties.
Voorbeeld van correlatie (tijdvenster): ArcSight
Hier volgt een ArcSight-voorbeeldregel die een voorwaarde definieert voor een set basisgebeurtenissen, met behulp van de Matching Event
instructie en die gebruikmaakt van de Wait time
filtervoorwaarde.
Voorbeeld van correlatie (tijdvenster): KQL
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 volgt een ArcSight-voorbeeldregel met aggregatie-instellingen: drie overeenkomsten binnen 10 minuten.
Voorbeeld van aggregatie: KQL
SecurityEvent
| summarize Count = count() by SubjectUserName,
SubjectDomainName
| where Count >3
Volgende stappen
In dit artikel hebt u geleerd hoe u uw migratieregels van ArcSight kunt toewijzen aan Microsoft Sentinel.