Microsoft IIS-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Microsoft IIS-Logs (Internet Information Services) mit Bindplane in Google Security Operations erfassen. Der Parser versucht zuerst, die Eingabedaten zu bereinigen und zu normalisieren, indem er unnötige Zeichen entfernt und Feldnamen standardisiert. Anschließend werden mit einer Reihe von grok-Mustern relevante Felder aus verschiedenen Microsoft IIS-Logformaten extrahiert und dem einheitlichen Datenmodell (Unified Data Model, UDM) zugeordnet.

Hinweise

  • Prüfen Sie, ob Sie eine Google SecOps-Instanz haben.
  • Achten Sie darauf, dass Sie Windows 2016 oder höher verwenden.
  • Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

Bindplane-Agent unter Windows installieren

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Zusätzliche Installationsressourcen

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

  1. Bevor Sie die YAML-Datei konfigurieren, beenden Sie den observIQ Distro for Open Telemetry Collector-Dienst im Bereich „Dienste“.
  2. Greifen Sie auf die Konfigurationsdatei zu:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Öffnen Sie die Datei mit einem Texteditor (z. B. nano, vi oder Notepad).
  3. Bearbeiten Sie die Datei config.yamlso:

    receivers:
      iis:
        collection_interval: 60s
    
    processors:
      # Resourcedetection is used to add a unique (host.name) to the metric resource(s), allowing users to filter between multiple agent systems.
      resourcedetection:
        detectors: ["system"]
        system:
          hostname_sources: ["os"]
    
      normalizesums:
    
      batch:
    
    exporters:
      chronicle/powershell:
        endpoint: malachiteingestion-pa.googleapis.com
        # Adjust the path to the credentials file you downloaded in Step 1
        creds: '/path/to/ingestion-authentication-file.json'
        log_type: 'IIS'
        override_log_type: false
        raw_log_field: body
        customer_id: '<customer_id>'
    
    service:
      pipelines:
        logs/winpowershell:
          receivers:
            - iis
          processors:
            - resourcedetection
            - normalizesums
            - batch
          exporters: [chronicle/iis]
    
  4. Ersetzen Sie <customer_id> durch die tatsächliche Kunden-ID.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.

  6. Nachdem Sie die Datei config.yaml gespeichert haben, starten Sie den observIQ Distro for Open Telemetry Collector-Dienst.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

  • Wenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
@timestamp metadata.event_timestamp Der Zeitstempel des Ereignisses, wie im Rohlog aufgezeichnet.
@version metadata.product_version Die Version des IIS-Servers.
AgentDevice additional.fields.AgentDevice.value.string_value Das Gerät, das das Log generiert hat.
AgentLogFile additional.fields.AgentLogFile.value.string_value Der Name der Logdatei.
ASP.NET_SessionId network.session_id Die Sitzungs-ID des Nutzers.
c-ip principal.ip Die IP-Adresse des Clients.
Version security_result.about.resource.attribute.labels.Channel.value Der Kanal, in dem das Ereignis protokolliert wurde.
ChannelID security_result.about.resource.attribute.labels.ChannelID.value Die ID des Kanals, in dem das Ereignis protokolliert wurde.
Computer target.hostname Der Hostname des Zielcomputers.
cs-bytes network.received_bytes Die Anzahl der vom Client empfangenen Bytes.
cs-host hauptkonto.hostname, hauptkonto.asset.hostname Der Hostname des Clients.
cs-method network.http.method Die vom Client verwendete HTTP-Methode.
cs-uri-query target.url Der Abfragestring der vom Client angeforderten URL.
cs-uri-stem target.url Der Pfad der vom Client angeforderten URL.
cs-username principal.user.user_display_name Der Nutzername des Clients.
cs-version network.tls.version_protocol Die vom Client verwendete HTTP-Version.
cs(Cookie) Wird verwendet, um Cookie-Informationen zu extrahieren.
cs(Referer) network.http.referral_url Die URL, über die der Client auf die aktuelle Seite verwiesen wurde.
cs(User-Agent) network.http.user_agent Der User-Agent des Clients.
csbyte network.received_bytes Die Anzahl der vom Client empfangenen Bytes.
cshost hauptkonto.hostname, hauptkonto.asset.hostname Der Hostname des Clients.
csip principal.ip, principal.asset.ip Die IP-Adresse des Clients.
csmethod network.http.method Die vom Client verwendete HTTP-Methode.
csreferer network.http.referral_url Die URL, über die der Client auf die aktuelle Seite verwiesen wurde.
csuseragent network.http.user_agent Der User-Agent des Clients.
csusername principal.user.user_display_name Der Nutzername des Clients.
csversion network.tls.version_protocol Die vom Client verwendete HTTP-Version.
Datum Wird verwendet, um den Ereigniszeitstempel zu erstellen, wenn der Zeitstempel des Rohlogs ungültig ist.
description security_result.description Eine Beschreibung des Ereignisses.
devicename target.hostname Der Hostname des Zielcomputers.
dst_ip target.ip, target.asset.ip Die IP-Adresse des Zielcomputers.
dst_port target.port Die Portnummer des Zielcomputers.
Dauer Die Dauer der Anfrage in Millisekunden.
EventEnqueuedUtcTime additional.fields.EventEnqueuedUtcTime.value.string_value Zeitpunkt, zu dem das Ereignis in UTC in die Warteschlange gestellt wurde.
EventID metadata.product_log_id Die ID des Ereignisses.
EventProcessedUtcTime additional.fields.EventProcessedUtcTime.value.string_value Die Zeit, zu der das Ereignis in UTC verarbeitet wurde.
EventTime metadata.event_timestamp Der Zeitstempel des Ereignisses.
EventType metadata.product_event_type Der Typ des Ereignisses.
file_path target.file.full_path Der vollständige Pfad der Datei, die an dem Ereignis beteiligt ist.
FilterId security_result.about.resource.attribute.labels.FilterId.value Die ID des Filters.
FilterKey security_result.about.resource.attribute.labels.FilterKey.value Der Schlüssel des Filters.
FilterName security_result.about.resource.attribute.labels.FilterName.value Der Name des Filters.
FilterType security_result.about.resource.attribute.labels.FilterType.value Der Typ des Filters.
Host target.hostname Der Hostname des Zielcomputers.
host.architecture principal.asset.hardware.cpu_platform Die Architektur des Hostcomputers.
host.geo.name additional.fields.geo_name.value.string_value Der geografische Standort des Hostcomputers.
host.hostname target.hostname, target.asset.hostname Der Hostname des Hostcomputers.
host.id observer.asset_id Die ID des Hostcomputers.
host.ip principal.ip, principal.asset.ip Die IP-Adresse des Hostcomputers.
host.mac principal.mac Die MAC-Adresse des Hostcomputers.
host.os.build additional.fields.os_build.value.string_value Die Build-Nummer des Betriebssystems auf dem Hostcomputer.
host.os.kernel principal.platform_patch_level Die Kernel-Version des Betriebssystems auf dem Hostcomputer.
host.os.name additional.fields.os_name.value.string_value Der Name des Betriebssystems auf dem Hostcomputer.
host.os.platform principal.platform Die Plattform des Betriebssystems auf dem Hostcomputer.
host.os.version principal.platform_version Die Version des Betriebssystems auf dem Hostcomputer.
http_method network.http.method Die vom Client verwendete HTTP-Methode.
http_response network.http.response_code Der HTTP-Antwortcode.
http_status_code network.http.response_code Der HTTP-Statuscode der Antwort.
http_substatus additional.fields.sc_substatus.value.string_value Der HTTP-Unterstatuscode der Antwort.
Instanz additional.fields.instance.value.string_value Die Instanz-ID der Aufgabe.
intermediary_devicename intermediary.hostname, intermediary.asset.hostname Der Hostname des Vermittlungsgeräts.
json_message Die Roh-Log-Nachricht im JSON-Format.
kv_fields Wird verwendet, um Schlüssel/Wert-Paare aus der Rohlog-Nachricht zu extrahieren.
LayerKey security_result.about.resource.attribute.labels.LayerKey.value Der Schlüssel der Ebene.
LayerName security_result.about.resource.attribute.labels.LayerName.value Der Name des Layers.
LayerId security_result.about.resource.attribute.labels.LayerId.value Die ID des Layers.
log.file.path target.file.full_path Der vollständige Pfad der Logdatei.
log.offset metadata.product_log_id Der Offset des Ereignisses in der Protokolldatei.
logstash.collect.host observer.hostname Der Hostname des Computers, auf dem das Log erfasst wurde.
logstash.process.host intermediary.hostname Der Hostname des Computers, auf dem das Log verarbeitet wurde.
logstash_json_message Die Roh-Log-Nachricht im JSON-Format.
Nachricht security_result.description Die Roh-Lognachricht.
Ministerium additional.fields.ministry.value.string_value Das mit dem Ereignis verknüpfte Ministerium.
Name Der Name der Entität.
NewValue additional.fields.NewValue.value.string_value Der neue Wert der Konfigurationseinstellung.
OldValue additional.fields.OldValue.value.string_value Der alte Wert der Konfigurationseinstellung.
Port principal.port Die Portnummer des Clients.
priority_code Der Prioritätscode der Syslog-Meldung.
ProcessID principal.process.pid Die Prozess-ID des Prozesses, der das Ereignis generiert hat.
ProviderGuid security_result.about.resource.attribute.labels.ProviderGuid.value Die GUID des Anbieters.
ProviderKey security_result.about.resource.attribute.labels.ProviderKey.value Der Schlüssel des Anbieters.
ProviderName security_result.about.resource.attribute.labels.ProviderName.value Der Name des Anbieters.
referrer_url network.http.referral_url Die URL, über die der Client auf die aktuelle Seite verwiesen wurde.
request_url target.url Die vom Client angeforderte URL.
s-computername target.hostname Der Hostname des Zielcomputers.
s-ip target.ip, target.asset.ip Die IP-Adresse des Zielcomputers.
s-port target.port Die Portnummer des Zielcomputers.
s-sitename additional.fields.sitename.value.string_value Der Name der Website.
sc-bytes network.sent_bytes Die Anzahl der an den Client gesendeten Byte.
sc-status network.http.response_code Der HTTP-Statuscode der Antwort.
sc-substatus additional.fields.sc_substatus.value.string_value Der HTTP-Unterstatuscode der Antwort.
sc-win32-status Der Windows-Statuscode der Antwort.
scbyte network.sent_bytes Die Anzahl der an den Client gesendeten Byte.
scstatus network.http.response_code Der HTTP-Statuscode der Antwort.
die Ausprägung security_result.severity Der Schweregrad des Ereignisses.
service.type additional.fields.service_type.value.string_value Der Typ des Dienstes.
sIP principal.ip, principal.asset.ip Die IP-Adresse des Clients.
sPort principal.port Die Portnummer des Clients.
sSiteName additional.fields.sitename.value.string_value Der Name der Website.
src_ip principal.ip, principal.asset.ip, observer.ip Die IP-Adresse des Clients.
src_port principal.port Die Portnummer des Clients.
sysdate Datum und Uhrzeit der Syslog-Meldung.
syslog_facility security_result.severity_details Die Einrichtung der Syslog-Nachricht.
syslog_pri Die Priorität der Syslog-Meldung.
syslog_severity security_result.severity_details Der Schweregrad der Syslog-Nachricht.
syslog_severity_code Der Schweregradcode der Syslog-Nachricht.
Tags security_result.rule_name Tags, die dem Ereignis zugeordnet sind.
task additional.fields.task.value.string_value Der Name der Aufgabe.
Zeit Wird verwendet, um den Ereigniszeitstempel zu erstellen, wenn der Zeitstempel des Rohlogs ungültig ist.
time-taken Die Dauer der Anfrage in Millisekunden.
uri_query target.url Der Abfragestring der vom Client angeforderten URL.
user_agent network.http.user_agent Der User-Agent des Clients.
Nutzername target.user.userid Der Nutzername des Nutzers.
UserSid target.user.windows_sid Die Windows-SID des Nutzers.
Gewicht security_result.about.resource.attribute.labels.Weight.value Die Gewichtung des Filters.
win32_status Der Windows-Statuscode der Antwort.
xforwardedfor Der X-Forwarded-For-Header, der eine durch Kommas getrennte Liste mit IP-Adressen enthält.
metadata.log_type IIS
network.direction INBOUND
metadata.vendor_name Microsoft
metadata.product_name Internet Information Server
metadata.event_type NETWORK_HTTP, USER_UNCATEGORIZED, GENERIC_EVENT, STATUS_UPDATE, USER_LOGOUT, USER_LOGIN
extensions.auth.type MACHINE

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten