
Tuning und Refactoring von Google Chronicle Curated Detections zur Beseitigung von Alert-Fatigue und zur Behebung von Logiklücken/-fehlern.
Dieses Repository dokumentiert architektonische Designfehler, Logikdiskrepanzen und Tuning-Strategien für native Google SecOps (Chronicle) Curated Detections.
Während Google Threat Intelligence (GTIG) eine außergewöhnliche konzeptionelle Bedrohungsabdeckung bietet (etwa die Verfolgung von APT29/BRICKSTORM-Kampagnen), leiden die rohen YARA-L-Implementierungen der kuratierten Regeln mitunter unter Implementierungsübersehen wie Gruppierungslogik-Widersprüchen und fest codierten Schwellenwertvariablen. In realen Unternehmensumgebungen führt dies häufig zu massiver Alert-Müdigkeit.
Dieses Projekt analysiert, warum native Regeln brechen oder das SOC überfluten, und teilt optimierte Custom Rules und Patches zur Behebung dieser Probleme.
Google veröffentlichte eine Reihe von Regeln zur Erkennung von Massen-E-Mail-Exfiltration aus Microsoft 365 Exchange Online durch kompromittierte Service Principals (Techniken, die von APT29/Midnight Blizzard stark genutzt werden).
Die betroffenen kuratierten Regeln sind:
O365 Mailbox Access by Service Principal with Multiple User AgentsO365 Multiple Mailboxes Accessed by Service PrincipalO365 Mailbox Access by Service Principal from Multiple ASNsO365 Multiple Mailboxes Accessed via Microsoft Graph APIDiese Regelreihe enthält systemische Logikdiskrepanzen zwischen dem erklärten Ziel und der YARA-L-Implementierung, wahrscheinlich aufgrund von Code-Wiederverwendung innerhalb des Regelpakets. Die Regeln unterscheiden nicht ordnungsgemäß zwischen automatisierten Service Principals und standardmäßiger menschlicher Aktivität, was dazu führt, dass Alarme bei normalem Mitarbeiterverhalten ausgelöst werden.
Obwohl die Regelbeschreibung ausdrücklich angibt: „Detects a Service Principal with a single O365 session ID...", gruppiert der YARA-L-match-Abschnitt der Regel „Multiple User Agents" nach $application_id statt nach der Session-ID ($session_id). Dies widerspricht vollständig dem erklärten Ziel der Regel.
Die Regeln verfolgen anomale Verhaltensmuster (wechselnde IPs, ASNs oder User-Agents), die an eine bestimmte ClientAppId gebunden sind. Während Google einen Ausschluss-Regex für mehrere native Microsoft-Anwendungen bereitstellt, wurde der am weitesten verbreitete menschliche mobile Client auf unerklärliche Weise ausgelassen: die Microsoft Outlook Mobile App (27922004-5251-4030-b22d-91ecd9a37ea4).
Multiple ASNs aus. Verschiedene Mitarbeiter, die unter iOS und Android dasselbe Abteilungspostfach prüfen, lösen die Warnung zu Multiple User Agents aus.Zur Identifizierung von Backend-Dienstkonten stützt sich Googles Logik auf diese Bedingung:
$e.principal.user.userid != $e.target.user.userid
[email protected] öffnet). Dieser Designfehler erzeugt massives Rauschen bei normalem operativem menschlichem Datenverkehr.Um diese Designfehler zu beheben, haben Sie je nach betrieblichen Anforderungen zwei Möglichkeiten:
Option 1: Native SIEM-Ausschlüsse (Schnelllösung)
Sie müssen nicht unbedingt die Regeln deaktivieren oder eigenen Code schreiben. Sie können einfach einen Ausschluss direkt in der Google SecOps SIEM UI erstellen. Fügen Sie einfach einen Ausschluss hinzu, der auf die ClientAppId von Outlook Mobile (27922004-5251-4030-b22d-91ecd9a37ea4) und Ihre autorisierten Backup-Anwendungen (z. B. Keepit) abzielt. Dies stoppt sofort die Flut an Fehlalarmen, während Googles kuratierte Regeln aktiv bleiben.
Option 2: Bereitstellung benutzerdefinierter Regeln (Architektur-Fix)
Wenn Sie die zugrunde liegenden Fehler in der Gruppierungslogik (wie die Diskrepanz bei $application_id) vollständig beheben möchten, müssen Sie die Curated Detections deaktivieren und benutzerdefinierte Regeln bereitstellen. Die Korrekturen umfassen:
27922004-...).match-Abschnitte, um ordnungsgemäß nach Sitzung zu aggregieren.rule custom_ttp_o365_mailbox_access_by_service_principal_with_multiple_uas {
meta:
rule_name = "[CUSTOM] O365 Mailbox Access by Service Principal with Multiple User Agents"
description = "Detects a Service Principal with a single O365 session ID accessing O365 mailboxes with multiple user agents. Tuned to fix grouping logic and exclude Outlook Mobile (Public Client) human traffic."
severity = "Low"
tactic = "TA0009"
technique = "T1114.002"
events:
$e.metadata.log_type = "OFFICE_365"
$e.metadata.product_event_type = "MailItemsAccessed" nocase
$e.target.application = "Exchange"
$e.security_result.detection_fields["RecordType"] = /^(2|50)$/
// Extract actual Session ID and App ID
$session_id =$e.network.session_id
$application_id =$e.additional.fields["ClientAppId"]
$e.principal.user.userid !=$e.target.user.userid
(
$e.network.http.user_agent = /AppId/ nocase or$e.additional.fields["ClientAppId"] = /./
)