macOS-Systemprotokolle erfassen

Parserversion: 2.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie macOS-Systemprotokolle mit Bindplane in Google Security Operations aufnehmen. macOS verwendet das Apple Unified Logging-System, um Ereignisse auf Systemebene zu erfassen, einschließlich Authentifizierung, Prozessausführung, Kernel-Aktivität und Anwendungsverhalten. Diese Logs können über Syslog an einen Remote-Collector weitergeleitet werden, um zentrales Sicherheitsmonitoring und ‑analysen zu ermöglichen.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz.
  • Ein Windows 2016- oder höherer oder Linux-Host mit systemd.
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Administratorzugriff auf die macOS-Endpunkte, die Logs weiterleiten.
  • macOS 10.12 (Sierra) oder höher mit Unterstützung für Unified Logging.

Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen

Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agent bei Google SecOps zu authentifizieren:

  • Neue Bereitstellungen: Verwenden Sie die Chronicle API (Option 1).
  • Alte Bereitstellungen: Verwenden Sie die Datei für die Authentifizierung bei der Aufnahme (Option 2) weiterhin, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
  1. Melden Sie sich in der Google Cloud -Konsole an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
  2. Rufen Sie IAM & Verwaltung > Dienstkonten auf.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B. bindplane-ingest.
    • Dienstkontobeschreibung: Geben Sie eine Beschreibung ein, z. B. Bindplane agent log ingestion.
  5. Klicken Sie auf Erstellen und fortfahren.
  6. Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle-Bearbeiter aus.
  7. Klicken Sie auf Weiter und dann auf Fertig.
  8. Klicken Sie auf das von Ihnen erstellte Dienstkonto und rufen Sie den Tab Schlüssel auf.
  9. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  10. Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
  11. Speichern Sie die Schlüsseldatei als ingestion-auth.json im Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.json unter Linux oder C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json unter Windows) oder aktualisieren Sie creds_file_path in config.yaml, sodass der Pfad mit dem Pfad übereinstimmt, unter dem Sie die Datei speichern.
  12. Rufen Sie IAM & Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Konfiguration des Exporters.

Option 2: Authentifizierungsdatei für die Datenaufnahme herunterladen (Legacy)

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

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profile auf.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.

Windows-Installation

  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
    

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Zusätzliche Installationsressourcen

Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.

Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden

  1. Konfigurationsdatei aufrufen:

    • Suchen Sie die Datei config.yaml. Normalerweise befindet sie sich unter Linux im Verzeichnis /observiq-otel-collector/ oder unter Windows im Installationsverzeichnis.
    • Öffnen Sie die Datei mit einem Texteditor (z. B. nano, vi oder Notepad).
  2. Bearbeiten Sie die Datei config.yamlso:

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: chronicle.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'MACOS'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
  • Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
  • Ersetzen Sie <LOCATION> durch die Region Ihrer Google SecOps-Instanz (z. B. us, europe oder asia-southeast1). Der Exporter stellt diesem Wert chronicle.googleapis.com voran.
  • Ersetzen Sie <PROJECT_NUMBER> durch die Projektnummer aus IAM und Verwaltung > Einstellungen.
  • Ersetzen Sie <PLACEHOLDER_CUSTOMER_ID> durch die tatsächliche Kundennummer.
  • Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Dateipfad, unter dem die Schlüsseldatei des Dienstkontos (Option 1) im Abschnitt Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen gespeichert wurde.

Legacy-Ingestion-API-Exporter

  • Wenn Sie die Datei zur Authentifizierung bei der Aufnahme aus Option 2 verwenden, ersetzen Sie den Block exporters durch Folgendes. Legen Sie creds_file_path auf den Pfad zur Datei für die Authentifizierung bei der Aufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Sie malachiteingestion-pa.googleapis.com durch Ihren regionalen Endpunkt (z. B. europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'MACOS'
        raw_log_field: body
        ingestion_labels:
    

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

So starten Sie den Bindplane-Agenten unter Linux neu:

  1. Führen Sie dazu diesen Befehl aus:

    sudo systemctl restart observiq-otel-collector
    
  2. Prüfen Sie, ob der Dienst ausgeführt wird:

    sudo systemctl status observiq-otel-collector
    
  3. Prüfen Sie die Logs auf Fehler:

    sudo journalctl -u observiq-otel-collector -f
    

So starten Sie den Bindplane-Agent unter Windows neu:

  1. Wählen Sie eine der folgenden Optionen aus:

    • Eingabeaufforderung oder PowerShell als Administrator:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Services Console:
      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Rechtsklicken Sie und wählen Sie Neu starten aus.
  2. Prüfen Sie, ob der Dienst ausgeführt wird:

    sc query observiq-otel-collector
    
  3. Prüfen Sie die Logs auf Fehler:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

macOS-Syslog-Weiterleitung konfigurieren

macOS verwendet das Unified Logging-System. Wenn Sie Logs über syslog an den Bindplane-Agent weiterleiten möchten, konfigurieren Sie den integrierten syslogd-Dienst auf jedem macOS-Endpunkt.

Option 1: Syslog-Weiterleitung mit syslog.conf konfigurieren

  1. Öffnen Sie das Terminal auf dem macOS-Endpunkt.
  2. Bearbeiten Sie die Syslog-Konfigurationsdatei:

    sudo nano /etc/syslog.conf
    
  3. Fügen Sie am Ende der Datei die folgende Zeile hinzu, um alle Logs über UDP an den Bindplane-Agent weiterzuleiten:

    *.*     @<BINDPLANE_IP_ADDRESS>:514
    
    • Ersetzen Sie <BINDPLANE_IP_ADDRESS> durch die IP-Adresse des BindPlane-Agent-Hosts (z. B. 192.168.1.100).
  4. Speichern Sie die Datei und schließen Sie sie.

  5. Starten Sie den Syslog-Daemon neu:

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
    

Option 2: Syslog-Weiterleitung mit asl.conf konfigurieren

  1. Öffnen Sie Terminal auf dem macOS-Endpunkt.
  2. Bearbeiten Sie die ASL-Konfigurationsdatei:

    sudo nano /etc/asl.conf
    
  3. Fügen Sie die folgende Zeile hinzu, um Protokolle an den Remote-Syslog-Server weiterzuleiten:

    ? [= Sender kernel] forward <BINDPLANE_IP_ADDRESS>:514
    ? [<= Level notice] forward <BINDPLANE_IP_ADDRESS>:514
    
    • Ersetzen Sie <BINDPLANE_IP_ADDRESS> durch die IP-Adresse des Bindplane-Agent-Hosts.
  4. Speichern Sie die Datei und schließen Sie sie.

  5. Starten Sie den Syslog-Daemon neu:

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
    

Logweiterleitung überprüfen

  1. Generieren Sie auf dem macOS-Endpunkt einen Test-Logeintrag:

    logger -p user.notice "Test syslog message for Bindplane"
    
  2. Prüfen Sie auf dem Bindplane-Agent-Host die Agent-Logs auf eingehende Nachrichten:

    sudo journalctl -u observiq-otel-collector -f
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
activityIdentifier_label additional.fields Zusammengeführt
backtrace_label additional.fields Zusammengeführt
bootUUID_label additional.fields Zusammengeführt
category_label additional.fields Zusammengeführt
chronicle_log_type_label additional.fields Zusammengeführt
formatString_label additional.fields Zusammengeführt
log_type_label additional.fields Zusammengeführt
machTimestamp_label additional.fields Zusammengeführt
messageType_label additional.fields Zusammengeführt
parentActivityIdentifier_label additional.fields Zusammengeführt
processImageUUID_label additional.fields Zusammengeführt
senderImageUUID_label additional.fields Zusammengeführt
senderProgramCounter_label additional.fields Zusammengeführt
subprocess_label additional.fields Zusammengeführt
subsystem_label additional.fields Zusammengeführt
threadID_label additional.fields Zusammengeführt
traceID_label additional.fields Zusammengeführt
intermediary_host intermediary.hostname Direkt zugeordnet
attributes.message metadata.description Direkt zugeordnet
description metadata.description Direkt zugeordnet
eventMessage metadata.description Direkt zugeordnet
timestamp metadata.event_timestamp Als ISO8601 geparst
has_principal metadata.event_type Zugeordnet: true → STATUS_UPDATE
has_user metadata.event_type Zugeordnet: true → USER_UNCATEGORIZED
attributes.process metadata.product_event_type Direkt zugeordnet
eventType metadata.product_event_type Direkt zugeordnet
attributes.host principal.asset.hostname Direkt zugeordnet
hostname principal.asset.hostname Direkt zugeordnet
source principal.asset.hostname Direkt zugeordnet
senderImagePath principal.file.full_path Direkt zugeordnet
attributes.host principal.hostname Direkt zugeordnet
hostname principal.hostname Direkt zugeordnet
source principal.hostname Direkt zugeordnet
command_line principal.process.command_line Direkt zugeordnet
processImagePath principal.process.file.full_path Direkt zugeordnet
attributes.pid principal.process.pid Direkt zugeordnet
processID principal.process.pid Direkt zugeordnet
process_id principal.process.pid Direkt zugeordnet
userID principal.user.userid Direkt zugeordnet
– metadata.event_type Konstante: USER_UNCATEGORIZED
– metadata.product_name Konstante: MacOS
– metadata.vendor_name Konstante: Apple
– principal.platform Konstante: MAC
eventMessage event.idm.read_only_udm.metadata.description Aus Änderungsprotokoll zugeordnet
eventType event.idm.read_only_udm.metadata.product_event_type Aus Änderungsprotokoll zugeordnet
senderImagePath event.idm.read_only_udm.principal.file.full_path Aus Änderungsprotokoll zugeordnet
processImagePath event.idm.read_only_udm.principal.process.file.full_path Aus Änderungsprotokoll zugeordnet
userID event.idm.read_only_udm.principal.user.userid Aus Änderungsprotokoll zugeordnet
activityIdentifier event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
bootUUID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
category event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
formatString event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
machTimestamp event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
messageType event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
parentActivityIdentifier event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
processImageUUID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
senderImageUUID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
senderProgramCounter event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
subsystem event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
threadID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
traceID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
backtrace.frames event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
processID event.idm.read_only_udm.principal.process.pid Aus Änderungsprotokoll zugeordnet
source event.idm.read_only_udm.principal.hostname Aus Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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