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.
Splunk-detectieregels zijn SIEM-onderdelen (Security Information and Event Management) die worden vergeleken met analyseregels in Microsoft Sentinel. In dit artikel worden de concepten beschreven die u kunt identificeren, vergelijken en migreren naar Microsoft Sentinel. De beste manier is om te beginnen met de SIEM-migratie-ervaring, die kant-en-klare (OOTB) analyseregels identificeert om deze automatisch te vertalen.
Als u de implementatie van Splunk Waarneembaarheid wilt migreren, vindt u meer informatie over het migreren van Splunk naar Azure Monitor-logboeken.
Controleregels
Microsoft Sentinel maakt gebruik van machine learning-analyses om hoogwaardige en bruikbare incidenten te maken. Sommige van uw bestaande Splunk-detecties zijn mogelijk overbodig in Microsoft Sentinel, dus migreer ze niet allemaal 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 verouderde regels die geen waarschuwingen hebben voor de afgelopen 6-12 maanden en bepaal of ze nog steeds relevant zijn.
- Verwijder bedreigingen op laag niveau of waarschuwingen die u regelmatig negeert.
- Bevestig verbonden gegevensbronnen en controleer uw gegevensverbindingsmethoden. Microsoft Sentinel Analytics vereist dat het gegevenstype aanwezig is in de Log Analytics-werkruimte voordat een regel wordt ingeschakeld. Ga opnieuw naar gesprekken over het verzamelen van gegevens om gegevensdiepte en breedte te garanderen in de use cases die u wilt detecteren. Gebruik vervolgens de SIEM-migratie-ervaring om ervoor te zorgen dat de gegevensbronnen correct worden toegewezen.
Regels migreren
Nadat u de Splunk-detecties hebt geïdentificeerd die moeten worden gemigreerd, bekijkt u deze overwegingen voor het migratieproces:
- Vergelijk de bestaande functionaliteit van de OOTB-analyseregels van Microsoft Sentinel met uw huidige use cases. Gebruik de SIEM-migratie om te zien welke Splunk-detecties automatisch worden geconverteerd naar OOTB-sjablonen.
- Vertaal detecties die niet zijn afgestemd op OOTB-analyseregels. De beste manier om Splunk-detecties automatisch te vertalen, is met de SIEM-migratie-ervaring.
- Ontdek meer algoritmen voor uw gebruiksvoorbeelden door communityresources zoals soc Prime Threat Detection Marketplace te verkennen.
- Detecties handmatig vertalen als ingebouwde regels niet beschikbaar zijn of niet automatisch worden vertaald. Maak de nieuwe KQL-query's en controleer de toewijzing van regels.
Zie de aanbevolen procedures voor het migreren van detectieregels voor meer informatie.
Stappen voor regelmigratie
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 de vereiste gegevensbronnen hebt verbonden en controleer de methoden voor gegevensverbindingen.
Controleer of uw detecties beschikbaar zijn als OOTB-sjablonen in Microsoft Sentinel:
Gebruik de SIEM-migratie-ervaring om vertaling en installatie van de OOTB-sjablonen te automatiseren.
Zie De SIEM-migratie-ervaring gebruiken voor meer informatie.
Als u gebruikssituaties heeft die niet in de detecties worden weerspiegeld, kunt u regels maken voor uw eigen werkruimte met kant-en-klare regelsjablonen.
Ga in Microsoft Sentinel naar de Inhoudshub.
Filter inhoudstype voor analyseregelsjablonen .
Zoek en installeer/werk elke bijbehorende Content Hub-oplossing of zelfstandige sjabloon voor analyseregels bij.
Voor meer informatie, zie Kant-en-klare bedreigingsdetectie.
Als u detecties hebt die niet worden gedekt door de OOTB-regels van Microsoft Sentinel, probeert u eerst de SIEM-migratie-ervaring voor automatische vertaling.
Als de OOTB-regels en de SIEM-migratie de detectie niet volledig vertalen, maakt u de regel handmatig. In dergelijke gevallen gebruikt u de volgende stappen om uw regel te maken:
Identificeer de gegevensbronnen die u wilt gebruiken in uw regel. Identificeer de Microsoft Sentinel-tabellen waarop u een query wilt uitvoeren door een toewijzingstabel te maken tussen gegevensbronnen en gegevenstabellen.
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 vinden als voorbeelden voor het maken van uw 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 triggervoorwaarde en regelactie, 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, controleert en bewerkt u de KQL en test u deze opnieuw.
Houd rekening met de gemigreerde regel wanneer u tevreden bent. Maak indien nodig een playbook voor uw regelactie. Zie Bedreigingsreacties automatiseren met playbooks in Microsoft Sentinel voor meer informatie.
Meer informatie over analyseregels:
- Maak aangepaste analyseregels om bedreigingen te detecteren. 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] (investigation-cases.md#use-the-investigation-graph-to-deep-dive) waarmee u tijd en moeite kunt 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 Query Language (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 op basis van Kusto-querytaal (KQL) in Microsoft Sentinel te verduidelijken in vergelijking met een Splunk-detectie op basis van SPL (Search Processing Language).
| Splunk | Microsoft Sentinel | |
|---|---|---|
| Regeltype | •Gepland •Real-time |
• Geplande query •Samensmelting • Microsoft-beveiliging • Machine Learning (ML) Gedragsanalyse |
| Criteria | Definiëren in SPL | Definiëren in KQL |
| Triggervoorwaarde | • Aantal resultaten • Aantal hosts • Aantal bronnen •Gewoonte |
Drempelwaarde: aantal queryresultaten |
| Actie | • Toevoegen aan geactiveerde waarschuwingen • Gebeurtenis vastleggen • Uitvoerresultaten om op te zoeken • En meer |
• Waarschuwing of incident maken • Integreert met Logic Apps |
Regelvoorbeelden toewijzen en vergelijken
Gebruik deze voorbeelden om regels van Splunk in verschillende scenario's te vergelijken en toe te wijzen aan Microsoft Sentinel.
Algemene zoekopdrachten
| SPL-opdracht | Beschrijving | KQL-operator | KQL-voorbeeld |
|---|---|---|---|
chart/ timechart |
Retourneert resultaten in een tabelvormige uitvoer voor tijdreeksgrafieken. | renderoperator | … | render timechart |
dedup |
Hiermee verwijdert u de volgende resultaten die overeenkomen met een opgegeven criterium. | • uniek • samenvatten |
… | summarize by Computer, EventID |
eval |
Hiermee wordt een expressie berekend. Meer informatie over algemene eval opdrachten. |
verlengen | T | extend duration = endTime - startTime |
fields |
Hiermee verwijdert u velden uit zoekresultaten. | • project • project-afwezig |
T | project cost=price*quantity, price |
head/tail |
Retourneert de eerste of laatste N-resultaten. | Boven | T | top 5 by Name desc nulls last |
lookup |
Hiermee worden veldwaarden van een externe bron toegevoegd. | • externe gegevens • opzoeken |
KQL-voorbeeld |
rename |
Hiermee wijzigt u de naam van een veld. Gebruik jokertekens om meerdere velden op te geven. | projectnaam wijzigen | T | project-rename new_column_name = column_name |
rex |
Hiermee geeft u groepsnamen op met behulp van reguliere expressies om velden te extraheren. | komt overeen met regex | … | where field matches regex "^addr.*" |
search |
Hiermee worden resultaten gefilterd op resultaten die overeenkomen met de zoekexpressie. | zoeken | search "X" |
sort |
Hiermee sorteert u de zoekresultaten op de opgegeven velden. | sorteren | T | sort by strlen(country) asc, price desc |
stats |
Biedt statistieken, optioneel gegroepeerd op velden. Meer informatie over algemene statistiekenopdrachten. | samenvatten | KQL-voorbeeld |
mstats |
Vergelijkbaar met statistieken, gebruikt voor metrische gegevens in plaats van gebeurtenissen. | samenvatten | KQL-voorbeeld |
table |
Hiermee geeft u op welke velden in de resultatenset moeten worden bewaard en worden gegevens in tabelvorm bewaard. | project | T | project columnA, columnB |
top/rare |
Geeft de meest of minst voorkomende waarden van een veld weer. | Boven | T | top 5 by Name desc nulls last |
transaction |
Groepen zoekresultaten in transacties. Voorbeeld van SPL |
Voorbeeld: row_window_session | KQL-voorbeeld |
eventstats |
Hiermee worden samenvattingsstatistieken gegenereerd van velden in uw gebeurtenissen en worden deze statistieken opgeslagen in een nieuw veld. Voorbeeld van SPL |
Voorbeelden: • lid worden • make_list • MV-uitbreiden |
KQL-voorbeeld |
streamstats |
De cumulatieve som van een veld zoeken. SPL-voorbeeld: ... | streamstats sum(bytes) as bytes _ total \| timechart |
row_cumsum | ...\| serialize cs=row_cumsum(bytes) |
anomalydetection |
Zoek afwijkingen in het opgegeven veld. Voorbeeld van SPL |
series_decompose_anomalies() | KQL-voorbeeld |
where |
Hiermee filtert u zoekresultaten met behulp van eval expressies. Wordt gebruikt om twee verschillende velden te vergelijken. |
waar | T | where fruit=="apple" |
lookup opdracht: KQL-voorbeeld
Users
| where UserID in ((externaldata (UserID:string) [
@"https://storageaccount.blob.core.windows.net/storagecontainer/users.txt"
h@"?...SAS..." // Secret token to access the blob
])) | ...
stats opdracht: KQL-voorbeeld
Sales
| summarize NumTransactions=count(),
Total=sum(UnitPrice * NumUnits) by Fruit,
StartOfMonth=startofmonth(SellDateTime)
mstats opdracht: KQL-voorbeeld
T | summarize count() by price_range=bin(price, 10.0)
transaction opdracht: SPL-voorbeeld
sourcetype=MyLogTable type=Event
| transaction ActivityId startswith="Start" endswith="Stop"
| Rename timestamp as StartTime
| Table City, ActivityId, StartTime, Duration
transaction opdracht: KQL-voorbeeld
let Events = MyLogTable | where type=="Event";
Events
| where Name == "Start"
| project Name, City, ActivityId, StartTime=timestamp
| join (Events
| where Name == "Stop"
| project StopTime=timestamp, ActivityId)
on ActivityId
| project City, ActivityId, StartTime,
Duration = StopTime – StartTime
Hiermee row_window_session() kunt u waarden voor sessiestarts berekenen voor een kolom in een geserialiseerde rijset.
...| extend SessionStarted = row_window_session(
Timestamp, 1h, 5m, ID != prev(ID))
eventstats opdracht: SPL-voorbeeld
… | bin span=1m _time
|stats count AS count_i by _time, category
| eventstats sum(count_i) as count_total by _time
eventstats opdracht: KQL-voorbeeld
Hier volgt een voorbeeld met de join instructie:
let binSize = 1h;
let detail = SecurityEvent
| summarize detail_count = count() by EventID,
tbin = bin(TimeGenerated, binSize);
let summary = SecurityEvent
| summarize sum_count = count() by
tbin = bin(TimeGenerated, binSize);
detail
| join kind=leftouter (summary) on tbin
| project-away tbin1
Hier volgt een voorbeeld met de make_list instructie:
let binSize = 1m;
SecurityEvent
| where TimeGenerated >= ago(24h)
| summarize TotalEvents = count() by EventID,
groupBin =bin(TimeGenerated, binSize)
|summarize make_list(EventID), make_list(TotalEvents),
sum(TotalEvents) by groupBin
| mvexpand list_EventID, list_TotalEvents
anomalydetection opdracht: SPL-voorbeeld
sourcetype=nasdaq earliest=-10y
| anomalydetection Close _ Price
anomalydetection opdracht: KQL-voorbeeld
let LookBackPeriod= 7d;
let disableAccountLogon=SignIn
| where ResultType == "50057"
| where ResultDescription has "account is disabled";
disableAccountLogon
| make-series Trend=count() default=0 on TimeGenerated
in range(startofday(ago(LookBackPeriod)), now(), 1d)
| extend (RSquare,Slope,Variance,RVariance,Interception,
LineFit)=series_fit_line(Trend)
| extend (anomalies,score) =
series_decompose_anomalies(Trend)
Algemene eval opdrachten
| SPL-opdracht | Beschrijving | Voorbeeld van SPL | KQL-opdracht | KQL-voorbeeld |
|---|---|---|---|---|
abs(X) |
Geeft als resultaat de absolute waarde van X. | abs(number) |
abs() |
abs(X) |
case(X,"Y",…) |
Neemt paren en XY argumenten, waarbij de X argumenten booleaanse expressies zijn. Wanneer dit wordt geëvalueerd TRUE, retourneren de argumenten het bijbehorende Y argument. |
Voorbeeld van SPL | case |
KQL-voorbeeld |
ceil(X) |
Plafond van een getal X. | ceil(1.9) |
ceiling() |
ceiling(1.9) |
cidrmatch("X",Y) |
Identificeert IP-adressen die deel uitmaken van een bepaald subnet. | cidrmatch("123.132.32.0/25",ip) |
• ipv4_is_match()• ipv6_is_match() |
ipv4_is_match('192.168.1.1', '192.168.1.255')== false |
coalesce(X,…) |
Retourneert de eerste waarde die niet null is. | coalesce(null(), "Returned val", null()) |
coalesce() |
coalesce(tolong("not a number"),tolong("42"), 33) == 42 |
cos(X) |
Berekent de cosinus van X. | n=cos(0) |
cos() | cos(X) |
exact(X) |
Evalueert een expressie X met behulp van rekenkundige berekeningen met dubbele precisie. | exact(3.14*num) |
todecimal() |
todecimal(3.14*2) |
exp(X) |
Retourneert eX. | exp(3) |
exp() | exp(3) |
if(X,Y,Z) |
Als X dit TRUEwordt geëvalueerd, is het resultaat het tweede argument Y. Als X dit wordt geëvalueerd FALSE, wordt het resultaat geëvalueerd naar het derde argument Z. |
if(error==200,"OK", "Error") |
iff() |
KQL-voorbeeld |
isbool(X) |
Retourneert TRUE of X booleaanse waarde is. |
isbool(field) |
• iff()• gettype |
iff(gettype(X) =="bool","TRUE","FALSE") |
isint(X) |
Retourneert TRUE als X een geheel getal. |
isint(field) |
• iff()• gettype |
KQL-voorbeeld |
isnull(X) |
Retourneert TRUE als X null. |
isnull(field) |
isnull() |
isnull(field) |
isstr(X) |
Retourneert TRUE een X tekenreeks. |
isstr(field) |
• iff()• gettype |
KQL-voorbeeld |
len(X) |
Met deze functie wordt de tekenlengte van een tekenreeks Xgeretourneerd. |
len(field) |
strlen() |
strlen(field) |
like(X,"y") |
Retourneert TRUE if en only if X is like the SQLite pattern in Y. |
like(field, "addr%") |
• has• contains• startswith• komt overeen met regex |
KQL-voorbeeld |
log(X,Y) |
Retourneert het logboek van het eerste argument X met behulp van het tweede argument Y als basis. De standaardwaarde Y is 10. |
log(number,2) |
• log• log2• log10 |
log(X)log2(X)log10(X) |
lower(X) |
Geeft als resultaat de waarde in kleine letters van X. |
lower(username) |
tolower | tolower(username) |
ltrim(X,Y) |
Retourneert X de tekens in de parameter Y die vanaf de linkerkant is ingekort. De standaarduitvoer is Y spaties en tabbladen. |
ltrim(" ZZZabcZZ ", " Z") |
trim_start() |
trim_start(“ ZZZabcZZ”,” ZZZ”) |
match(X,Y) |
Retourneert als X overeenkomt met het regex-patroon Y. | match(field, "^\d{1,3}.\d$") |
matches regex |
… | where field matches regex @"^\d{1,3}.\d$") |
max(X,…) |
Retourneert de maximumwaarde in een kolom. | max(delay, mydelay) |
• max()• arg_max() |
… | summarize max(field) |
md5(X) |
Retourneert de MD5-hash van een tekenreekswaarde X. |
md5(field) |
hash_md5 |
hash_md5("X") |
min(X,…) |
Retourneert de minimumwaarde in een kolom. | min(delay, mydelay) |
• min_of()• min() • arg_min |
KQL-voorbeeld |
mvcount(X) |
Retourneert het getal (totaal) van X waarden. |
mvcount(multifield) |
dcount |
…| summarize dcount(X) by Y |
mvfilter(X) |
Hiermee filtert u een veld met meerdere waarden op basis van de Boole-expressie X . |
mvfilter(match(email, "net$")) |
mv-apply |
KQL-voorbeeld |
mvindex(X,Y,Z) |
Retourneert een subset van het argument met meerdere waarden X van een beginpositie (op basis van nul) Y naar Z (optioneel). |
mvindex( multifield, 2) |
array_slice |
array_slice(arr, 1, 2) |
mvjoin(X,Y) |
Gezien een veld X met meerdere waarden en tekenreeksscheidingstekens Y, en wordt de afzonderlijke waarden van X het gebruik Ysamengevoegd. |
mvjoin(address, ";") |
strcat_array |
KQL-voorbeeld |
now() |
Retourneert de huidige tijd, weergegeven in Unix-tijd. | now() |
now() |
now()now(-2d) |
null() |
Accepteert geen argumenten en retourneert .NULL |
null() |
nul | null |
nullif(X,Y) |
Bevat twee argumenten X en , en Yretourneert X als de argumenten verschillen. Anders wordt geretourneerd NULL. |
nullif(fieldA, fieldB) |
iff |
iff(fieldA==fieldB, null, fieldA) |
random() |
Geeft als resultaat een pseudo-willekeurig getal tussen 02147483647. |
random() |
rand() |
rand() |
relative_ time(X,Y) |
Uitgaande van een tijdsduur X en relatieve tijdaanduiding Y, geeft als resultaat de tijdswaarde van de periode waarop wordt Y toegepast X. |
relative_time(now(),"-1d@d") |
unix-tijd | KQL-voorbeeld |
replace(X,Y,Z) |
Retourneert een tekenreeks die wordt gevormd door een tekenreeks Z te vervangen voor elk exemplaar van een reguliere-expressietekenreeks Y in een tekenreeks X. |
Retourneert de datum waarop de maand- en dagnummers zijn gewijzigd. Voor de 4/30/2015 invoer is 30/4/2009de uitvoer bijvoorbeeld:replace(date, "^(\d{1,2})/ (\d{1,2})/", "\2/\1/") |
replace() |
KQL-voorbeeld |
round(X,Y) |
Retourneert X afgerond op het aantal decimalen dat is opgegeven door Y. De standaardwaarde is om af te ronden op een geheel getal. |
round(3.5) |
round |
round(3.5) |
rtrim(X,Y) |
Retourneert de tekens van X afgekapt Y vanaf de rechterkant. Als Y dit niet is opgegeven, worden spaties en tabbladen ingekort. |
rtrim(" ZZZZabcZZ ", " Z") |
trim_end() |
trim_end(@"[ Z]+",A) |
searchmatch(X) |
Retourneert TRUE als de gebeurtenis overeenkomt met de zoekreeks X. |
searchmatch("foo AND bar") |
iff() | iff(field has "X","Yes","No") |
split(X,"Y") |
Retourneert X als een veld met meerdere waarden, gesplitst op scheidingsteken Y. |
split(address, ";") |
split() |
split(address, ";") |
sqrt(X) |
Geeft als resultaat de vierkantswortel van X. |
sqrt(9) |
sqrt() |
sqrt(9) |
strftime(X,Y) |
Retourneert de tijdsduurwaarde X die wordt weergegeven met behulp van de indeling die is opgegeven door Y. |
strftime(_time, "%H:%M") |
format_datetime() |
format_datetime(time,'HH:mm') |
strptime(X,Y) |
Uitgaande van een tijd die wordt vertegenwoordigd door een tekenreeks X, wordt de waarde geretourneerd die is geparseerd uit de notatie Y. |
strptime(timeStr, "%H:%M") |
format_datetime() | KQL-voorbeeld |
substr(X,Y,Z) |
Retourneert een subtekenreeksveld X vanaf de beginpositie (één gebaseerd) Y voor Z (optionele) tekens. |
substr("string", 1, 3) |
substring() |
substring("string", 0, 3) |
time() |
Retourneert de wandkloktijd met microsecondenresolutie. | time() |
format_datetime() |
KQL-voorbeeld |
tonumber(X,Y) |
Converteert de invoertekenreeks X naar een getal, waarbij Y (optioneel, standaardwaarde is 10) de basis definieert van het getal waarnaar moet worden geconverteerd. |
tonumber("0A4",16) |
toint() |
toint("123") |
tostring(X,Y) |
Beschrijving | Voorbeeld van SPL | tostring() |
tostring(123) |
typeof(X) |
Retourneert een tekenreeksweergave van het veldtype. | typeof(12) |
gettype() |
gettype(12) |
urldecode(X) |
Retourneert de URL X gedecodeerd. |
Voorbeeld van SPL | url_decode |
KQL-voorbeeld |
case(X,"Y",…) Voorbeeld van SPL
case(error == 404, "Not found",
error == 500,"Internal Server Error",
error == 200, "OK")
case(X,"Y",…) KQL-voorbeeld
T
| extend Message = case(error == 404, "Not found",
error == 500,"Internal Server Error", "OK")
if(X,Y,Z) KQL-voorbeeld
iif(floor(Timestamp, 1d)==floor(now(), 1d),
"today", "anotherday")
isint(X) KQL-voorbeeld
iif(gettype(X) =="long","TRUE","FALSE")
isstr(X) KQL-voorbeeld
iif(gettype(X) =="string","TRUE","FALSE")
like(X,"y") voorbeeld
… | where field has "addr"
… | where field contains "addr"
… | where field startswith "addr"
… | where field matches regex "^addr.*"
min(X,…) KQL-voorbeeld
min_of (expr_1, expr_2 ...)
…|summarize min(expr)
…| summarize arg_min(Price,*) by Product
mvfilter(X) KQL-voorbeeld
T | mv-apply Metric to typeof(real) on
(
top 2 by Metric desc
)
mvjoin(X,Y) KQL-voorbeeld
strcat_array(dynamic([1, 2, 3]), "->")
relative time(X,Y) KQL-voorbeeld
let toUnixTime = (dt:datetime)
{
(dt - datetime(1970-01-01))/1s
};
replace(X,Y,Z) KQL-voorbeeld
replace( @'^(\d{1,2})/(\d{1,2})/', @'\2/\1/',date)
strptime(X,Y) KQL-voorbeeld
format_datetime(datetime('2017-08-16 11:25:10'),
'HH:mm')
time() KQL-voorbeeld
format_datetime(datetime(2015-12-14 02:03:04),
'h:m:s')
tostring(X,Y)
Retourneert een veldwaarde van X als een tekenreeks.
- Als de waarde van
Xeen getal is,Xwordt deze opnieuw opgemaakt met een tekenreekswaarde. - Als
Xeen Booleaanse waarde is,Xwordt deze opnieuw opgemaakt opTRUEofFALSE. - Als
Xeen getal is, is het tweede argumentYoptioneel en kan dit zijnhex(converteertXnaar een hexadecimaal getal),commas(notatiesXmet komma's en twee decimalen) ofduration(converteertXvan een tijdnotatie in seconden naar een leesbare tijdnotatie:HH:MM:SS).
tostring(X,Y) Voorbeeld van SPL
In dit voorbeeld wordt het volgende geretourneerd:
foo=615 and foo2=00:10:15:
… | eval foo=615 | eval foo2 = tostring(
foo, "duration")
urldecode(X) Voorbeeld van SPL
urldecode("http%3A%2F%2Fwww.splunk.com%2Fdownload%3Fr%3Dheader")
KQL-voorbeeld van algemene stats opdrachten
| SPL-opdracht | Beschrijving | KQL-opdracht | KQL-voorbeeld |
|---|---|---|---|
avg(X) |
Retourneert het gemiddelde van de waarden van het veld X. |
avg() | avg(X) |
count(X) |
Retourneert het aantal exemplaren van het veld X. Als u een specifieke veldwaarde wilt aangeven die moet worden vergeleken, moet u deze opmaken X als eval(field="value"). |
count() | summarize count() |
dc(X) |
Retourneert het aantal afzonderlijke waarden van het veld X. |
dcount() | …\| summarize countries=dcount(country) by continent |
earliest(X) |
Geeft als resultaat de chronologisch vroegste geziene waarde van X. |
arg_min() | … \| summarize arg_min(TimeGenerated, *) by X |
latest(X) |
Geeft als resultaat de chronologisch geziene waarde van X. |
arg_max() | … \| summarize arg_max(TimeGenerated, *) by X |
max(X) |
Retourneert de maximumwaarde van het veld X. Als de waarden X niet-numeriek zijn, wordt de maximumwaarde gevonden via alfabetische volgorde. |
max() | …\| summarize max(X) |
median(X) |
Retourneert de middelste waarde van het veld X. |
percentiel() | …\| summarize percentile(X, 50) |
min(X) |
Retourneert de minimumwaarde van het veld X. Als de waarden X van niet-numeriek zijn, wordt de minimumwaarde gevonden via alfabetische volgorde. |
min() | …\| summarize min(X) |
mode(X) |
Retourneert de meest voorkomende waarde van het veld X. |
top-hitters() | …\| top-hitters 1 of Y by X |
perc(Y) |
Retourneert de percentielwaarde X van het veld Y. Retourneert bijvoorbeeld perc5(total) de vijfde percentielwaarde van een veld total. |
percentiel() | …\| summarize percentile(Y, 5) |
range(X) |
Retourneert het verschil tussen de maximum- en minimumwaarden van het veld X. |
range() | range(1, 3) |
stdev(X) |
Retourneert de standaarddeviatie van de steekproef van het veld X. |
stdev | stdev() |
stdevp(X) |
Geeft als resultaat de standaarddeviatie van de populatie van het veld X. |
stdevp() | stdevp() |
sum(X) |
Retourneert de som van de waarden van het veld X. |
sum() | sum(X) |
sumsq(X) |
Retourneert de som van de kwadraten van de waarden van het veld X. |
||
values(X) |
Retourneert de lijst met alle afzonderlijke waarden van het veld X als een vermelding met meerdere waarden. De volgorde van de waarden is alfabetisch. |
make_set() | …\| summarize r = make_set(X) |
var(X) |
Geeft als resultaat de variantie van het voorbeeld van het veld X. |
variantie | variance(X) |
Volgende stappen
In dit artikel hebt u geleerd hoe u uw migratieregels van Splunk kunt toewijzen aan Microsoft Sentinel.