Epic Systems-Logs erfassen

Parserversion:4.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Epic Systems-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.

Epic Systems ist eine EHR-Plattform (Electronic Health Record, elektronische Patientenakte), die CEF-Syslog-Nachrichten für Audit-Ereignisse, Nutzeran- und -abmeldungen, Patientenzugriff und Dateivorgänge generiert. Der Parser extrahiert Schlüssel/Wert-Paare und ordnet sie dem Unified Data Model (UDM) zu.

Hinweis

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

  • Eine Google SecOps-Instanz

  • Windows Server 2016 oder höher oder Linux-Host mit systemd

  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem Epic Systems-Server

  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.

  • Privilegierter Zugriff auf Epic-Systeme

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.
  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 Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

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

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
    
  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 (Wird ausgeführt) 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 aktiv (wird ausgeführt) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.

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

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:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/epic:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: EPIC
            raw_log_field: body
    
    service:
        pipelines:
            logs/epic_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/epic
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

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

    • creds_file_path: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Die Kundennummer, die aus der Google SecOps Console kopiert wurde
    • endpoint: Regionale Endpunkt-URL:
      • USA: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Eine vollständige Liste finden Sie 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, um die Änderungen zu übernehmen

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

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

      sudo systemctl status observiq-otel-collector
      
    2. Logs auf Fehler prüfen:

      sudo journalctl -u observiq-otel-collector -f
      
  • Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agent unter Windows neu zu starten:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Services-Konsole:

      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.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Logs auf Fehler prüfen:

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

Dienst „SendSIEMSyslogAudit“ konfigurieren

  1. Melden Sie sich in der Epic Systems-Konsole an.
  2. Gehen Sie zu Start> „Epic“> „Interconnect“> <your instance> > Konfigurationseditor.
  3. Wählen Sie das Formular Business services (Geschäftsdienste) aus.
  4. Wählen Sie auf dem Tab Service category (Dienstkategorie) die Option SendSIEMSyslogAudit aus.
  5. Klicken Sie auf Speichern.

Epic Systems für den Export von Syslog konfigurieren

  1. Rufen Sie Epic-Systemdefinitionen > Sicherheit > Audit-Optionen > SIEM-Syslog-Einstellungen auf.
  2. Geben Sie die folgenden Konfigurationsdetails an:
    • Host: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Port: Geben Sie die Portnummer des Bindplane-Agents ein.
    • SIEM-Format: Wählen Sie CEF (Common Event Format) aus.
    • Syslog-Endezeichen: Wählen Sie Neue Zeile „\n“ aus.
  3. Wählen Sie im Menü SIEM-Syslog-Einstellungen die Option SIEM-Syslog aus.
  4. Klicken Sie auf Aktiviert.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
APIID read_only_udm.additional.fields.api.value.string_value Der Wert wird aus dem Feld „APIID“ im Rohlog übernommen.
APPLICATIONID read_only_udm.additional.fields.application_id.value.string_value Der Wert wird aus dem Feld APPLICATIONID im Rohlog übernommen.
APP read_only_udm.target.application Der Wert wird aus dem Feld „APP“ im Rohlog übernommen.
AUDIT-SITZUNG read_only_udm.network.session_id Der Wert wird aus dem Feld „AUDIT SESSION“ im Rohlog übernommen.
AUTH_SOURCE Dieses Feld ist nicht dem UDM zugeordnet.
BCAPCS read_only_udm.target.application Der Wert wird aus dem BCAPCS-Feld im Rohlog übernommen.
BTGEXPLANATION read_only_udm.security_result.description Der Wert wird aus dem Feld „BTGEXPLANATION“ im Rohlog übernommen.
BTGNOACCESSREAS read_only_udm.security_result.summary Der Wert wird aus dem Feld „BTGNOACCESSREAS“ im Rohlog übernommen.
BTGREASON read_only_udm.security_result.summary Der Wert wird aus dem Feld „BTGREASON“ im Rohlog übernommen.
CLIENTNAME read_only_udm.principal.hostname Der Wert wird aus dem Feld „CLIENTNAME“ im Rohlog übernommen.
CSISESS_TOKEN read_only_udm.network.session_id Der Wert wird aus dem Feld „CSISESS_TOKEN“ im Rohlog übernommen.
CTXT read_only_udm.metadata.description Der Wert wird aus dem Feld „CTXT“ im Rohlog übernommen.
CVG read_only_udm.additional.fields.cvg.value.string_value Der Wert wird aus dem CVG-Feld im Rohlog übernommen.
DAT Dieses Feld ist nicht dem UDM zugeordnet.
DEP read_only_udm.principal.user.department Der Wert wird aus dem DEP-Feld im Rohlog übernommen. Wenn sowohl NEWDEPARTMENT als auch PREVDEPARTMENT im Rohlog vorhanden sind, ist der Wert PREVDEPARTMENT:-{PREVDEPARTMENT}, NEWDEPARTMENT:-{NEWDEPARTMENT}. Wenn nur NEWDEPARTMENT vorhanden ist, lautet der Wert PREVDEPARTMENT:-NONE, NEWDEPARTMENT:{NEWDEPARTMENT}. Wenn nur PREVDEPARTMENT vorhanden ist, lautet der Wert PREVDEPARTMENT:{PREVDEPARTMENT}, NEWDEPARTMENT:-NONE.
devTime read_only_udm.metadata.event_timestamp Der Wert wird aus dem Feld „devTime“ im Rohlog übernommen und in Sekunden seit der Epoche umgerechnet.
devTimeFormat Dieses Feld ist nicht dem UDM zugeordnet.
E3MID read_only_udm.network.session_id Der Wert wird aus dem Feld „E3MID“ im Rohlog übernommen.
VERSCHLÜSSELT read_only_udm.additional.fields.encrypt.value.string_value Der Wert wird aus dem Feld „ENCRYPTED“ im Rohlog übernommen.
ERRMSG read_only_udm.security_result.summary Der Wert wird aus dem Feld „ERRMSG“ im Rohlog übernommen.
eventCnt Dieses Feld ist nicht dem UDM zugeordnet.
FILENAME read_only_udm.target.file.full_path Der Wert wird aus dem Feld FILENAME im Rohlog übernommen und alle Vorkommen von \\\\ werden durch \ ersetzt.
Flag read_only_udm.security_result.description Der Wert wird aus dem Flag-Feld im Rohlog übernommen und alle voran- und nachgestellten - werden entfernt.
HKUAPVER read_only_udm.metadata.product_version Der Wert wird aus dem Feld „HKUAPVER“ im Rohlog übernommen.
HKUDVCID read_only_udm.principal.asset_id Der Wert wird aus dem Feld „HKUDVCID“ im Rohlog übernommen und als Device ID:{HKUDVCID} formatiert.
HKUOSNAM read_only_udm.principal.platform Der Wert wird aus dem Feld „HKUOSNAM“ im Rohlog übernommen und je nach Wert WINDOWS, MAC, LINUX oder UNKNOWN_PLATFORM zugeordnet.
HKUOSVER read_only_udm.principal.platform_version Der Wert wird aus dem Feld „HKUOSVER“ im Rohlog übernommen.
INSTANCEURN read_only_udm.intermediary.hostname Der Wert wird aus dem Feld „INSTANCEURN“ im Rohlog übernommen.
IP-Adresse read_only_udm.target.ip Der Wert wird aus dem IP-Feld im Rohlog übernommen. Wenn der Wert / enthält, wird er in zwei IP-Adressen aufgeteilt. Wenn der Wert , enthält, wird er in mehrere IP-Adressen aufgeteilt.
LOGINERROR read_only_udm.security_result.summary Der Wert wird aus dem Feld „LOGINERROR“ im Rohlog übernommen.
LOGIN_CONTEXT read_only_udm.metadata.description Der Wert wird aus dem Feld „LOGIN_CONTEXT“ im Rohlog übernommen.
LOGIN_DEVICE read_only_udm.additional.fields.login_device.value.string_value Der Wert wird aus dem Feld LOGIN_DEVICE im Rohlog übernommen.
LOGIN_LDAP_ID read_only_udm.principal.user.userid Der Wert wird aus dem Feld „LOGIN_LDAP_ID“ im Rohlog übernommen.
LOGIN_REASON read_only_udm.security_result.summary Der Wert wird aus dem Feld LOGIN_REASON im Rohlog übernommen.
LOGIN_REVAL read_only_udm.additional.fields.login_reval.value.string_value Der Wert wird aus dem Feld LOGIN_REVAL im Rohlog übernommen.
MASKMODE read_only_udm.additional.fields.masked_mode.value.string_value Der Wert wird aus dem Feld „MASKMODE“ im Rohlog übernommen.
MYCACCT read_only_udm.principal.user.userid Der Wert wird aus dem Feld „MYCACCT“ im Rohlog übernommen.
NEWDEPARTMENT read_only_udm.principal.user.department Logik für das Feld „DEP“ ansehen
NEWUSER Dieses Feld ist nicht dem UDM zugeordnet.
NSC read_only_udm.additional.fields.nsc.value.string_value Der Wert wird aus dem NSC-Feld im Rohlog übernommen.
OSUSR read_only_udm.target.user.userid Der Wert wird aus dem Feld „OSUSR“ im Rohlog übernommen.
PATIENT read_only_udm.target.user.userid Der Wert wird aus dem Feld „PATIENT“ im Rohlog übernommen.
PREVDEPARTMENT read_only_udm.principal.user.department Logik für das Feld „DEP“ ansehen
PREVPROVIDER Dieses Feld ist nicht dem UDM zugeordnet.
PREVUSER read_only_udm.principal.resource.attribute.labels.prev_user.value Der Wert wird aus dem Feld „PREVUSER“ im Rohlog übernommen.
PWREASON read_only_udm.metadata.description Der Wert wird aus dem Feld „PWREASON“ im Rohlog übernommen.
POSITION read_only_udm.principal.user.attribute.roles.name Der Wert wird aus dem Feld „ROLE“ im Rohlog übernommen.
Ressource read_only_udm.target.hostname Der Wert wird aus dem Ressourcenfeld im Rohlog übernommen.
SERVICEID read_only_udm.additional.fields.service_id.value.string_value Der Wert wird aus dem Feld „SERVICEID“ im Rohlog übernommen.
SERVICECATEGORY read_only_udm.additional.fields.service_category.value.string_value Der Wert wird aus dem Feld „SERVICECATEGORY“ im Rohlog übernommen.
SERVICEMSGID Dieses Feld ist nicht dem UDM zugeordnet.
SERVICENAME read_only_udm.target.resource.name Der Wert wird aus dem Feld „SERVICENAME“ im Rohlog übernommen.
SERVICETYPE read_only_udm.target.resource.type Der Wert wird aus dem Feld „SERVICETYPE“ im Rohlog übernommen. Wenn event_id PHI_CLIENT_FILE ist, wird der Wert auf FILE gesetzt.
SERVICE_USER read_only_udm.target.user.userid Der Wert wird aus dem Feld „SERVICE_USER“ im Rohlog übernommen.
SERVICE_USERTYP read_only_udm.additional.fields.service_user_type.value.string_value Der Wert wird aus dem Feld „SERVICE_USERTYP“ im Rohlog übernommen.
sev read_only_udm.security_result.severity Der Wert wird aus dem Feld „sev“ im Rohlog übernommen und je nach Wert LOW, HIGH oder CRITICAL zugeordnet.
shost read_only_udm.target.resource.attribute.labels.workstation_type.value Der Wert wird aus dem Feld „shost“ im Rohlog übernommen.
Quelle read_only_udm.additional.fields.login_source.value.string_value Der Wert wird aus dem Feld „SOURCE“ im Rohlog übernommen.
ERFOLGREICH read_only_udm.additional.fields.success_yes_no.value.string_value Der Wert wird aus dem Feld „SUCCESS“ im Rohlog übernommen.
Zeitüberschreitung read_only_udm.additional.fields.time_out.value.string_value Der Wert wird aus dem Feld „TIMEOUT“ im Rohlog übernommen.
UID read_only_udm.principal.user.userid Der Wert wird aus dem Feld „UID“ im Rohlog übernommen.
USERJOB Dieses Feld ist nicht dem UDM zugeordnet.
usrName read_only_udm.principal.user.userid, read_only_udm.principal.user.user_display_name Wenn die Felder „UID“ oder „LOGIN_LDAP_ID“ im Rohlog vorhanden sind, wird „usrName“ für „read_only_udm.principal.user.user_display_name“ und das andere Feld für „read_only_udm.principal.user.userid“ verwendet. Andernfalls wird usrName für read_only_udm.principal.user.userid verwendet.
WEBLGAPP read_only_udm.target.application Der Wert wird dem Feld „WEBLGAPP“ im Rohlog entnommen.
read_only_udm.extensions.auth.type Der Wert wird auf SSO gesetzt, wenn LOGIN_LDAP_ID nicht leer ist. Andernfalls wird der Wert auf AUTHTYPE_UNSPECIFIED gesetzt.
read_only_udm.intermediary.ip Der Wert wird auf die IP-Adresse der Protokollquelle festgelegt.
read_only_udm.metadata.event_type Der Wert wird auf RESOURCE_READ gesetzt, wenn „event_id“ einer der folgenden Werte ist: IC_SERVICE_AUDIT, AC_BREAK_THE_GLASS_FAILED_ACCESS, AC_BREAK_THE_GLASS_INAPPROPRIATE_ATTEMPT, AC_BREAK_THE_GLASS_ACCESS oder MCMEMEDISA. Außerdem muss „target_ip_set“ true sein oder „resource“ darf nicht leer sein. Der Wert wird auf USER_LOGIN gesetzt, wenn event_id einer der folgenden Werte ist: FAILEDLOGIN, LOGIN, ROVER_FAILED_LOGIN, SWITCHUSER, AUTHENTICATION, EW_LOGIN, ROVER_LOGIN, CTO_FAILED_LOGIN, CTO_LOGIN, HKU_FAILED_LOGIN, HKU_LOGIN, WPSEC_SEC_AUTH_OPT_OUT, WPSEC_SEC_AUTH_OPT_IN, BCA_LOGIN_FAILURE, BCA_LOGIN_SUCCESS, BCA_USER_LOCKED, WPSEC_LOGIN_FAIL oder WPSEC_LOGIN_SUCCESS und mindestens einer der folgenden Werte nicht leer ist: target_ip_set, resource, SERVICENAME, SERVICETYPE oder shost. Der Wert wird auf USER_CHANGE_PASSWORD gesetzt, wenn „event_id“ einer der folgenden Werte ist: E_ADMINPASSWORDCHANGE, E_FAILEDPASSWORDCHANGE, E_SELFPASSWORDCHANGE, WPSEC_USER_PASSWORD_CHANGE_FAIL oder WPSEC_USER_PASSWORD_CHANGE. Der Wert wird auf USER_UNCATEGORIZED festgelegt, wenn „event_id“ CONTEXTCHANGE ist. Der Wert wird auf USER_RESOURCE_ACCESS gesetzt, wenn „event_id“ einer der folgenden Werte ist: SECURE, UNSECURE, MASKED_DATA_DISPLAY oder MASKED_DATA_PRINTING. Der Wert wird auf USER_RESOURCE_UPDATE_CONTENT festgelegt, wenn „event_id“ PHI_CLIENT_FILE ist. Der Wert wird auf STATUS_UPDATE gesetzt, wenn CLIENTNAME nicht leer ist. Der Wert wird auf USER_UNCATEGORIZED festgelegt, wenn „prin_usr_id“ nicht leer ist. Andernfalls wird der Wert auf GENERIC_EVENT gesetzt.
read_only_udm.metadata.log_type Der Wert ist auf EPIC festgelegt.
read_only_udm.metadata.product_name Der Wert ist auf Epic Systems festgelegt.
read_only_udm.metadata.vendor_name Der Wert ist auf EPIC festgelegt.
read_only_udm.network.ip_protocol Der Wert wird aus dem Protofeld im Rohlog abgeleitet und dem entsprechenden IP-Protokollnamen zugeordnet.
read_only_udm.principal.resource.attribute.labels.workstation_type.key Der Wert ist auf Workstation ID/Type festgelegt.
read_only_udm.principal.resource.attribute.labels.prev_user.key Der Wert ist auf Prev User festgelegt.
read_only_udm.security_result.action Der Wert wird auf BLOCK gesetzt, wenn entweder die Felder ERRMSG oder LOGINERROR im Rohlog vorhanden sind.
REMOTEIP event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
CLIENTTYPE event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
INTERNETAREA event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
LOGINCLIENTID event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
LOGINCONTEXT event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
PERIMAUTHST event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
HYPACCESSID event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
UNRECDEVICE event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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