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

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 oder python3 --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 oder rsyslog 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:

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:

  1. Installieren Sie den Azure Monitor Agent und erstellen Sie eine Datensammelregel (DCR).

  2. 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

  1. Öffnen Sie das Azure-Portal, und navigieren Sie zum Dienst Microsoft Sentinel.

  2. Auswählen des Datenconnectors im Navigationsmenü

  3. Geben Sie Syslog in das Suchfeld ein. Wählen Sie aus den Ergebnissen den Connector Syslog via AMA aus.

  4. Wählen Sie im Detailbereich Connectorseite öffnen aus.

  5. Wählen Sie im Bereich Konfiguration die Option + Datensammlungsregel erstellen aus.

    Screenshot der Seite für den Connector „CEF über AMA“

  6. 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.

    Screenshot der DCR-Details auf der Registerkarte „Grundlagen“

  7. 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.)

  1. 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.

  2. 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.)

    Screenshot des Auswählens von Ressourcen beim Einrichten der DCR.

  3. Ü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.

  1. 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.

    Screenshot des Auswählens von Protokollebenen beim Einrichten der DCR.

  2. Überprüfen Sie Ihre Auswahl und wählen Sie Weiter: Überprüfen + Erstellen aus.

  3. Wählen Sie auf der Registerkarte Bewerten und erstellen die Option Erstellen aus.

    Screenshot der Überprüfung der Konfiguration des DCR und seiner Erstellung

  • 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 und mark mit den Protokollebenen Info, Notice, Warning, Error, Critical, Alert und Emergency.
  • Die Einrichtung daemon mit den Protokollebenen Warning, Error, Critical, Alert und Emergency.

Sie sammelt Syslog-Ereignisnachrichten für:

  • Die Einrichtungen kern, local0, local5 und news mit den Protokollebenen Critical, Alert und Emergency.
  • Die Einrichtungen mail und uucp mit der Protokollebene Emergency.
    "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.

  1. 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.

    Screenshot der Befehlszeile auf der Connectorseite

    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
    
  2. Melden Sie sich bei der VM mit der Protokollweiterleitung an, auf der Sie gerade die AMA installiert haben.

  3. Fügen Sie den Befehl ein, den Sie im letzten Schritt kopiert haben, um das Installationsskript zu starten.
    Das Skript konfiguriert den rsyslog- oder syslog-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 oder rsyslog 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.

Testen des Connectors

  1. 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 oder syslog-ng an Port 514 lauscht.

  2. 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 &
    
  3. Nachdem Sie die Überprüfung abgeschlossen haben, empfiehlt es sich, tcpdump zu beenden: Geben Sie fg ein, und drücken Sie dann STRG+C.

  4. 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-Port 514 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 4mit dem Schweregrad Warning an Port 514 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"
      
  5. 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