Symantec CloudSOC CASB-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Symantec CloudSOC-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser extrahiert Logs aus Syslog oder JSON-formatierten Nachrichten. Dabei werden mehrere wichtige Vorgänge ausgeführt: Das Feld „message“ wird geparst, die Nachricht wird bei Bedarf in JSON konvertiert, Felder werden extrahiert, sie werden dem Unified Data Model (UDM) zugeordnet und das Ereignis wird mit zusätzlichem Kontext wie Zeitstempeln und Details zu Sicherheitsergebnissen angereichert. Der Parser verarbeitet auch verschiedene Logformate und führt basierend auf dem Feld activity_type bestimmte Aktionen aus, um das Ereignis richtig zu kategorisieren.

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.
  • Privilegierter Zugriff auf Symantec CloudSOC

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 installieren

Fenstereinbau

  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 im Installationsleitfaden.

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

  1. Rufen Sie die Konfigurationsdatei auf:
    • Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ 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:
                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: 'SYMANTEC_CASB'
                    raw_log_field: body
    
        service:
            pipelines:
                logs/source0__chronicle_w_labels-0:
                    receivers:
                        - udplog
                    exporters:
                        - chronicle/chronicle_w_labels
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  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 Authentifizierungsdatei für die Google SecOps-Aufnahme abrufen gespeichert wurde.

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

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  • 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
    

Syslog in Symantec CASB konfigurieren

  1. Melden Sie sich beim Symantec CloudSOC-Host an.
  2. Führen Sie den folgenden Befehl aus, um herauszufinden, welchen Logger das System verwendet:

    ls –d /etc/*syslog*
    
  3. Rufen Sie den entsprechenden Abschnitt auf, je nach Antwort auf den vorherigen Befehl:

    • syslog.conf: Legacy-Syslog.
    • syslog-ng.conf: Syslog-ng.

Alte Syslog-Konfiguration

  1. Öffnen Sie die Datei syslogd, die sich normalerweise im Verzeichnis /etc/default befindet, mit dem Editor vi.

    vi /etc/default/syslogd
    
  2. Der SYSLOGD-Wert muss das Flag -r enthalten.

    SYSLOGD="-r"
    
  3. Speichern Sie die Datei und beenden Sie den Editor:

    • Wechseln Sie in den Befehlsmodus, indem Sie die Esc-Taste drücken.
    • Drücken Sie : (Doppelpunkt), um die Eingabeaufforderungsleiste zu öffnen.
    • Geben Sie wq nach dem Doppelpunkt ein und drücken Sie die Eingabetaste.
  4. Öffnen Sie die Datei services, die sich normalerweise im Verzeichnis /etc befindet, mit dem Editor vi.

    vi /etc/services
    
  5. Bearbeiten Sie den Portwert für den Syslog-Dienst:

    syslog 514/udp
    
  6. Speichern Sie die Datei und beenden Sie den Editor:

    • Wechseln Sie in den Befehlsmodus, indem Sie die Esc-Taste drücken.
    • Drücken Sie : (Doppelpunkt), um die Eingabeaufforderungsleiste zu öffnen.
    • Geben Sie wq nach dem Doppelpunkt ein und drücken Sie die Eingabetaste.
  7. Öffnen Sie die Datei syslog.conf, die sich normalerweise im Verzeichnis /etc befindet, mit dem Editor vi.

    vi /etc/syslog.conf
    
  8. Aktualisieren Sie die Konfiguration, um alle Logs an Google SecOps weiterzuleiten.

    *.* @bindplane_agent_host
    
  9. Speichern Sie die Datei und beenden Sie den Editor:

    • Wechseln Sie in den Befehlsmodus, indem Sie die Esc-Taste drücken.
    • Drücken Sie : (Doppelpunkt), um die Eingabeaufforderungsleiste zu öffnen.
    • Geben Sie wq nach dem Doppelpunkt ein und drücken Sie die Eingabetaste.
  10. Öffnen Sie die Datei hosts, die sich normalerweise im Verzeichnis /etc befindet, mit dem Editor vi.

    vi /etc/hosts
    
  11. Erstellen Sie einen lokalen DNS-Eintrag für bindplane_agent_host.

    0.0.0.0 bindplane_agent_host
    
  12. Speichern Sie die Datei und beenden Sie den Editor:

    • Wechseln Sie in den Befehlsmodus, indem Sie die Esc-Taste drücken.
    • Drücken Sie : (Doppelpunkt), um die Eingabeaufforderungsleiste zu öffnen.
    • Geben Sie wq nach dem Doppelpunkt ein und drücken Sie die Eingabetaste.
  13. Starten Sie den Syslog-Daemon-Dienst neu.

Syslog-ng-Konfiguration

  1. Öffnen Sie die Datei syslog-ng.conf, die sich normalerweise im Verzeichnis /etc befindet, mit dem Editor vi.

    vi /etc/syslog-ng.conf
    
  2. Fügen Sie am Ende der Datei den folgenden Code ein:

    destination d____ { udp("bindplane_agent_host" port(514));}; log {source(s_src);
    destination(d____);};
    
  3. Öffnen Sie die Datei hosts, die sich normalerweise im Verzeichnis /etc befindet, mit dem Editor vi.

    vi /etc/hosts
    
  4. Erstellen Sie einen lokalen DNS-Eintrag für bindplane_agent_host.

    0.0.0.0 bindplane_agent_host
    
  5. Speichern Sie die Datei und beenden Sie den Editor:

    • Wechseln Sie in den Befehlsmodus, indem Sie die Esc-Taste drücken.
    • Drücken Sie : (Doppelpunkt), um die Eingabeaufforderungsleiste zu öffnen.
    • Geben Sie wq nach dem Doppelpunkt ein und drücken Sie die Eingabetaste.
  6. Starten Sie den syslog-ng-Daemon-Dienst neu.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
_domain target.hostname Der Wert des Felds _domain
_domain target.asset.hostname Der Wert des Felds _domain
_id metadata.product_log_id Der Wert des Felds _id
actions_taken security_result.detection_fields[].value Der Wert des Felds actions_taken. Der Schlüssel wird dynamisch als Action_ + Index generiert.
activity_type metadata.product_event_type Der Wert des Felds activity_type, wenn product_data.activity_type leer ist, oder der Wert von product_data.activity_type, wenn es nicht leer ist.
collector_device_ip principal.ip Der Wert des Felds collector_device_ip, sofern nicht Unknown IP.
collector_device_ip principal.asset.ip Der Wert des Felds collector_device_ip, sofern nicht Unknown IP.
collector_device_name principal.hostname Der Wert des Felds collector_device_name.
collector_device_name principal.asset.hostname Der Wert des Felds collector_device_name.
content_checks.dlp.raw_response.contentdetails[].contentBlockId security_result.detection_fields[].value Der Wert von content_checks.dlp.raw_response.contentdetails[].contentBlockId. Der Schlüssel wird dynamisch als contentBlockId_ + Index generiert.
content_checks.dlp.raw_response.contentdetails[].topLevelFileType security_result.detection_fields[].value Der Wert von content_checks.dlp.raw_response.contentdetails[].topLevelFileType. Der Schlüssel wird dynamisch als topLevelFileType_ + Index generiert.
content_checks.dlp.raw_response.requestid security_result.detection_fields[].value Der Wert von content_checks.dlp.raw_response.requestid. Der Schlüssel ist Request ID.
content_checks.dlp.raw_response.responseaction security_result.detection_fields[].value Der Wert von content_checks.dlp.raw_response.responseaction. Der Schlüssel ist Response Action.
content_checks.dlp.raw_response.violation[].name security_result.detection_fields[].value Der Wert von content_checks.dlp.raw_response.violation[].name. Der Schlüssel wird dynamisch als Violation_Policy_Name_ + Index generiert.
content_checks.dlp.raw_response.violation[].policyId security_result.detection_fields[].value Der Wert von content_checks.dlp.raw_response.violation[].policyId. Der Schlüssel wird dynamisch als Violation_Policy_ID_ + Index generiert.
content_checks.dlp.updated_timestamp additional.fields[].value.string_value Der Wert von content_checks.dlp.updated_timestamp. Der Schlüssel ist Updated TimeStamp.
content_checks.filename target.file.full_path Der Wert von content_checks.filename.
content_checks.mimetype target.file.mime_type Der Wert von content_checks.mimetype.
content_checks.risktype_list[] security_result.detection_fields[].value Der Wert von content_checks.risktype_list[]. Der Schlüssel wird dynamisch als RiskType_ + Index generiert.
content_checks.vba_macros.expressions[].values[].key security_result.detection_fields[].key Der Wert von content_checks.vba_macros.expressions[].values[].key, verkettet mit Indexen.
content_checks.vba_macros.expressions[].values[].value security_result.detection_fields[].value Der Wert von content_checks.vba_macros.expressions[].values[].value.
content_checks.vk_content_iq_violations[] security_result.detection_fields[].value Der Wert von content_checks.vk_content_iq_violations[]. Der Schlüssel wird dynamisch als content_violation_ + Index generiert.
content_checks.vk_dlp_policy_violations[] security_result.detection_fields[].value Der Wert von content_checks.vk_dlp_policy_violations[]. Der Schlüssel wird dynamisch als dlp_policy_violation_ + Index generiert.
content_checks.vk_encryption security_result.detection_fields[].value Der Wert von content_checks.vk_encryption. Der Schlüssel ist vk_encryption.
content_checks.vk_glba security_result.detection_fields[].value Der Wert von content_checks.vk_glba. Der Schlüssel ist vk_glba.
content_checks.vk_hipaa security_result.detection_fields[].value Der Wert von content_checks.vk_hipaa. Der Schlüssel ist vk_hipaa.
content_checks.vk_pci security_result.detection_fields[].value Der Wert von content_checks.vk_pci. Der Schlüssel ist vk_pci.
content_checks.vk_pii security_result.detection_fields[].value Der Wert von content_checks.vk_pii. Der Schlüssel ist vk_pii.
content_checks.vk_source_code security_result.detection_fields[].value Der Wert von content_checks.vk_source_code. Der Schlüssel ist vk_source_code.
content_checks.vk_vba_macros security_result.detection_fields[].value Der Wert von content_checks.vk_vba_macros. Der Schlüssel ist vk_vba_macros.
content_checks.vk_virus security_result.detection_fields[].value Der Wert von content_checks.vk_virus. Der Schlüssel ist vk_virus.
content_checks.violations security_result.detection_fields[].value Der Wert von content_checks.violations. Der Schlüssel ist violations.
created_timestamp additional.fields[].value.string_value Der Wert von created_timestamp. Der Schlüssel ist Created TimeStamp.
date metadata.event_timestamp.seconds Aus dem Feld date extrahierte Epochensekunden.
device_ip target.ip Der Wert des Felds device_ip, sofern nicht Unknown IP.
device_ip target.asset.ip Der Wert des Felds device_ip, sofern nicht Unknown IP.
file_size target.file.size Der Wert von file_size oder product_data.file_size, wenn file_size leer ist. In eine vorzeichenlose Ganzzahl konvertiert.
file_url target.file.full_path Der Wert von product_data.file_url.
group_name target.group.group_display_name Der Anzeigename, der aus dem Feld group_name extrahiert wurde.
hosts[] principal.ip Die durch Kommas getrennten Werte des Felds hosts.
inserted_timestamp additional.fields[].value.string_value Der Wert von inserted_timestamp. Der Schlüssel ist Inserted TimeStamp.
instance principal.hostname Der erste Wert des Felds instance, wenn es sich um ein Array handelt, oder der Wert des Felds instance, wenn es sich um einen String handelt.
instance principal.asset.hostname Der erste Wert des Felds instance, wenn es sich um ein Array handelt, oder der Wert des Felds instance, wenn es sich um einen String handelt.
ioi_code security_result.summary Der Wert des Felds ioi_code.
_latency security_result.detection_fields[].value Der Wert des Felds _latency. Der Schlüssel ist Latency.
locations security_result.detection_fields[].value Der Wert des Felds locations. Der Schlüssel ist Locations.
log_name intermediary.asset.asset_id Die aus dem Feld log_name extrahierte Log-ID mit dem Präfix logid:.
mailbox_owner target.user.userid Der Wert von product_data.mailbox owner.
metadata.log_type metadata.log_type Hartcodiert auf SYMANTEC_CASB.
metadata.product_name metadata.product_name Hartcodiert auf SYMANTEC_CASB.
metadata.vendor_name metadata.vendor_name Hartcodiert auf SYMANTEC.
msg metadata.description Der Wert des Felds msg oder des Felds message, falls msg nicht vorhanden ist.
name security_result.detection_fields[].value Der Wert des Felds name. Der Schlüssel ist Name.
object_name security_result.detection_fields[].value Der Wert des Felds object_name. Der Schlüssel ist Object Name.
object_type target.resource.name Der Wert des Felds object_type.
org_unit security_result.detection_fields[].value Der Wert des Felds org_unit. Der Schlüssel ist org_unit ID.
policy_action security_result.action_details Der Wert des Felds policy_action.
policy_type security_result.detection_fields[].value Der Wert des Felds policy_type. Der Schlüssel ist policy_type.
policy_violated security_result.detection_fields[].value Der Wert des Felds policy_violated. Der Schlüssel ist policy_violated.
product_data._domain target.hostname Der Wert von product_data._domain.
product_data._domain target.asset.hostname Der Wert von product_data._domain.
product_data.activity_type metadata.product_event_type Der Wert von product_data.activity_type.
product_data.file url target.file.full_path Der Wert von product_data.file url.
product_data.file_size target.file.size Der Wert von product_data.file_size.
product_data.group target.group.group_display_name Der Wert von product_data.group.
product_data.location principal.location.country_or_region Der Wert von product_data.location.
product_data.logon error security_result.summary Der Wert von product_data.logon error.
product_data.mailbox owner target.user.userid Der Wert von product_data.mailbox owner.
product_data.name target.file.full_path Der Wert von product_data.name.
product_data.object_name target.file.full_path Der Wert von product_data.object_name.
product_data.originatingserver product_data.service target.application Der Wert von product_data.service.
product_data.site url target.url Der Wert von product_data.site url.
product_data.target target.user.userid Der Wert von product_data.target.
product_data.useragent network.http.user_agent Der Wert von product_data.useragent.
product_name intermediary.application Der Wert des Felds product_name.
product_uid metadata.product_name Der Wert des Felds product_uid.
responsible_logs additional.fields[].value.string_value Der Wert des Felds responsible_logs. Der Schlüssel ist responsible_logs.
resource_id target.resource.product_object_id Der Wert des Felds resource_id.
risks security_result.detection_fields[].value Der Wert des Felds risks. Der Schlüssel ist Risks.
security_result.action security_result.action Abgeleitet von product_data.logon error. Wird auf BLOCK gesetzt, wenn product_data.logon error gleich BlockedByConditionalAccess ist.
security_result.severity security_result.severity Der in Großbuchstaben geschriebene Wert des Felds severity, sofern es sich um eine der unterstützten Schweregrade handelt.
security_result.severity_details security_result.severity_details Der Wert des Felds severity, wenn er nicht einer der unterstützten Schweregrade entspricht.
security_result.summary security_result.summary Der Wert des Felds ioi_code oder product_data.logon error, wenn ioi_code nicht vorhanden ist.
service target.application Der Wert des Felds service, wenn product_data.service leer ist.
site_url target.url Der Wert von product_data.site url.
source principal.resource.attribute.labels[].value Der Wert des Felds source. Der Schlüssel ist Source.
sub_feature additional.fields[].value.string_value Der Wert des Felds sub_feature. Der Schlüssel ist Sub Feature.
target.application target.application Abgeleitet basierend auf product_data.activity_type und dem Vorhandensein von Hauptkonto und Ziel.
target.resource.name target.resource.name Abgeleitet basierend auf product_data.activity_type und dem Vorhandensein von Hauptkonto und Ziel.
threat_score security_result.detection_fields[].value Der Wert des Felds threat_score. Der Schlüssel ist Threat Score.
transaction_id security_result.detection_fields[].value Der Wert des Felds transaction_id. Der Schlüssel ist Transaction ID.
updated_timestamp additional.fields[].value.string_value Der Wert von updated_timestamp oder content_checks.dlp.updated_timestamp, wenn updated_timestamp leer ist. Der Schlüssel ist Updated TimeStamp.
user principal.user.userid Der Wert des Felds user.
user_email target.user.userid Der Wert des Felds user_email.
user_mail target.user.userid Der Wert des Felds user_mail, der aus dem Feld msg extrahiert wurde.
user_name principal.user.user_display_name Der Wert des Felds user_name.
user_uid principal.user.userid oder target.user.userid Der Wert des Felds user_uid. Wird principal.user.userid zugeordnet, wenn product_data.activity_type nicht InvalidLogin oder Login ist, andernfalls target.user.userid.
uuid intermediary.asset.product_object_id Der Wert des Felds uuid.
version metadata.product_version Der Wert des Felds version.

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