Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/all3xj/fixing-google-secops-detections
Strumenti DifensiviSicurezza CloudThreat IntelligenceRilevamento IntrusioniApprendimento e FormazioneRisposta agli IncidentiSicurezza EmailRilevamento di AnomalieAnalisi dei Log

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHuball3xj/fixing-google-secops-detections

fixing-google-secops-detections

Messa a punto e refactoring delle Curated Detections di Google Chronicle per eliminare l'affaticamento da alert e correggere lacune logiche e bug.

Vedi Repository
318 giorni faNon ancora revisionato

Google SecOps (Chronicle) Curated Detections: Analisi dei Difetti e Ottimizzazione

Questo repository documenta difetti architetturali di progettazione, discrepanze logiche e strategie di tuning per le Curated Detections native di Google SecOps (Chronicle).

Mentre Google Threat Intelligence (GTIG) fornisce una copertura concettuale delle minacce eccezionale (come il tracciamento delle campagne APT29/BRICKSTORM), le implementazioni YARA-L grezze delle regole curate soffrono talvolta di sviste implementative, come contraddizioni nella logica di raggruppamento e variabili di soglia hardcoded. Negli ambienti aziendali reali, questo porta frequentemente a un'enorme alert fatigue.

Questo progetto analizza perché le regole native si rompono o inondano il SOC, e condivide Regole Personalizzate ottimizzate e patch per risolvere questi problemi.


📑 Indice

  1. Failover di Alerting della Suite O365 per BRICKSTORM / APT29
    • Difetto 1: Contraddizione nella Logica di Raggruppamento
    • Difetto 2: Oversight del Client Pubblico Outlook Mobile
    • Difetto 3: Collisione con le Cassette Postali Condivise
    • Soluzioni YARA-L Ottimizzate
  2. UEBA: Totale Tentativi di Autenticazione Anomali
    • Difetto di Hardcoding e Alert Fatigue
    • Raccomandazioni di Tuning UEBA

1. Failover di Alerting della Suite O365 per BRICKSTORM / APT29

Google ha rilasciato una suite di regole per rilevare l'esfiltrazione massiva di email da Microsoft 365 Exchange Online tramite Service Principal compromessi (tecniche ampiamente utilizzate da APT29/Midnight Blizzard).

Le regole curate interessate sono:

  • O365 Mailbox Access by Service Principal with Multiple User Agents
  • O365 Multiple Mailboxes Accessed by Service Principal
  • O365 Mailbox Access by Service Principal from Multiple ASNs
  • O365 Multiple Mailboxes Accessed via Microsoft Graph API

❌ Difetti Principali nella Logica di Google

Questa suite di regole contiene discrepanze logiche sistemiche tra l'obiettivo dichiarato e l'implementazione YARA-L, probabilmente dovute al riuso del codice all'interno del pacchetto di regole. Le regole non riescono a distinguere correttamente tra Service Principal automatizzati e normale attività umana, generando alert che si attivano su comportamenti standard dei dipendenti.

Difetto 1: Contraddizione nella Logica di Raggruppamento

Nonostante la descrizione della regola affermi esplicitamente: "Rileva un Service Principal con un singolo ID sessione O365...", la sezione match YARA-L della regola "Multiple User Agents" raggruppa per $application_id invece che per ID sessione ($session_id). Questo contraddice completamente l'obiettivo dichiarato della regola, aggregando login umani non correlati in una finestra di 3 ore semplicemente perché usano la stessa applicazione.

Difetto 2: Oversight del Client Pubblico Outlook Mobile

Le regole tracciano pattern comportamentali anomali (cambi di IP, ASN o User-Agent) legati a uno specifico ClientAppId. Sebbene Google includa una regex di esclusione per diverse applicazioni Microsoft native, hanno inspiegabilmente omesso il client mobile umano più diffuso: Microsoft Outlook Mobile App (27922004-5251-4030-b22d-91ecd9a37ea4).

  • Impatto: Senza filtrare questo Client Pubblico, i dipendenti legittimi che leggono cassette postali condivise dai propri smartphone e che cambiano rete (ad esempio, passando dal Wi-Fi al 4G) attivano intrinsecamente gli alert Multiple ASNs e Multiple IPs. Dipendenti diversi che usano iOS e Android per controllare la stessa cassetta postale dipartimentale attivano l'alert Multiple User Agents.

Difetto 3: Collisione con le Cassette Postali Condivise

Per identificare gli account di servizio backend, la logica di Google si basa su questa condizione: $e.principal.user.userid != $e.target.user.userid

  • Impatto: Questa condizione verifica semplicemente se l'ID dell'attore è diverso dal proprietario della cassetta postale di destinazione. Sebbene sia vero per i service principal automatizzati, è anche il comportamento standard per dipendenti umani che accedono a cassette postali condivise o dipartimentali (ad esempio, un operatore che apre [email protected]). Questo difetto di progettazione genera rumore massiccio sul normale traffico operativo umano.

✅ Soluzioni YARA-L Ottimizzate per le Regole O365

Per risolvere questi difetti di progettazione, hai due opzioni a seconda delle tue esigenze operative:

Opzione 1: Esclusioni Native nel SIEM (Fix Rapido) Non è necessario disabilitare le regole o scrivere codice personalizzato. Puoi semplicemente creare un'Esclusione direttamente nell'interfaccia del SIEM Google SecOps. Basta aggiungere un'esclusione mirata al ClientAppId di Outlook Mobile (27922004-5251-4030-b22d-91ecd9a37ea4) e alle tue applicazioni di backup autorizzate (ad esempio, Keepit). Questo ferma immediatamente l'inondazione di falsi positivi mantenendo attive le regole curate di Google.

Opzione 2: Distribuire Regole Personalizzate (Fix Architetturale) Se vuoi correggere completamente i difetti sottostanti nella logica di raggruppamento (come la discrepanza di $application_id), devi disabilitare le Curated Detections e distribuire Regole Personalizzate. Le correzioni comportano:

  1. Consentire esplicitamente Outlook Mobile (27922004-...).
  2. Consentire le note app di backup aziendali autorizzate (ad esempio, Keepit).
  3. Correggere le sezioni match per aggregare correttamente per sessione.
Regola Ottimizzata 1: Multiple User Agents
root@kitploit:~
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"] = /./
    )
    
    // EXCLUSIONS: Added Outlook Mobile + Standard Google Exclusions
    $e.additional.fields["ClientAppId"] != /^(27922004-5251-4030-b22d-91ecd9a37ea4|bea75f7a-2505-46e8-9bf6-d3f7da9c9da7|b52893c8-bc2e-47fc-918b-77022b299bbc|...)$/ nocase

  match:
    // Group by both App AND Session to isolate the specific token lifecycle
    $application_id,$session_id over 3h

  outcome:
    $vendor_name = "Microsoft"
    $product_name = "Office 365"
    $source_ua_dc = count_distinct($e.network.http.user_agent)
    $client_app_id = array_distinct($e.additional.fields["ClientAppId"])

  condition:
    // Triggers if the SAME session rotates 2+ User Agents
    $e and $source_ua_dc >= 2
}

Regola Ottimizzata 2: Multiple Mailboxes Accessed

(Stessa logica, ma nelle esclusioni assicurati di consentire le tue soluzioni di backup autorizzate come Keepit (a7cd46df...) insieme a Outlook Mobile).

Regola Ottimizzata 3: Multiple ASNs

(A differenza della regola User Agents, Google è riuscito a raggruppare correttamente per $session_id in questo caso. Tuttavia, manca ancora dell'esclusione per Outlook Mobile. Segui la stessa logica di esclusione di cui sopra, mantenendo la condizione su $source_asn_dc >= 2).

Regola Ottimizzata 4: Multiple Mailboxes Accessed via Microsoft Graph API

(Stessa logica. Assicurati di aggiungere le applicazioni di backup autorizzate come Keepit (a7cd46df...) alla regex di esclusione alla fine del blocco events).


2. UEBA: Totale Tentativi di Autenticazione Anomali

Regola: Anomalous Auth Attempts Total by Principal Hostname and Target User ID

(Nota: UEBA sta per "User and Entity Behavior Analytics". Queste regole non usano firme statiche, ma si basano su algoritmi matematici per stabilire una baseline del comportamento "normale" e generare alert su deviazioni statistiche).

❌ Difetto di Hardcoding e Alert Fatigue

Questa regola UEBA tenta di rilevare picchi di autenticazione anomali calcolando la media storica e le deviazioni standard su 30 giorni.

  • Alert Fatigue: Nel nostro ambiente di produzione, questa regola curata ha generato un tasso di Veri Positivi incredibilmente basso (~0,08%, con 2 ticket utilizzabili su 2324 alert). È essenzialmente puro rumore.
  • Difetto nel Codice: Google dichiara una variabile $num_stddevs_away = max(2) all'inizio del blocco outcome. Tuttavia, nel calcolo di $historical_threshold, lo sviluppatore di Google ha hardcodato il valore 2 invece di usare la variabile. Questo errore di programmazione impedisce agli analisti di sovrascrivere facilmente la sensibilità tramite l'interfaccia o le variabili ereditate, senza clonare e riscrivere completamente la logica YARA-L.

✅ Raccomandazioni di Tuning UEBA

I test nel mondo reale mostrano che modificare semplicemente le soglie statistiche (ad esempio, alzando $num_stddevs_away a 3 o 4, abbassando $coefficient_of_variation_threshold da 0.1 a 0.05, o aumentando $observation_threshold a 15) è insufficiente: riduce i conteggi da 710 a 111 alert settimanali, che rimangono eccessivamente rumorosi per un team di analisti.

  • Approccio Raccomandato: Per i tenant enterprise SecOps, disabilita l'alerting del ruleset Broad per "Failed Authentications by Device" e affidati strettamente al canale di alerting Precise. Questa mitigazione strutturale è l'unico modo efficace per fermare l'inondazione di alert.
  • Approccio Personalizzato Alternativo: Se devi mantenerla attiva, clona la regola in una Regola Personalizzata, correggi il 2 hardcodato all'interno di $historical_threshold per allinearlo alla tua variabile $num_stddevs_away, e applica coefficienti di baseline più rigorosi.

Disclaimer: Queste ottimizzazioni si basano su esperienza reale di incident response e ingegneria SIEM. Testa sempre le regole YARA-L nel tuo ambiente specifico prima di distribuirle in produzione.

Scarica lo strumento