Vai al contenuto

Sigma Cheatsheet

Sigma è un formato di firma generico e aperto che consente di descrivere eventi di log in modo semplice. Consente agli analisti di sicurezza di scrivere regole di rilevamento una volta e convertirli in vari formati SIEM, rendendo il rilevamento delle minacce portatile attraverso diverse piattaforme di sicurezza. ## Installazione e configurazione ### Installazione Python **Install Sigma Tools:** Traduzione: *Install from Source:** Traduzione: ### Installazione Docker # Docker Setup # Traduzione: ## Struttura della regola Sigma ### Formato della regola di base ♪Standard Sigma Rule ♪ Traduzione: ### Componenti della regola **Metadata Fields:** Traduzione: **Log Source Definition:** Traduzione: ♪Detection Logic ♪ Traduzione: ## Modelli di rilevamento ### Schemi di selezione ** Selezione base: ** Traduzione: **Multiple Selections:** Traduzione: Traduzione: Traduzione: ### Modificatori di campo **String Modifiers:** Traduzione: rilevamento: selezione: # Less than ProcessId|lt: 1000 # Greater than FileSize|gt: 1048576 # Greater than or equal EventID|gte: 4624 # Less than or equal Logon Tipo: 10 Traduzione: rilevamento: sel_suspicious_process: Image|endswith: - '\powershell.exe ' - '\cmd.exe ' Sel_suspicious_args: CommandLine|contiene: - Commissione codificata ' - 'ScaricareString ' Sel_network: Destinazione Porto: - 80 - 443 stato: sel_suspicious_process and sel_suspicious_args and sel_network Traduzione: rilevamento: selezione: EventID: 4625 Obiettivo Nome utente: '*' stato: selezione|count(TargetUserName) da SourceNetworkAddress > 10 Traduzione: rilevamento: selezione: EventID: 4624 LogonType: 3 | stato: selezione | count() di TargetUserName > 5 | timeframe 5 | Traduzione: titolo: Suspicious Process in Temp Directory logsource: categoria: process_creation prodotto: finestre rilevamento: selezione: Image|startswith: - C:\Temp\ ' - C:\Users\*\AppData\Local\Temp\ ' Image|endswith: '.exe' stato: selezione livello: medio Traduzione: titolo: Encoded Power Comando Shell logsource: categoria: process_creation prodotto: finestre rilevamento: selezione: Image|endswith: '\powershell.exe ' CommandLine|contiene: '-Comando codificato ' stato: selezione livello: alto Traduzione: titolo: Connessione al dominio sospetto logsource: categoria: rete_connessione prodotto: finestre rilevamento: selezione: Iniziato: 'vero ' DestinationHostname|endswith: - # - '.ml ' - '.ga ' stato: selezione livello: medio Traduzione: titolo: eseguibile nella cartella di avvio logsource: categoria: file_event prodotto: finestre rilevamento: selezione: TargetFilename|contiene: '\Startup\ ' TargetFilename|endswith: '.exe' stato: selezione livello: alto Traduzione: titolo: Registry Run Key Modifica logsource: categoria: Registro_event prodotto: finestre rilevamento: selezione: Obiettivo Object|contiene: - '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ ' - '\ SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\ ' stato: selezione livello: medio Traduzione: # Convertire singola regola sigma convert -t splunk rule.yml # Converti più regole sigma convert -t splunk Rules/*.yml # Convertire con configurazione personalizzata sigma convert -t splunk -c splunk-windows.yml rule.yml # Uscita sul file sigma convert -t splunk rule.yml -o splunk_query.txt Traduzione: # Convertire in Elasticsearch Query DSL sigma convert -t elasticsearch rule.yml # Convertire in formato ECS sigma convert -t elasticsearch -c ecs-cloudtrail.yml rule.yml # Convertire a Kibana sigma convert -t kibana rule.yml Traduzione: # Convertire in QRadar AQL sigma convert -t qradar rule.yml # Convertire con mappatura del campo sigma convert -t qradar -c qradar-fields.yml rule.yml Traduzione: # Convertire in KQL sigma convert -t microsoft365defender rule.yml # Converti in Azure Sentinel sigma convert -t azure-sentinel rule.yml Traduzione: # splunk-custom.yml titolo: Configurazione personalizzata Splunk ordine: 20 backends: - Spruzzo logsources: finestre: categoria: process_creation condizioni: EventID: 1 rewrite: prodotto: finestre servizio: sysmon fieldmappings: Immagine: processo_name CommandLine: process_command_line ProcessId: process_id Traduzione: # field-mapping.yml titolo: Custom Field Mapping fieldmappings: # Windows Security Events EventID: event_id Obiettivo Nome utente: user_name Rete di origine Indirizzo: src_ip DestinazionePorto: dest_port # Sysmon Events Immagine: processo_path CommandLine: comando_line ProcessId: pid Procedimento Id: ppid Traduzione: # Convalida sintassi della regola sigma check rule.yml # Convalida più regole Regole di controllo sigma/*.yml # Check con backend specifico Sigma check -t splunk rule. - Sì. # Validazione del verbo verifica sigma -v rule.yml Traduzione: # Conversione di prova sigma convert -t splunk rule.yml --dry-run # Prova con i dati del campione sigma test rule.yml --data sample_logs.json # Debug regola logica sigma convert -t splunk rule.yml --debug Traduzione: # Utilizzare specifiche partite di campo invece di wildcards rilevamento: selezione: # Good - specific match EventID: 4624 LogonType: 3 # Avoid - too broad # EventData|contains: 'logon' stato: selezione Traduzione: rilevamento: selezione: Image|endswith: '\powershell.exe ' CommandLine|contiene: 'DownloadString ' filtro: User|contiene: 'SYSTEM' ParentImage|endswith: '\services.exe ' stato: selezione e non filtro Traduzione: regole ─ finestre/ ̄process_creation/ Ÿ ̃─ network_connection/ ─ file_event/ ⇒ ─ ─ Registro dell'evento/ ─ linux/ ̄process_creation/ Ÿ │─ network_connection/ ─ cloud/ ─ Aws/ ─ Azure/ ─ Gcp/ Traduzione: # Utilizzare tagging coerente tags: - attacco.esecuzione - attacco.t1059.001 - rilevamento.emerging_threats - piattaforma.finestre - data_source.process_monitoring Traduzione: # Creare ramo funzione per nuova regola git checkout -b caratteristica/nuova rilevazione-rule # Aggiungi file di regola git aggiungere regole/finestre/process_creation/suspicious_powershell.yml # Impegnati con un messaggio descrittivo git commit -m "Aggiungi il rilevamento per l'esecuzione di PowerShell sospetto" # Spingere e creare richiesta pull funzione di origine git / nuova definizione-rule Traduzione: # Convalida prima del commit Verifica sigma regole/finestre/process_creation/*.yml # Verificare la conversione al target SIEM sigma convert -t splunk Rules/windows/process_creation/new_rule.yml # Controllare i duplicati grep -r "title:" regole/|grep "Suspicious PowerShell" Traduzione: nome: Convalida della regola Sigma su: lavori: convalida: run-on: ubuntu-latest passi: - utilizza: azioni/checkout@v2 - nome: Setup Python utilizza: azioni/setup-python@v2 con: python-version: 3.9. - nome: Installare Sigma run: pip install sigma-cli - nome: Convalida regole run: trovare regole / -name "*.yml" -exec sigma check \{\} \; - nome: Conversioni di prova run: sigma convert -t splunk Rules/windows/process_creation/*.yml sigma convert -t elasticsearch regole/linux/process_creation/*.yml Traduzione: #!/bin/bash # distribuire-to-splunk.sh RULES_DIR="rules/finestre" SPLUNK_CONFIG="configs/splunk-windows.yml" "Splunk_searchs" # Convertire le regole in Splunk per regola in $RULES_DIR/*.yml; do rule_name=$(basename "$rule" .yml) sigma convert -t splunk -c $SPLUNK_CONFIG "$rule" > "$OUTPUT_DIR/$\{rule_name\}.spl" Fatto # Distribuisci a Splunk tramite REST API per la ricerca in $OUTPUT_DIR/*.spl; do ricerca_name=$(basename "$search" .spl) curl -k -u admin:password \ -d "name=$search_name" -d "search=$(cat $search)" \ # Fatto Traduzione: importazione importazione yaml da elasticsearch import Elasticsearch da sigma.cli.convert import convert_rule def deploy_sigma_rules_to_elasticsearch(): """Deploy Sigma regole come avvisi Elasticsearch Watcher""" es = Elasticsearch(['localhost:9200']) regole_dir = 'rules/linux ' per rule_file in os.listdir(rules_dir): se rule_file.endswith('.yml'): rule_path = os.path.join(rules_dir, rule_file) # Convert Sigma rule to Elasticsearch query es_query = convert_rule(rule_path, 'elasticsearch') # Create Watcher alert con aperto (rule_path, 'r') come f: regole_dati = yaml.safe_load(f) watcher_config = "trigger": "schedule": "intervallazione": "5m"\} # "input": "ricerca": "Richiesta": "search_type": "query_then_fetch", "indice": ["logs-*], "corpo": "query": es_query # # # # "condizione": "compare": "ctx.payload.hits.total": \{"gt": 0\} # # "azioni": "log_alert": "logging": "text": f"Sigma regola attivata: \{rule_data['title']\}" # # # # # Deploy to Elasticsearch rule_id = rule_data['id] es.watcher.put_watch(id=rule_id, body=watcher_config) Traduzione: titolo: Logons falliti multipli logsource: categoria: autenticazione prodotto: finestre rilevamento: selezione: EventID: 4625 Obiettivo Nome utente: '*' stato: selezione|count(TargetUserName) da SourceNetworkAddress > 5 temporale: 5m livello: medio Traduzione: titolo: Unusual Process Execution Volume logsource: categoria: process_creation prodotto: finestre rilevamento: selezione: Image|endswith: '\powershell.exe ' stato: selezione|count() da Computer > avg(count() * 3 temporale: 1h livello: medio Traduzione: Titolo: Credential Dumping Seguito dal Movimento Laterale logsource: categoria: process_creation prodotto: finestre rilevamento: stadio1: Image|endswith: '\mimikatz.exe ' CommandLine|contiene: 'sekurlsa:: logonpasswords ' stadio2: Image|endswith: '\psexec.exe ' CommandLine|contiene: '\\\\\*' stato: stage1 seguito da stage2 temporale: 30m livello: alto Traduzione: titolo: Rilevazione dello stress basata su Entropy logsource: categoria: process_creation prodotto: finestre rilevamento: selezione: CommandLine: '*' stato: selezione|entropy (CommandLine) > 6.5 livello: medio Traduzione: # Controlla la sintassi YAML python -c "import yaml; yaml.safe_load(open('rule.yml')" # Convalida struttura della regola Sigma sigma check rule.yml - V # Controllare mappature del campo sigma convert -t splunk rule.yml --debug Traduzione: # Elenco backend disponibili Elenco dei backend # Controlla la configurazione del backend modificatori elenco sigma -t splunk # Test con regola minima sigma convert -t splunk -e 'detection: \{selection: \{EventID: 1\}, stato: selezione\} ' Traduzione: # Conversione della regola del profilo tempo sigma convert -t splunk Rules/*.yml # Verifica la complessità delle regole grep -c "condizione:" rule.yml gep -c "|" rule.yml # Count modificafiers # Ottimizzare la struttura delle regole sigma convert -t splunk rule.yml - Ottimizzare Traduzione: # Attivare debug logging sigma convert -t splunk rule.yml --debug # Uscita Verbose sigma convert -t splunk rule.yml - V # Modalità di funzionamento a secco sigma convert -t splunk rule.yml --dry-run Traduzione: # Analizzare la copertura delle regole sigma analizza le regole/ --copertura # Controllare i duplicati sigma analizza le regole/ --duplicazioni # Analisi delle prestazioni sigma analizza regole/ --performance Traduzione: **Modificatori numerici: ** Traduzione: ### Condizioni Avanzate ** Logica complessa: ** # ** Condizioni d'uso: ** Traduzione: **Condizioni basate sul tempo:** Traduzione: ## Categorie ### Regole di creazione del processo ** Esecuzione di processo dispersa:** Traduzione: **Analisi della linea: ** Traduzione: ### Regole di connessione di rete **Suspicious Outbound Connections:** Traduzione: ### Regole del sistema di file **Suspicious File Creation:** Traduzione: ### Regole del Registro Perseveranza: Traduzione: ## Conversione e distribuzione ### Convertire le regole in formati SIEM # Splunk Conversion # Traduzione: # Elastic/ECs # Conversione:** Traduzione: Traduzione: Traduzione: Microsoft Sentinel Conversion: Traduzione: ### Configurazioni di backend ♪Custom Backend Config ♪ Traduzione: **Field Mapping: Traduzione: ## Sviluppo delle regole ### Regole di prova ** Validazione delle regole: E' una cosa da fare. Traduzione: **Rule Testing:** Traduzione: ### Ottimizzazione delle regole ** Ottimizzazione delle prestazioni:** Traduzione: **Ridurre i falsi positivi:** Traduzione: ## Gestione delle regole ### Collezioni di regola ** Regole di organizzazione per categoria: ** Traduzione: ** Gestione dei Metadati Rule: ** Traduzione: ### Controllo versione ♪Git Workflow ♪ Traduzione: **Processo di revisione del regolamento: ** Traduzione: ## Esempi di integrazione ### CI/CD Pipeline **GitHub Azioni Flusso di lavoro:** # ### SIEM Integrazione ** Integrazione Splunk:** Traduzione: ** Integrazione di Elasticsearch:** Traduzione: ## Caratteristiche avanzate ### Regole di aggregazione ** Rilevamento basato sul paese: ** Traduzione: ** Analisi statistica: ** Traduzione: ### Regole di correlazione **Multi-stage Attacco rilevamento: ** Traduzione: ### Funzioni personalizzate **Custom Detection Logic:** Traduzione: ## Risoluzione dei problemi ### Questioni comuni ** Errore di convalida delle regole: ** Traduzione: ** Problemi di conversione: Traduzione: ** Problemi di conformità: ** Traduzione: ### Debug ** Modalità di spesa: ** Traduzione: # Analisi delle regole # Traduzione: < > Questo completo Sigma cheatsheet copre lo sviluppo delle regole, la conversione, la distribuzione e le funzionalità avanzate per un rilevamento efficace delle minacce su più piattaforme SIEM.