NetScaler-Logs (früher Citrix NetScaler) erfassen

Parserversion: 28.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie NetScaler-Logs (früher Citrix NetScaler) mit Bindplane in Google Security Operations aufnehmen.

Der Parser extrahiert Felder aus NetScaler-Syslog- und Schlüssel/Wert-formatierten Logs. Dabei werden grok und/oder kv verwendet, um den Logeintrag zu parsen. Anschließend werden diese Werte dem Unified Data Model (UDM) zugeordnet. Außerdem werden Standardmetadatenwerte für die Ereignisquelle und den Ereignistyp festgelegt.

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
  • Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Privilegierter Zugriff auf die NetScaler-Weboberfläche

Authentifizierungsdatei für die Google SecOps-Datenaufnahme abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Erfassungs-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 Organization Details (Organisationsdetails).

BindPlane-Agent installieren

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

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. Warte, 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. Warte, 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.

Zusätzliche 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:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'CITRIX_NETSCALER'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • udplog: Verwenden Sie udplog für UDP-Syslog oder tcplog für TCP-Syslog.
    • 0.0.0.0: IP-Adresse, auf der gelauscht werden soll (0.0.0.0, um auf allen Schnittstellen zu lauschen)
    • 514: Portnummer, an der gelauscht werden soll (Standard-Syslog-Port)
  • 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
    • YOUR_CUSTOMER_ID: Kundennummer aus dem Abschnitt „Kundennummer abrufen“
    • 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.
    • log_type: Logtyp genau wie in Google SecOps (CITRIX_NETSCALER)

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

So starten Sie den Bindplane-Agenten 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-Agenten 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. Rechtsklicken Sie und wählen Sie Neu starten aus.
  2. Prüfen Sie, ob der Dienst ausgeführt wird:

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

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

Syslog-Weiterleitung in NetScaler konfigurieren

  1. Melden Sie sich in der NetScaler-Weboberfläche (NSIP) an.
  2. Gehen Sie zu System > Auditing > Syslog.
  3. Klicken Sie auf den Tab Server.
  4. Klicken Sie auf Hinzufügen, um einen neuen Syslog-Server zu erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:

    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Google-SecOps-Bindplane.
    • Server-IP: Geben Sie die IP-Adresse des Bindplane-Agent-Hosts ein.
    • Port: Geben Sie 514 ein.
    • Logebene: Wählen Sie alle zutreffenden Ebenen aus:

      • ALL (empfohlen für umfassendes Logging)

    • Facility: Wählen Sie LOCAL0 (oder Ihre bevorzugte Facility) aus.

    • Datumsformat: Wählen Sie MMDDYYYY aus.

    • Zeitzone: Wählen Sie GMT_TIME aus (UTC wird empfohlen).

    • TCP-Logging: Wählen Sie KEINE (für UDP) aus.

    • Log Facility: Wählen Sie LOCAL0 aus.

  6. Klicken Sie auf Erstellen.

  7. Rufen Sie den Tab Richtlinien auf.

  8. Klicken Sie auf Hinzufügen, um eine neue Syslog-Audit-Richtlinie zu erstellen.

  9. Geben Sie die folgenden Konfigurationsdetails an:

    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Google-SecOps-Policy.
    • Server: Wählen Sie den zuvor erstellten Syslog-Server aus.
  10. Klicken Sie auf Erstellen.

  11. Richtlinie global binden:

    1. Klicken Sie auf System> Überwachung.
    2. Klicken Sie unter Syslog-Audit-Richtlinien auf Globale Bindungen.
    3. Klicken Sie auf Bindung hinzufügen.
    4. Wählen Sie die zuvor erstellte Richtlinie aus.
    5. Klicken Sie auf Bind.
  12. Prüfen Sie die Bindplane-Agent-Logs, um festzustellen, ob Syslog-Nachrichten gesendet werden.

  • Alternativ können Sie die Konfiguration über die Befehlszeile vornehmen:

    add audit syslogAction Google-SecOps-Bindplane BINDPLANE_IP -serverPort 514 -logLevel ALL -dateFormat MMDDYYYY -timeZone GMT_TIME
    add audit syslogPolicy Google-SecOps-Policy ns_true Google-SecOps-Bindplane
    bind audit syslogGlobal -policyName Google-SecOps-Policy -priority 100
    

Ersetzen Sie BINDPLANE_IP durch die IP-Adresse des Bindplane-Agent-Hosts.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung
aaa_info_flags additional.fields
aaa_trans_id security_result.detection.fields
aaad_flags additional.fields
aaad_resp additional.fields
aaaFlags additional.fields
aaaFlags2 additional.fields
handeln securtiy_result.action_details,, security_result.action
Aktion security_result.action
ADM_User additional.fields
allowed_interface security_result.detection.fields
applicationname target.application
auth_type additional.fields
authActionLen security_result.detection_fields
AuthAgent additional.fields
AuthDuration network.session_duration.seconds
authnvs additional.fields
authorizationStatus security_result.detection.fields
AuthStage additional.fields
Authtype additional.fields
C principal.location.country_or_region
caseId additional.fields
cfg_limit additional.fields
cgp_tag sec_result.detection_fields
channel_id_X additional.fields
channel_id_X_val additional.fields
channel_update_begin additional.fields
channel_update_end additional.fields
cipher_suite network.tls.cipher
client_fip target.ip target.asset.ip
client_fport target.port
client_ip principal.ip,, principal.asset.ip
client_port principal.port
Client_security_expression additional.fields
client_type additional.fields
client_version network.tls.version
client.nat.ip principal.nat_ip,, principal.asset.nat_ip
clientside_jitter additional.fields
clientside_packet_retransmits additional.fields
clientside_rtt additional.fields
clientside_rxbytes network.sent_bytes
clientside_txbytes network.received_bytes
ClientVersion network.tls.version_protocol
CN principal.resource.attribute.labels
cn1 additional.fields
cn2 additional.fields
Code additional.fields
commandExecutionStatus security_result.action_details
Compression_ratio_recv additional.fields
Compression_ratio_send additional.fields
configurationCmd security_result.detection.fields
connectionId network.session_id
copied_nsb sec_result.detection_fields
core_id additional.fields
core_refmask additional.fields
cs1 additional.fields
cs2 additional.fields
cs4 additional.fields
cs5 additional.fields
cs6 additional.fields
CSappid additional.fields
CSAppname -
csg_flags additional.fields
ctx_flags additional.fields
cur_attempts additional.fields
CurfactorPolname additional.fields
customername additional.fields
days_for_pwd_exp additional.fields
days_for_pwd_exp_STR additional.fields
delinkTime additional.fields
Denied_by_policy security_result.rule_name
Ab metadata.description
destination.ip target.ip,, target.asset.ip
destination.port target.resource.attribute.labels
device_event_class_id metadata.product_event_type
device_version metadata.product_version
Deviceid target.resource.product_object_id
Devicetype additional.fields
dht_delete_status additional.fields
diagnostic_info additional.fields
digestSignatureAlgorithm security_result.detection_fields
dns_additional_count additional.fields
dns_answer_count additional.fields
dns_authority_count additional.fields
dns_flags additional.fields
dns_flags_raw network.dns.recursion_desired
dns_flags_raw network.dns.recursion_available
dns_id network.dns.id
dns_question_count additional.fields
dns_question_name network.dns.question.name
Domain security_result.detection.fields,, additional.fields
Domain target.administrative_domain
ecs_version additional.fields
encrypt_status security_result.detection_fields
end_time additional.fields
End_time additional.fields
entityName target.resource.name
Fehlercode additional.fields
event_id metadata.product_log_id
event_name metadata.product_event_type
event_type sec_result.summary
expired_refmask additional.fields
Faktor security_result.detection.fields
flags additional.fields
flags2 additional.fields
flags3 additional.fields
flags4 additional.fields
func security_result.detection_fields
Standortbestimmung location.country_region
Gruppe(n) target.user.group_identifiers
Gruppe(n) target.user.group.identifiers
handshake_time network.session_duration.seconds
HandshakeTime additional.fields
host_hostname principal.hostname
host_ip principal.ip principal.asset.ip
host.name target.hostname,, target.asset.hostname
Hostname intermediary.hostname,, intermediary.asset.hostname
Hostname target.hostname,, target.asset.hostname
hostname_1 target.hostname,, target.asset.hostname
http_method network.http.method
Http_resources_accessed security_result.detection.fields
http_uri target.url
HTTPS network.application_protocol
ica_conn_owner_refmask sec_result.detection_fields
ica_rtt additional.fields
ica_uuid network.session_id
ICAUUID network.session_id
id metadata.id
init_icamode_homepage additional.fields
inter_hostname intermediary.hostname
interfaceKind security_result.detection.fields
ip intermediary.asset.ip
ip_x principal.ip principal.asset.ip
ipaddress target.ip,, target.asset.ip
is_post additional.fields
IssuerName network.tls.server.certificate.issuer
L principal.location.city
last_contact additional.fields
loc target.url
localdate additional.fields
lock_duration additional.fields
log_action sec_result.detection_fields
log_action security_result.detection.fields
log_category additional.fields
log_data additional.fields
log_format additional.fields
log_timestamp additional.fields
log_type additional.fields
log.syslog.priority additional.fields
login_count sec_result.detection_fields
login_count security_result.detection_fields
LogoutMethod additional.fields
max_attempts additional.fields
message_content security_result.summary
message_id metadata.product_log_id
message_status_code additional.fields
method network.http.method
monitored_resource additional.fields
msg metadata.description
msi_client_cookie additional.fields
msticks additional.fields
Nat_ip additional.fields,, principal.nat_ip,, principal.asset.nat_ip, (Wenn Nat_ip keine IP-Adresse ist, befindet sie sich in additional.fields.)
netscaler_principal_ip_context principal.resource.attribute.labels
netscaler_tag intermediary.asset.product_object_id
netscaler_target_ip_context target.resource.attribute.labels
new_webview additional.fields
newWebview additional.fields
NonHttp_services_accessed security_result.detection.fields
nsPartitionName additional.fields
on_port additional.fields
Organisation principal.resource.attribute.labels
OE principal.resource.attribute.labels
owner_from additional.fields
owner_id additional.fields
pcb_devno additional.fields
pcbdevno additional.fields
Richtlinienname security_result.rule_name
Port principal.port
port_details principal.port
prin_ip principal.ip principal.asset.ip
prin_user principal.user.userid
principal_ip principal.ip,, principal.asset.ip
principal_port principal.port
prod_event_type metadata.product_event_type
Protokoll network.ip_protocol
protocol_feature security_result.detection.fields
ProtocolVersion network.tls.protocol_version
pwdlen additional.fields
pwdlen2 additional.fields
q_flags additional.fields
reason_val security_result.description
receiver_version additional.fields
record_type network.dns.question.type
refmask additional.fields
remote_ip principal.ip principal.asset.ip
remote_port principal.port
Anfrage target.url
ReqURL additional.fields
resource_cmd target.resource.name
ressource_name principal.resource.name
Antwort additional.fields
response_code additional.fields
rule_id security_result.rule.id
rule_name security_result.rule_name
SerialNumber network.tls.server.certificate.serial
server_authenticated additional.fields
serverside_jitter additional.fields
serverside_packet_retransmits additional.fields
serverside_rtt additional.fields
service_name principal.applications
sess_flags2: additional.fields
sess_seq network.session_id
sessFlags2 additional.fields
Sitzung additional.fields
session_cookie security_result.detection_fields
session_guid network.session_id
session_id_label network.session_id
session_setup_time additional.fields
session_type sec_result.description
SessionId (Sitzungs-ID) network.session_id
skip_code additional.fields
source_file additional.fields
source_hostname principal.hostname,, principal.asset.hostname
source_line additional.fields
source.ip principal.ip,, principal.asset.ip
source.port principal.resource.attribute.labels
spcb_id security_result.detecrion.fields
SPCBId sec_result.detection_fields
spt principal.port
src principal.ip principal.asset.ip
src_hostname hauptkonto.hostname hauptkonto.asset.hostname
src_ip principal.ip principal.asset.ip
src_ip1 src.ip,, src.asset.ip
src_port principal.port
ssid network.session_id
SSLVPN_client_type additional.fields
SSO, die additional.fields
sso additional.fields
sso_auth_type additional.fields
sso_flags security_result.detection_fields
sso_state additional.fields
SSOduration additional.fields
SSOurl additional.fields
ssoUsername additional.fields
ssoUsername2 additional.fields
ST principal.location.state
sta_port additional.fields
sta_ticket additional.fields
start_time additional.fields
Start_time additional.fields
Bundesland security_result.action_details
state additional.fields
state_value additional.fields
StatusCode additional.fields
SubjectName network.tls.client.certificate.subject
summ security_result.summary
Zusammenfassung security_result.summary
sysCmdPolLen security_result.detection.fields
syslog_priority additional.fields
Tags additional.fields
tar_ip target.ip target.asset.ip
tar_port target.port
target_id target.resource.id
target_port target.port
TCP network.ip_protocol
timeout_ms additional.fields
timestamp metadata.event_timestamp
Total_bytes_send network.sent_bytes
Total_compressedbytes_recv additional.fields
Total_compressedbytes_send additional.fields
Total_policies_allowed security_result.detection.fields
Total_policies_denied security_result.detection.fields
Total_TCP_connections security_result.detection.fields
Total_UDP_flows security_result.detection.fields
track_flags additional.fields
trans_id -
tt metadata.event_timestamp
Nutzer principal.user.userid
user_agent.original network.http.user_agent
user_email principal.user.email_addresses
user_id principal.user.userid
user.domain target.administrative_domain
nutzer.name principal.user.user_display_name
userids target.user.userid
ValidFrom network.tls.server.certificate.not_before
ValidTo network.tls.server.certificate.not_after
Version additional.fields
VPNexportState additional.fields
Vport target.port
Vserver-Zeitstempel additional.fields
vserver_id target.resource.product_object_id
Vserver_ip target.ip,, target.asset.ip
vserver_port target.port
Vserver_port target.port
vserver_timestamp additional.fields
vserver.ip target.ip,, target.asset.ip
wirep additional.fields
wirep_name additional.fields
wirep_ref_cnt additional.fields
url_value event.idm.read_only_udm.target.url
host_port event.idm.read_only_udm.additional.fields
region event.idm.read_only_udm.principal.location.country_or_region
NAT_IP event.idm.read_only_udm.principal.nat_ip und event.idm.read_only_udm.principal.asset.nat_ip
USER event.idm.read_only_udm.target.user.userid
URL event.idm.read_only_udm.additional.fields
proxy_action event.idm.read_only_udm.security_result.action_details
SRC_IP event.idm.read_only_udm.principal.ip und event.idm.read_only_udm.principal.asset.ip
HOST event.idm.read_only_udm.target.hostname und event.idm.read_only_udm.target.asset.hostname
url_port event.idm.read_only_udm.target.port
User-Agent event.idm.read_only_udm.network.http.user_agent
User-Agent event.idm.read_only_udm.network.http.parsed_user_agent
PROXY_IP event.idm.read_only_udm.intermediary.ip und event.idm.read_only_udm.intermediary.asset.ip
proxy_action event.idm.read_only_udm.security_result.action
v_ip event.idm.read_only_udm.observer.ip und event.idm.read_only_udm.observer.asset.ip
v_port event.idm.read_only_udm.observer.port
gwip event.idm.read_only_udm.observer.ip und event.idm.read_only_udm.observer.asset.ip
gwport event.idm.read_only_udm.observer.port
Username event.idm.read_only_udm.principal.user.userid
VPNfqdn event.idm.read_only_udm.target.hostname
VPNfqdn event.idm.read_only_udm.target.asset.hostname
VPNfqdn event.idm.read_only_udm.target.ip
VPNfqdn event.idm.read_only_udm.target.asset.ip
Remote ip event.idm.read_only_udm.principal.ip
Remote ip event.idm.read_only_udm.principal.asset.ip
Remote ip event.idm.read_only_udm.principal.port
BackendIP event.idm.read_only_udm.target.ip
BackendIP event.idm.read_only_udm.target.asset.ip
BackendIP event.idm.read_only_udm.target.port
ts event.idm.read_only_udm.metadata.event_timestamp
id event.idm.read_only_udm.metadata.product_log_id
policy event.idm.read_only_udm.security_result.detection_fields
Nat_ip event.idm.read_only_udm.principal.nat_ip
v_ip event.idm.read_only_udm.intermediary.ip
v_port event.idm.read_only_udm.intermediary.port
event_id event.idm.read_only_udm.additional.fields
Nat_ip event.idm.read_only_udm.principal.ip und event.idm.read_only_udm.principal.asset.ip
Nat_port event.idm.read_only_udm.principal.nat_port
v_ip event.idm.read_only_udm.target.ip und event.idm.read_only_udm.target.asset.ip
v_port event.idm.read_only_udm.target.port
delinkTime event.idm.read_only_udm.additional.fields
hostname event.idm.read_only_udm.intermediary.hostname
intermediary_ip intermediary.ip
Remote_ip target.ip
VserverIP src.ip
VserverPort src.port
Start_time sec_result.first_discovered_time
End_time sec_result.last_discovered_time
prin_ip principal.ip and principal.asset.ip
user_prin principal.user.userid
trans id security_result.detection_fields
request principal.url
Client_ip principal.ip
Errmsg metadata.description
Sessionid network.session_id
user_name" and "user target.user.userid
Authentication details security_result.description
Browser network.http.parsed_user_agent
ClientIP principal.asset.ip
type", "aaa_trans_id", "pcb_trans_id", "pcb_state", "pcb_label", "trans_id", "authPolicyLen", "login_attempts", "PromptLen", "partitionLen", "cmdPolicyLen", and "ssh_pubkey_len security_result.detection_fields
principal_hostname principal.hostname
hostname observer.asset.hostname
cip", "ServerIP", "VIP", "VserverServiceIP", and "Remote_ip target.asset.ip
startTime", "endTime", "Duration security_result.detection_fields

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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