PTC Windchill-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie PTC Windchill-Logs mit Bindplane in Google Security Operations aufnehmen.

PTC Windchill ist eine PLM-Plattform (Product Lifecycle Management), die zum Verwalten von Produktdaten, Prozessen und zur Zusammenarbeit zwischen Entwicklungs- und Fertigungsteams verwendet wird. Die Plattform generiert Zugriffs-, Audit- und Konfigurationsänderungsprotokolle aus lokalen Serverbereitstellungen.

Hinweis

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

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder ein Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem PTC Windchill-Server
  • Wenn Sie einen Proxy verwenden, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Privilegierter Zugriff auf den PTC Windchill-Server mit Administratorberechtigungen

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die 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 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
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

Der Dienst sollte als RUNNING angezeigt werden.

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
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

Der Dienst sollte als active (running) angezeigt werden.

Weitere Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie im Installationsleitfaden für den Bindplane-Agent.

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

Konfigurationsdatei suchen

  • Linux :

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows :

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    receivers:
      tcplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/windchill:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: WINDCHILL
        raw_log_field: body
    
    service:
      pipelines:
        logs/windchill_to_chronicle:
          receivers:
            - tcplog
          exporters:
            - chronicle/windchill
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration :

    • listen_address: IP-Adresse und Port, auf die gewartet werden soll:
      • 0.0.0.0, um auf allen Schnittstellen zu warten (empfohlen)
      • Port 514 ist der Standard-Syslog-Port (erfordert Root-Berechtigungen unter Linux; verwenden Sie 1514 für Nicht-Root-Berechtigungen)
  • Exporterkonfiguration :

    • creds_file_path: Vollständiger Pfad zur Authentifizierungsdatei für die Aufnahme:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Kundennummer, die aus der Google SecOps-Konsole kopiert wurde
    • endpoint: Regionale Endpunkt-URL:
      • USA: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Vollständige Liste unter Regionale Endpunkte

Konfigurationsdatei speichern

  • Speichern Sie die Datei nach der Bearbeitung:
    • Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X.
    • Windows: Klicken Sie auf Datei > Speichern

Bindplane-Agent neu starten, damit die Änderungen übernommen werden

So starten Sie den Bindplane-Agent 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
    
    • Dienstkonsole:
      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. Klicken Sie mit der rechten Maustaste 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"
    

Syslog-Weiterleitung für PTC Windchill konfigurieren

  1. Melden Sie sich als Administrator auf dem PTC Windchill -Server an.
  2. Konfigurieren Sie rsyslog oder einen Syslog-Agent, um Windchill-Anwendungsprotokolle weiterzuleiten. Bearbeiten Sie die rsyslog-Konfiguration:

    sudo nano /etc/rsyslog.d/windchill.conf
    
  3. Fügen Sie die folgenden Zeilen hinzu, um Windchill-Logdateien an den Bindplane-Agent weiterzuleiten:

    # Forward PTC Windchill logs to Bindplane agent
    module(load="imfile")
    input(type="imfile" File="/path/to/windchill/logs/*.log" Tag="windchill" Severity="info" Facility="local0")
    if $syslogtag == 'windchill' then @@<bindplane-ip>:514
    
    • Ersetzen Sie /path/to/windchill/logs/ durch den tatsächlichen Pfad zum Windchill-Logverzeichnis.
    • Ersetzen Sie <bindplane-ip> durch die IP-Adresse des Bindplane-Agent-Hosts.
  4. Starten Sie den rsyslog-Dienst neu:

    sudo systemctl restart rsyslog
    
  5. Prüfen Sie in den Bindplane-Agent-Logs, ob Logs gesendet werden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
eventlabel metadata.description Wert direkt kopiert
eventtime metadata.event_timestamp Mit Datumsfilter mit den Formaten SYSLOGTIMESTAMP und ISO8601 konvertiert
metadata.event_type Auf „USER_LOGIN“ festgelegt, wenn has_principal == „true“ und has_principal_user == „true“ und has_target == „true“; „USER_RESOURCE_ACCESS“, wenn has_target_resource == „true“; „USER_UNCATEGORIZED“, wenn has_principal == „true“ und has_principal_user == „true“; „STATUS_UPDATE“, wenn has_principal == „true“; andernfalls „GENERIC_EVENT“
dbschema metadata.ingestion_labels Mit dem db_schema-Objekt zusammengeführt (key="DBSCHEMA", value=dbschema)
dbname metadata.product_deployment_id Wert direkt kopiert
eventlabel, description metadata.product_event_type Wert aus der Beschreibung, falls nicht leer, andernfalls aus eventlabel
context metadata.product_log_id Wert direkt kopiert
version metadata.product_version Wert direkt kopiert
ohost observer.hostname Wert direkt kopiert, wenn ohost keine IP-Adresse ist
ohost observer.ip Wert direkt kopiert, wenn ohost eine IP-Adresse ist
domainpath principal.administrative_domain Wert direkt kopiert
ipaddress principal.asset.hostname Wert direkt kopiert, wenn ipaddress keine IP-Adresse ist
ipaddress principal.asset.ip Wert direkt kopiert, wenn ipaddress eine IP-Adresse ist
ipaddress, phost principal.hostname Wert aus ipaddress, wenn keine IP-Adresse, andernfalls aus phost, wenn keine IP-Adresse
ipaddress, phost principal.ip Wert aus ipaddress, wenn IP-Adresse, andernfalls aus phost, wenn IP-Adresse
folderpath principal.process.file.full_path Wert direkt kopiert
user_product_object_id principal.user.product_object_id Wert direkt kopiert
user_display_name principal.user.user_display_name Wert direkt kopiert
username, user_userid principal.user.userid Wert aus username, falls nicht leer, andernfalls aus user_userid
domain_name target.domain.name Wert direkt kopiert
target_path target.file.full_path Wert direkt kopiert
namespace target.namespace Wert direkt kopiert
lifecyclestate, targetname, targetnumber, targettype target.resource.attribute.labels Mit lifecyclestate_label (key="lifecyclestate", value=lifecyclestate), targetname_label (key="targetname", value=targetname), targetnumber_label (key="targetnumber", value=targetnumber), targettype_label (key="targettype", value=targettype) zusammengeführt
target_number target.resource.id Wert direkt kopiert
target_name target.resource.name Wert direkt kopiert
target_identity target.resource.product_object_id Wert direkt kopiert
target_subtype target.resource.resource_subtype Wert direkt kopiert
metadata.product_name Auf „Windchill“ festgelegt
metadata.vendor_name Auf „PTC“ festgelegt

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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