Mengumpulkan log NetScaler (sebelumnya Citrix NetScaler)
Versi Parser: 28.0
Dokumen ini menjelaskan cara menyerap log NetScaler (sebelumnya dikenal sebagai Citrix NetScaler) ke Google Security Operations menggunakan Bindplane.
Parser mengekstrak kolom dari syslog NetScaler dan log berformat nilai kunci. Parser ini menggunakan grok dan/atau kv untuk mengurai pesan log, lalu memetakan nilai ini ke Model Data Terpadu (UDM). Layanan ini juga menetapkan nilai metadata default untuk sumber dan jenis peristiwa.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Windows Server 2016 atau yang lebih baru, atau host Linux dengan
systemd - Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
- Akses istimewa ke antarmuka web NetScaler
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka SIEM Settings > Collection Agents.
- Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat Bindplane akan diinstal.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka SIEM Settings > Profile.
- Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.
Menginstal agen Bindplane
Instal agen Bindplane di sistem operasi Windows atau Linux Anda sesuai dengan petunjuk berikut.
Penginstalan Windows
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sc query observiq-otel-collector
Layanan akan ditampilkan sebagai RUNNING.
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
Jalankan perintah berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shTunggu hingga penginstalan selesai.
Verifikasi penginstalan dengan menjalankan:
sudo systemctl status observiq-otel-collector
Layanan akan ditampilkan sebagai aktif (berjalan).
Referensi penginstalan tambahan
Untuk opsi penginstalan dan pemecahan masalah tambahan, lihat Panduan penginstalan agen BindPlane.
Mengonfigurasi agen Bindplane untuk menyerap syslog dan mengirimkannya ke Google SecOps
Cari file konfigurasi
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edit file konfigurasi
Ganti seluruh konten
config.yamldengan konfigurasi berikut: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
Parameter konfigurasi
Ganti placeholder berikut:
Konfigurasi penerima:
udplog: Gunakanudploguntuk syslog UDP atautcploguntuk syslog TCP0.0.0.0: Alamat IP yang akan dipantau (0.0.0.0untuk memantau semua antarmuka)514: Nomor port yang akan diproses (port syslog standar)
Konfigurasi pengekspor:
creds_file_path: Jalur lengkap ke file autentikasi penyerapan:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
YOUR_CUSTOMER_ID: ID pelanggan dari bagian Mendapatkan ID pelangganendpoint: URL endpoint regional:- Amerika Serikat:
malachiteingestion-pa.googleapis.com - Eropa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Lihat Endpoint Regional untuk mengetahui daftar lengkapnya
- Amerika Serikat:
log_type: Jenis log persis seperti yang muncul di Google SecOps (CITRIX_NETSCALER)
Simpan file konfigurasi
- Setelah mengedit, simpan file:
- Linux: Tekan
Ctrl+O, laluEnter, laluCtrl+X - Windows: Klik File > Save
- Linux: Tekan
Mulai ulang agen Bindplane untuk menerapkan perubahan
Untuk memulai ulang agen Bindplane di Linux:
Jalankan perintah berikut:
sudo systemctl restart observiq-otel-collectorPastikan layanan sedang berjalan:
sudo systemctl status observiq-otel-collectorPeriksa log untuk mengetahui error:
sudo journalctl -u observiq-otel-collector -f
Untuk memulai ulang agen Bindplane di Windows:
Pilih salah satu opsi berikut:
- Command Prompt atau PowerShell sebagai administrator:
net stop observiq-otel-collector && net start observiq-otel-collector- Konsol layanan:
- Tekan
Win+R, ketikservices.msc, lalu tekan Enter. - Cari observIQ OpenTelemetry Collector.
- Klik kanan, lalu pilih Mulai ulang.
- Tekan
Pastikan layanan sedang berjalan:
sc query observiq-otel-collectorPeriksa log untuk mengetahui error:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Mengonfigurasi penerusan syslog di NetScaler
- Login ke antarmuka web NetScaler (NSIP).
- Buka System > Auditing > Syslog.
- Klik tab Servers.
- Klik Add untuk membuat server syslog baru.
Berikan detail konfigurasi berikut:
- Name: Masukkan nama deskriptif (misalnya,
Google-SecOps-Bindplane). - Server IP: Masukkan alamat IP host agen Bindplane.
- Port: Masukkan
514. Log Level: Pilih semua level yang berlaku:
SEMUA (direkomendasikan untuk pencatatan log yang komprehensif)
Facility: Pilih LOCAL0 (atau fasilitas pilihan Anda).
Format Tanggal: Pilih MMDDYYYY.
Zona Waktu: Pilih GMT_TIME (UTC direkomendasikan).
TCP Logging: Pilih NONE (untuk UDP).
Log Facility: Pilih LOCAL0.
- Name: Masukkan nama deskriptif (misalnya,
Klik Create.
Buka tab Kebijakan.
Klik Add untuk membuat kebijakan audit syslog baru.
Berikan detail konfigurasi berikut:
- Name: Masukkan nama deskriptif (misalnya,
Google-SecOps-Policy). - Server: Pilih server syslog yang dibuat sebelumnya.
- Name: Masukkan nama deskriptif (misalnya,
Klik Create.
Ikat kebijakan secara global:
- Buka System > Auditing.
- Klik Global Bindings di bagian Syslog Audit Policies.
- Klik Add Binding.
- Pilih kebijakan yang dibuat sebelumnya.
- Klik Bind.
Pastikan pesan syslog dikirim dengan memeriksa log agen Bindplane.
Atau, konfigurasi melalui CLI:
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
Ganti BINDPLANE_IP dengan alamat IP host agen Bindplane.
Tabel pemetaan UDM
| Kolom log | Pemetaan UDM |
|---|---|
| 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 |
| act | securtiy_result.action_details,, security_result.action |
| tindakan | 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 |
| kode | 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 |
| menurun | 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 |
| Kode Error | 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 |
| flag | additional.fields |
| flags2 | additional.fields |
| flags3 | additional.fields |
| flags4 | additional.fields |
| func | security_result.detection_fields |
| geolocation | location.country_region |
| Grup | target.user.group_identifiers |
| Grup | 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 |
| metode | 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, (Jika Nat_ip bukan alamat IP, alamat tersebut ada di 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 |
| Organisasi | principal.resource.attribute.labels |
| OU | principal.resource.attribute.labels |
| owner_from | additional.fields |
| owner_id | additional.fields |
| pcb_devno | additional.fields |
| pcbdevno | additional.fields |
| Policyname | 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 |
| protokol | 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 |
| permintaan | target.url |
| ReqURL | additional.fields |
| resource_cmd | target.resource.name |
| resource_name | principal.resource.name |
| respons | 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 |
| Sesi | 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 | 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 | principal.hostname principal.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 | 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 |
| Negara Bagian | security_result.action_details |
| state | additional.fields |
| state_value | additional.fields |
| StatusCode | additional.fields |
| SubjectName | network.tls.client.certificate.subject |
| summ | security_result.summary |
| ringkasan | 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 |
| Pengguna | 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 |
| user.name | principal.user.user_display_name |
| userids | target.user.userid |
| ValidFrom | network.tls.server.certificate.not_before |
| ValidTo | network.tls.server.certificate.not_after |
| versi | additional.fields |
| VPNexportState | additional.fields |
| Vport | target.port |
| Stempel Waktu Vserver | 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 dan 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 dan event.idm.read_only_udm.principal.asset.ip |
HOST |
event.idm.read_only_udm.target.hostname dan 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 dan 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 dan 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 dan 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 dan 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 dan 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 |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.