Erfassen von Syslog- und CEF-Nachrichten für Microsoft Sentinel mit dem Azure Monitor-Agent
In diesem Artikel wird beschrieben, wie Sie die Connectors Syslog via AMA und Common Event Format (CEF) via AMA verwenden, um Syslog-Nachrichten, einschließlich im Common Event Format (CEF), von Linux-Computern sowie Netzwerk- und Sicherheitsgeräten und -appliances schnell zu filtern und zu erfassen. Weitere Informationen zu diesen Datenconnectors finden Sie unter Syslog über AMA und CEF (Common Event Format) über AMA-Connectors für Microsoft Sentinel.
Voraussetzungen
Bevor Sie beginnen, müssen Sie die in diesem Abschnitt beschriebenen Ressourcen konfiguriert haben und über die entsprechenden Berechtigungen verfügen.
Microsoft Sentinel: Voraussetzungen
Sie müssen die geeignete Microsoft Sentinel-Lösung aktiviert haben – Syslog und/oder Common Event Format. Weitere Informationen finden Sie unter Entdecken und Verwalten sofort einsatzbereiter Microsoft Sentinel-Inhalte.
Ihr Azure-Konto muss über die folgenden Azure RBAC-Rollen (rollenbasierte Zugriffssteuerung) verfügen:
Integrierte Rolle Bereich `Reason` - Mitwirkender von virtuellen Computern
- Azure Connected Machine
Ressourcenadministrator*in- Virtuelle Computer
- Virtual Machine Scale Sets
- Server mit Azure Arc-Unterstützung
Bereitstellen des Agents Jede Rolle, die die Aktion enthält
Microsoft.Resources/deployments/*- Subscription
- Resource group
- Vorhandene Datensammlungsregel
So stellen Sie die Azure Resource Manager-Vorlagen bereit Überwachungsmitwirkender - Subscription
- Resource group
- Vorhandene Datensammlungsregel
Zum Erstellen oder Bearbeiten von Datensammlungsregeln
Voraussetzungen der Protokollweiterleitung
Wenn Sie Nachrichten von einer Protokollweiterleitung sammeln, gelten die folgenden zusätzlichen Voraussetzungen:
Sie benötigen eine designierte Linux-VM (Ihre Protokollweiterleitung), um Protokolle zu sammeln.
Wenn Ihre Protokollweiterleitung keine Azure-VM ist, muss der Azure Arc Connected Machine-Agent darauf installiert sein.
Auf der Linux-VM mit der Protokollweiterleitung muss Python 2.7 oder 3 installiert sein. Verwenden Sie zur Überprüfung den Befehl
python --version
oderpython3 --version
. Wenn Sie Python 3 verwenden, stellen Sie sicher, dass diese Version auf dem Computer als Standardbefehl festgelegt ist, oder führen Sie die folgenden Skripts mit dem Befehl „python3“ anstelle von „python“ aus.Auf der Protokollweiterleitung muss entweder der Daemon
syslog-ng
oderrsyslog
aktiviert sein.Informationen zu den Speicherplatzanforderungen für Ihre Protokollweiterleitung finden Sie unter Leistungsbenchmark für Azure Monitor Agent. Sie können auch diesen Blogbeitrag lesen, der Entwürfe für die skalierbare Erfassung enthält.
Ihre Protokollquellen (Ihre Sicherheitsgeräte und Appliances) müssen so konfiguriert werden, dass sie ihre Protokollnachrichten an den Syslog-Daemon der Protokollweiterleitung und nicht an ihren lokalen Syslog-Daemon senden.
Vermeiden von Duplizierungen bei der Datenerfassung
Die Verwendung derselben Einrichtung für Syslog- und CEF-Nachrichten kann bei der Datenerfassung zu Duplizierungen zwischen den Tabellen „CommonSecurityLog“ und „Syslog“ führen.
Verwenden Sie eine der folgenden Methoden, um dieses Szenario zu vermeiden:
Wenn das Quellgerät die Konfiguration der Zieleinrichtung ermöglicht: Sie müssen auf jedem Quellcomputer, der Protokolle im CEF-Format an die Weiterleitung sendet, die Syslog-Konfigurationsdatei bearbeiten, um die Einrichtungen zu entfernen, die zum Senden von CEF-Nachrichten verwendet werden. Auf diese Weise werden die im CEF-Format gesendeten Einrichtungen nicht auch im Syslog-Format gesendet. Stellen Sie sicher, dass jede DCR, die Sie in den nächsten Schritten konfigurieren, die entsprechende Einrichtung für CEF bzw. Syslog verwendet.
Ein Beispiel dafür, wie Sie eine DCR so einrichten können, dass Syslog- sowie CEF-Nachrichten vom gleichen Agent erfasst werden, finden Sie unter Syslog- und CEF-Datenströme in der gleichen DCR weiter unten in diesem Artikel.
Wenn das Ändern der Einrichtung für die Quell-Appliance nicht zutreffend ist: Verwenden Sie eine Erfassungszeittransformation, um CEF-Nachrichten aus dem Syslog-Datenstrom herauszufiltern, um Duplizierungen zu vermeiden, wie im nachfolgenden Abfragebeispiel gezeigt. Die Daten werden zweimal vom Collectorcomputer an den Arbeitsbereich gesendet.
source | where ProcessName !contains "CEF"
Konfigurieren der Computersicherheit
Stellen Sie sicher, dass Sie die Sicherheit des Computers gemäß der Sicherheitsrichtlinie Ihrer Organisation konfigurieren. Beispielsweise können Sie das Netzwerk so konfigurieren, dass es der Sicherheitsrichtlinie für das Unternehmensnetzwerk entspricht, und die Ports und Protokolle im Daemon Ihren Anforderungen entsprechend ändern. Um die Sicherheitskonfiguration Ihres Computers zu verbessern, schützen Sie Ihren virtuellen Computer in Azure, oder lesen Sie diese bewährten Methoden für die Netzwerksicherheit.
Wenn Ihre Geräte Syslog- und CEF-Protokolle über TLS senden (z. B. weil sich Ihre Protokollweiterleitung in der Cloud befindet), müssen Sie den Syslog-Daemon (rsyslog
oder syslog-ng
) so konfigurieren, dass er über TLS kommuniziert:
- Verschlüsseln des Syslog-Datenverkehrs mit TLS – rsyslog
- Verschlüsseln von Protokollnachrichten mit TLS – syslog-ng
Einrichten der Datenconnectors
Wählen Sie die entsprechende Registerkarte aus, um die Anweisungen für Syslog oder CEF anzuzeigen.
Einrichten des Connectors „Syslog via AMA“
Der Einrichtungsprozess des Connectors „Syslog via AMA“ besteht aus zwei Teilen:
Installieren Sie den Azure Monitor Agent und erstellen Sie eine Datensammelregel (DCR).
Wenn Sie Protokolle von anderen Computern mithilfe einer Protokollweiterleitung sammeln, führen Sie das Installationsskript auf der Protokollweiterleitung aus, um den Syslog-Daemon zum Lauschen nach Nachrichten von anderen Computern zu konfigurieren und um die erforderlichen lokalen Ports zu öffnen.
Installieren Sie den AMA und erstellen Sie eine Datensammelregel (Data Collection Rule, DCR)
Sie können diesen Schritt auf eine von zwei Arten durchführen:
- Stellen Sie den Datenconnector Syslog über AMA oder CEF (Common Event Format) über AMA im Microsoft Sentinel-Portal bereit, und konfigurieren Sie ihn. Mit dieser Einrichtung können Sie DCRs pro Arbeitsbereich erstellen, verwalten und löschen. Der AMA wird automatisch auf den VMs installiert, die Sie in der Connectorkonfiguration auswählen.
—ODER— - Senden Sie HTTP-Anforderungen an die Protokollerfassungs-API. Mit dieser Einrichtung können Sie DCRs erstellen, verwalten und löschen. Diese Option ist flexibler als das Portal. Mit der API können Sie beispielsweise nach bestimmten Protokollebenen filtern, wobei Sie mit der Benutzeroberfläche nur eine Mindestprotokollebene auswählen können. Der Nachteil ist, dass Sie den Azure Monitor Agent manuell auf der Protokollweiterleitung installieren müssen, bevor Sie eine DCR erstellen.
Wählen Sie unten die entsprechende Registerkarte, um die Anweisungen für die einzelnen Möglichkeiten zu sehen.
Öffnen der Connectorseite und Starten des DCR-Assistenten
Öffnen Sie das Azure-Portal, und navigieren Sie zum Dienst Microsoft Sentinel.
Auswählen des Datenconnectors im Navigationsmenü
Geben Sie Syslog in das Suchfeld ein. Wählen Sie aus den Ergebnissen den Connector Syslog via AMA aus.
Wählen Sie im Detailbereich Connectorseite öffnen aus.
Wählen Sie im Bereich Konfiguration die Option + Datensammlungsregel erstellen aus.
Auf der Registerkarte Basic:
- Geben Sie einen DCR-Namen ein.
- Wählen Sie Ihr Abonnement aus.
- Wählen Sie die Ressourcengruppe aus, in der Sie Ihre DCR speichern möchten.
Wählen Sie Weiter: Ressourcen> aus.
Definieren von Ressourcen (VMs)
Wählen Sie auf der Registerkarte Ressourcen die Computer aus, auf denen Sie den AMA installieren möchten – in diesem Fall Ihren Protokollweiterleitungscomputer. (Wenn Ihre Protokollweiterleitung nicht in der Liste erscheint, ist möglicherweise der Azure Connected Machine-Agent nicht installiert.)
Verwenden Sie die verfügbaren Filter oder das Suchfeld, um nach ihrer VM für die Protokollweiterleitung zu suchen. Sie können ein Abonnement in der Liste erweitern, um seine Ressourcengruppen zu sehen, und eine Ressourcengruppe, um ihre VMs zu sehen.
Wählen Sie die VM mit der Protokollweiterleitung, auf der Sie den AMA installieren möchten. (Das Kontrollkästchen wird neben dem Namen der VM angezeigt, wenn Sie mit dem Mauszeiger darüber fahren.)
Überprüfen Sie Ihre Änderungen, und wählen Sie Weiter: Sammeln> aus.
Auswählen von Einrichtungen und Schweregraden und Erstellen der DCR
Hinweis
Die Verwendung derselben Einrichtung für Syslog- und CEF-Nachrichten kann bei der Datenerfassung zu Duplizierungen führen. Erfahren Sie, wie Sie Duplizierungen bei der Datenerfassung vermeiden lassen.
Wählen Sie auf der Registerkarte Sammeln den minimalen Protokollierungsgrad für jede Einrichtung. Wenn Sie eine Protokollebene auswählen, sammelt Microsoft Sentinel Protokolle für die ausgewählte Ebene und andere Ebenen mit höherem Schweregrad. Wenn Sie beispielsweise LOG_ERR auswählen, erfasst Microsoft Sentinel Protokolle für die EbenenLOG_ERR, LOG_CRIT, LOG_ALERT und LOG_EMERG.
Überprüfen Sie Ihre Auswahl und wählen Sie Weiter: Überprüfen + Erstellen aus.
Wählen Sie auf der Registerkarte Bewerten und erstellen die Option Erstellen aus.
Der Connector installiert den Azure Monitor Agent auf den Computern, die Sie bei der Erstellung Ihrer DCR ausgewählt haben.
Sie erhalten Benachrichtigungen vom Azure-Portal, wenn die DCR erstellt und der Agent installiert ist.
Wählen Sie auf der Connectorseite Aktualisieren, um die DCR in der Liste anzuzeigen.
Beispiele für Abschnitte „facilities“ (Einrichtungen) und „log levels“ (Protokollebenen)
Sehen Sie sich diese Beispiele der Einstellungen für Einrichtungen und Protokollebenen an. Das name
-Feld enthält den Filternamen.
Bei der Erfassung von CEF-Nachrichten sollte "streams"
den Wert "Microsoft-CommonSecurityLog"
anstatt "Microsoft-Syslog"
haben.
In diesem Beispiel werden Ereignisse von den Einrichtungen cron
, daemon
, local0
, local3
und uucp
mit den Protokollebenen Warning
, Error
, Critical
, Alert
und Emergency
erfasst:
"dataSources": {
"syslog": [
{
"name": "SyslogStream0",
"streams": [
"Microsoft-Syslog"
],
"facilityNames": [
"cron",
"daemon",
"local0",
"local3",
"uucp"
],
"logLevels": [
"Warning",
"Error",
"Critical",
"Alert",
"Emergency"
]
}
]
}
Syslog- und CEF-Datenströme in der gleichen DCR
Dieses Beispiel zeigt, wie Sie Syslog- und CEF-Nachrichten in der gleichen DCR sammeln können.
Weitere Informationen zu den erforderlichen Schritten beim Erfassen von Syslog- und CEF-Nachrichten mit einem einzigen Agent und einer einzigen DCR finden Sie unter Vermeiden von Duplizierungen bei der Datenerfassung weiter oben in diesem Artikel.
Die DCR sammelt CEF-Ereignisnachrichten für:
- Die Einrichtungen
authpriv
undmark
mit den ProtokollebenenInfo
,Notice
,Warning
,Error
,Critical
,Alert
undEmergency
. - Die Einrichtung
daemon
mit den ProtokollebenenWarning
,Error
,Critical
,Alert
undEmergency
.
Sie sammelt Syslog-Ereignisnachrichten für:
- Die Einrichtungen
kern
,local0
,local5
undnews
mit den ProtokollebenenCritical
,Alert
undEmergency
. - Die Einrichtungen
mail
unduucp
mit der ProtokollebeneEmergency
.
"dataSources": {
"syslog": [
{
"name": "CEFStream1",
"streams": [
"Microsoft-CommonSecurityLog"
],
"facilityNames": [
"authpriv",
"mark"
],
"logLevels": [
"Info",
"Notice",
"Warning",
"Error",
"Critical",
"Alert",
"Emergency"
]
},
{
"name": "CEFStream2",
"streams": [
"Microsoft-CommonSecurityLog"
],
"facilityNames": [
"daemon"
],
"logLevels": [
"Warning",
"Error",
"Critical",
"Alert",
"Emergency"
]
},
{
"name": "SyslogStream3",
"streams": [
"Microsoft-Syslog"
],
"facilityNames": [
"kern",
"local0",
"local5",
"news"
],
"logLevels": [
"Critical",
"Alert",
"Emergency"
]
},
{
"name": "SyslogStream4",
"streams": [
"Microsoft-Syslog"
],
"facilityNames": [
"mail",
"uucp"
],
"logLevels": [
"Emergency"
]
}
]
}
Ausführen des Skripts „installation“
Das Skript „installation“ installiert eigentlich nichts, aber es konfiguriert den Syslog-Daemon auf Ihrer Protokollweiterleitung ordnungsgemäß, um die Protokolle zu sammeln.
Kopieren Sie auf der Connector-Seite die Befehlszeile, die unter Führen Sie den folgenden Befehl aus, um den CEF-Collector zu installieren und anzuwenden: erscheint, indem Sie das Symbol Kopieren daneben auswählen.
Sie können sie auch hier kopieren:
sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
Melden Sie sich bei der VM mit der Protokollweiterleitung an, auf der Sie gerade die AMA installiert haben.
Fügen Sie den Befehl ein, den Sie im letzten Schritt kopiert haben, um das Installationsskript zu starten.
Das Skript konfiguriert denrsyslog
- odersyslog-ng
-Daemon für die Verwendung des gewünschten Protokolls und startet den Daemon neu. Das Skript öffnet Port 514, um eingehende Nachrichten sowohl in UDP- als auch in TCP-Protokollen abzuhören. Um diese Einstellung zu ändern, sehen Sie in der Konfigurationsdatei des Syslog-Daemons nach, die dem auf dem Computer ausgeführten Daemon-Typ entspricht:- Rsyslog:
/etc/rsyslog.conf
- Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
Hinweis
Um Szenarien mit vollen Datenträgern zu vermeiden, bei denen der Agent nicht funktionieren kann, empfehlen wir, das Sie die Konfiguration von
syslog-ng
oderrsyslog
so festlegen, dass nicht benötigte Protokolle nicht gespeichert werden. Ein Szenario mit vollem Datenträger unterbricht die Funktion des installierten AMA. Weitere Informationen finden Sie unter RSyslog oder Syslog-ng.- Rsyslog:
Testen des Connectors
Um zu überprüfen, ob der Syslog-Daemon am UDP-Port ausgeführt wird und ob der AMA lauscht, führen Sie den folgenden Befehl aus:
netstat -lnptv
Es sollte angezeigt werden, dass der Daemon
rsyslog
odersyslog-ng
an Port 514 lauscht.Um Nachrichten zu erfassen, die von einer Protokollierung oder einem verbundenen Gerät gesendet werden, führen Sie diesen Befehl im Hintergrund aus:
tcpdump -i any port 514 -A -vv &
Nachdem Sie die Überprüfung abgeschlossen haben, empfiehlt es sich,
tcpdump
zu beenden: Geben Siefg
ein, und drücken Sie dann STRG+C.Zum Senden von Demonachrichten führen Sie eine der folgenden Aktionen aus:
Verwenden des Hilfsprogramms netcat. In diesem Beispiel liest das Hilfsprogramm Daten, die mit dem
echo
-Befehl gesendet wurden, wobei der newline-Schalter deaktiviert war. Das Hilfsprogramm schreibt die Daten dann ohne Timeout an den UDP-Port514
auf dem localhost. Zum Ausführen des Hilfsprogramms netcat müssen Sie möglicherweise ein zusätzliches Paket installieren.echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
Verwenden der Protokollierung. In diesem Beispiel wird die Nachricht im CEF-RFC-Format in die Einrichtung
local 4
mit dem SchweregradWarning
an Port514
auf dem lokalen Host geschrieben. Die Flags-t
und--rfc3164
werden verwendet, um das erwartete RFC-Format einzuhalten.logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time"
Um zu überprüfen, ob der Connector ordnungsgemäß installiert ist, führen Sie das Problembehandlungsskript mit einem dieser Befehle aus:
Führen Sie für CEF-Protokolle Folgendes aus:
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
Führen Sie für ASA-Protokolle von Cisco (Adaptive Security Appliance) Folgendes aus:
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
Führen Sie für FTD-Protokolle von Cisco (Firepower Threat Defense) Folgendes aus:
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd