Log Correlation con Wazuh: Integrazione con IDS, Firewall, XDR e altri strumenti di rete

sentinelcore-dognettechnologies

Introduzione

La correlazione dei log è diventata una componente critica nella moderna difesa cibernetica. In un ambiente di rete complesso, dove le minacce possono manifestarsi attraverso molteplici vettori, la capacità di aggregare, normalizzare e correlare eventi da diverse fonti è essenziale per rilevare attacchi sofisticati e ridurre i falsi positivi. Wazuh, una soluzione open-source per la sicurezza, offre potenti funzionalità di correlazione dei log che possono essere integrate con vari strumenti di rete per creare un sistema di rilevamento e risposta completo.

Fondamenti della Correlazione dei Log

La correlazione dei log permette di identificare modelli e relazioni tra eventi apparentemente scollegati, rivelando attività malevole che potrebbero passare inosservate se analizzate isolatamente. Alcuni benefici chiave includono:

  • Rilevamento di minacce avanzate: Identificazione di attacchi multi-fase
  • Riduzione dei falsi positivi: Conferma delle minacce attraverso eventi correlati
  • Visibilità completa: Comprensione olistica dello stato di sicurezza
  • Accelerazione delle indagini: Riduzione dei tempi di analisi e risposta

Architettura di Wazuh per la Correlazione dei Log

Wazuh funziona come un sistema SIEM (Security Information and Event Management) in grado di raccogliere, decodificare e analizzare dati da diverse fonti. La sua architettura si basa su:

  • Wazuh Manager: Il componente centrale che riceve e analizza i dati
  • Wazuh Agents: Installati sui dispositivi endpoint per raccogliere dati locali
  • Elastic Stack: Per l’archiviazione, l’indicizzazione e la visualizzazione dei dati

Integrazione con Strumenti di Rete

Suricata IDS

Suricata è un potente motore IDS/IPS open-source che può essere integrato con Wazuh per aumentare significativamente le capacità di rilevamento.

Configurazione dell’integrazione:

  1. Installazione di Suricata:
sudo apt-get install suricata
  1. Configurazione dell’output di Suricata in formato JSON:
    Modifica /etc/suricata/suricata.yaml:
outputs:
  - eve-log:
      enabled: yes
      filetype: regular
      filename: /var/log/suricata/eve.json
      types:
        - alert
  1. Configurazione di Wazuh per leggere gli alert di Suricata:
    Aggiungi al file di configurazione di Wazuh (/var/ossec/etc/ossec.conf):
<ossec_config>
  <localfile>
    <log_format>json</log_format>
    <location>/var/log/suricata/eve.json</location>
  </localfile>
</ossec_config>
  1. Creazione di regole di correlazione personalizzate:
    Aggiungi un file di regole personalizzato in /var/ossec/etc/rules/suricata_correlation_rules.xml:
<group name="suricata,correlation,">
  <rule id="100001" level="10">
    <if_sid>86601</if_sid>
    <field name="alert.signature">SQL Injection</field>
    <description>Possible SQL injection attack detected</description>
  </rule>

  <rule id="100002" level="12">
    <if_sid>100001</if_sid>
    <if_group>authentication_success</if_group>
    <same_source_ip />
    <description>SQL injection followed by successful authentication</description>
  </rule>
</group>

Firewall (pfSense/OPNsense)

Integrare i log del firewall permette di correlare gli eventi di accesso alla rete con altre attività di sicurezza.

Configurazione dell’integrazione:

  1. Configurazione di pfSense per inviare log a Syslog:
  • Accedi all’interfaccia web di pfSense
  • Vai a Status > System Logs > Settings
  • Abilita “Enable Remote Logging”
  • Aggiungi l’indirizzo IP del server Wazuh
  1. Configurazione di Wazuh per ricevere log Syslog:
    Modifica /var/ossec/etc/ossec.conf:
<ossec_config>
  <remote>
    <connection>syslog</connection>
    <port>514</port>
    <protocol>udp</protocol>
  </remote>
</ossec_config>
  1. Regole di correlazione per il firewall:
<rule id="100101" level="10">
  <if_sid>4100</if_sid> <!-- pfSense block rule -->
  <field name="action">block</field>
  <description>Blocked connection attempt</description>
</rule>

<rule id="100102" level="12">
  <if_sid>100101</if_sid>
  <if_matched_sid>100001</if_matched_sid> <!-- SQL injection rule -->
  <same_source_ip />
  <timeframe>300</timeframe>
  <description>SQL injection attempt after blocked connection</description>
</rule>

XDR (Endpoint Detection and Response)

Integrazione con soluzioni XDR per correlare gli eventi a livello di endpoint con altre attività di rete.

Configurazione dell’integrazione:

  1. Installare l’agente Wazuh su endpoint con XDR:
curl -so wazuh-agent.deb https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.3.10-1_amd64.deb && sudo dpkg -i wazuh-agent.deb
  1. Configurare Wazuh per raccogliere log dalla soluzione XDR:
    Se l’XDR genera log in formato JSON:
<ossec_config>
  <localfile>
    <log_format>json</log_format>
    <location>/var/log/xdr/alerts.json</location>
  </localfile>
</ossec_config>
  1. Regole di correlazione per XDR:
<rule id="100201" level="10">
  <decoded_as>json</decoded_as>
  <field name="source">xdr</field>
  <field name="alert_type">malware_detected</field>
  <description>XDR detected potential malware</description>
</rule>

<rule id="100202" level="14">
  <if_sid>100201</if_sid>
  <if_matched_sid>100001</if_matched_sid> <!-- SQL injection rule -->
  <same_source_ip />
  <timeframe>600</timeframe>
  <description>Possible coordinated attack: SQL injection and malware detected</description>
</rule>

Router e Switch (Cisco)

Integrare i log dai dispositivi di rete è cruciale per avere una visione completa della sicurezza.

Configurazione dell’integrazione:

  1. Configurazione del router Cisco per inviare log a Syslog:
router# configure terminal
router(config)# logging host 192.168.1.100
router(config)# logging trap notifications
router(config)# logging facility local7
router(config)# end
  1. Configurazione di Wazuh per ricevere log Syslog:
    Modifica /var/ossec/etc/ossec.conf (come già mostrato per i firewall)
  2. Regole di correlazione per router:
<rule id="100301" level="8">
  <if_sid>4000</if_sid> <!-- Cisco router alerts -->
  <match>SECURITY-6-IPACCESSLOGP</match>
  <description>Cisco router access denied</description>
</rule>

<rule id="100302" level="12">
  <if_sid>100301</if_sid>
  <if_matched_sid>100101</if_matched_sid> <!-- Firewall block rule -->
  <same_source_ip />
  <timeframe>120</timeframe>
  <description>Potential network scan: Multiple access denied events</description>
</rule>

Wireless Access Points

Monitorare gli AP wireless può aiutare a rilevare attacchi come il rogue access point o tentativi di brute force.

Configurazione dell’integrazione:

  1. Configurazione degli AP per inviare log a Syslog:
    La configurazione dipende dal fornitore, ma in generale simile a quella dei router.
  2. Regole di correlazione per AP wireless:
<rule id="100401" level="8">
  <if_sid>4000</if_sid>
  <match>authentication failed</match>
  <description>Failed authentication on wireless AP</description>
</rule>

<rule id="100402" level="12">
  <if_sid>100401</if_sid>
  <same_source_ip />
  <timeframe>60</timeframe>
  <frequency>5</frequency>
  <description>Potential brute force attack on wireless AP</description>
</rule>

Creazione di Dashboard di Correlazione

Wazuh integrato con Kibana permette di creare dashboard personalizzate per visualizzare e analizzare i dati correlati.

Esempio di dashboard per correlazione Suricata-Firewall:

  1. Creazione di una visualizzazione di eventi correlati:
  • Accedi a Kibana
  • Vai a Visualize > Create new visualization
  • Seleziona “Pie chart”
  • Filtra per rule.groups:correlation
  • Dividi per rule.description
  1. Creazione di una timeline degli eventi correlati:
  • Seleziona “Vertical bar chart”
  • Filtra per rule.level:>=10
  • Dividi per timestamp (intervallo di un’ora)
  • Suddividi per rule.description

Implementazione di Regole di Correlazione Avanzate

Correlazione basata su pattern di comportamento

<rule id="100501" level="14">
  <if_matched_sid>100001</if_matched_sid> <!-- SQL injection -->
  <if_matched_sid>100201</if_matched_sid> <!-- Malware XDR -->
  <if_matched_sid>100301</if_matched_sid> <!-- Router access denied -->
  <timeframe>1800</timeframe>
  <same_source_ip />
  <description>Potential APT attack: Multiple security events from same source</description>
</rule>

Correlazione basata sul contesto

<rule id="100502" level="15">
  <if_sid>100001</if_sid> <!-- SQL injection -->
  <field name="srcip">^10\.0\.0\.</field> <!-- Internal network -->
  <description>Internal SQL injection attempt: Possible compromised host</description>
</rule>

Correlazione temporale

<rule id="100503" level="13">
  <if_matched_sid>100101</if_matched_sid> <!-- Firewall block -->
  <if_matched_sid>100401</if_matched_sid> <!-- Wireless auth failed -->
  <timeframe>300</timeframe>
  <same_source_ip />
  <description>Potential lateral movement: Network and wireless attacks</description>
</rule>

Risposta Automatizzata agli Eventi Correlati

Wazuh supporta la risposta automatica agli eventi correlati tramite il suo sistema Active Response.

Configurazione di Active Response per bloccare IP sospetti:

  1. Definizione dei comandi:
<command>
  <name>block-ip</name>
  <executable>firewall-drop.sh</executable>
  <expect>srcip</expect>
  <timeout_allowed>yes</timeout_allowed>
</command>
  1. Configurazione delle risposte attive:
<active-response>
  <command>block-ip</command>
  <location>server</location>
  <rules_id>100502,100503</rules_id> <!-- High-level correlation rules -->
  <timeout>600</timeout>
</active-response>

Ottimizzazione delle Performance

Per gestire grandi volumi di dati, è importante ottimizzare le performance del sistema:

  1. Indicizzazione efficiente:
  • Usa hot/warm/cold architecture in Elasticsearch
  • Ottimizza la mappatura dei campi
  1. Filtraggio dei log:
  • Configura i filtri per eliminare eventi non necessari
  • Usa <if_sid> nelle regole per ridurre il carico di elaborazione
  1. Scalabilità:
  • Implementa un cluster Wazuh per distribuire il carico
  • Usa più nodi Elasticsearch per gestire volumi elevati di dati

Casi di Studio

Caso 1: Rilevamento di un Attacco Multi-fase

Un attacco inizia con un tentativo di SQL injection rilevato da Suricata, seguito da un accesso anomalo rilevato dall’XDR e termina con l’esecuzione di un processo sospetto. Grazie alle regole di correlazione, il sistema è in grado di collegare questi eventi e generare un unico alert di alto livello.

Caso 2: Riduzione dei Falsi Positivi

Un falso positivo generato da Suricata viene automaticamente declassato poiché non ci sono eventi correlati da altre fonti nel periodo di osservazione specificato.

Conclusione

La correlazione dei log con Wazuh rappresenta un potente strumento per migliorare la postura di sicurezza di un’organizzazione. Integrando diverse fonti di dati e creando regole di correlazione significative, è possibile ottenere una visione completa dello stato di sicurezza e rilevare minacce che altrimenti potrebbero passare inosservate.

L’efficacia di questo approccio dipende dalla qualità delle regole di correlazione e dalla capacità di adattarle alle specifiche esigenze dell’ambiente. È importante rivedere e perfezionare costantemente queste regole in base ai falsi positivi e ai nuovi vettori di attacco che emergono.

Risorse e Strumenti Utili


Potrebbe interessarti anche

ItalianoitItalianoItaliano