Syslog- en CEF-berichten opnemen in Microsoft Sentinel met de Azure Monitor-agent

In dit artikel wordt beschreven hoe u syslog gebruikt via AMA en CEF (Common Event Format) via AMA-connectors om syslog-berichten snel te filteren en op te nemen, waaronder die in Common Event Format (CEF), van Linux-machines en van netwerk- en beveiligingsapparaten en -apparaten.

Met deze connectors wordt de Azure Monitor-agent (AMA) geïnstalleerd op een Linux-computer waarvan u Syslog- en/of CEF-berichten wilt verzamelen. Deze machine kan de oorsprong van de berichten zijn of een doorstuurserver die berichten van andere computers verzamelt, zoals netwerk- of beveiligingsapparaten en apparaten. De connector verzendt de instructies voor agents op basis van regels voor gegevensverzameling (DCR's) die u definieert. DCR's geven de systemen op die moeten worden bewaakt en de typen logboeken of berichten die moeten worden verzameld, en ze definiëren filters die moeten worden toegepast op de berichten voordat ze worden opgenomen, voor betere prestaties en efficiëntere query's en analyses.

Belangrijk

Op 28 februari 2023 hebben we wijzigingen aangebracht in het CommonSecurityLog-tabelschema. Als u deze wijzigingen volgt, moet u mogelijk aangepaste query's controleren en bijwerken. Zie de sectie Aanbevolen acties in dit blogbericht voor meer informatie. Out-of-the-box-inhoud (detecties, opsporingsquery's, werkmappen, parsers, enzovoort) is bijgewerkt door Microsoft Sentinel.

Overzicht

Syslog en CEF zijn twee algemene indelingen voor het vastleggen van gegevens van verschillende apparaten en toepassingen. Ze helpen systeembeheerders en beveiligingsanalisten om het netwerk te bewaken en op te lossen en potentiële bedreigingen of incidenten te identificeren.

Wat is Syslog?

Syslog is een standaardprotocol voor het verzenden en ontvangen van berichten tussen verschillende apparaten of toepassingen via een netwerk. Het is oorspronkelijk ontwikkeld voor Unix-systemen, maar wordt nu algemeen ondersteund door verschillende platforms en leveranciers. Syslog-berichten hebben een vooraf gedefinieerde structuur die bestaat uit een prioriteit, een tijdstempel, een hostnaam, een toepassingsnaam, een proces-id en een berichttekst. Syslog-berichten kunnen worden verzonden via UDP, TCP of TLS, afhankelijk van de configuratie en de beveiligingsvereisten.

Wat is Common Event Format (CEF)?

CEF, of Common Event Format, is een leverancierneutrale indeling voor het vastleggen van gegevens van netwerk- en beveiligingsapparaten en -apparaten, zoals firewalls, routers, detectie- en responsoplossingen en inbraakdetectiesystemen, evenals van andere soorten systemen zoals webservers. Een uitbreiding van Syslog, het is speciaal ontwikkeld voor SIEM-oplossingen (Security Information and Event Management). CEF-berichten hebben een standaardheader die informatie bevat, zoals de leverancier van het apparaat, het apparaatproduct, de apparaatversie, de gebeurtenisklasse, de ernst van de gebeurtenis en de gebeurtenis-id. CEF-berichten hebben ook een variabel aantal extensies die aanvullende informatie geven over de gebeurtenis, zoals de bron- en doel-IP-adressen, de gebruikersnaam, de bestandsnaam of de uitgevoerde actie.

Hoe Microsoft Sentinel Syslog- en CEF-berichten verzamelt met de Azure Monitor-agent

In de volgende diagrammen ziet u de architectuur van syslog en CEF-berichtenverzameling in Microsoft Sentinel, met behulp van syslog via AMA en CEF (Common Event Format) via AMA-connectors .

In dit diagram ziet u dat Syslog-berichten worden verzameld van één afzonderlijke virtuele Linux-machine waarop de Azure Monitor-agent (AMA) is geïnstalleerd.

Diagram of Syslog collection from single source.

Het gegevensopnameproces met behulp van de Azure Monitor-agent maakt gebruik van de volgende onderdelen en gegevensstromen:

  • Logboekbronnen: dit zijn uw verschillende Linux-VM's in uw omgeving die Syslog-berichten produceren. Deze berichten worden verzameld door de lokale Syslog-daemon op TCP- of UDP-poort 514 (of een andere poort volgens uw voorkeur).

  • De lokale Syslog-daemon (of syslog-ngrsyslog ) verzamelt de logboekberichten op TCP- of UDP-poort 514 (of een andere poort volgens uw voorkeur). De daemon verzendt deze logboeken vervolgens naar de Azure Monitor-agent (zie de onderstaande opmerking).

  • De Azure Monitor-agent die u installeert op elke Linux-VM waaruit u Syslog-berichten wilt verzamelen, door de gegevensconnector in te stellen volgens de onderstaande instructies. De agent parseert de logboeken en verzendt deze vervolgens naar uw Microsoft Sentinel-werkruimte (Log Analytics).

  • Uw Microsoft Sentinel-werkruimte (Log Analytics): Syslog-berichten die hier worden verzonden, komen terecht in de Syslog-tabel , waar u query's kunt uitvoeren op de logboeken en er analyses op kunt uitvoeren om beveiligingsrisico's te detecteren en erop te reageren.

Notitie

  • De Azure Monitor-agent ondersteunt Syslog RFCs 3164 en 5424.

  • Als u een andere poort dan 514 wilt gebruiken voor het ontvangen van Syslog/CEF-berichten, moet u ervoor zorgen dat de poortconfiguratie op de Syslog-daemon overeenkomt met die van de toepassing die de berichten genereert.

  • De Syslog-daemon verzendt logboeken op twee verschillende manieren naar de Azure Monitor-agent, afhankelijk van de AMA-versie:

    • AMA-versies 1.28.11 en hoger ontvangen logboeken op TCP-poort 28330.
    • Eerdere versies van AMA ontvangen logboeken via unix-domeinsocket.

De gegevensconnectors instellen

Syslog instellen via AMA-connector

Het installatieproces voor de Syslog via AMA-connector bestaat uit twee onderdelen:

  1. Installeer de Azure Monitor-agent en maak een DCR (Data Collection Rule).

  2. Als u logboeken van andere computers verzamelt met behulp van een logboek-doorstuurserver, voert u het script installatie uit op de logboekstuurserver om de Syslog-daemon te configureren om te luisteren naar berichten van andere computers en om de benodigde lokale poorten te openen.

Vereisten

  • U moet de juiste Microsoft Sentinel-oplossing hebben ingeschakeld: Syslog en/of Common Event Format.

  • Uw Azure-account moet de volgende rollen/machtigingen hebben:

    Ingebouwde rol Bereik Reden
    - Inzender voor virtuele machines
    - Azure Verbinding maken ed Machine
       Resource Beheer istrator
  • Virtuele machines
  • Virtuele-machineschaalsets
  • Servers met Azure Arc
  • De agent implementeren
    Elke rol die de actie bevat
    Microsoft.Resources/deployments/*
  • Abonnement
  • Resourcegroep
  • Bestaande regel voor gegevensverzameling
  • Azure Resource Manager-sjablonen implementeren
    Bijdrager voor bewaking
  • Abonnement
  • Resourcegroep
  • Bestaande regel voor gegevensverzameling
  • Regels voor gegevensverzameling maken of bewerken

Vereisten voor doorstuurserver voor logboeken

Als u berichten van een doorstuurserver verzamelt, zijn de volgende aanvullende vereisten van toepassing:

  • U moet een aangewezen Linux-VM (uw logboek-doorstuurserver) hebben om logboeken te verzamelen.

  • Als uw logboek-doorstuurserver geen virtuele Azure-machine is, moet de Azure Arc Verbinding maken ed Machine-agent erop zijn geïnstalleerd.

  • Op de VM voor Linux-logboeken moet Python 2.7 of 3 zijn geïnstalleerd. Gebruik de python --version of python3 --version opdracht om te controleren. Als u Python 3 gebruikt, controleert u of deze is ingesteld als de standaardopdracht op de computer of voert u de onderstaande scripts uit met de opdracht 'python3' in plaats van 'python'.

  • De doorstuurserver voor logboeken moet de syslog-ng daemon of rsyslog daemon hebben ingeschakeld.

  • Raadpleeg de Azure Monitor Agent Performance Benchmark voor ruimtevereisten voor de doorstuurserver. U kunt dit blogbericht ook bekijken, inclusief ontwerpen voor schaalbare opname.

  • Uw logboekbronnen (uw beveiligingsapparaten en -apparaten) moeten zijn geconfigureerd om hun logboekberichten te verzenden naar de Syslog-daemon van de logboek doorstuurserver in plaats van naar hun lokale Syslog-daemon.

Duplicatie van gegevensopname voorkomen

Als u dezelfde faciliteit gebruikt voor zowel Syslog- als CEF-berichten, kan dit leiden tot duplicatie van gegevensopname tussen de tabellen CommonSecurityLog en Syslog.

Gebruik een van de volgende methoden om dit scenario te voorkomen:

  • Als het bronapparaat de configuratie van de doelfaciliteit inschakelt: bewerk het Syslog-configuratiebestand op elke broncomputer die logboeken naar de logboekstuurserver verzendt in CEF-indeling om de faciliteiten te verwijderen die worden gebruikt voor het verzenden van CEF-berichten. Op deze manier worden de faciliteiten die in CEF worden verzonden, niet ook verzonden in Syslog. Zorg ervoor dat elke DCR die u in de volgende stappen configureert, de relevante faciliteit voor CEF of Syslog gebruikt.

    Als u een voorbeeld wilt zien van het rangschikken van een DCR om zowel Syslog- als CEF-berichten van dezelfde agent op te nemen, gaat u verderop in dit artikel naar Syslog- en CEF-streams in dezelfde DCR .

  • Als het wijzigen van de faciliteit voor het bronapparaat niet van toepassing is: Gebruik een opnametijdtransformatie om CEF-berichten uit de Syslog-stroom te filteren om duplicatie te voorkomen, zoals wordt weergegeven in het onderstaande queryvoorbeeld. De gegevens worden twee keer van de collectorcomputer naar de werkruimte verzonden.

    source |
    where ProcessName !contains "CEF"
    

Beveiligingsoverwegingen voor doorstuurserver voor logboeken

Zorg ervoor dat u de beveiliging van de machine configureert volgens het beveiligingsbeleid van uw organisatie. U kunt uw netwerk bijvoorbeeld zo configureren dat het overeenkomt met het beveiligingsbeleid voor uw bedrijfsnetwerk en de poorten en protocollen in de daemon zo wijzigen dat deze overeenkomen met uw vereisten. Als u de configuratie van uw machinebeveiliging wilt verbeteren, beveiligt u uw VIRTUELE machine in Azure of bekijkt u deze aanbevolen procedures voor netwerkbeveiliging.

Als uw apparaten Syslog- en CEF-logboeken via TLS verzenden (omdat uw logboek-doorstuurserver zich bijvoorbeeld in de cloud bevindt), moet u de Syslog-daemon (rsyslog of syslog-ng) configureren om te communiceren in TLS:

De AMA installeren en een DCR (Data Collection Rule) maken

U kunt deze stap op twee manieren uitvoeren:

  • Implementeer en configureer de Syslog via AMA-gegevensconnector in de Microsoft Sentinel-portal. Met deze installatie kunt u DCR's per werkruimte maken, beheren en verwijderen. De AMA wordt automatisch geïnstalleerd op de VM's die u selecteert in de connectorconfiguratie.
    —OF—
  • HTTP-aanvragen verzenden naar de LOGBOEKopname-API. Met deze installatie kunt u DCR's maken, beheren en verwijderen. Deze optie is flexibeler dan de portal. Met de API kunt u bijvoorbeeld filteren op specifieke logboekniveaus, waarbij u met de gebruikersinterface alleen een minimumlogboekniveau kunt selecteren. Het nadeel is dat u de Azure Monitor-agent handmatig moet installeren in de logboekstuurserver voordat u een DCR maakt.

Selecteer het juiste tabblad hieronder om de instructies voor elke manier weer te geven.

Open de connectorpagina en start de DCR-wizard

  1. Open Azure Portal en navigeer naar de Microsoft Sentinel-service .

  2. Gegevensconnectors selecteren in het navigatiemenu

  3. Typ Syslog in het zoekvak . Selecteer in de resultaten de Syslog via AMA-connector .

  4. Selecteer De connectorpagina openen in het detailvenster.

  5. Selecteer in het gebied Configuratie de optie +Regel voor gegevensverzameling maken.

    Screenshot showing the CEF via AMA connector page.

  6. Op het tabblad Basis :

    • Typ een DCR-naam.
    • Selecteer uw abonnement.
    • Selecteer de resourcegroep waar u de DCR wilt zoeken.

    Screenshot showing the DCR details in the Basic tab.

  7. Selecteer Volgende: Resources >.

Resources definiëren (VM's)

Selecteer op het tabblad Resources de machines waarop u de AMA wilt installeren, in dit geval uw machine voor het doorsturen van logboeken. (Als de doorstuurserver voor logboeken niet wordt weergegeven in de lijst, is de Azure Verbinding maken ed Machine-agent mogelijk niet geïnstalleerd.)

  1. Gebruik de beschikbare filters of het zoekvak om uw VM voor logboek doorstuurserver te vinden. U kunt een abonnement in de lijst uitvouwen om de resourcegroepen en een resourcegroep weer te geven om de VM's te bekijken.

  2. Selecteer de VM van de logboek-doorstuurserver waarop u de AMA wilt installeren. (Het selectievakje wordt weergegeven naast de naam van de virtuele machine wanneer u de muisaanwijzer erboven houdt.)

    Screenshot showing how to select resources when setting up the DCR.

  3. Controleer uw wijzigingen en selecteer Volgende: Verzamelen >.

Faciliteiten en ernst selecteren en de DCR maken

Notitie

Het gebruik van dezelfde faciliteit voor syslog- en CEF-berichten kan leiden tot duplicatie van gegevensopname. Meer informatie over het voorkomen van duplicatie van gegevensopname.

  1. Selecteer op het tabblad Verzamelen het minimale logboekniveau voor elke faciliteit. Wanneer u een logboekniveau selecteert, verzamelt Microsoft Sentinel logboeken voor het geselecteerde niveau en andere niveaus met een hogere ernst. Als u bijvoorbeeld LOG_ERR selecteert, verzamelt Microsoft Sentinel logboeken voor de niveaus LOG_ERR, LOG_CRIT, LOG_ALERT en LOG_EMERG.

    Screenshot showing how to select log levels when setting up the DCR.

  2. Controleer uw selecties en selecteer Volgende: Beoordelen en maken.

  3. Selecteer Maken op het tabblad Controleren en maken.

    Screenshot showing how to review the configuration of the DCR and create it.

  • De connector installeert de Azure Monitor-agent op de machines die u hebt geselecteerd bij het maken van uw DCR.

  • U ziet meldingen van Azure Portal wanneer de DCR wordt gemaakt en de agent is geïnstalleerd.

  • Selecteer Vernieuwen op de connectorpagina om de DCR weer te geven die in de lijst wordt weergegeven.

Voorbeelden van secties over faciliteiten en logboekniveaus

Bekijk deze voorbeelden van de instellingen voor faciliteiten en logboekniveaus. Het name veld bevat de filternaam.

Voor CEF-berichtopname moet "Microsoft-CommonSecurityLog" de waarde in "streams" plaats van "Microsoft-Syslog".

In dit voorbeeld worden gebeurtenissen verzameld van de , , en uucplocal3local0faciliteiten, met de Warningniveaus , ErrorCritical, en EmergencyAlertlogboeken: daemoncron

    "dataSources": {
      "syslog": [
        {
        "name": "SyslogStream0",
        "streams": [
          "Microsoft-Syslog"
        ],
        "facilityNames": [ 
          "cron",
          "daemon",
          "local0",
          "local3", 
          "uucp"
        ],
        "logLevels": [ 
          "Warning", 
          "Error", 
          "Critical", 
          "Alert", 
          "Emergency"
        ]
      }
    ]
  }
Syslog- en CEF-stromen in dezelfde DCR

In dit voorbeeld ziet u hoe u Syslog- en CEF-berichten in dezelfde DCR kunt verzamelen.

Zie Duplicatie van gegevensopname voorkomen eerder in dit artikel voor meer informatie over de stappen die moeten worden uitgevoerd bij het opnemen van Syslog- en CEF-berichten met één agent en DCR.

De DCR verzamelt CEF-gebeurtenisberichten voor:

  • De authpriv en mark faciliteiten met de Infoniveaus , , Notice, WarningError, Critical, , en AlertEmergency logboeken
  • De daemon faciliteit met de Warningniveaus , Error, Criticalen AlertEmergency logboeken

Hiermee worden Syslog-gebeurtenisberichten verzameld voor:

  • De kern, local0, , local5en news faciliteiten met de Critical, Alerten Emergency logboekniveaus
  • De mail en uucp faciliteiten met het Emergency logboekniveau
    "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"
          ]
        }
      ]
    }

Voer het script 'installation' uit

Het script 'installatie' installeert niets, maar configureert de Syslog-daemon op de juiste manier voor het verzamelen van de logboeken.

  1. Kopieer op de connectorpagina de opdrachtregel die wordt weergegeven onder Voer de volgende opdracht uit om de CEF-collector te installeren en toe te passen: door het kopieerpictogram ernaast te selecteren.

    Screenshot of command line on connector page.

    U kunt deze hier ook kopiëren:

    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. Meld u aan bij de machine voor het doorsturen van logboeken waar u de AMA zojuist hebt geïnstalleerd.

  3. Plak de opdracht die u in de laatste stap hebt gekopieerd om het installatiescript te starten.
    Het script configureert de rsyslog of syslog-ng daemon om het vereiste protocol te gebruiken en start de daemon opnieuw op. Het script opent poort 514 om te luisteren naar binnenkomende berichten in zowel UDP- als TCP-protocollen. Als u deze instelling wilt wijzigen, raadpleegt u het configuratiebestand syslog-daemon op basis van het daemon-type dat op de computer wordt uitgevoerd:

    • Rsyslog: /etc/rsyslog.conf
    • Syslog-ng: /etc/syslog-ng/syslog-ng.conf

    Notitie

    Om scenario's met volledige schijven te voorkomen waarbij de agent niet kan functioneren, raden we u aan om de syslog-ng of rsyslog configuratie niet in te stellen om overbodige logboeken op te slaan. Een scenario met volledige schijf verstoort de functie van de geïnstalleerde AMA. Lees meer over RSyslog of Syslog-ng.

De connector testen

  1. Voer deze opdracht uit om te controleren of de syslog-daemon wordt uitgevoerd op de UDP-poort en of de AMA luistert:

    netstat -lnptv
    

    U ziet de rsyslog of syslog-ng daemon die luistert op poort 514.

  2. Als u berichten wilt vastleggen die zijn verzonden vanaf een logger of een verbonden apparaat, voert u deze opdracht op de achtergrond uit:

    tcpdump -i any port 514 -A -vv &
    
  3. Nadat u de validatie hebt voltooid, wordt u aangeraden het tcpdumpvolgende te stoppen: Type fg en vervolgens Ctrl+C te selecteren.

  4. Ga op een van de volgende manieren te werk om demoberichten te verzenden:

    • Gebruik het netcat-hulpprogramma. In dit voorbeeld leest het hulpprogramma gegevens die via de echo opdracht zijn gepost met de schakeloptie newline uitgeschakeld. Het hulpprogramma schrijft vervolgens de gegevens naar de UDP-poort 514 op de localhost zonder time-out. Als u het netcat-hulpprogramma wilt uitvoeren, moet u mogelijk een extra pakket installeren.

      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
      
    • Gebruik de logger. In dit voorbeeld wordt het bericht naar de local 4 faciliteit geschreven, op ernstniveau Warning, naar poort 514, op de lokale host, in de CEF RFC-indeling. De -t en --rfc3164 vlaggen worden gebruikt om te voldoen aan de verwachte RFC-indeling.

      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. Als u wilt controleren of de connector correct is geïnstalleerd, voert u het script voor probleemoplossing uit met een van deze opdrachten:

    • Voer voor CEF-logboeken het volgende uit:

       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
      
    • Voer voor ASA-logboeken (Adaptive Security Appliance) van Cisco:

      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
      
    • Voer voor FTD-logboeken (Cisco Firepower Threat Defense) de volgende opdracht uit:

      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