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.
Microsoft Sentinel-analyseregels zijn sets van criteria. Ze definiëren hoe gegevens worden bewaakt, wat wordt gedetecteerd en welke acties worden ondernomen wanneer aan specifieke voorwaarden wordt voldaan. Deze regels helpen bij het identificeren van verdacht gedrag, afwijkingen en mogelijke beveiligingsrisico's door logboeken en signalen van verschillende gegevensbronnen te analyseren.
Microsoft Sentinel-analyseregels zijn krachtige hulpprogramma's voor het verbeteren van het beveiligingspostuur van een organisatie, omdat ze proactief potentiële bedreigingen detecteren en erop reageren. Door een gestructureerde benadering te volgen voor het maken en beheren van deze regels, kunnen organisaties de mogelijkheden van Microsoft Sentinel gebruiken om hun digitale assets te beschermen en een robuuste beveiligingsinfrastructuur te onderhouden. Zie Detectie van bedreigingen in Microsoft Sentinel voor meer informatie.
In dit artikel wordt u begeleid bij het maken en publiceren van analyseregels voor Microsoft Sentinel-oplossingen.
Toepassingsgevallen voor Microsoft Sentinel-analyseregels
Microsoft Sentinel-analyseregels kunnen worden toegepast op een breed scala aan scenario's om beveiligingsbewaking en bedreigingsdetectie te verbeteren. Veelvoorkomende gebruiksvoorbeelden zijn:
- Inbraakdetectie: identificeer pogingen tot onbevoegde toegang of verdachte aanmeldingsactiviteiten die kunnen duiden op een mogelijke schending.
- Malwaredetectie: controleer op bekende malwarehandtekeningen of ongebruikelijk gedrag dat de aanwezigheid van schadelijke software kan voorstellen.
- Gegevensexfiltratie: detecteer grote of ongebruikelijke gegevensoverdrachten die kunnen betekenen dat gegevens worden geëxfileerd vanuit het netwerk.
- Insider-bedreigingen: identificeer afwijkend gedrag van interne gebruikers, zoals toegang tot gevoelige gegevens buiten normale uren of patronen.
- Nalevingsbewaking: naleving van wettelijke vereisten garanderen door te controleren op specifieke activiteiten of toegangspatronen.
- Opsporing van bedreigingen: zoek proactief naar indicatoren van inbreuk of andere tekenen van schadelijke activiteiten in het netwerk.
- Accountcompromittatie: detectie van tekenen die erop kunnen wijzen dat gebruikersaccounts gecompromitteerd zijn, zoals ongebruikelijke geografische aanmeldingspatronen of meerdere mislukte aanmeldingspogingen.
- Netwerkafwijkingen: identificeer ongebruikelijke netwerkverkeerspatronen die kunnen duiden op de aanwezigheid van een bedreiging of onjuiste configuratie.
- Escalatie van bevoegdheden: controleer op pogingen om verhoogde bevoegdheden binnen het netwerk te krijgen, wat een voorloper kan zijn van verdere schadelijke activiteiten.
- Eindpuntbeveiliging: zorg ervoor dat eindpunten veilig zijn door afwijkingen van normaal gedrag of de aanwezigheid van niet-geautoriseerde software te detecteren.
Analyseregels maken en publiceren
U maakt analyseregels in YAML-indeling . Gebruik deze voorbeelden van analyseregels als verwijzingen om uw eigen regels te maken:
- Microsoft Entra ID — FailedLogonToAzurePortal.yaml
- CrowdStrike Falcon — CriticalOrHighSeverityDetectionsByUser.yaml
- XBOW — XbowCriticalHighFindings.yaml
De volgende secties bieden een gedetailleerd overzicht van verschillende kenmerken van een analyseregel.
Voorbeeld van een analyseregel
Hier volgt een voorbeeldanalyseregel in YAML-indeling.
id: aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
name: Anomalous login from unknown IP
description: |
Identifies login attempts from IP addresses not seen in the past 14 days.
severity: Medium
requiredDataConnectors:
- connectorId: ContosoMyProduct
dataTypes:
- ContosoMyProduct_CL
queryFrequency: 1h
queryPeriod: 14d
triggerOperator: gt
triggerThreshold: 0
tactics:
- InitialAccess
relevantTechniques:
- T1078
status: Available
query: |
ContosoMyProduct_CL
| where TimeGenerated > ago(1h)
| where EventType == "Login"
| summarize count() by SrcIpAddr, UserName
| extend Name = tostring(split(UserName, '@', 0)[0])
| extend UPNSuffix = tostring(split(UserName, '@', 1)[0])
entityMappings:
- entityType: Account
fieldMappings:
- identifier: Name
columnName: Name
- identifier: UPNSuffix
columnName: UPNSuffix
- entityType: IP
fieldMappings:
- identifier: Address
columnName: SrcIpAddr
version: 1.0.0
kind: Scheduled
ID-kaart
Het id kenmerk bestaat uit een standaard GUID (Globally Unique Identifier). Genereer het met behulp van elk ontwikkelprogramma, een onlinegenerator of de nieuwe PowerShell New-GUID-cmdlet. Deze moet uniek zijn vergeleken met andere GUID's.
Dit is een verplicht veld.
Kind
Het kind kenmerk vertegenwoordigt het type regel.
Er zijn twee geaccepteerde waarden: scheduled en NRT (bijna realtime). Voor de scheduled waarde moet u andere eigenschappen definiëren, waaronder queryFrequency, queryPeriod, triggerThresholden triggerOperator. Voor NRT regels laat queryFrequencyu , queryPerioden triggerOperatortriggerThreshold.
Dit is een verplicht veld.
Name
Het name kenmerk biedt een kort label waarmee de detectie wordt samengevat. Zorg ervoor dat het label duidelijk en beknopt is om gebruikers te helpen het doel van de regel te begrijpen. Gebruik alertDetailsOverride dit om dynamische namen te genereren om analisten inzicht te geven in de waarschuwing. Dit kenmerk:
- Maakt gebruik van zinshoofdletters.
- Eindigt niet in een periode.
- Heeft een aanbevolen lengte van minder dan 50 tekens en een hard maximum van 100 tekens.
- Vermijd de woorden 'Suspicious' en 'Suspect'. Gebruik in plaats daarvan 'Onverwacht', 'Afwijkend' of 'Zeldzaam'.
Dit is een verplicht veld.
Description
Het description kenmerk biedt een gedetailleerde beschrijving van de detectie. De beschrijving bevat informatie over het gedrag dat wordt gedetecteerd, het mogelijke effect en eventuele aanbevolen acties. Dit kenmerk:
- Gebruikt hoofdletters voor alleen de eerste letter van een zin.
- Begint met 'Deze query zoekt naar' of 'Identificeert'.
- Verschilt van en meer beschrijvend dan het naamveld.
- Heeft een maximale lengte van 255 tekens.
- Is vijf zinnen of minder.
- Beschrijft de gegevensbron (connector of gegevenstype) niet.
- Biedt geen technische uitleg voor de querytaal.
- Gebruikt alleen ASCII-tekens. Em-streepjes, slimme aanhalingstekens en andere niet-ASCII-tekens komen niet door de validatie.
Dit is een verplicht veld.
Severity
Het severity kenmerk definieert het ernstniveau van de detectie. Ernst weerspiegelt het mogelijke effect van het gedrag dat wordt gedetecteerd en de urgentie van het antwoord.
- Informatief: Het incident vertegenwoordigt mogelijk niet rechtstreeks een beveiligingsrisico, maar kan van belang zijn voor vervolgonderzoek of om context- of situatiebewustheid toe te voegen aan een analist.
- Laag: Onmiddellijk effect is minimaal en een bedreigingsacteur moet meerdere stappen uitvoeren voordat een effect op een omgeving wordt bereikt.
- Gemiddeld: De bedreigingsacteur kan met deze activiteit een effect op de omgeving bereiken, maar het effect zou beperkt zijn binnen het bereik of extra activiteit vereisen.
- Hoog: De geïdentificeerde activiteit biedt de bedreigingsacteur uitgebreide toegang tot het uitvoeren van acties op de omgeving.
Note
Standaardwaarden voor ernstniveau zijn geen garantie voor het huidige of omgevingsimpactniveau. Ernstniveau is alleen van toepassing op Microsoft Sentinel-analysesjablonen. Anders bepaalt de beveiligingsservice die de waarschuwing heeft uitgegeven het severity kenmerk in de tabel Waarschuwingen. U kunt een alertDetailsOverride dynamisch severity kenmerk opgeven dat afhankelijk is van het werkelijke resultaat van de query.
Status
Het status kenmerk geeft de productiegereedheid van de regel aan:
-
Available: Regels klaar voor productie. -
InPreview: Bètaregels. -
Deprecated: Regels die worden uitgefaseerd.
Vereiste gegevensconnectors
Het requiredDataConnectors kenmerk vertegenwoordigt de lijst met gegevensconnectors die nodig zijn zodat de regel correct kan functioneren, inclusief de gegevensbronnen waarop de regel zijn query's uitvoert. Als er geen bestaande koppeling van een dataconnector is, moet u een open accolade gebruiken: requiredDataConnectors: [].
Het connectorId kenmerk geeft de id op van de gegevensconnector die u nodig hebt, zodat de query correct functioneert. Als uw detectiequery afhankelijk is van de gegevens die zijn opgehaald uit een specifieke connector, moet u hier de connector-id opgeven. Als uw analyseregel bijvoorbeeld afhankelijk is van de gegevens van deze connector, moet u het connectorID opgeven als 1PasswordCCPDefinition.
Het dataTypes kenmerk vertegenwoordigt de gegevenstypen waarvan de analyseregel afhankelijk is en vermeldt de naam van het gegevenstype waarnaar wordt verwezen in de dataTypes sectie van de connector. Als uw opsporingsquery bijvoorbeeld afhankelijk is van de gegevens van deze connector, moet u het gegevenstype opgeven als OnePasswordEventLogs_CL. Als de opsporingsquery werkt op een Kusto-functie/parser in plaats van de tabel (zoals Syslog, CommonEventFormatof _CL), dataTypes is de Kusto-functienaam/parsernaam en niet de tabelnaam.
Queryperiode
Het queryPeriod kenmerk vertegenwoordigt een opgegeven periode waarin de query wordt uitgevoerd. Bijvoorbeeld: de afgelopen 3 dagen. Voor dit kenmerk:
- Gebruik het Kusto Query Language (KQL)
TimeSpanformaat (bijvoorbeeld 3 dagen is3d, 2 uur is2h). - Zorg ervoor dat een leer- of referentieperiode binnen dit tijdsbestek valt.
- Gebruik geen waarde die hoger is
14ddan de maximaal ondersteunde waarde.
Dit veld is verplicht voor geplande analyseregels.
Queryfrequentie
Het queryFrequency kenmerk vertegenwoordigt de frequentie waarmee de query wordt uitgevoerd. Voor dit kenmerk:
- Gebruik de KQL-indeling
TimeSpan(bijvoorbeeld 3 dagen is3d, 2 uur is2h). - Gebruik een
queryFrequencywaarde die kleiner is dan of gelijk is aan dequeryPeriod. - Volg deze regel: als de
queryPeriodwaarde groter is dan of gelijk is aan 2 dagen (2d), mag dequeryFrequencywaarde niet kleiner zijn dan 1 uur (1h) en wordt deze alleen gebruikt voor detecties met hoge ernst.
Dit veld is verplicht voor geplande analyseregels.
Triggeroperator
Het triggerOperator kenmerk geeft het mechanisme aan dat de waarschuwing activeert. Bijvoorbeeld: groter dan (gt) het getal dat is ingesteld in het triggerThreshold kenmerk (zie Drempelwaarde voor trigger).
-
gt: Groter dan. -
lt: Kleiner dan. -
eq: Gelijk aan.
Dit veld is verplicht voor geplande analyseregels.
Drempelwaarde voor activering
Het triggerThreshold kenmerk vertegenwoordigt de drempelwaarde waarmee de waarschuwing wordt geactiveerd. Drempelwaarde is de waarde waarnaar wordt triggerOperator verwezen. Ondersteunde waarden zijn een geheel getal tussen 0 en 10.000.
Als de triggerOperator waarde bijvoorbeeld is ingesteld op gt en de triggerThreshold is 1, wordt de waarschuwing geactiveerd wanneer een waarde groter is dan 1.
Dit veld is verplicht voor geplande analyseregels.
Tactics
Het tactics kenmerk definieert het MITRE ATT&CK tactics waarop de detectie betrekking heeft. Wanneer u de tactiek definieert, kunnen gebruikers inzicht hebben in de context van de detectie en hoe deze in het algehele bedreigingslandschap past. Voor dit kenmerk:
-
ATT&CK Framework v16wordt ondersteund. - Namen maken gebruik van PascalCase en mogen geen spaties bevatten. Bijvoorbeeld:
InitialAccessofLateralMovement. - Er kunnen maximaal vijf tactieken per regel worden gedefinieerd.
- Geldige waarden zijn:
Reconnaissance,ResourceDevelopment,InitialAccess,Execution,Persistence,PrivilegeEscalation,DefenseEvasion,CredentialAccess,Discovery,LateralMovement,Collection,CommandAndControl,ExfiltrationenImpact.
Dit is een verplicht veld.
Relevante technieken
Het relevantTechniques kenmerk definieert het MITRE ATT&CK techniques waarop de detectie betrekking heeft. Wanneer u de technieken definieert, kunnen gebruikers inzicht hebben in de context van de detectie en hoe deze in het algehele bedreigingslandschap past. Voor dit kenmerk:
-
ATT&CK Framework v16wordt ondersteund. - Elke techniek moet tot ten minste één van de vermelde
tacticstechnieken behoren. - Namen kunnen geen spaties bevatten. Bijvoorbeeld:
T1078ofT1078.001. - Er kunnen maximaal 10 technieken per regel worden gedefinieerd.
Dit is een verplicht veld.
Query
Het query kenmerk definieert de detectielogica. U wordt aangeraden de query in KQL te schrijven en ervoor te zorgen dat deze gestructureerd en gemakkelijk te begrijpen is. We raden u aan een efficiënte query te maken die is geoptimaliseerd voor prestaties om ervoor te zorgen dat deze kan worden uitgevoerd op grote gegevenssets zonder dat dit van invloed is op de prestaties. Zorg ervoor dat uw query voldoet aan de volgende criteria.
Beperk de query tot 10.000 tekens. Als de querysectie deze limiet overschrijdt, kunt u overwegen het aantal tekens te verminderen. Een statische lijst met items die worden gebruikt voor vergelijking binnen de hoofdtekst van de query, kan ertoe leiden dat u de limiet overschrijdt. U wordt aangeraden deze lijsten te verplaatsen naar een van de volgende opties:
- Een volglijstfunctie
- Een aangepaste JSON/CSV
- Een aangepaste functie
Elke regel in de hoofdtekst van de query moet ten minste één spatie aan het begin hebben, maar twee spaties zijn standaard ter ondersteuning van leesbaarheid.
Wanneer u een query verzendt voor een gegevenstype dat niet aanwezig is in de map Detecties of Opsporingsquery's, geeft u de submap die de YAML-bestanden bevat nadat de tabel is opgevraagd. Als uw query bijvoorbeeld betrekking heeft op de AzureDevOpsAuditing tabel, maakt u een map met de naam AzureDevOpsAuditing.
Definieer door mensen leesbare namen voor expliciete constanten:
let FailedLoginEventID = 4625;let countThreshold = 6;
We raden u ten zeerste aan opmerkingen te gebruiken om de query te verduidelijken. Vermijd het toevoegen van opmerkingen aan het einde van een queryregel. Voeg in plaats daarvan uw opmerkingen toe aan een afzonderlijke regel. Voorbeeld:
// Removing noisy processes for an environment, adjust as needed
Als u verwijst naar een parser in plaats van een tabelnaam, zorgt u ervoor dat de beschrijving duidelijk is door een opmerking op te nemen naast de verwijzing naar de functie parser. De parser moet eerst in de werkruimte worden geïmporteerd. Anders herkennen de query's deze niet als geldig.
Zorg ervoor dat elk beschikbaar entiteitsveld wordt geretourneerd voor mapping. (Raadpleeg de sectie Entiteitskoppelingen.) Maak de geretourneerde tabel schoon, zodat deze alleen de eigenschappen bevat die u verder moet onderzoeken. U hebt geen filter nodig TimeGenerated wanneer u een eenvoudige lookback opdracht in de hele query gebruikt. De queryPeriod waarde in de YAML bepaalt dit proces.
Voor het baselinen of uitvoeren van een historische vergelijking, zoals het vergelijken van vandaag met de afgelopen zeven dagen, neemt u een tijdgebonden filter op, zoals | where TimeGenerated >= ago(lookback), omdat de YAML-sjabloon momenteel geen ondersteuning biedt voor meerdere queryPeriod waarden. Vermijd het gebruik van tijdsbestekken korter dan één dag, tenzij er een specifieke reden is. We raden geen tijdsbestek aan die langer is dan 14 dagen vanwege mogelijke gevolgen voor de prestaties.
Samenvatten indien nodig. Zorg ervoor dat u het tijdveld (meestal TimeGenerated) opneemt omdat u dit nodig hebt in het entiteitsveld. Neem zowel de min()- als max()-waarden als volgt op: | summarize StartTime = max(TimeGenerated), EndTime = min(TimeGenerated). Gebruik de voorwaarden StartTime en EndTime uitsluitend. Wijs de velden niet toe aan de namen StartTimeUtc of EndTimeUtc, omdat deze namen kunnen conflicteren met voorkeuren voor gebruikerservaring.
Voeg daarnaast zoveel mogelijk velden toe om de gebruiker inzicht te geven in de context van de waarschuwing. U wordt aangeraden ten minste één van de primaire entiteiten op te nemen: Host, Accountof IP.
Kolomnamen in uw aangepaste tabel moeten camelCase gebruiken (bijvoorbeeld SrcIpAddr of UserName).
Dit is een verplicht veld.
Instellingen voor gebeurtenisgroepering
Het eventGroupingSettings kenmerk heeft betrekking op waarschuwingen. Een waarschuwingsregel kan voor elk queryresultaat een afzonderlijke waarschuwing genereren. Een regel die niet-Microsoft-waarschuwingen in de gebeurtenisstroom identificeert, kan bijvoorbeeld een Microsoft Sentinel-waarschuwing maken voor elke bronwaarschuwing.
Als u één waarschuwing wilt maken voor alle queryresultaten (de standaardinstelling), gebruikt u:
eventGroupingSettings: aggregationKind: SingleAlertAls u een afzonderlijke waarschuwing wilt maken voor elk queryresultaat, gebruikt u:
eventGroupingSettings: aggregationKind: AlertPerResult
Entiteitstoewijzingen
Het entityMappings kenmerk is integraal wanneer u geplande analyseregels configureert. Het verrijkt de uitvoer van de query (waarschuwingen en incidenten) met essentiële informatie die fungeert als de bouwstenen van onderzoekende processen en herstelacties die volgen.
De entityType lijst vertegenwoordigt de standaardlijst met entiteiten die worden herkend door Microsoft Sentinel. Ondersteunde typen zijn onder andereAccount, , HostIP, URL, File, Process, DNS, AzureResource, FileHash, RegistryKey, RegistryValueSecurityGroupMailbox, en MailMessage. Bekijk de toegestane waarden in de kolom "Entiteitstype" in de Entiteitstoewijzingstabel.
Dit is een verplicht veld.
Veldtoewijzingen
Het fieldMappings kenmerk vertegenwoordigt de id van het veld in de query-uitvoer die overeenkomt met het entiteitstype. Bekijk toegestane waarden onder de identificatiekolomwaarde in de Entiteitstoewijzingstabel. Voor dit kenmerk:
Elke sjabloon kan maximaal 10 entiteitstoewijzingen hebben.
Elke entiteitstoewijzing kan maximaal drie veldtoewijzingen hebben (dat wil gezegd id's).
entityMappings: - entityType: Account fieldMappings: - identifier: FullName columnName: AccountCustomEntity - entityType: Host fieldMappings: - identifier: FullName columnName: HostCustomEntity - entityType: IP fieldMappings: - identifier: Address columnName: ClientIP - entityType: DNS fieldMappings: - identifier: DomainName columnName: Name
Aangepaste details
Het customDetails kenmerk integreert gebeurtenisgegevens in waarschuwingen, waardoor deze zichtbaar zijn in beveiligingsincidenten voor snellere triatië, onderzoek en reactie. Aangepaste details zijn sleutel-waardeparen van eigenschaps- en kolomnamen. Voor meer informatie, zie details van aangepaste Surface-gebeurtenissen in waarschuwingen in Microsoft Sentinel. Er kunnen maximaal 20 aangepaste details (dat wil gezegd sleutel-waardeparen) per sjabloon worden gedefinieerd. Sleutelnamen moeten 20 tekens of minder zijn.
customDetails:
Computers: Computer
IPs: ComputerIP
Waarschuwingsdetails negeren
Het alertDetailsOverride kenmerk is een dynamisch veld dat u kunt gebruiken om de details van de waarschuwing te overschrijven. U kunt dit kenmerk gebruiken om meer context of informatie aan de analist te geven wanneer de waarschuwing wordt geactiveerd. Wanneer u deze functie gebruikt, zorgt u ervoor dat analisten relevante informatie ontvangen, inclusief relevante entiteitsnamen, om sneller en nauwkeuriger inzicht te krijgen in het incident. Beperkingen zijn onder andere:
Er kunnen maximaal drie parameters worden opgenomen in de
nameofdescription.Het
namemag niet langer zijn dan 256 tekens, terwijl dedescriptiontekens maximaal 5000 tekens mogen bevatten.De kolomnaam binnen de accolades moet exact overeenkomen met de verwachte kolomnaam, zonder voorloop- of volgspaties (bijvoorbeeld
{{columnName}}niet{{ columnName }}). In het volgende voorbeeld,columnName1,columnName2endynamicTacticdynamicSeverityzijn uitvoervelden van de geplande waarschuwingsquery.alertDetailsOverride: alertDisplayNameFormat: free text with field names embedded using the format {{columnName}} # Up to 256 chars and 3 placeholders alertDescriptionFormat: free text with field names embedded using the format {{columnName}} # Up to 5000 chars and 3 placeholders alertTacticsColumnName: dynamicTacticColumnName alertSeverityColumnName: dynamicSeverityColumnNamealertDetailsOverride: alertDisplayNameFormat: rule {{columnName1}} display name alertDescriptionFormat: rule {{columnName2}} display name alertTacticsColumnName: dynamicTactic alertSeverityColumnName: dynamicSeverity
Incidentconfiguratie
Het incidentConfiguration kenmerk bepaalt het maken van incidenten en het groeperen van waarschuwingen in incidenten. Gebruik deze om te definiëren hoe waarschuwingen die door deze regel worden gegenereerd, worden samengevoegd in incidenten.
Versie
Wanneer een klant een nieuwe opsporingsquery maakt op basis van de sjabloon, wordt de sjabloon version opgeslagen. Als er een nieuwe sjabloonversie wordt gepubliceerd, krijgen klanten een melding in de UX. Versies volgen de indeling a, ben c, waarin a de primaire versie is, b is de secundaire versie en c is de patch. Het versieveld is de laatste regel van de sjabloon.
Dit is een verplicht veld.