NetScaler 로그 수집
이 문서에서는 Google Security Operations 전달자를 사용하여 NetScaler 로그를 수집하는 방법을 설명합니다.
자세한 내용은 Google Security Operations에 데이터 수집 개요를 참조하세요.
수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다. 이 문서의 정보는 CITRIX_NETSCALER 수집 라벨이 있는 파서에 적용됩니다.
NetScaler VPX 구성
NetScaler VPX를 구성하여 로그를 Google Security Operations 전달자에 전송하려면 다음을 수행하세요.
호스트 이름 구성 확인
- 관리자 사용자 인증 정보를 사용하여 NetScaler 웹 인터페이스에 로그인합니다.
- Configuration Settings를 선택합니다.
- 호스트 이름, DNS IP 주소, 시간대를 클릭합니다.
- 호스트 이름 필드가 비어 있으면 호스트 이름을 입력합니다. 공백은 포함하지 마세요. 이 필드가 이미 구성된 경우 별도의 조치가 필요하지 않습니다.
- DNS IP 주소 필드에서 로컬 DNS IP 주소가 지정되어 있는지 확인합니다.
- 시간대 필드에 시간대를 입력합니다.
감사 서버 만들기
- NetScaler 웹 인터페이스에서 구성 > 시스템 > 감사 > Syslog > 서버를 선택합니다.
- 다음 필드에 syslog 세부정보를 지정합니다.
- 이름
- 서버 유형
- IP 주소
- 포트
- 로그 수준을 맞춤으로 선택합니다.
- 구성에서 DEBUG 수준을 제외한 모든 체크박스를 선택합니다.
- 로그 기능 목록에서 LOCAL0을 선택합니다.
- 날짜 형식 목록에서 MMDDYYYY를 선택합니다.
- 시간대를 GMT로 선택합니다.
- 다음 체크박스를 선택 해제합니다.
- TCP 로깅
- ACL 로깅
- 사용자 구성 가능 로그 메시지
- AppFlow 로깅
- 대규모 NAT 로깅
- ALG 메시지 로깅
- 구독자 로깅
- DNS
- SSL 가로채기
- URL 필터링
- 콘텐츠 검사 로깅
- 확인을 클릭하여 감사 서버를 만듭니다.
생성된 감사 정책을 서버에 바인딩
- NetScaler 웹 인터페이스에서 구성 > 시스템 > 감사 > Syslog를 선택합니다.
- 정책 탭을 클릭합니다.
- 이름 필드에 정책 이름을 입력합니다.
- 서버 목록에서 이전 섹션의 정책을 선택합니다.
- 만들기를 클릭합니다.
- 생성된 감사 정책을 마우스 오른쪽 버튼으로 클릭하고 작업 > 전역 바인딩을 선택합니다.
- 바인딩 추가를 클릭합니다.
- 정책 바인딩 창에서 다음을 수행합니다.
- 정책 선택 필드에 생성된 감사 정책을 입력합니다.
- 바인딩 세부정보 창의 우선순위 필드에 기본 우선순위인 120을 입력합니다.
- 결합을 클릭합니다.
NetScaler SDX 구성
NetScaler SDX를 구성하여 로그를 Google Security Operations 전달자에 전송하려면 다음을 수행하세요.
NetScaler SDX의 호스트 이름 구성 확인
- 관리자 사용자 인증 정보를 사용하여 NetScaler 웹 인터페이스에 로그인합니다.
- NetScaler 웹 인터페이스에서 시스템 > 시스템 설정을 선택합니다.
- 호스트 이름 필드가 비어 있으면 호스트 이름을 입력합니다. 공백은 포함하지 마세요. 이 필드가 이미 구성된 경우 별도의 조치가 필요하지 않습니다.
- 시간대 필드에서 UTC 또는 GMT를 선택합니다.
syslog 서버 구성
- NetScaler 웹 인터페이스에서 System > Notifications > Syslog servers를 선택합니다.
- 세부정보 창에서 추가를 클릭합니다.
- syslog 서버 만들기 창에서 다음 syslog 서버 매개변수의 값을 지정합니다.
- 이름 필드에 이름을 입력합니다.
- IP 주소 필드에 Google Security Operations 포워더 IP 주소를 입력합니다.
- 포트 필드에 포트 번호를 입력합니다.
- 로그 수준을 맞춤으로 선택합니다.
- 디버그를 제외한 모든 로그 수준을 선택합니다.
- 만들기를 클릭합니다.
syslog 매개변수 구성
- NetScaler 웹 인터페이스에서 System > Notifications > Syslog servers를 선택합니다.
- 세부정보 창에서 Syslog 매개변수를 클릭합니다.
- syslog 매개변수 구성 페이지에서 날짜 형식을 MMDDYYYY로 선택하고 시간대를 GMT로 선택합니다.
- 확인을 클릭합니다.
NetScaler 로그를 수집하도록 Google Security Operations 전달자 구성
- SIEM 설정 > 포워더를 선택합니다.
- 새 전달자 추가를 클릭합니다.
- 전달자 이름 필드에 전달자의 고유한 이름을 입력합니다.
- 제출을 클릭한 다음 확인을 클릭합니다. 전달자가 추가되고 수집기 구성 추가 창이 표시됩니다.
- 수집기 이름 필드에 수집기의 고유한 이름을 입력합니다.
- 로그 유형으로 Citrix NetScaler를 선택합니다.
- 수집기 유형 필드에서 Syslog를 선택합니다.
- 다음 필수 입력 매개변수를 구성합니다.
- 프로토콜: 수집기가 syslog 데이터를 리슨하는 데 사용하는 연결 프로토콜을 지정합니다.
- 주소: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 IP 주소 또는 호스트 이름을 지정합니다.
- 포트: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 포트를 지정합니다.
- 제출을 클릭합니다.
Google Security Operations 전달자에 대한 자세한 내용은 Google Security Operations UI를 통해 전달자 구성 관리를 참고하세요.
전달자를 만들 때 문제가 발생하면 Google Security Operations 지원팀에 문의하세요.
필드 매핑 참조
이 파서는 키-값 형식의 Citrix Netscaler SYSLOG 로그를 처리하여 message 필드에서 JSON 형식 데이터를 추출하고, host.hostname 및 user_agent.original와 같은 다른 필드의 정보를 정리한 후 UDM을 보강합니다. 기본 메시지가 비어 있는 경우 원래 로그 메시지로 대체하여 처리합니다.
UDM 매핑 테이블
| 로그 필드 | 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 |
action |
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 |
desc |
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 |
Error Code |
additional.fields |
event_id |
metadata.product_log_id |
event_name |
metadata.product_event_type |
event_type |
sec_result.summary |
expired_refmask |
additional.fields |
factor |
security_result.detection.fields |
flags |
additional.fields |
flags2 |
additional.fields |
flags3 |
additional.fields |
flags4 |
additional.fields |
func |
security_result.detection_fields |
geolocation |
location.country_region |
Group(s) |
target.user.group_identifiers |
Group(s) |
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( Nat_ip이 IP 주소가 아닌 경우 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 |
Organization |
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 |
protocol |
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 |
request |
target.url |
ReqURL |
additional.fields |
resource_cmd |
target.resource.name |
resource_name |
principal.resource.name |
response |
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 |
Session |
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 |
State |
security_result.action_details |
state |
additional.fields |
state_value |
additional.fields |
StatusCode |
additional.fields |
SubjectName |
network.tls.client.certificate.subject |
summ |
security_result.summary |
summary |
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 |
User |
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 |
version |
additional.fields |
VPNexportState |
additional.fields |
Vport |
target.port |
Vserver Timestamp |
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 |
UDM 매핑 델타 참조
2026년 2월 3일 Google SecOps에서 NetScaler 로그 필드와 UDM 필드의 매핑에 대한 중요한 변경사항과 이벤트 유형의 매핑에 대한 변경사항이 포함된 새로운 버전의 NetScaler 파서를 출시했습니다.
로그 필드 매핑 델타
다음 표에는 2026년 2월 3일 이전에 노출된 NetScaler 로그-UDM 필드와 그 이후의 매핑 델타가 나와 있습니다 (각각 이전 매핑 및 현재 매핑 열에 나열됨).
| 로그 필드 | 이전 매핑 | 현재 매핑 |
|---|---|---|
act |
securit_.result.detetction_fields |
securtiy_result.action_details,security_result.action |
client_ip |
additional.fields |
principal.ip,principal.asset.ip |
ClientVersion |
network.tls.version |
network.tls.version_protocol |
connectionId |
security_result.detection_fields |
network.session_id |
CSAppname |
- |
- |
domain |
target.user.administrative_domain |
security_result.detection.fields,additional.fields |
end_time |
security_result.detection.fields security_result.last_discovered_time |
additional.fields |
event_id |
additional.fields |
metadata.product_log_id |
geolocation |
location.city |
location.country_region |
Group(s) |
target.user.group_display_name |
target.user.group_identifiers |
HandshakeTime |
network.session_duration.seconds |
additional.fields |
host.name |
intermediary.hostname |
target.hostname,target.asset.hostname |
hostname |
target.hostname,target.asset.hostname |
intermediary.hostname,intermediary.asset.hostname |
hostname |
principal.hostname,principal.asset.hostname |
target.hostname,target.asset.hostname |
ipaddress |
principal.ip,principal.asset.ip |
target.ip,target.asset.ip |
Nat_ip |
principal.ip,principal.asset.ip |
principal.nat_ip,principal.nat_ip |
port_details |
principal.labels |
principal.port |
principal_ip |
target.ip,target.asset.ip |
principal.ip,principal.asset.ip |
request |
security_result.summary |
target.url |
sess_seq |
additional.fields |
network.session_id |
session_guid |
metadata.product_log_id |
network.session_id |
source_hostname |
target.hostname,target.asset.hostname |
principal.hostname,principal.asset.hostname |
spcb_id |
additional.fields |
security_result.detecrion.fields |
ssid |
additional.fields |
network.session_id |
start_time |
security_result.detection.fields security_result.first_discovered_time |
additional.fields |
SubjectName |
principal.resource.attribute.labels |
network.tls.client.certificate.subject |
summary |
metadata.descritption |
security_result.summary |
target_port |
principal.port |
target.port |
trans_id |
security_result.detection.fields |
- |
user_id |
target.user.userid |
principal.user.userid |
이벤트 유형 매핑 델타
다음 표에는 2026년 2월 3일 이전과 이후의 NetScaler 이벤트 유형 처리의 차이가 나와 있습니다 (각각 이전 event_type 및 현재 event_type 열에 나열됨).
| 이전 event_type | 현재 event_type | 이유 |
|---|---|---|
NETWORK_CONNECTION |
NETWORK_DNS |
message_type이 DNS_QUERY이거나 has_network_dns이 true일 때 이름이 지정된 경우 |
NETWORK_CONNECTION |
NETWORK_HTTP |
message_type이 SSLVPN HTTPREQUEST인 경우: |
STATUS_UPDATE |
NETWORK_CONNECTION |
적절한 특정 이벤트 유형에 매핑됩니다. |
STATUS_UPDATE |
USER_RESOURCE_UPDATE_CONTENT |
message_type이 SNMP TRAP_SENT이고 has_target_resource이 true인 경우 적절한 특정 이벤트 유형에 매핑됩니다. |
STATUS_UPDATE |
USER_UNCATEGORIZED |
주 구성원 userid가 있는 경우 적절한 특정 이벤트 유형에 매핑됩니다. |
USER_RESOURCE_ACCESS |
NETWORK_HTTP |
message_type이 SSLVPN HTTPREQUEST인 경우 |
USER_STATS |
GENERIC_EVENT |
USER_STATS는 지원 중단되었으므로 적절한 특정 이벤트 유형에 매핑됩니다. |
USER_STATS |
NETWORK_CONNECTION |
USER_STATS는 지원 중단되었으므로 적절한 특정 이벤트 유형에 매핑됩니다. |
USER_STATS |
USER_LOGIN |
USER_STATS는 지원 중단되었으므로 적절한 특정 이벤트 유형에 매핑됩니다. |
USER_STATS |
USER_LOGOUT |
USER_STATS는 지원 중단되므로 message_type가 LOGOUT인 경우 적절한 특정 이벤트 유형에 매핑됩니다. |
USER_UNCATEGORIZED |
GENERIC_EVENT |
로그에 매핑할 기본 머신 필드가 없습니다. |
USER_UNCATEGORIZED |
NETWORK_CONNECTION |
적절한 특정 이벤트 유형에 매핑됩니다. |
USER_UNCATEGORIZED |
USER_LOGIN |
적절한 특정 이벤트 유형에 매핑됩니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.