Epic Systems-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Epic Systems-Logs mit einem Bindplane-Agent für Google Security Operations erfassen. Der Parser wandelt Rohdaten aus Epic-EMR-/EHR-Systemprotokollen in ein einheitliches Datenmodell (Unified Data Model, UDM) um. Zuerst werden die Log-Nachrichten bereinigt und strukturiert, dann werden Schlüssel/Wert-Paare extrahiert und die extrahierten Felder werden den entsprechenden UDM-Feldern zugeordnet. Dabei werden verschiedene Log-Formate und Dateninkonsistenzen berücksichtigt, um eine umfassende und standardisierte Darstellung der Daten zu gewährleisten.

Hinweise

  • Prüfen Sie, ob Sie eine Google Security Operations-Instanz haben.
  • Achten Sie darauf, dass Sie Windows 2016 oder höher oder einen Linux-Host mit systemd verwenden.
  • Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.
  • Prüfen Sie, ob Sie privilegierten Zugriff auf Epic Systems haben.

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

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

  1. Greifen Sie auf die Konfigurationsdatei zu:

    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 Kunden-ID.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei 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
    

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 > Prüfoptionen > 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 Feld „CVG“ 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 das Feld NEWDEPARTMENT als auch das Feld 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 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 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 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 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 festgelegt, 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.

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