Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Den 3. april 2025 har vi offentligt forhåndsvist to nye tabeller, der understøtter STIX-indikatoren (Structured Threat Information eXpression) og objektskemaer: ThreatIntelIndicators og ThreatIntelObjects. Denne artikel indeholder eksempler på, hvordan du inkorporerer STIX-objekter i forespørgsler for at forbedre trusselsjagt, og hvordan du overfører til det nye trusselsindikatorskema.
Du kan få flere oplysninger om trusselsintelligens i Microsoft Sentinel under Trusselsintelligens i Microsoft Sentinel.
Vigtigt!
Microsoft Sentinel vil overføre al trusselsintelligens til de nye ThreatIntelIndicators tabeller og ThreatIntelObjects og samtidig fortsætte med at overføre de samme data til den ældre ThreatIntelligenceIndicator tabel indtil den 31. juli 2025.
Sørg for at opdatere dine brugerdefinerede forespørgsler, regler for analyse og registrering, projektmapper og automatisering, så du kan bruge de nye tabeller senest den 31. juli 2025. Efter denne dato stopper Microsoft Sentinel med at overføre data til den ældre ThreatIntelligenceIndicator tabel. Vi opdaterer alle indbyggede trusselsintelligensløsninger i Indholdshub for at udnytte de nye tabeller.
Vi har introduceret vigtige opdateringer af processerne for genudgivelse af data.
- Tidligere blev data delt og genudgivet til Log Analytics over en 12-dages periode. Nu publiceres alle data igen hver 7.-10. dag. Du kan identificere disse data i tabellerne
ThreatIntelIndicatorsogThreatIntelObjectsved at kontrollere, omLastUpdateMethoderLogARepublisherlig med . - De nye tabeller understøtter nu flere kolonner, herunder kolonnen
Data, som indeholder det fulde dataobjekt (med undtagelse af attributter, der allerede findes i andre kolonner), som bruges i avancerede jagtscenarier. Hvis disse kolonner ikke stemmer overens med dit scenarie, kan du få mere at vide om filtrering af kolonner og rækker , før de indtages i Log Analytics. - Hvis du vil optimere indtagelse til Log Analytics, udelades nøgleværdipar uden data. Derudover afkortes nogle felter i kolonnen
Data– f.eksdescription. ogpattern– hvis de overstiger 1.000 tegn. Du kan finde flere oplysninger om det opdaterede skema, og hvordan det kan påvirke din brug, under ThreatIntelIndicators og ThreatIntelObjects.
Identificer trusselsaktører, der er knyttet til specifikke trusselsindikatorer
Denne forespørgsel er et eksempel på, hvordan man korrelerer trusselsindikatorer, f.eks. IP-adresser, med trusselsaktører:
let IndicatorsWithThatIP = (ThreatIntelIndicators
| extend tlId = tostring(Data.id)
| summarize arg_max(TimeGenerated,*) by Id
| where IsDeleted == false);
let ThreatActors = (ThreatIntelObjects
| where StixType == 'threat-actor'
| extend tlId = tostring(Data.id)
| extend ThreatActorName = Data.name
| extend ThreatActorSource = base64_decode_tostring(tostring(split(Id, '---')[0]))
| summarize arg_max(TimeGenerated,*) by Id
| where IsDeleted == false);
let AllRelationships = (ThreatIntelObjects
| where StixType == 'relationship'
| extend tlSourceRef = tostring(Data.source_ref)
| extend tlTargetRef = tostring(Data.target_ref)
| extend tlId = tostring(Data.id)
| summarize arg_max(TimeGenerated,*) by Id
| where IsDeleted == false);
let IndicatorAsSource = (IndicatorsWithThatIP
| join AllRelationships on $left.tlId == $right.tlSourceRef
| join ThreatActors on $left.tlTargetRef == $right.tlId);
let IndicatorAsTarget = (IndicatorsWithThatIP
| join AllRelationships on $left.tlId == $right.tlTargetRef
| join ThreatActors on $left.tlSourceRef == $right.tlId);
IndicatorAsSource
| union IndicatorAsTarget
| project ObservableValue, ThreatActorName
Liste over trusselsintelligensdata, der er relateret til en bestemt trusselsaktør
Denne forespørgsel giver indsigt i taktikken, teknikkerne og procedurerne (TTP'er) for trusselsaktøren (erstat Sangria Tempest med navnet på den trusselsaktør, du vil undersøge):
let THREAT_ACTOR_NAME = 'Sangria Tempest';
let ThreatIntelObjectsPlus = (ThreatIntelObjects
| union (ThreatIntelIndicators
| extend StixType = 'indicator')
| extend tlId = tostring(Data.id)
| extend PlusStixTypes = StixType
| extend importantfield = case(StixType == "indicator", Data.pattern,
StixType == "attack-pattern", Data.name,
"Unkown")
| extend feedSource = base64_decode_tostring(tostring(split(Id, '---')[0]))
| summarize arg_max(TimeGenerated,*) by Id
| where IsDeleted == false);
let ThreatActorsWithThatName = (ThreatIntelObjects
| where StixType == 'threat-actor'
| where Data.name == THREAT_ACTOR_NAME
| extend tlId = tostring(Data.id)
| extend ActorName = tostring(Data.name)
| summarize arg_max(TimeGenerated,*) by Id
| where IsDeleted == false);
let AllRelationships = (ThreatIntelObjects
| where StixType == 'relationship'
| extend tlSourceRef = tostring(Data.source_ref)
| extend tlTargetRef = tostring(Data.target_ref)
| extend tlId = tostring(Data.id)
| summarize arg_max(TimeGenerated,*) by Id
| where IsDeleted == false);
let SourceRelationships = (ThreatActorsWithThatName
| join AllRelationships on $left.tlId == $right.tlSourceRef
| join ThreatIntelObjectsPlus on $left.tlTargetRef == $right.tlId);
let TargetRelationships = (ThreatActorsWithThatName
| join AllRelationships on $left.tlId == $right.tlTargetRef
| join ThreatIntelObjectsPlus on $left.tlSourceRef == $right.tlId);
SourceRelationships
| union TargetRelationships
| project ActorName, PlusStixTypes, ObservableValue, importantfield, Tags, feedSource
Overfør eksisterende forespørgsler til det nye skema ThreatIntelIndicators
I dette eksempel kan du se, hvordan du overfører eksisterende forespørgsler fra den ældre ThreatIntelligenceIndicator tabel til det nye ThreatIntelIndicators skema. Forespørgslen bruger operatoren extend til at genskabe ældre kolonner baseret på kolonnerne ObservableKey og ObservableValue i den nye tabel.
ThreatIntelIndicators
| extend NetworkIP = iff(ObservableKey == 'ipv4-addr:value', ObservableValue, ''),
NetworkSourceIP = iff(ObservableKey == 'network-traffic:src_ref.value', ObservableValue, ''),
NetworkDestinationIP = iff(ObservableKey == 'network-traffic:dst_ref.value', ObservableValue, ''),
DomainName = iff(ObservableKey == 'domain-name:value', ObservableValue, ''),
EmailAddress = iff(ObservableKey == 'email-addr:value', ObservableValue, ''),
FileHashType = case(ObservableKey has 'MD5', 'MD5',
ObservableKey has 'SHA-1', 'SHA-1',
ObservableKey has 'SHA-256', 'SHA-256',
''),
FileHashValue = iff(ObservableKey has 'file:hashes', ObservableValue, ''),
Url = iff(ObservableKey == 'url:value', ObservableValue, ''),
x509Certificate = iff(ObservableKey has 'x509-certificate:hashes.', ObservableValue, ''),
x509Issuer = iff(ObservableKey has 'x509-certificate:issuer', ObservableValue, ''),
x509CertificateNumber = iff(ObservableKey == 'x509-certificate:serial_number', ObservableValue, ''),
Description = tostring(Data.description),
CreatedByRef = Data.created_by_ref,
Extensions = Data.extensions,
ExternalReferences = Data.references,
GranularMarkings = Data.granular_markings,
IndicatorId = tostring(Data.id),
ThreatType = tostring(Data.indicator_types[0]),
KillChainPhases = Data.kill_chain_phases,
Labels = Data.labels,
Lang = Data.lang,
Name = Data.name,
ObjectMarkingRefs = Data.object_marking_refs,
PatternType = Data.pattern_type,
PatternVersion = Data.pattern_version,
Revoked = Data.revoked,
SpecVersion = Data.spec_version
| project-reorder TimeGenerated, WorkspaceId, AzureTenantId, ThreatType, ObservableKey, ObservableValue, Confidence, Name, Description, LastUpdateMethod, SourceSystem, Created, Modified, ValidFrom, ValidUntil, IsDeleted, Tags, AdditionalFields, CreatedByRef, Extensions, ExternalReferences, GranularMarkings, IndicatorId, KillChainPhases, Labels, Lang, ObjectMarkingRefs, Pattern, PatternType, PatternVersion, Revoked, SpecVersion, NetworkIP, NetworkDestinationIP, NetworkSourceIP, DomainName, EmailAddress, FileHashType, FileHashValue, Url, x509Certificate, x509Issuer, x509CertificateNumber, Data
Transformér data, der er sendt til Log Analytics
Transformationer i Azure Monitor giver dig mulighed for at filtrere eller ændre indgående data, før de gemmes i et Log Analytics-arbejdsområde. De implementeres som en KQL-sætning (Kusto Query Language) i en DCR (data collection rule). Få mere at vide om, hvordan du opretter transformationer af arbejdsområder og omkostningerne for transformationer.
Transformér kolonner, der er sendt til Log Analytics
Tabellerne ThreatIntelIndicator og ThreatIntelObjects indeholder en Data kolonne, der indeholder hele det oprindelige STIX-objekt. Hvis denne kolonne ikke er relevant for din use case, kan du filtrere den ud, før den indtages, ved hjælp af følgende KQL-sætning:
source
| project-away Data
Transformér rækker, der er sendt til Log Analytics, væk
Tabellen ThreatIntelIndicators modtager altid mindst én række for hver indikator, der ikke er udløbet. I nogle tilfælde kan STIX-mønsteret ikke opdeles i nøgle-/værdipar. Når dette sker, sendes indikatoren stadig til Log Analytics, men det er kun det rå, ikke-parsede mønster, der er inkluderet – så brugerne kan oprette brugerdefinerede analyser, hvis det er nødvendigt. Hvis disse rækker ikke er nyttige i dit scenarie, kan du filtrere dem ud, før de indtages, ved hjælp af følgende KQL-sætning:
source
| where (ObservableKey != "" and isnotempty(ObservableKey))
or (ObservableValue != "" and isnotempty(ObservableValue))
Relateret indhold
Du kan finde flere oplysninger i følgende artikler:
- Trussels intelligence i Microsoft Sentinel.
- Opret forbindelse Microsoft Sentinel til STIX-/TAXII-trusselsintelligensfeeds.
- Se, hvilke TIP'er, TAXII-feeds og berigelser, der let kan integreres med Microsoft Sentinel.
Du kan få flere oplysninger om KQL i oversigten over Kusto Query Language (KQL).
Andre ressourcer: