Syslog-Daten von Apple macOS erheben
Dieser Parser verwendet Grok-Muster, um Felder aus Apple macOS-Syslog-Nachrichten zu extrahieren, und füllt das Unified Data Model (UDM) mit den extrahierten Werten wie Zeitstempel, Hostname, Zwischenhost, Befehlszeile, Prozess-ID und Beschreibung aus. Der Parser kategorisiert das Ereignis als STATUS_UPDATE
, wenn ein Hostname vorhanden ist. Andernfalls wird dem Ereignis die Kategorie GENERIC_EVENT
zugewiesen. Schließlich wird das UDM-Ereignis vom Parser mit Anbieter- und Produktinformationen angereichert.
Hinweis
- Sie benötigen eine Google Security Operations-Instanz.
- Sie benötigen Root-Zugriff auf den Auditd-Host.
- Prüfen Sie, ob Sie rsyslog auf dem Auditd-Host installiert haben.
- Sie benötigen Windows 2012 SP2 oder höher oder einen Linux-Host mit systemd.
- Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungs-Agent.
- Lade die Datei zur Authentifizierung der Datenaufnahme herunter.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Profile.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
- Führen Sie für die Windows-Installation das folgende Script aus:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
. - Führen Sie für die Linux-Installation das folgende Script aus:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
. - Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
BindPlane-Agent so konfigurieren, dass er Syslog-Protokolle aufnimmt und an Google SecOps sendet
- Rufen Sie den Computer auf, auf dem BindPlane installiert ist.
Bearbeiten Sie die Datei
config.yaml
so:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: auditd raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Starten Sie den BindPlane-Agent mit dem folgenden Befehl neu, um die Änderungen anzuwenden:
sudo systemctl bindplane restart
Syslog-Protokolle aus macOS exportieren
syslog-ng
mit Homebrew installieren:brew install syslog-ng
Konfigurieren Sie syslog-ng:
- Bearbeiten Sie die Datei
syslog-ng.conf
(normalerweise unter/usr/local/etc/syslog-ng/syslog-ng.conf
):
sudo vi /usr/local/etc/syslog-ng/syslog-ng.conf
- Fügen Sie den folgenden Konfigurationsblock hinzu.
- Je nach BindPlane-Konfiguration kannst du die Zustellungsmethode in
tcp
ändern oder beiudp
belassen. - Ersetzen Sie
<BindPlaneAgent_IP>
und<BindPlaneAgent_Port>
durch die tatsächliche IP-Adresse und den tatsächlichen Port Ihres BindPlane-Agents:
- Je nach BindPlane-Konfiguration kannst du die Zustellungsmethode in
source s_local { system(); internal(); }; destination d_secops { tcp("<BindPlaneAgent_IP>:<BindPlaneAgent_Port>"); }; log { source(s_local); destination(d_secops); };
- Bearbeiten Sie die Datei
Starten Sie den Dienst
syslog-ng
neu:brew services restart syslog-ng
Prüfen Sie den Status von
syslog-ng
.syslog-ng
sollte als „Gestartet“ angezeigt werden:brew services list
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
Daten | read_only_udm.metadata.description | Der Wert des Felds description wird mithilfe eines Grok-Musters aus dem Feld data im Rohprotokoll extrahiert. |
Daten | read_only_udm.principal.hostname | Der Hostname wird mithilfe eines Grok-Musters aus dem Feld data extrahiert. |
Daten | read_only_udm.intermediary.hostname | Der Zwischenhostname wird mithilfe eines Grok-Musters aus dem Feld data extrahiert. |
Daten | read_only_udm.principal.process.command_line | Die Befehlszeile für den Prozess wird mit einem Grok-Muster aus dem Feld data extrahiert. |
Daten | read_only_udm.principal.process.pid | Die Prozess-ID wird mit einem Grok-Muster aus dem Feld data extrahiert. |
Daten | read_only_udm.metadata.event_timestamp | Der Ereigniszeitstempel wird mit einem Grok-Muster aus dem Feld data extrahiert und in ein Zeitstempelobjekt umgewandelt. Im Parser auf „MacOS“ hartcodiert. Im Parser auf „Apfel“ hartcodiert. Legen Sie „STATUS_UPDATE“ fest, wenn ein Hostname aus den Protokollen extrahiert wird, andernfalls „GENERIC_EVENT“. |
log_type | read_only_udm.metadata.log_type | Direkt aus dem Feld log_type des Rohlogs zugeordnet. |
Änderungen
2022-05-04
- Neu erstellter Parser.