Attivo Networks BOTsink-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Attivo Networks BOTsink-Logs mithilfe von Bindplane in Google Security Operations aufnehmen. Der Parser versucht zuerst, eingehende Protokollnachrichten als JSON zu parsen. Wenn das fehlschlägt, werden Felder mithilfe einer Reihe von Grok-Mustern aus Nachrichten im Common Event Format (CEF) extrahiert. Dabei werden verschiedene Formate und potenzielle Fehler berücksichtigt. Schließlich werden die extrahierten Felder dem UDM-Schema (Unified Data Model) zugeordnet, um die Daten mit zusätzlichem Kontext anzureichern und die Ausgabe zu standardisieren.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Google SecOps-Instanz
- Windows 2016 oder höher oder ein Linux-Host mit
systemd
- Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
- Berechtigter Zugriff auf Attivo Networks
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- Lade die Datei für die Datenaufnahmeauthentifizierung herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
Bindplane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die PowerShell als Administrator.
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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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
Weitere Installationsressourcen
Weitere Installationsoptionen finden Sie im Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet
- Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Unter Linux befindet es sich normalerweise im Verzeichnis/etc/bindplane-agent/
, unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor, z. B.
nano
,vi
oder Notepad.
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: 'ATTIVO' raw_log_field: body 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
<customer_id>
durch die tatsächliche Kundennummer.Aktualisieren Sie
/path/to/ingestion-authentication-file.json
im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.
Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden
Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:
sudo systemctl restart bindplane-agent
Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:
net stop BindPlaneAgent && net start BindPlaneAgent
Syslog in Attivo Networks BOTsink konfigurieren
- Melden Sie sich in der Web-Benutzeroberfläche von Attiva Networks an.
- Klicken Sie auf Verwaltung > Verwaltung > Syslog.
- Klicken Sie auf Hinzufügen, um ein neues Syslog-Profil zu erstellen.
- Geben Sie einen aussagekräftigen Namen für das Profil ein.
- Wählen Sie unter Ereignisweiterleitung die Option Aktiviert aus.
- Geben Sie die Konfiguration für BOTsink-Standards an:
- Sehr niedrig: Wählen Sie Informationsgehalt aus.
- Niedrig: Wählen Sie Warnung aus.
- Medium: Wählen Sie Benachrichtigung aus.
- Hoch: Wählen Sie Kritisch aus.
- Sehr hoch: Wählen Sie Notfall aus.
- Wählen Sie unter Nachrichtenformat die Option CEF aus.
- Wählen Sie im Bereich „Profil“ die Option Neue Verbindung hinzufügen aus.
- Geben Sie die folgenden Konfigurationsdetails an:
- Servername: Geben Sie einen aussagekräftigen Namen ein, über den Google SecOps leicht zu identifizieren ist.
- Profilname: Wählen Sie das zuvor erstellte CEF-Syslog-Profil aus.
- IP-Adresse: Geben Sie die IP-Adresse des Bindplane-Agents ein.
- Port: Geben Sie die Portnummer des Bindplane-Agents ein. Geben Sie beispielsweise
514
für UDP ein. - Protokoll: Wählen Sie UDP aus.
- Klicken Sie auf Verbindung testen und prüfen Sie, ob Sie die Testdaten im BindPlane-Agent und in Google SecOps erhalten.
- Klicken Sie auf OK.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
alertID | read_only_udm.metadata.product_log_id | Der Wert wird aus dem Feld alertID übernommen. |
Katze | read_only_udm.security_result.action_details | Der Wert wird aus dem Feld cat übernommen. |
CEFDeviceProduct | read_only_udm.metadata.product_name | Der Wert wird aus dem Feld CEFDeviceProduct übernommen. |
CEFDeviceVendor | read_only_udm.metadata.vendor_name | Der Wert wird aus dem Feld CEFDeviceVendor übernommen. |
CEFDeviceVersion | read_only_udm.metadata.product_version | Der Wert wird aus dem Feld CEFDeviceVersion übernommen. |
CEFName | Wird verwendet, um die Felder operation , result , module und descrip zu extrahieren. |
|
CEFSeverity | read_only_udm.security_result.severity | Zuordnung aus dem Feld CEFSeverity gemäß diesen Regeln:– error oder warning : HIGH – (?i)critical : CRITICAL – (?i)notice oder (?i)MEDIUM : MEDIUM – information , info , Very-Low oder Low : LOW |
CEFSignatureID | read_only_udm.security_result.rule_id | Der Wert wird aus dem Feld CEFSignatureID übernommen. |
cef_version | read_only_udm.additional.fields.value.string_value | Der Wert wird aus dem Feld cef_version übernommen. |
read_only_udm.additional.fields.key | Statischer Wert: CEFVersion |
|
descrip | read_only_udm.metadata.description | Der Wert wird aus dem Feld descrip übernommen. |
dest_domain | read_only_udm.target.domain.name | Der Wert wird aus dem Feld dest_domain übernommen. |
dhost | read_only_udm.target.hostname | Der Wert wird aus dem Feld dhost übernommen, wenn service den Wert NETBIOS hat. |
dIPDomain | read_only_udm.target.domain.name | Wenn dest_domain leer ist, wird der Wert aus dem Feld dIPDomain übernommen. |
dst | read_only_udm.target.ip | Der Wert wird aus dem Feld dst übernommen. |
dst_os | read_only_udm.target.asset.platform_software.platform_version | Der Wert wird aus dem Feld dst_os übernommen. |
dpt | read_only_udm.target.port | Der Wert wird aus dem Feld dpt übernommen und in eine Ganzzahl konvertiert. |
dvc | read_only_udm.principal.hostname, read_only_udm.target.ip, read_only_udm.intermediary.hostname | Die Logik hängt von den Werten der Felder dvc , src und sip ab. Je nach Verfügbarkeit und Format dieser Felder kann es dem Haupthostnamen, der Ziel-IP oder dem Zwischenhostnamen zugeordnet werden. |
intf | read_only_udm.additional.fields.value.string_value | Der Wert wird aus dem Feld intf übernommen und in einen String konvertiert. |
read_only_udm.additional.fields.key | Statischer Wert: intf |
|
mitreTacticName | read_only_udm.security_result.rule_name | Der Wert wird aus dem Feld mitreTacticName übernommen. |
mitreTechniqueId | read_only_udm.security_result.detection_fields.value | Der Wert wird aus dem Feld mitreTechniqueId übernommen. |
read_only_udm.security_result.detection_fields.key | Statischer Wert: Technique name |
|
mitreTechniqueName | read_only_udm.security_result.detection_fields.value | Der Wert wird aus dem Feld mitreTechniqueName übernommen. |
read_only_udm.security_result.detection_fields.key | Statischer Wert: Technique name |
|
module | read_only_udm.additional.fields.value.string_value | Der Wert wird aus dem Feld module übernommen. |
read_only_udm.additional.fields.key | Statischer Wert: module |
|
msg | read_only_udm.metadata.description | Der Wert wird aus dem Feld msg übernommen, nachdem das Feld protocol extrahiert wurde. |
Vorgang | read_only_udm.additional.fields.value.string_value | Der Wert wird aus dem Feld operation übernommen. |
read_only_udm.additional.fields.key | Statischer Wert: operation |
|
Protokoll | read_only_udm.network.ip_protocol | Der Wert wird aus dem Feld protocol übernommen, wenn es entweder TCP oder UDP ist. |
Ergebnis | read_only_udm.security_result.action | Wird anhand der folgenden Regeln aus dem Feld result zugeordnet:– (?i)SUCCESS oder (?i)ALLOW : ALLOW – CHALLENGE : CHALLENGE – FAILURE , DENY , SKIPPED oder RATE_LIMIT : BLOCK |
rt | read_only_udm.metadata.event_timestamp | Der Wert wird aus dem Feld rt übernommen und als UNIX-Zeitstempel in Millisekunden geparst. |
shost | read_only_udm.principal.hostname | Der Wert wird aus dem Feld shost übernommen. |
sip | read_only_udm.principal.hostname, read_only_udm.principal.ip | Die Logik hängt von den Werten der Felder dvc und sip ab. Je nach Verfügbarkeit und Format dieser Felder kann es dem Haupt-Hostnamen oder der Haupt-IP-Adresse zugeordnet werden. |
smac | read_only_udm.principal.mac | Der Wert wird aus dem Feld smac übernommen. |
source | read_only_udm.principal.hostname | Der Wert wird aus dem Feld source übernommen. |
source_domain | read_only_udm.principal.domain.name | Der Wert wird aus dem Feld source_domain übernommen. |
src | read_only_udm.principal.ip | Der Wert wird aus dem Feld src übernommen. |
subscriberName | read_only_udm.additional.fields.value.string_value | Der Wert wird aus dem Feld subscriberName übernommen. |
read_only_udm.additional.fields.key | Statischer Wert: Subscriber Name |
|
Nutzer | read_only_udm.principal.user.userid, read_only_udm.principal.user.user_display_name | Der Wert wird nach dem Extrahieren des Nutzernamens aus dem Feld suser übernommen. |
threshold | read_only_udm.additional.fields.value.string_value | Der Wert wird aus dem Feld threshold übernommen. |
read_only_udm.additional.fields.key | Statischer Wert: arp-scan-threshold |
|
usrname | read_only_udm.principal.user.email_addresses | Der Wert wird aus dem Feld usrname übernommen, sofern es nicht leer ist oder den Wert N/A enthält. |
vlan | read_only_udm.principal.labels.value | Der Wert wird aus dem Feld vlan übernommen. |
read_only_udm.principal.labels.key | Statischer Wert: vlan |
|
read_only_udm.metadata.event_type | Wird anhand der Werte der Felder src , smac , shost , dst , protocol , dvc und service ermittelt. Diese kann SCAN_NETWORK , NETWORK_CONNECTION , NETWORK_UNCATEGORIZED , STATUS_UPDATE oder GENERIC_EVENT sein. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten