Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Am 3. April 2025 haben wir zwei neue Tabellen zur Unterstützung von STIX-Indikator- und Objektschemas (Structured Threat Information eXpression) öffentlich in der Vorschau angezeigt: ThreatIntelIndicators und ThreatIntelObjects. Dieser Artikel enthält Beispiele für die Integration von STIX-Objekten in Abfragen, um die Bedrohungssuche zu verbessern, und wie Sie zum neuen Bedrohungsindikatorschema migrieren.
Weitere Informationen zu Threat Intelligence in Microsoft Sentinel finden Sie unter Threat Intelligence in Microsoft Sentinel.
Wichtig
Microsoft Sentinel erfasst alle Bedrohungsinformationen in den neuen ThreatIntelIndicators Tabellen und ThreatIntelObjects und erfasst die gleichen Daten bis zum 31. Juli 2025 in der LegacytabelleThreatIntelligenceIndicator.
Aktualisieren Sie Ihre benutzerdefinierten Abfragen, Analyse- und Erkennungsregeln, Arbeitsmappen und Automatisierungen bis zum 31. Juli 2025, um die neuen Tabellen zu verwenden. Nach diesem Datum wird Microsoft Sentinel die Erfassung von Daten in der Legacytabelle ThreatIntelligenceIndicator beenden. Wir aktualisieren alle sofort einsatzbereiten Threat Intelligence-Lösungen im Content Hub, um die neuen Tabellen zu nutzen.
Wir haben wichtige Updates für die Prozesse zum erneuten Veröffentlichen von Daten eingeführt.
- Zuvor wurden Daten über einen Zeitraum von 12 Tagen aufgeteilt und erneut in Log Analytics veröffentlicht. Jetzt werden alle Daten alle 7 bis 10 Tage erneut veröffentlicht. Sie können diese Daten in den
ThreatIntelIndicatorsTabellen undThreatIntelObjectsidentifizieren, indem Sie überprüfen, obLastUpdateMethodgleichLogARepublisherist. - Die neuen Tabellen unterstützen jetzt mehr Spalten, einschließlich der
DataSpalte, die das vollständige Datenobjekt (mit Ausnahme von Attributen, die bereits in anderen Spalten vorhanden sind) enthält, die in szenarien mit erweiterter Suche verwendet werden. Wenn diese Spalten nicht ihrem Szenario entsprechen, erfahren Sie mehr über das Filtern von Spalten und Zeilen vor der Erfassung in Log Analytics. - Um die Erfassung in Log Analytics zu optimieren, werden Schlüssel-Wert-Paare ohne Daten ausgeschlossen. Darüber hinaus werden einige Felder innerhalb der
DataSpalte , zdescription. B. undpattern, abgeschnitten, wenn sie 1.000 Zeichen überschreiten. Weitere Informationen zum aktualisierten Schema und zu dessen Auswirkungen auf Ihre Nutzung finden Sie unter ThreatIntelIndicators und ThreatIntelObjects.
Identifizieren von Bedrohungsakteuren, die bestimmten Bedrohungsindikatoren zugeordnet sind
Diese Abfrage ist ein Beispiel dafür, wie Bedrohungsindikatoren wie IP-Adressen mit Bedrohungsakteuren korreliert werden:
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
Auflisten von Threat Intelligence-Daten im Zusammenhang mit einem bestimmten Bedrohungsakteur
Diese Abfrage bietet Einblicke in die Taktiken, Techniken und Prozeduren (TTPs) des Bedrohungsakteurs (ersetzen Sie durch Sangria Tempest den Namen des Bedrohungsakteurs, den Sie untersuchen möchten):
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
Migrieren vorhandener Abfragen zum neuen ThreatIntelIndicators-Schema
In diesem Beispiel wird gezeigt, wie sie vorhandene Abfragen aus der Legacytabelle ThreatIntelligenceIndicator in das neue ThreatIntelIndicators Schema migrieren. Die Abfrage verwendet den extend -Operator, um Legacyspalten basierend auf den ObservableKey Spalten und ObservableValue in der neuen Tabelle neu zu erstellen.
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
An Log Analytics gesendete Daten transformieren
Mit Transformationen in Azure Monitor können Sie eingehende Daten filtern oder ändern, bevor sie in einem Log Analytics-Arbeitsbereich gespeichert werden. Sie werden als Kusto-Abfragesprache-Anweisung (KQL) in einer Datensammlungsregel (Data Collection Rule, DCR) implementiert. Erfahren Sie mehr über das Erstellen von Arbeitsbereichstransformationen und die Kosten für Transformationen.
An Log Analytics gesendete Spalten transformieren
Die ThreatIntelIndicator Tabellen und ThreatIntelObjects enthalten eine Data Spalte, die das vollständige ursprüngliche STIX-Objekt enthält. Wenn diese Spalte für Ihren Anwendungsfall nicht relevant ist, können Sie sie vor der Erfassung mithilfe der folgenden KQL-Anweisung herausfiltern:
source
| project-away Data
An Log Analytics gesendete Zeilen transformieren
Die ThreatIntelIndicators Tabelle erhält immer mindestens eine Zeile für jeden nicht abgelaufenen Indikator. In einigen Fällen kann das STIX-Muster nicht in Schlüssel-Wert-Paare analysiert werden. In diesem Fall wird der Indikator weiterhin an Log Analytics gesendet, aber nur das unformatierte, nicht analysierte Muster ist enthalten, sodass Benutzer bei Bedarf benutzerdefinierte Analysen erstellen können. Wenn diese Zeilen für Ihr Szenario nicht nützlich sind, können Sie sie vor der Erfassung mithilfe der folgenden KQL-Anweisung herausfiltern:
source
| where (ObservableKey != "" and isnotempty(ObservableKey))
or (ObservableValue != "" and isnotempty(ObservableValue))
Verwandte Inhalte
Weitere Informationen finden Sie in den folgenden Artikeln:
- Threat Intelligence in Microsoft Sentinel.
- Verbinden Sie Microsoft Sentinel mit STIX/TAXII Threat Intelligence-Feeds.
- Sehen Sie sich an, welche TIPs, TAXII-Feeds und Anreicherungen problemlos in Microsoft Sentinel integriert werden können.
Weitere Informationen zu KQL finden Sie unter übersicht über Kusto-Abfragesprache (KQL).
Weitere Ressourcen: