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. Zie Syslog via AMA en Common Event Format (CEF) via AMA-connectors voor Microsoft Sentinel voor meer informatie over deze gegevensconnectors.

Vereisten

Voordat u begint, moet u beschikken over de resources die zijn geconfigureerd en de juiste machtigingen die in deze sectie worden beschreven.

Vereisten voor Microsoft Sentinel

  • U moet de juiste Microsoft Sentinel-oplossing hebben ingeschakeld: Syslog en/of Common Event Format. Zie Microsoft Sentinel out-of-the-box-inhoud ontdekken en beheren voor meer informatie.

  • Uw Azure-account moet de volgende rollen voor op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) 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"
    

Machinebeveiliging configureren

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 gegevensconnectors instellen

Selecteer het juiste tabblad om de instructies voor syslog of CEF weer te geven.

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.

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

U kunt deze stap op twee manieren uitvoeren:

  • Implementeer en configureer syslog via AMA of Common Event Format (CEF) 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.

    Schermopname van de pagina CEF via AMA-connector.

  6. Op het tabblad Basis :

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

    Schermopname van de DCR-details op het tabblad Basis.

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

    Schermopname die laat zien hoe u resources selecteert bij het instellen van de 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.

    Schermopname die laat zien hoe u logboekniveaus selecteert bij het instellen van de DCR.

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

  3. Selecteer Maken op het tabblad Controleren en maken.

    Schermopname die laat zien hoe u de configuratie van de DCR controleert en maakt.

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

    Schermopname van de opdrachtregel op de connectorpagina.

    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