Sdílet prostřednictvím


[Zastaralé] Řešení potíží s datovým konektorem CEF nebo Syslog

Důležité

Shromažďování protokolů z mnoha zařízení a zařízení teď podporuje common event Format (CEF) prostřednictvím AMA, Syslogu přes AMA nebo vlastní protokoly prostřednictvím datového konektoru AMA v Microsoft Sentinelu. Další informace najdete v tématu Vyhledání datového konektoru služby Microsoft Sentinel.

Upozornění

Tento článek odkazuje na CentOS, linuxovou distribuci, která dosáhla stavu Ukončení životnosti (EOL). Zvažte své použití a plánování odpovídajícím způsobem. Další informace najdete v doprovodných materiálech CentOS End Of Life.

Tento článek popisuje běžné metody ověřování a řešení potíží s datovým konektorem CEF nebo Syslog pro Microsoft Sentinel.

Pokud se například zprávy protokolu nezobrazují v tabulkách Syslog nebo CommonSecurityLog , nemusí se zdroj dat správně připojovat. Může také dojít k jinému důvodu, proč se vaše data nepřijímají.

Mezi další příznaky neúspěšného nasazení konektoru patří chybějící soubory security_events.conf nebo security-omsagent.config.conf nebo pokud server rsyslog na portu 514 naslouchá.

Další informace najdete v tématu Připojení externího řešení pomocí formátu Common Event Format a shromažďování dat ze zdrojů založených na Linuxu pomocí syslogu.

Pokud jste konektor nasadili jinou metodou, než je zdokumentovaná procedura, a pokud máte problémy, doporučujeme, abyste nasazení vystřiholi a začali znovu, tentokrát postupujte podle zdokumentovaných pokynů.

V tomto článku se dozvíte, jak řešit potíže s konektory CEF nebo Syslog pomocí agenta Log Analytics. Informace o řešení potíží souvisejících s ingestováním protokolů CEF prostřednictvím agenta služby Azure Monitor (AMA) najdete v pokynech ke konektoru AMA ve formátu COMMON Event Format (CEF).

Důležité

28. února 2023 jsme zavedli změny schématu tabulky CommonSecurityLog. Po provedení této změny možná budete muset zkontrolovat a aktualizovat vlastní dotazy. Další podrobnosti najdete v části Doporučené akce v tomto blogovém příspěvku. Služba Microsoft Sentinel aktualizovala předefinovaný obsah (detekce, dotazy proaktivního vyhledávání, sešity, analyzátory atd.).

Jak používat tento článek

Pokud jsou informace v tomto článku relevantní jenom pro Syslog nebo jenom pro konektory CEF, zobrazí se na samostatných kartách. Ujistěte se, že používáte pokyny na správné kartě pro typ spojnice.

Pokud například řešíte potíže s konektorem CEF, začněte ověřením připojení CEF. Pokud řešíte potíže s konektorem Syslog, začněte s ověřením požadavků datového konektoru.

Ověření připojení CEF

Jakmile nasadíte nástroj pro předávání protokolů a nakonfigurujete řešení zabezpečení tak, aby se odesílaly zprávy CEF, pomocí kroků v této části ověřte připojení mezi vaším řešením zabezpečení a Microsoft Sentinelem.

Tento postup je relevantní pouze pro připojení CEF a není relevantní pro připojení Syslog.

  1. Ujistěte se, že máte následující požadavky:

    • Na počítači pro předávání protokolů musíte mít zvýšená oprávnění (sudo).

    • Na počítači pro předávání protokolů musíte mít nainstalovaný Python 2.7 nebo 3 . python --version Pomocí příkazu zkontrolujte.

    • V určitém okamžiku tohoto procesu možná budete potřebovat ID pracovního prostoru a primární klíč pracovního prostoru. Najdete je v prostředku pracovního prostoru v části Správa agentů.

  2. V navigační nabídce Microsoft Sentinelu otevřete protokoly. Spusťte dotaz pomocí schématu CommonSecurityLog a zjistěte, jestli přijímáte protokoly z vašeho řešení zabezpečení.

    Může to trvat přibližně 20 minut, než se vaše protokoly začnou zobrazovat v Log Analytics.

  3. Pokud se v dotazu nezobrazí žádné výsledky, ověřte, že vaše řešení zabezpečení generuje zprávy protokolu. Nebo zkuste provést některé akce pro generování zpráv protokolu a ověřte, že se zprávy přeposílají na určený počítač pro předávání Syslog.

  4. Pokud chcete zkontrolovat připojení mezi vaším řešením zabezpečení, nástrojem pro předávání protokolů a Službou Microsoft Sentinel, spusťte v nástroji pro předávání protokolů následující skript (místo zástupného symbolu použijte ID pracovního prostoru). Tento skript zkontroluje, jestli proces démon naslouchá na správných portech, zda je předávání správně nakonfigurované a že nic neblokuje komunikaci mezi démonem a agentem Log Analytics. Odesílá také napodobené zprávy TestCommonEventFormat pro kontrolu kompletního připojení.

    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]
    

Vysvětlení ověřovacího skriptu CEF

Následující část popisuje ověřovací skript CEF pro démony rsyslog a démon syslog-ng.

démon rsyslog

V případě démona rsyslog spustí ověřovací skript CEF následující kontroly:

  1. Zkontroluje, jestli soubor
    /etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
    existuje a je platný.

  2. Zkontroluje, jestli soubor obsahuje následující text:

    <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. Pomocí následujícího příkazu zkontroluje, jestli je analýza událostí brány firewall Cisco ASA nakonfigurovaná podle očekávání:

    grep -i "return ident if ident.include?('%ASA')" /opt/microsoft/omsagent/plugin/security_lib.rb
    
    • Pokud dojde k problému s analýzou, skript vytvoří chybovou zprávu, která vás nasměruje na ruční spuštění následujícího příkazu (použití ID pracovního prostoru místo zástupného symbolu). Příkaz zajistí správnou analýzu a restartuje agenta.

      # 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. Pomocí následujícího příkazu zkontroluje, jestli je pole Počítač ve zdroji syslogu správně namapované v agentu Log Analytics:

    grep -i "'Host' => record\['host'\]"  /opt/microsoft/omsagent/plugin/filter_syslog_security.rb
    
    • Pokud dojde k problému s mapováním, skript vytvoří chybovou zprávu, která vás nasměruje na ruční spuštění následujícího příkazu (použití ID pracovního prostoru místo zástupného symbolu). Příkaz zajistí správné mapování a restartuje agenta.

      # 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. Zkontroluje, jestli na počítači nejsou nějaká vylepšení zabezpečení, která můžou blokovat síťový provoz (například bránu firewall hostitele).

  6. Zkontroluje, jestli je démon syslogu (rsyslog) správně nakonfigurovaný tak, aby odesílal zprávy (které identifikuje jako CEF) do agenta Log Analytics na portu TCP 25226:

    Konfigurační soubor: /etc/rsyslog.d/security-config-omsagent.conf

    if $rawmsg contains "CEF:" or $rawmsg contains "ASA-" then @@127.0.0.1:25226
    
  7. Restartuje démona syslogu a agenta Log Analytics:

    service rsyslog restart
    
    /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
    
  8. Zkontroluje, jestli jsou vytvořená potřebná připojení: tcp 514 pro příjem dat, tcp 25226 pro interní komunikaci mezi démonem syslogu a agentem Log Analytics:

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Zkontroluje, jestli démon syslog přijímá data na portu 514 a že agent přijímá data na portu 25226:

    sudo tcpdump -A -ni any port 514 -vv
    
    sudo tcpdump -A -ni any port 25226 -vv
    
  10. Odešle data MOCK na port 514 na místním hostiteli. Tato data by měla být pozorovatelná v pracovním prostoru Microsoft Sentinel spuštěním následujícího dotazu:

    CommonSecurityLog
    | where DeviceProduct == "MOCK"
    

syslog-ng démon

V případě démona syslog-ng spustí ověřovací skript CEF následující kontroly:

  1. Zkontroluje, jestli soubor
    /etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
    existuje a je platný.

  2. Zkontroluje, jestli soubor obsahuje následující text:

    <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. Pomocí následujícího příkazu zkontroluje, jestli je analýza událostí brány firewall Cisco ASA nakonfigurovaná podle očekávání:

    grep -i "return ident if ident.include?('%ASA')" /opt/microsoft/omsagent/plugin/security_lib.rb
    
    • Pokud dojde k problému s analýzou, skript vytvoří chybovou zprávu, která vás nasměruje na ruční spuštění následujícího příkazu (použití ID pracovního prostoru místo zástupného symbolu). Příkaz zajistí správnou analýzu a restartuje agenta.

      # 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. Pomocí následujícího příkazu zkontroluje, jestli je pole Počítač ve zdroji syslogu správně namapované v agentu Log Analytics:

    grep -i "'Host' => record\['host'\]"  /opt/microsoft/omsagent/plugin/filter_syslog_security.rb
    
    • Pokud dojde k problému s mapováním, skript vytvoří chybovou zprávu, která vás nasměruje na ruční spuštění následujícího příkazu (použití ID pracovního prostoru místo zástupného symbolu). Příkaz zajistí správné mapování a restartuje agenta.

      # 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. Zkontroluje, jestli na počítači nejsou nějaká vylepšení zabezpečení, která můžou blokovat síťový provoz (například bránu firewall hostitele).

  6. Zkontroluje, jestli je démon syslogu (syslog-ng) správně nakonfigurovaný tak, aby odesílal zprávy, které identifikuje jako CEF (pomocí regulárního výrazu) do agenta Log Analytics na portu TCP 25226:

    • Konfigurační soubor: /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. Restartuje démona syslogu a agenta Log Analytics:

    service syslog-ng restart
    
    /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
    
  8. Zkontroluje, jestli jsou vytvořená potřebná připojení: tcp 514 pro příjem dat, tcp 25226 pro interní komunikaci mezi démonem syslogu a agentem Log Analytics:

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Zkontroluje, jestli démon syslog přijímá data na portu 514 a že agent přijímá data na portu 25226:

    sudo tcpdump -A -ni any port 514 -vv
    
    sudo tcpdump -A -ni any port 25226 -vv
    
  10. Odešle data MOCK na port 514 na místním hostiteli. Tato data by měla být pozorovatelná v pracovním prostoru Microsoft Sentinel spuštěním následujícího dotazu:

    CommonSecurityLog
    | where DeviceProduct == "MOCK"
    

Ověření požadavků datového konektoru

Pomocí následujících částí zkontrolujte požadavky datového konektoru CEF nebo Syslog.

Virtuální počítač Azure jako kolektor CEF

Pokud jako kolektor CEF používáte virtuální počítač Azure, ověřte následující:

  • Před nasazením skriptu Python konektoru Common Event Format Data se ujistěte, že váš virtuální počítač ještě není připojený k existujícímu pracovnímu prostoru služby Log Analytics. Tyto informace najdete v seznamu virtuálních počítačů pracovního prostoru služby Log Analytics, kde je virtuální počítač připojený k pracovnímu prostoru Syslog uvedený jako Připojeno.

  • Ujistěte se, že je Microsoft Sentinel připojený ke správnému pracovnímu prostoru služby Log Analytics s nainstalovaným řešením SecurityInsights .

    Další informace najdete v kroku 1: Nasazení nástroje pro předávání protokolů.

  • Ujistěte se, že má váš počítač správnou velikost s alespoň minimálními požadovanými požadavky. Další informace najdete v požadavcích CEF.

Místní nebo jiný virtuální počítač než Azure

Pokud pro datový konektor používáte místní počítač nebo virtuální počítač mimo Azure, ujistěte se, že jste instalační skript spustili na nové instalaci podporovaného operačního systému Linux:

Tip

Tento skript najdete také na stránce datového konektoru Common Event Format v Microsoft Sentinelu.

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>

Povolení shromažďování závažnosti protokolu a zařízení CEF

Server Syslog, buď rsyslog, nebo syslog-ng, předává všechna data definovaná v příslušném konfiguračním souboru, která se automaticky naplní nastavením definovaným v pracovním prostoru služby Log Analytics.

Nezapomeňte přidat podrobnosti o úrovních protokolů zařízení a závažnosti, které chcete ingestovat do Služby Microsoft Sentinel. Proces konfigurace může trvat přibližně 20 minut.

Další informace najdete v tématu Vysvětlení skriptu nasazení.

Například pro server rsyslog spusťte následující příkaz, který zobrazí aktuální nastavení pro předávání Syslogu a zkontroluje všechny změny konfiguračního souboru:

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

V tomto případě by se pro rsyslog měl zobrazit výstup podobný následujícímu:

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

Řešení potíží s operačním systémem

Tato část popisuje, jak řešit problémy, které jsou jistě odvozeny z konfigurace operačního systému.

Řešení potíží s operačním systémem:

  1. Pokud jste to ještě neudělali, ověřte, že pracujete s podporovaným operačním systémem a verzí Pythonu. Další informace najdete v požadavcích CEF.

  2. Pokud je váš virtuální počítač v Azure, ověřte, že skupina zabezpečení sítě (NSG) umožňuje příchozí připojení TCP/UDP z klienta protokolu (odesílatele) na portu 514.

  3. Ověřte, že pakety přicházejí do kolekce Syslog. Pokud chcete zachytit pakety syslogu přicházející do kolektoru Syslog, spusťte:

    tcpdump -Ani any port 514 and host <ip_address_of_sender> -vv
    
  4. Proveďte některou z následujících akcí:

    • Pokud nevidíte příchozí pakety, potvrďte oprávnění skupiny zabezpečení NSG a cestu směrování ke kolektoru Syslogu.

    • Pokud se zobrazí příchozí pakety, ověřte, že se neodmítají.

    Pokud se zobrazí odmítnuté pakety, ověřte, že tabulky IP adres neblokují připojení.

    Pokud chcete ověřit, že se pakety neodmítají, spusťte:

    watch -n 2 -d iptables -nvL
    
  5. Ověřte, jestli server CEF zpracovává protokoly. Run (Spuštění):

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

    Všechny zpracovávané protokoly CEF se zobrazují ve formátu prostého textu.

  6. Ověřte, že server rsyslog naslouchá na portu TCP/UDP 514. Run (Spuštění):

    netstat -anp | grep syslog
    

    Pokud máte do kolektoru Syslogu odesílané nějaké protokoly CEF nebo ASA, měli byste vidět navazované připojení na portu TCP 25226.

    Příklad:

    0 127.0.0.1:36120 127.0.0.1:25226 ESTABLISHED 1055/rsyslogd
    

    Pokud je připojení zablokované, možná máte blokované připojení SELinux k agentu OMS nebo blokovaný proces brány firewall. K určení problému použijte další pokyny.

SeLinux blokuje připojení k agentu OMS

Tento postup popisuje, jak ověřit, jestli je SELinux aktuálně ve permissive stavu nebo blokuje připojení k agentu OMS. Tento postup je relevantní, pokud je váš operační systém distribucí z RedHatu nebo CentOS a pro datové konektory CEF i Syslog.

Poznámka:

Podpora Microsoft Sentinelu pro CEF a Syslog zahrnuje pouze posílení zabezpečení FIPS. Jiné metody posílení zabezpečení, například SELinux nebo CIS, se v současné době nepodporují.

  1. Run (Spuštění):

    sestatus
    

    Stav se zobrazí jako jeden z následujících:

    • disabled. Tato konfigurace je podporovaná pro vaše připojení k Microsoft Sentinelu.
    • permissive. Tato konfigurace je podporovaná pro vaše připojení k Microsoft Sentinelu.
    • enforced. Tato konfigurace není podporována a musíte buď zakázat stav, nebo ji nastavit na permissive.
  2. Pokud je stav aktuálně nastavený enforced, vypněte ho dočasně a ověřte, jestli se jedná o blokování. Run (Spuštění):

    setenforce 0
    

    Poznámka:

    Tento krok vypne SELinux jenom do restartování serveru. Upravte konfiguraci SELinux tak, aby byla vypnutá.

  3. Pokud chcete ověřit, jestli byla změna úspěšná, spusťte:

    getenforce
    

    Stav permissive by se měl vrátit.

Důležité

Tato aktualizace nastavení se po restartování systému ztratí. Chcete-li trvale aktualizovat toto nastavení na permissive, upravit /etc/selinux/config soubor, změnit SELINUX hodnotu na SELINUX=permissive.

Další informace najdete v dokumentaci k Nástroji RedHat.

Blokované zásady brány firewall

Tento postup popisuje, jak ověřit, jestli zásady brány firewall blokují připojení z démona Rsyslog k agentu OMS a jak ho podle potřeby zakázat. Tento postup je relevantní pro datové konektory CEF i Syslog.

  1. Spuštěním následujícího příkazu ověřte, jestli jsou v tabulkách IP adres nějaké odmítnutí, což značí, že zásady brány firewall zahodí provoz:

    watch -n 2 -d iptables -nvL
    
  2. Pokud chcete zásady brány firewall zachovat povolené, vytvořte pravidlo zásad, které povolí připojení. Podle potřeby přidejte pravidla pro povolení portů TCP/UDP 25226 a 25224 přes aktivní bránu firewall.

    Příklad:

    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. Pokud chcete vytvořit pravidlo pro povolení portů TCP/UDP 25226 a 25224 prostřednictvím aktivní brány firewall, přidejte podle potřeby pravidla.

    1. Pokud chcete nainstalovat editor zásad brány firewall, spusťte:

      yum install policycoreutils-python
      
    2. Přidejte pravidla brány firewall do zásad brány firewall. Příklad:

      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. Ověřte, že byla přidána výjimka. Run (Spuštění):

      sudo firewall-cmd --direct --get-rules ipv4 filter INPUT
      
    4. Znovu načtěte bránu firewall. Run (Spuštění):

      sudo firewall-cmd --reload
      

Poznámka:

Pokud chcete bránu firewall zakázat, spusťte: sudo systemctl disable firewalld

Pokud kroky popsané výše v tomto článku váš problém nevyřeší, možná máte problém s připojením mezi agentem OMS a pracovním prostorem Microsoft Sentinelu.

V takových případech pokračujte v řešení potíží tím, že ověříte následující:

  • Ujistěte se, že se v kolektoru Syslogu zobrazují pakety přicházející na port TCP/UDP 514.

  • Ujistěte se, že se protokoly zapisují do místního souboru protokolu, a to buď /var/log/messages , nebo /var/log/syslog.

  • Ujistěte se, že na portu 25226 vidíte tok datových paketů.

  • Ujistěte se, že váš virtuální počítač má odchozí připojení k portu 443 přes protokol TCP, nebo se může připojit ke koncovým bodům Log Analytics.

  • Ujistěte se, že máte přístup k požadovaným adresám URL z kolekce CEF prostřednictvím zásad brány firewall. Další informace najdete v tématu Požadavky na bránu firewall agenta Log Analytics.

Spuštěním následujícího příkazu zjistěte, jestli agent úspěšně komunikuje s Azure nebo jestli je agent OMS zablokovaný v připojení k pracovnímu prostoru služby Log Analytics.

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

Pokud agent úspěšně komunikuje, vrátí se položka protokolu. Jinak může být agent OMS zablokovaný.