Epic Systems-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Epic Systems-Logs mithilfe eines Bindplane-Agents für Google Security Operations erfassen. Der Parser wandelt Rohprotokolle des Epic-EMR-/EHR-Systems in ein einheitliches Datenmodell (UDM) um. Zuerst werden die Protokollmeldungen bereinigt und strukturiert, Schlüssel/Wert-Paare extrahiert und die extrahierten Felder den entsprechenden UDM-Feldern zugeordnet. Dabei werden verschiedene Protokollformate und Dateninkonsistenzen verarbeitet, um eine umfassende und standardisierte Datendarstellung zu ermöglichen.

Hinweise

  • Sie benötigen eine Google Security Operations-Instanz.
  • Sie müssen Windows 2016 oder höher oder einen Linux-Host mit systemd verwenden.
  • Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
  • Sie benötigen Lese- und Schreibzugriff auf Epic Systems.

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. Lade die Datei zur Authentifizierung der Datenaufnahme 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 Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Profil.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

Bindplane-Agent installieren

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder die 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
    

Weitere Installationsressourcen

Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Ö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: EPIC
                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 Kundennummer.

  5. 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
    

SendSIEMSyslogAudit-Dienst 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 Geschäftsdienste aus.
  4. Wählen Sie auf dem Tab Dienstkategorie die Option SendSIEMSyslogAudit aus.
  5. Klicken Sie auf Speichern.

Epic Systems für den Syslog-Export konfigurieren

  1. Gehen Sie zu Epic-Systemdefinitionen > Sicherheit > Prüfoptionen > SIEM-Syslog-Einstellungen.
  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-Endzeichen: 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 Rohprotokoll übernommen.
APPLICATIONID read_only_udm.additional.fields.application_id.value.string_value Der Wert wird aus dem Feld „APPLICATIONID“ im Rohprotokoll übernommen.
APP read_only_udm.target.application Der Wert wird aus dem APP-Feld im Rohprotokoll übernommen.
ÜBUNG AUDITIRIEREN read_only_udm.network.session_id Der Wert wird aus dem Feld „AUDIT SESSION“ im Rohprotokoll übernommen.
AUTH_SOURCE Dieses Feld ist nicht dem UDM zugeordnet
BCAPCS read_only_udm.target.application Der Wert wird aus dem Feld „BCAPCS“ im Rohprotokoll übernommen.
BTGEXPLANATION read_only_udm.security_result.description Der Wert wird aus dem Feld „BTGEXPLANATION“ im Rohprotokoll übernommen.
BTGNOACCESSREAS read_only_udm.security_result.summary Der Wert wird aus dem Feld „BTGNOACCESSREAS“ im Rohprotokoll übernommen.
BTGREASON read_only_udm.security_result.summary Der Wert wird aus dem Feld „BTGREASON“ im Rohprotokoll übernommen.
CLIENTNAME read_only_udm.principal.hostname Der Wert wird aus dem Feld „CLIENTNAME“ im Rohprotokoll übernommen.
CSISESS_TOKEN read_only_udm.network.session_id Der Wert wird aus dem Feld „CSISESS_TOKEN“ im Rohprotokoll übernommen.
CTXT read_only_udm.metadata.description Der Wert wird aus dem Feld „CTXT“ im Rohprotokoll übernommen.
CVG read_only_udm.additional.fields.cvg.value.string_value Der Wert wird aus dem CVG-Feld im Rohprotokoll übernommen.
DAT Dieses Feld ist nicht dem UDM zugeordnet
DEP read_only_udm.principal.user.department Der Wert wird aus dem DEP-Feld im Rohprotokoll übernommen. Wenn sowohl das Feld „NEWDEPARTMENT“ als auch das Feld „PREVDEPARTMENT“ im Rohprotokoll vorhanden sind, wird der Wert PREVDEPARTMENT:-{PREVDEPARTMENT}, NEWDEPARTMENT:-{NEWDEPARTMENT} zurückgegeben. Wenn nur „NEWDEPARTMENT“ vorhanden ist, ist der Wert PREVDEPARTMENT:-NONE, NEWDEPARTMENT:{NEWDEPARTMENT}. Wenn nur PREVDEPARTMENT vorhanden ist, ist der Wert PREVDEPARTMENT:{PREVDEPARTMENT}, NEWDEPARTMENT:-NONE.
devTime read_only_udm.metadata.event_timestamp Der Wert wird aus dem Feld „devTime“ im Rohprotokoll übernommen und in Sekunden seit der Epoche umgewandelt.
devTimeFormat Dieses Feld ist nicht dem UDM zugeordnet
E3MID read_only_udm.network.session_id Der Wert wird aus dem Feld „E3MID“ im Rohprotokoll übernommen.
VERSCHLÜSSELT read_only_udm.additional.fields.encrypt.value.string_value Der Wert wird aus dem Feld „ENCRYPTED“ im Rohprotokoll übernommen.
ERRMSG read_only_udm.security_result.summary Der Wert wird aus dem Feld „ERRMSG“ im Rohprotokoll ü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 Rohprotokoll übernommen und alle Vorkommen von \\\\ werden durch \ ersetzt.
Flag read_only_udm.security_result.description Der Wert wird aus dem Flag-Feld im Rohprotokoll übernommen und alle vorangehenden und nachgestellten - werden entfernt.
HKUAPVER read_only_udm.metadata.product_version Der Wert wird aus dem Feld „HKUAPVER“ im Rohprotokoll übernommen.
HKUDVCID read_only_udm.principal.asset_id Der Wert wird aus dem Feld „HKUDVCID“ im Rohprotokoll übernommen und als Device ID:{HKUDVCID} formatiert.
HKUOSNAM read_only_udm.principal.platform Der Wert wird aus dem Feld „HKUOSNAM“ im Rohprotokoll ü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 Rohprotokoll übernommen.
INSTANCEURN read_only_udm.intermediary.hostname Der Wert wird aus dem Feld „INSTANCEURN“ im Rohprotokoll übernommen.
IP-Adresse read_only_udm.target.ip Der Wert wird aus dem IP-Feld im Rohprotokoll ü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 Rohprotokoll übernommen.
LOGIN_CONTEXT read_only_udm.metadata.description Der Wert wird aus dem Feld „LOGIN_CONTEXT“ im Rohprotokoll übernommen.
LOGIN_DEVICE read_only_udm.additional.fields.login_device.value.string_value Der Wert wird aus dem Feld „LOGIN_DEVICE“ im Rohprotokoll übernommen.
LOGIN_LDAP_ID read_only_udm.principal.user.userid Der Wert wird aus dem Feld „LOGIN_LDAP_ID“ im Rohprotokoll übernommen.
LOGIN_REASON read_only_udm.security_result.summary Der Wert wird aus dem Feld „LOGIN_REASON“ im Rohprotokoll übernommen.
LOGIN_REVAL read_only_udm.additional.fields.login_reval.value.string_value Der Wert wird aus dem Feld „LOGIN_REVAL“ im Rohprotokoll übernommen.
MASKMODE read_only_udm.additional.fields.masked_mode.value.string_value Der Wert wird aus dem Feld „MASKMODE“ im Rohprotokoll übernommen.
MYCACCT read_only_udm.principal.user.userid Der Wert wird aus dem Feld „MYCACCT“ im Rohprotokoll übernommen.
NEWDEPARTMENT read_only_udm.principal.user.department Logik für DEP-Feld 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 Rohprotokoll übernommen.
OSUSR read_only_udm.target.user.userid Der Wert wird aus dem Feld „OSUSR“ im Rohprotokoll übernommen.
PATIENT read_only_udm.target.user.userid Der Wert wird aus dem Feld „PATIENT“ im Rohprotokoll übernommen.
PREVDEPARTMENT read_only_udm.principal.user.department Logik für DEP-Feld 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 Rohprotokoll übernommen.
PWREASON read_only_udm.metadata.description Der Wert wird aus dem Feld „PWREASON“ im Rohprotokoll übernommen.
POSITION read_only_udm.principal.user.attribute.roles.name Der Wert wird aus dem Feld „ROLE“ im Rohprotokoll übernommen.
Ressource read_only_udm.target.hostname Der Wert wird aus dem Ressourcenfeld im Rohprotokoll übernommen.
SERVICEID read_only_udm.additional.fields.service_id.value.string_value Der Wert wird aus dem Feld „SERVICEID“ im Rohprotokoll übernommen.
SERVICECATEGORY read_only_udm.additional.fields.service_category.value.string_value Der Wert wird aus dem Feld „SERVICECATEGORY“ im Rohprotokoll übernommen.
SERVICEMSGID Dieses Feld ist nicht dem UDM zugeordnet
SERVICENAME read_only_udm.target.resource.name Der Wert wird aus dem Feld „SERVICENAME“ im Rohprotokoll übernommen.
SERVICETYPE read_only_udm.target.resource.type Der Wert wird aus dem Feld „SERVICETYPE“ im Rohprotokoll übernommen. Wenn „event_id“ den Wert „PHI_CLIENT_FILE“ hat, wird der Wert auf „FILE“ gesetzt.
SERVICE_USER read_only_udm.target.user.userid Der Wert wird aus dem Feld „SERVICE_USER“ im Rohprotokoll übernommen.
SERVICE_USERTYP read_only_udm.additional.fields.service_user_type.value.string_value Der Wert wird aus dem Feld „SERVICE_USERTYP“ im Rohprotokoll übernommen.
sev read_only_udm.security_result.severity Der Wert wird aus dem Feld „sev“ im Rohprotokoll ü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 Rohprotokoll übernommen.
Quelle read_only_udm.additional.fields.login_source.value.string_value Der Wert wird aus dem Feld „SOURCE“ im Rohprotokoll übernommen.
ERFOLGREICH read_only_udm.additional.fields.success_yes_no.value.string_value Der Wert wird aus dem Feld „SUCCESS“ im Rohprotokoll übernommen.
Zeitüberschreitung read_only_udm.additional.fields.time_out.value.string_value Der Wert wird aus dem TIMEOUT-Feld im Rohprotokoll übernommen.
UID read_only_udm.principal.user.userid Der Wert wird aus dem UID-Feld im Rohprotokoll ü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 im Rohprotokoll die Felder „UID“ oder „LOGIN_LDAP_ID“ 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 aus dem Feld „WEBLGAPP“ im Rohprotokoll übernommen.
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“ eine der folgenden IDs ist: IC_SERVICE_AUDIT, AC_BREAK_THE_GLASS_FAILED_ACCESS, AC_BREAK_THE_GLASS_INAPPROPRIATE_ATTEMPT, AC_BREAK_THE_GLASS_ACCESS oder MCMEMEDISA und entweder „target_ip_set“ true ist oder „resource“ nicht leer ist. Der Wert wird auf USER_LOGIN festgelegt, wenn „event_id“ einen der folgenden Werte hat: 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 eines der folgenden Felder nicht leer ist: „target_ip_set“, „resource“, „SERVICENAME“, „SERVICETYPE“ oder „shost“. Der Wert wird auf USER_CHANGE_PASSWORD gesetzt, wenn „event_id“ einen der folgenden Werte hat: E_ADMINPASSWORDCHANGE, E_FAILEDPASSWORDCHANGE, E_SELFPASSWORDCHANGE, WPSEC_USER_PASSWORD_CHANGE_FAIL oder WPSEC_USER_PASSWORD_CHANGE. Der Wert wird auf USER_UNCATEGORIZED gesetzt, wenn „event_id“ CONTEXTCHANGE ist. Der Wert wird auf USER_RESOURCE_ACCESS gesetzt, wenn „event_id“ einen der folgenden Werte hat: SECURE, UNSECURE, MASKED_DATA_DISPLAY oder MASKED_DATA_PRINTING. Der Wert wird auf USER_RESOURCE_UPDATE_CONTENT gesetzt, 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 Feld „proto“ im Rohprotokoll 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 im Rohprotokoll entweder das Feld „ERRMSG“ oder „LOGINERROR“ vorhanden ist.

Änderungen

2024-07-01

Optimierung:

  • Die Zuordnung von metadata.event_timestamp wurde von devTime zu timestamp geändert, indem das Jahr aus dem Feld devTime extrahiert wurde.
  • devTime wurde additional.fields zugeordnet.

2022-10-31

Fehlerkorrektur:

  • Unterstützung für mehrere Ereignisse hinzugefügt.

2022-06-09

Fehlerkorrektur:

  • Unterstützung für mehrere Ereignisse mit Mittelpunkt · hinzugefügt
  • Bedingte Prüfungen für die Felder devTime, usrName, shost, sev und IP hinzugefügt.

2022-04-14

Fehlerkorrektur:

  • Unterstützung für mehrere Ereignisse hinzugefügt.

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