Condividi tramite


Risolvere i problemi del connettore dati CEF o Syslog

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione Linux vicina allo stato end of life (EOL). Prendere in considerazione l'uso e la pianificazione di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.

Questo articolo descrive i metodi comuni per verificare e risolvere i problemi di un connettore dati CEF o Syslog per Microsoft Sentinel.

Ad esempio, se i log non vengono visualizzati in Microsoft Sentinel, nelle tabelle Syslog o Common Security Log, l'origine dati potrebbe non riuscire a connettersi o potrebbe esserci un altro motivo per cui i dati non vengono inseriti.

Altri sintomi di una distribuzione del connettore non riuscita includono quando mancano i file security_events.conf o security-omsagent.config.conf oppure se il server rsyslog non è in ascolto sulla porta 514.

Per altre informazioni, vedere Connessione soluzione esterna usando Common Event Format e Raccogliere dati da origini basate su Linux usando Syslog.

Se il connettore è stato distribuito usando un metodo diverso dalla procedura documentata e si verificano problemi, è consigliabile eliminare nuovamente la distribuzione e installarla di nuovo come documentato.

Questo articolo illustra come risolvere i problemi relativi ai connettori CEF o Syslog con l'agente di Log Analytics. Per informazioni sulla risoluzione dei problemi relativi all'inserimento di log CEF tramite l'agente di Monitoraggio di Azure (AMA), vedere le istruzioni del connettore COMMON Event Format (CEF).

Importante

Il 28 febbraio 2023 sono state introdotte modifiche allo schema della tabella CommonSecurityLog. Dopo questa modifica, potrebbe essere necessario esaminare e aggiornare query personalizzate. Per altri dettagli, vedere la sezione azioni consigliate in questo post di blog. Il contenuto ottimizzazione predefinita (rilevamenti, query di ricerca, cartelle di lavoro, parser e così via) è stato aggiornato da Microsoft Sentinel.

Come usare questo articolo

Quando le informazioni contenute in questo articolo sono rilevanti solo per Syslog o solo per i connettori CEF, la pagina è stata organizzata in schede. Assicurarsi di usare le istruzioni nella scheda corretta per il tipo di connettore.

Ad esempio, se si sta risolvendo la risoluzione dei problemi di un connettore CEF, iniziare con Convalidare la connettività CEF. Se si sta risolvendo la risoluzione dei problemi di un connettore Syslog, iniziare di seguito con Verificare i prerequisiti del connettore dati.

Convalidare la connettività CEF

Dopo aver distribuito il server d'inoltro dei log e aver configurato la soluzione di sicurezza per inviarli messaggi CEF, seguire la procedura descritta in questa sezione per verificare la connettività tra la soluzione di sicurezza e Microsoft Sentinel.

Questa procedura è rilevante solo per le connessioni CEF e non è rilevante per le connessioni Syslog.

  1. Assicurarsi di disporre dei prerequisiti seguenti:

    • È necessario disporre di autorizzazioni elevate (sudo) nel computer del server d'inoltro dei log.

    • È necessario avere python 2.7 o 3 installato nel computer del server d'inoltro dei log. Usare il python --version comando per controllare.

    • In questo processo potrebbero essere necessari l'ID area di lavoro e la chiave primaria dell'area di lavoro. È possibile trovarli nella risorsa dell'area di lavoro, in Gestione agenti.

  2. Dal menu di spostamento di Microsoft Sentinel aprire Log. Eseguire una query usando lo schema CommonSecurityLog per verificare se si ricevono log dalla soluzione di sicurezza.

    La visualizzazione dei log in Log Analytics potrebbe richiedere circa 20 minuti.

  3. Se non vengono visualizzati risultati dalla query, verificare che gli eventi vengano generati dalla soluzione di sicurezza o provare a generare alcuni elementi e verificare che vengano inoltrati al computer del server d'inoltro Syslog designato.

  4. Eseguire lo script seguente nel server d'inoltro dei log (applicando l'ID dell'area di lavoro al posto del segnaposto) per verificare la connettività tra la soluzione di sicurezza, il server d'inoltro dei log e Microsoft Sentinel. Questo script verifica che il daemon sia in ascolto sulle porte corrette, che l'inoltro sia configurato correttamente e che nulla blocca la comunicazione tra il daemon e l'agente di Log Analytics. Invia anche messaggi fittizi "TestCommonEventFormat" per controllare la connettività end-to-end.

    sudo wget -O cef_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/CEF/cef_troubleshoot.py&&sudo python cef_troubleshoot.py [WorkspaceID]
    
    • È possibile che venga visualizzato un messaggio che indica di eseguire un comando per correggere un problema relativo al mapping del campo Computer. Per informazioni dettagliate, vedere la spiegazione nello script di convalida.

    • È possibile che venga visualizzato un messaggio che indica di eseguire un comando per correggere un problema con l'analisi dei log del firewall Cisco ASA. Per informazioni dettagliate, vedere la spiegazione nello script di convalida.

Spiegazione dello script di convalida CEF

La sezione seguente descrive lo script di convalida CEF per il daemon rsyslog e il daemon syslog-ng.

daemon rsyslog

Per un daemon rsyslog, lo script di convalida CEF esegue i controlli seguenti:

  1. Verifica che il file
    /etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
    esiste ed è valido.

  2. Verifica che il file includa il testo seguente:

    <source>
        type syslog
        port 25226
        bind 127.0.0.1
        protocol_type tcp
        tag oms.security
        format /(?<time>(?:\w+ +){2,3}(?:\d+:){2}\d+|\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.[\w\-\:\+]{3,12}):?\s*(?:(?<host>[^: ]+) ?:?)?\s*(?<ident>.*CEF.+?(?=0\|)|%ASA[0-9\-]{8,10})\s*:?(?<message>0\|.*|.*)/
        <parse>
            message_format auto
        </parse>
    </source>
    
    <filter oms.security.**>
        type filter_syslog_security
    </filter>
    
  3. Verifica che l'analisi degli eventi di Cisco ASA Firewall sia configurata come previsto, usando il comando seguente:

    grep -i "return ident if ident.include?('%ASA')" /opt/microsoft/omsagent/plugin/security_lib.rb
    
    • Se si verifica un problema con l'analisi, lo script genererà un messaggio di errore che indica di eseguire manualmente il comando seguente (applicando l'ID dell'area di lavoro al posto del segnaposto). Il comando garantisce l'analisi corretta e il riavvio dell'agente.

      # Cisco ASA parsing fix
      sed -i "s|return '%ASA' if ident.include?('%ASA')|return ident if ident.include?('%ASA')|g" /opt/microsoft/omsagent/plugin/security_lib.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  4. Verifica che il campo Computer nell'origine syslog sia mappato correttamente nell'agente di Log Analytics usando il comando seguente:

    grep -i "'Host' => record\['host'\]"  /opt/microsoft/omsagent/plugin/filter_syslog_security.rb
    
    • Se si verifica un problema con il mapping, lo script genererà un messaggio di errore che indica di eseguire manualmente il comando seguente (applicando l'ID dell'area di lavoro al posto del segnaposto). Il comando garantisce il mapping corretto e riavvia l'agente.

      # Computer field mapping fix
      sed -i -e "/'Severity' => tags\[tags.size - 1\]/ a \ \t 'Host' => record['host']" -e "s/'Severity' => tags\[tags.size - 1\]/&,/" /opt/microsoft/omsagent/plugin/filter_syslog_security.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  5. Controlla se sono presenti miglioramenti della sicurezza nel computer che potrebbero bloccare il traffico di rete, ad esempio un firewall host.

  6. Verifica che il daemon syslog (rsyslog) sia configurato correttamente per inviare messaggi (che identifica come CEF) all'agente di Log Analytics sulla porta TCP 25226:

    File di configurazione: /etc/rsyslog.d/security-config-omsagent.conf

    if $rawmsg contains "CEF:" or $rawmsg contains "ASA-" then @@127.0.0.1:25226
    
  7. Riavvia il daemon syslog e l'agente di Log Analytics:

    service rsyslog restart
    
    /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
    
  8. Verifica che vengano stabilite le connessioni necessarie: tcp 514 per la ricezione di dati, tcp 25226 per la comunicazione interna tra il daemon syslog e l'agente di Log Analytics:

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Verifica che il daemon syslog riceva dati sulla porta 514 e che l'agente riceva dati sulla porta 25226:

    sudo tcpdump -A -ni any port 514 -vv
    
    sudo tcpdump -A -ni any port 25226 -vv
    
  10. Invia dati MOCK alla porta 514 in localhost. Questi dati devono essere osservabili nell'area di lavoro di Microsoft Sentinel eseguendo la query seguente:

    CommonSecurityLog
    | where DeviceProduct == "MOCK"
    

syslog-ng daemon

Per un daemon syslog-ng, lo script di convalida CEF esegue i controlli seguenti:

  1. Verifica che il file
    /etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
    esiste ed è valido.

  2. Verifica che il file includa il testo seguente:

    <source>
        type syslog
        port 25226
        bind 127.0.0.1
        protocol_type tcp
        tag oms.security
        format /(?<time>(?:\w+ +){2,3}(?:\d+:){2}\d+|\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.[\w\-\:\+]{3,12}):?\s*(?:(?<host>[^: ]+) ?:?)?\s*(?<ident>.*CEF.+?(?=0\|)|%ASA[0-9\-]{8,10})\s*:?(?<message>0\|.*|.*)/
        <parse>
            message_format auto
        </parse>
    </source>
    
    <filter oms.security.**>
        type filter_syslog_security
    </filter>
    
  3. Verifica che l'analisi degli eventi di Cisco ASA Firewall sia configurata come previsto, usando il comando seguente:

    grep -i "return ident if ident.include?('%ASA')" /opt/microsoft/omsagent/plugin/security_lib.rb
    
    • Se si verifica un problema con l'analisi, lo script genererà un messaggio di errore che indica di eseguire manualmente il comando seguente (applicando l'ID dell'area di lavoro al posto del segnaposto). Il comando garantisce l'analisi corretta e il riavvio dell'agente.

      # Cisco ASA parsing fix
      sed -i "s|return '%ASA' if ident.include?('%ASA')|return ident if ident.include?('%ASA')|g" /opt/microsoft/omsagent/plugin/security_lib.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  4. Verifica che il campo Computer nell'origine syslog sia mappato correttamente nell'agente di Log Analytics usando il comando seguente:

    grep -i "'Host' => record\['host'\]"  /opt/microsoft/omsagent/plugin/filter_syslog_security.rb
    
    • Se si verifica un problema con il mapping, lo script genererà un messaggio di errore che indica di eseguire manualmente il comando seguente (applicando l'ID dell'area di lavoro al posto del segnaposto). Il comando garantisce il mapping corretto e riavvia l'agente.

      # Computer field mapping fix
      sed -i -e "/'Severity' => tags\[tags.size - 1\]/ a \ \t 'Host' => record['host']" -e "s/'Severity' => tags\[tags.size - 1\]/&,/" /opt/microsoft/omsagent/plugin/filter_syslog_security.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  5. Controlla se sono presenti miglioramenti della sicurezza nel computer che potrebbero bloccare il traffico di rete, ad esempio un firewall host.

  6. Verifica che il daemon syslog (syslog-ng) sia configurato correttamente per inviare messaggi identificati come CEF (usando un'espressione regolare) all'agente di Log Analytics sulla porta TCP 25226:

    • File di configurazione: /etc/syslog-ng/conf.d/security-config-omsagent.conf

      filter f_oms_filter {match(\"CEF\|ASA\" ) ;};destination oms_destination {tcp(\"127.0.0.1\" port(25226));};
      log {source(s_src);filter(f_oms_filter);destination(oms_destination);};
      
  7. Riavvia il daemon syslog e l'agente di Log Analytics:

    service syslog-ng restart
    
    /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
    
  8. Verifica che vengano stabilite le connessioni necessarie: tcp 514 per la ricezione di dati, tcp 25226 per la comunicazione interna tra il daemon syslog e l'agente di Log Analytics:

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Verifica che il daemon syslog riceva dati sulla porta 514 e che l'agente riceva dati sulla porta 25226:

    sudo tcpdump -A -ni any port 514 -vv
    
    sudo tcpdump -A -ni any port 25226 -vv
    
  10. Invia dati MOCK alla porta 514 in localhost. Questi dati devono essere osservabili nell'area di lavoro di Microsoft Sentinel eseguendo la query seguente:

    CommonSecurityLog
    | where DeviceProduct == "MOCK"
    

Verificare i prerequisiti del connettore dati

Usare le sezioni seguenti per verificare i prerequisiti del connettore dati CEF o Syslog.

Macchina virtuale di Azure come agente di raccolta CEF

Se si usa una macchina virtuale di Azure come agente di raccolta CEF, verificare quanto segue:

  • Prima di distribuire lo script Python del connettore Common Event Format Data, assicurarsi che la macchina virtuale non sia già connessa a un'area di lavoro Log Analytics esistente. È possibile trovare queste informazioni nell'elenco Delle macchine virtuali dell'area di lavoro Log Analytics, in cui una macchina virtuale connessa a un'area di lavoro Syslog è elencata come Connessione ed.

  • Assicurarsi che Microsoft Sentinel sia connesso all'area di lavoro Log Analytics corretta, con la soluzione SecurityInsights installata.

    Per altre informazioni, vedere Passaggio 1: Distribuire il server d'inoltro dei log.

  • Assicurarsi che il computer sia dimensionato correttamente con almeno i prerequisiti minimi necessari. Per altre informazioni, vedere Prerequisiti CEF.

In locale o in una macchina virtuale non Azure

Se si usa un computer locale o una macchina virtuale non Azure per il connettore dati, assicurarsi di aver eseguito lo script di installazione in una nuova installazione di un sistema operativo Linux supportato:

Suggerimento

È anche possibile trovare questo script dalla pagina Common Event Format data connector (Connettore dati Common Event Format ) in Microsoft Sentinel.

sudo wget -O cef_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/CEF/cef_installer.py&&sudo python cef_installer.py <WorkspaceId> <Primary Key>

Abilitare la struttura CEF e la raccolta di gravità del log

Il server Syslog, rsyslog o syslog-ng, inoltra tutti i dati definiti nel file di configurazione pertinente, popolati automaticamente dalle impostazioni definite nell'area di lavoro Log Analytics.

Assicurarsi di aggiungere dettagli sulle funzionalità e sui livelli di log di gravità da inserire in Microsoft Sentinel. Il processo di configurazione può richiedere circa 20 minuti.

Per altre informazioni, vedere Spiegazione dello script di distribuzione.

Ad esempio, per un server rsyslog, eseguire il comando seguente per visualizzare le impostazioni correnti per l'inoltro Syslog ed esaminare le modifiche apportate al file di configurazione:

cat /etc/rsyslog.d/security-config-omsagent.conf

In questo caso, per rsyslog, l'output simile al seguente dovrebbe essere visualizzato:

if $rawmsg contains "CEF:" or $rawmsg contains "ASA-" then @@127.0.0.1:25226

Risolvere i problemi relativi al sistema operativo

Questa sezione descrive come risolvere i problemi che sono certamente derivati dalla configurazione del sistema operativo.

Per risolvere i problemi del sistema operativo:

  1. Se non è ancora stato fatto, verificare di usare un sistema operativo supportato e una versione di Python. Per altre informazioni, vedere Prerequisiti CEF.

  2. Se la macchina virtuale si trova in Azure, verificare che il gruppo di sicurezza di rete (NSG) consenta la connettività TCP/UDP in ingresso dal client di log (mittente) sulla porta 514.

  3. Verificare che i pacchetti arrivino all'agente di raccolta Syslog. Per acquisire i pacchetti syslog in arrivo all'agente di raccolta Syslog, eseguire:

    tcpdump -Ani any port 514 and host <ip_address_of_sender> -vv
    
  4. Esegui una delle operazioni seguenti:

    • Se non vengono visualizzati pacchetti in arrivo, verificare le autorizzazioni del gruppo di sicurezza NSG e il percorso di routing all'agente di raccolta Syslog.

    • Se vengono visualizzati pacchetti in arrivo, verificare che non vengano rifiutati.

    Se vengono visualizzati pacchetti rifiutati, verificare che le tabelle IP non blocchino le connessioni.

    Per verificare che i pacchetti non vengano rifiutati, eseguire:

    watch -n 2 -d iptables -nvL
    
  5. Verificare se il server CEF sta elaborando i log. Terza fase

    tail -f /var/log/messages or tail -f /var/log/syslog
    

    Tutti i log CEF elaborati vengono visualizzati in testo normale.

  6. Verificare che il server rsyslog sia in ascolto sulla porta TCP/UDP 514. Terza fase

    netstat -anp | grep syslog
    

    Se sono presenti log CEF o ASA inviati all'agente di raccolta Syslog, dovrebbe essere visualizzata una connessione stabilita sulla porta TCP 25226.

    Ad esempio:

    0 127.0.0.1:36120 127.0.0.1:25226 ESTABLISHED 1055/rsyslogd
    

    Se la connessione è bloccata, potrebbe essere presente una connessione edizione Standard Linux bloccata all'agente OMS o un processo del firewall bloccato. Usare le istruzioni pertinenti riportate di seguito per determinare il problema.

edizione Standard Linux che blocca la connessione all'agente OMS

Questa procedura descrive come verificare se edizione Standard Linux è attualmente in permissive uno stato o blocca una connessione all'agente OMS. Questa procedura è rilevante quando il sistema operativo è una distribuzione da RedHat o CentOS e per i connettori dati CEF e Syslog.

Nota

Il supporto di Microsoft Sentinel per CEF e Syslog include solo la protezione avanzata FIPS. Altri metodi di protezione avanzata, ad esempio edizione Standard Linux o CIS, non sono attualmente supportati.

  1. Terza fase

    sestatus
    

    Lo stato viene visualizzato come uno dei seguenti:

    • disabled. Questa configurazione è supportata per la connessione a Microsoft Sentinel.
    • permissive. Questa configurazione è supportata per la connessione a Microsoft Sentinel.
    • enforced. Questa configurazione non è supportata ed è necessario disabilitare lo stato o impostarlo su permissive.
  2. Se lo stato è attualmente impostato su enforced, disattivarlo temporaneamente per confermare se si tratta del blocco. Terza fase

    setenforce 0
    

    Nota

    Questo passaggio disattiva edizione Standard Linux solo fino al riavvio del server. Modificare la configurazione di edizione Standard Linux per mantenerla disattivata.

  3. Per verificare se la modifica è riuscita, eseguire:

    getenforce
    

    Lo permissive stato deve essere restituito.

Importante

Questo aggiornamento delle impostazioni viene perso quando il sistema viene riavviato. Per aggiornare definitivamente questa impostazione su permissive, modificare il file /etc/selinux/config , impostando il SELINUX valore su SELINUX=permissive.

Per altre informazioni, vedere la documentazione di RedHat.

Criteri firewall bloccati

Questa procedura descrive come verificare se i criteri del firewall bloccano la connessione dal daemon Rsyslog all'agente OMS e come disabilitarlo in base alle esigenze. Questa procedura è rilevante per i connettori dati CEF e Syslog.

  1. Eseguire il comando seguente per verificare se sono presenti rifiuti nelle tabelle IP, a indicare il traffico che viene eliminato dai criteri del firewall:

    watch -n 2 -d iptables -nvL
    
  2. Per mantenere abilitati i criteri firewall, creare una regola dei criteri per consentire le connessioni. Aggiungere regole in base alle esigenze per consentire le porte TCP/UDP 25226 e 25224 tramite il firewall attivo.

    Ad esempio:

    Every 2.0s: iptables -nvL                      rsyslog: Wed Jul  7 15:56:13 2021
    
    Chain INPUT (policy ACCEPT 6185K packets, 2466M bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    
    Chain OUTPUT (policy ACCEPT 6792K packets, 6348M bytes)
     pkts bytes target     prot opt in     out     source               destination
    
  3. Per creare una regola per consentire le porte TCP/UDP 25226 e 25224 tramite il firewall attivo, aggiungere regole in base alle esigenze.

    1. Per installare l'editor dei criteri firewall, eseguire:

      yum install policycoreutils-python
      
    2. Aggiungere le regole del firewall ai criteri del firewall. Ad esempio:

      sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 25226  -j ACCEPT
      sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p udp --dport 25224  -j ACCEPT
      sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 25224  -j ACCEPT
      
    3. Verificare che l'eccezione sia stata aggiunta. Terza fase

      sudo firewall-cmd --direct --get-rules ipv4 filter INPUT
      
    4. Ricaricare il firewall. Terza fase

      sudo firewall-cmd --reload
      

Nota

Per disabilitare il firewall, eseguire: sudo systemctl disable firewalld

Se i passaggi descritti in precedenza in questo articolo non risolvono il problema, potrebbe verificarsi un problema di connettività tra l'agente OMS e l'area di lavoro di Microsoft Sentinel.

In questi casi, continuare la risoluzione dei problemi verificando quanto segue:

  • Assicurarsi di visualizzare i pacchetti in arrivo sulla porta TCP/UDP 514 nell'agente di raccolta Syslog

  • Assicurarsi di visualizzare i log scritti nel file di log locale, /var/log/messages o /var/log/syslog

  • Assicurarsi di visualizzare i pacchetti di dati in flusso sulla porta 25226

  • Assicurarsi che la macchina virtuale disponga di una connessione in uscita alla porta 443 tramite TCP oppure di connettersi agli endpoint di Log Analytics

  • Assicurarsi di avere accesso agli URL necessari dall'agente di raccolta CEF tramite i criteri del firewall. Per altre informazioni, vedere Requisiti del firewall dell'agente di Log Analytics.

Eseguire il comando seguente per determinare se l'agente comunica correttamente con Azure o se l'agente OMS non è connesso all'area di lavoro Log Analytics.

Heartbeat
 | where Computer contains "<computername>"
 | sort by TimeGenerated desc

Se l'agente comunica correttamente, viene restituita una voce di log. In caso contrario, l'agente OMS potrebbe essere bloccato.

Passaggi successivi

Se i passaggi per la risoluzione dei problemi descritti in questo articolo non hanno aiutato il problema, aprire un ticket di supporto o usare le risorse della community di Microsoft Sentinel. Per altre informazioni, vedere Risorse utili per l'uso di Microsoft Sentinel.

Per altre informazioni su Microsoft Sentinel, vedere gli articoli seguenti: