[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.
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ů.
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.
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.
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]
Může se zobrazit zpráva, která vás nasměruje, abyste spustili příkaz, který opraví problém s mapováním pole Počítač. Podrobnosti najdete v vysvětlení ověřovacího skriptu.
Může se zobrazit zpráva, která vás nasměruje, abyste spustili příkaz, který opraví problém s analýzou protokolů brány firewall Cisco ASA. Podrobnosti najdete v vysvětlení ověřovacího skriptu.
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:
Zkontroluje, jestli soubor
/etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
existuje a je platný.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>
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]
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]
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).
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
Restartuje démona syslogu a agenta Log Analytics:
service rsyslog restart /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
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
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
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:
Zkontroluje, jestli soubor
/etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
existuje a je platný.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>
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]
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]
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).
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);};
Restartuje démona syslogu a agenta Log Analytics:
service syslog-ng restart /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
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
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
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:
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.
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.
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
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
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.
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í.
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 napermissive
.
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á.
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.
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
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
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.
Pokud chcete nainstalovat editor zásad brány firewall, spusťte:
yum install policycoreutils-python
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
Ověřte, že byla přidána výjimka. Run (Spuštění):
sudo firewall-cmd --direct --get-rules ipv4 filter INPUT
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
Problémy související s agentem v Linuxu a OMS
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ý.