Pulse Secure 로그 수집

다음에서 지원:

이 문서에서는 Google Security Operations 전달자를 사용하여 Pulse Secure 로그를 수집하는 방법을 설명합니다.

자세한 내용은 Google Security Operations에 데이터 수집 개요를 참조하세요.

수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다. 이 문서의 정보는 PULSE_SECURE_VPN 수집 라벨이 있는 파서에 적용됩니다.

Pulse Secure VPN 구성

Pulse Secure VPN을 구성하려면 다음 중 하나를 실행합니다.

  • Pulse Secure VPN 버전 8.3R3 이하 구성
  • Pulse Secure VPN 버전 8.3R4 이상 구성

Pulse Secure VPN 버전 8.3R3 이하 구성

  1. Pulse Connect Secure 콘솔에 로그인합니다.
  2. Pulse Connect Secure 콘솔에서 시스템 > 로그/모니터링 > 설정을 선택합니다. 이벤트 탭, 사용자 액세스 탭 또는 관리자 액세스 탭에서 설정을 선택할 수 있습니다.
  3. 로깅할 이벤트 선택 섹션에서 이벤트에 해당하는 체크박스를 모두 선택합니다.
  4. Syslog servers 섹션에서 다음을 수행합니다.
    1. 서버 이름/IP 필드에 Google Security Operations 전달자 IP 주소를 지정합니다.
    2. 설비 목록에서 LOCAL0을 선택합니다. 시설 목록에는 LOCAL0~LOCAL7의 8개 시설이 제공됩니다. 이러한 설정 중 하나를 사용하여 syslog 서버의 시설을 매핑할 수 있습니다.
    3. 유형 목록에서 UDP 또는 TCP를 선택합니다.
  5. 추가를 클릭합니다.
  6. 선택사항: 이벤트, 관리 액세스 또는 사용자 액세스 로그에 여러 syslog 서버를 추가하려면 2~4단계를 반복합니다.
  7. 변경사항 저장을 클릭합니다.
  8. 표준 로그 형식을 기본값으로 설정하려면 다음 단계를 따르세요.
    1. Pulse Connect Secure 콘솔을 엽니다.
    2. 이벤트 탭, 사용자 액세스 탭, 관리자 액세스 탭에서 필터일반으로 설정합니다.
    3. 표준 필터가 기본 필터로 정의되지 않은 경우 기본값으로 설정을 클릭합니다.
    4. 저장을 클릭합니다.

Pulse Secure VPN 버전 8.3R4 이상 구성

  1. Pulse Connect Secure 콘솔에서 이벤트 탭, 사용자 액세스 탭 또는 관리자 액세스 탭을 클릭한 다음 필터새 필터로 설정합니다.
  2. 필터 이름 필드에 필터의 이름을 입력합니다.
  3. 내보내기 형식 섹션에서 맞춤을 선택하고 필드에 다음 형식을 입력합니다.

    [SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%

  4. 저장을 클릭합니다.

  5. syslog 구성을 사용 설정할 기기 버전에 따라 다음 중 하나를 실행합니다.

    • Pulse Secure VPN에서 syslog 로깅 사용 설정
    • Ivanti Connect Secure에서 syslog 로깅 사용 설정

Pulse Secure VPN에서 syslog 로깅 사용 설정

  1. Pulse Connect Secure 콘솔에서 시스템 > 로그/모니터링 > 설정을 선택합니다. 이벤트 탭, 사용자 액세스 탭 또는 관리자 액세스 탭에서 설정을 선택할 수 있습니다.
  2. 로깅할 이벤트 선택 섹션에서 HTML5 액세스, 액세스 제어 메시지, 인증되지 않은 요청 체크박스를 제외한 모든 체크박스를 선택합니다.
  3. Syslog server 필드에 시스템로그 서버에 관한 정보를 입력합니다.
  4. Syslog servers 섹션에서 다음을 수행합니다.
    1. 서버 이름/IP 필드에 서버 이름 또는 Google Security Operations 전달자 IP 주소를 입력합니다.
    2. 설비 목록에서 LOCAL0을 선택합니다.
    3. 필터 목록에서 앞서 만든 필터를 선택합니다.
  5. 추가를 클릭합니다.
  6. 선택사항: 이벤트, 관리자 액세스 또는 사용자 액세스 로그에 여러 syslog 서버를 추가하려면 2~4단계를 반복합니다.
  7. 변경사항 저장을 클릭합니다.

Ivanti Connect Secure에서 syslog 로깅 사용 설정

  1. Pulse connect secure 콘솔에서 이벤트 탭, 사용자 액세스 탭 또는 관리자 액세스 탭을 클릭한 다음 필터를 선택합니다.
  2. 새 필터 탭을 클릭합니다.
  3. 내보내기 형식 섹션에서 맞춤을 선택하고 필드에 다음 형식을 입력합니다.

    [SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%

  4. 저장을 클릭합니다.

  5. 시스템 > 로그/모니터링을 클릭한 다음 설정 탭을 선택합니다.

  6. 최대 로그 크기 필드에서 최대 로그 크기를 지정하고 로깅할 이벤트를 선택합니다.

  7. 다음과 같이 서버 구성을 지정합니다.

    1. 서버 이름/IP 필드에 syslog 서버의 정규화된 도메인 이름 또는 Google 보안 운영 전달자 IP 주소를 지정합니다.

      유형 목록에서 전송 계층 보안 (TLS)을 선택하는 경우 서버 이름은 서버에서 가져온 인증서의 subjectDN에 있는 CN과 일치해야 합니다.

    2. 시설 목록에서 syslog 서버 시설 수준을 선택합니다.

    3. 유형 목록에서 syslog 서버의 연결 유형을 UDP, TCP 또는 TLS로 선택합니다. TLS는 암호화 프로토콜을 사용하여 보안 통신을 제공합니다.

      TLS를 선택하는 경우 syslog 서버를 인증하는 데 사용할 설치된 클라이언트 인증서를 선택합니다. 클라이언트 인증서는 구성 > 인증서 > 클라이언트 인증 인증서 창에 정의됩니다. 클라이언트 인증서를 사용하려면 기기에 설치해야 합니다. 인증 기관에 문의하여 인증서를 받습니다.

    4. 필터 목록에서 맞춤을 선택합니다.

  8. 추가를 클릭합니다.

Pulse Secure 로그를 수집하도록 Google Security Operations 전달자 구성

  1. SIEM 설정 > 전달자를 선택합니다.
  2. 새 전달자 추가를 클릭합니다.
  3. 전달자 이름 입력란에 전달자의 고유한 이름을 입력합니다.
  4. 제출을 클릭한 다음 확인을 클릭합니다. 전달자가 추가되고 수집기 구성 추가 창이 표시됩니다.
  5. 수집기 이름 필드에 수집기의 고유한 이름을 입력합니다.
  6. 로그 유형으로 Pulse Secure를 선택합니다.
  7. 수집기 유형으로 Syslog를 선택합니다.
  8. 다음 필수 입력 매개변수를 구성합니다.
    • 프로토콜: 수집기가 syslog 데이터를 리슨하는 데 사용하는 연결 프로토콜을 지정합니다.
    • 주소: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 IP 주소 또는 호스트 이름을 지정합니다.
    • 포트: 수집기가 상주하고 syslog 데이터를 리슨하는 대상 포트를 지정합니다.
  9. 제출을 클릭합니다.

Google Security Operations 전달자에 대한 자세한 내용은 Google Security Operations UI를 통해 전달자 구성 관리를 참고하세요.

전달자를 만들 때 문제가 발생하면 Google Security Operations 지원팀에 문의하세요.

필드 매핑 참조

이 파서는 Pulse Secure VPN 로그에서 필드를 추출하여 Windows 이벤트 로그와 syslog 형식을 모두 처리합니다. 다양한 로그 구조를 공통 형식으로 표준화하여 로그인, 로그아웃, 연결, 정책 변경과 같은 이벤트를 분류하고 사용자 에이전트, IP 주소, 타임스탬프와 같은 문맥 데이터로 보강합니다.

UDM 매핑 표

로그 필드 UDM 매핑 논리
action security_result.action_details action 필드에서 직접 매핑됩니다.
애플리케이션 principal.application application 필드에서 직접 매핑됩니다.
bytes_read network.received_bytes bytes_read 필드에서 직접 매핑되고 부호 없는 정수로 변환됩니다.
bytes_written network.sent_bytes bytes_written 필드에서 직접 매핑되고 부호 없는 정수로 변환됩니다.
client_host principal.hostname, principal.asset.hostname client_host 필드에서 직접 매핑됩니다.
cmd principal.process.command_line cmd 필드에서 직접 매핑됩니다.
connection_status security_result.detection_fields.value.string_value connection_status 필드에서 직접 매핑됩니다.
data_time metadata.event_timestamp.seconds 다양한 타임스탬프 형식 (MM-dd-yyyy HH:mm:ss Z, RFC 3339, ISO8601, MMM d HH:mm:ss, MMM d HH:mm:ss)을 사용하여 data_time 필드에서 파싱됩니다.
devname principal.hostname, principal.asset.hostname devname 필드에서 직접 매핑됩니다.
dstip target.ip, target.asset.ip dstip 필드에서 직접 매핑됩니다.
dstport target.port dstport 필드에서 직접 매핑되고 정수로 변환됩니다.
dstcountry target.location.country_or_region dstcountry 필드가 'Reserved'가 아니거나 비어 있지 않은 경우 dstcountry 필드에서 직접 매핑됩니다.
기간 network.session_duration.seconds duration 필드에서 직접 매핑되고 정수로 변환됩니다.
dvc intermediary.hostname 또는 intermediary.ip dvc 필드를 IP 주소로 변환할 수 있는 경우 intermediary.ip에 매핑됩니다. 그렇지 않으면 intermediary.hostname에 매핑됩니다.
dvc_hostname intermediary.hostname, principal.hostname, principal.asset.hostname 또는 intermediary.ip, principal.ip, principal.asset.ip dvc_hostname 필드를 IP 주소로 변환할 수 있는 경우 해당 IP 필드에 매핑됩니다. 그렇지 않으면 각 호스트 이름 필드에 매핑됩니다.
event_type metadata.product_event_type event_type 필드에서 직접 매핑됩니다.
failure_reason security_result.description failure_reason 필드에서 직접 매핑됩니다. 메시지에 'because host'가 포함된 경우 'host' 텍스트가 실패 이유 앞에 추가됩니다.
has_principal event.idm.read_only_udm.principal (존재) 기본 필드가 채워지면 'true'로 설정하고 채워지지 않으면 'false'로 설정합니다. 파서 로직에 의해 파생됩니다.
has_target event.idm.read_only_udm.target (존재) 대상 필드가 채워지면 'true'로, 채워지지 않으면 'false'로 설정합니다. 파서 로직에 의해 파생됩니다.
has_target_user event.idm.read_only_udm.target.user.userid (존재) target.user.userid가 채워지면 'true'로, 채워지지 않으면 'false'로 설정합니다. 파서 로직에 의해 파생됩니다.
host_ip principal.ip, principal.asset.ip host_ip 필드에서 직접 매핑됩니다.
host_mac principal.mac host_mac 필드에서 직접 매핑되며 하이픈이 콜론으로 대체됩니다.
http_method network.http.method http_method 필드에서 직접 매핑됩니다.
http_response network.http.response_code http_response 필드에서 직접 매핑되고 정수로 변환됩니다.
info_desc about.labels.value info_desc 필드에서 직접 매핑됩니다.
ip_new target.ip, target.asset.ip ip_new 필드에서 직접 매핑됩니다.
레벨 security_result.severity, security_result.severity_details security_result.severitylevel 필드에서 파생됩니다 ('error'/'warning' -> HIGH, 'notice' -> MEDIUM, 'information'/'info' -> LOW). level의 원시 값도 security_result.severity_details에 매핑됩니다.
logid metadata.product_log_id logid 필드에서 직접 매핑됩니다.
locip principal.ip, principal.asset.ip locip 필드에서 직접 매핑됩니다.
메시지 metadata.description grok 및 kv 필터를 사용하여 다양한 필드를 추출하는 데 사용됩니다. 메시지에 'EventID'가 포함된 경우 Windows 이벤트 로그로 처리됩니다.
message_info metadata.description 더 구체적인 grok 패턴에서 사용되지 않는 경우 metadata.description에 직접 매핑됩니다.
msg metadata.product_event_type, metadata.description msg 필드가 있으면 제품 유형이 추출되어 metadata.product_event_type에 매핑되고 나머지 메시지는 metadata.description에 매핑됩니다.
msg_hostname principal.hostname, principal.asset.hostname msg_hostname 필드에서 직접 매핑됩니다.
msg_ip principal.ip, principal.asset.ip msg_ip 필드에서 직접 매핑됩니다.
msg_user_agent network.http.user_agent, network.http.parsed_user_agent, metadata.product_version 사용자 에이전트 문자열은 network.http.user_agent에 매핑되고, 파싱된 사용자 에이전트는 network.http.parsed_user_agent에 매핑되며, 제품 버전 (있는 경우)은 metadata.product_version에 매핑됩니다.
network_duration network.session_duration.seconds network_duration 필드에서 직접 매핑되고 정수로 변환됩니다.
policyid security_result.rule_id policyid 필드에서 직접 매핑됩니다.
policyname security_result.rule_name policyname 필드에서 직접 매핑됩니다.
policytype security_result.rule_type policytype 필드에서 직접 매핑됩니다.
priority_code about.labels.value priority_code 필드에서 직접 매핑되며 'Severity' 키의 about.labels.value를 파생하는 데도 사용됩니다 (로직 참고).
prod_name metadata.product_name prod_name 필드에서 직접 매핑됩니다.
product_type metadata.product_event_type product_type 필드에서 직접 매핑됩니다.
product_version metadata.product_version product_version 필드에서 직접 매핑됩니다.
proto network.ip_protocol 조회를 사용하여 IP 프로토콜 이름으로 변환된 후 network.ip_protocol에 매핑됩니다.
pwd principal.process.file.full_path pwd 필드에서 직접 매핑됩니다.
렐름 principal.group.attribute.labels.value realm 필드에서 직접 매핑됩니다.
rcvdbyte network.received_bytes rcvdbyte 필드에서 직접 매핑되고 부호 없는 정수로 변환됩니다.
remip target.ip remip 필드에서 직접 매핑됩니다.
resource_name target.resource.name 선행/후행 공백과 하이픈을 삭제한 후 resource_name 필드에서 직접 매핑됩니다.
resource_status security_result.description resource_status 필드에서 직접 매핑됩니다.
resource_user_group principal.user.group_identifiers resource_user_group 필드에서 직접 매핑됩니다.
resource_user_name principal.user.userid resource_user_name 필드에서 직접 매핑됩니다.
역할 principal.user.group_identifiers roles 필드에서 직접 매핑됩니다.
sentbyte network.sent_bytes sentbyte 필드에서 직접 매핑되고 부호 없는 정수로 변환됩니다.
session_id network.session_id session_id 필드에서 직접 매핑됩니다.
sessionid network.session_id sessionid 필드에서 직접 매핑됩니다.
srcip principal.ip, principal.asset.ip srcip 필드에서 직접 매핑됩니다.
srcport principal.port srcport 필드에서 직접 매핑되고 정수로 변환됩니다.
srccountry principal.location.country_or_region srccountry 필드가 'Reserved'가 아니거나 비어 있지 않은 경우 srccountry 필드에서 직접 매핑됩니다.
하위유형 metadata.product_event_type type와 함께 사용하여 metadata.product_event_type을 형성합니다.
target_file target.file.full_path target_file 필드에서 직접 매핑됩니다.
target_host target.hostname, target.asset.hostname target_host 필드에서 직접 매핑됩니다.
target_ip target.ip, target.asset.ip target_ip 필드에서 직접 매핑됩니다.
target_port target.port target_port 필드에서 직접 매핑되고 정수로 변환됩니다.
target_url target.url target_url 필드에서 직접 매핑됩니다.
시간 metadata.event_timestamp.seconds 'yyyy-MM-dd HH:mm:ss' 형식을 사용하여 time 필드에서 파싱됩니다.
유형 metadata.product_event_type subtype와 함께 사용하여 metadata.product_event_type을 형성합니다.
u_event_source_ip principal.ip, principal.asset.ip 또는 target.ip target_ip 또는 target_host가 있으면 u_event_source_ipprincipal.ipprincipal.asset.ip에 매핑됩니다. 그 외의 경우 target_ip, target_host, target_url가 모두 비어 있으면 u_event_source_iptarget.ip에 매핑됩니다.
u_observer_ip observer.ip u_observer_ip 필드에서 직접 매핑됩니다.
u_prin_ip principal.ip, principal.asset.ip u_prin_ip 필드에서 직접 매핑됩니다.
사용자 target.user.userid user 필드에서 직접 매핑됩니다.
user_agent network.http.user_agent, network.http.parsed_user_agent 사용자 에이전트 문자열은 network.http.user_agent에 매핑되고 파싱된 사용자 에이전트는 network.http.parsed_user_agent에 매핑됩니다.
user_group_identifier target.user.group_identifiers 또는 principal.user.group_identifiers 대부분의 경우 target.user.group_identifiers에 매핑됩니다. IP 변경 (USER_UNCATEGORIZED) 및 영역 제한 이벤트에서 principal.user.group_identifiers에 매핑됩니다.
user_ip principal.ip, principal.asset.ip user_ip 필드에서 직접 매핑됩니다. 비어 있고 u_event_source_ip가 비어 있지 않으면 u_event_source_ip의 값을 사용합니다.
사용자 이름 principal.user.userid 또는 target.user.userid 대부분의 경우 principal.user.userid에 매핑됩니다. 일부 특정 시나리오 (예: detect_user_logout_failed가 false이고 detect_policy_change_failed가 false인 경우)에서는 target.user.userid에 매핑됩니다.
username_removed target.user.userid username_removed 필드에서 직접 매핑됩니다.
vd principal.administrative_domain vd 필드에서 직접 매핑됩니다.

metadata.vendor_name, metadata.product_name, metadata.event_type, metadata.log_type, network.ip_protocol, security_result.action, security_result.severity, extensions.auth.type는 로직 열에 설명된 조건에 따라 파서 로직에 의해 파생되거나 설정됩니다.

변경사항

2024-05-27

  • 'observer_hostname'이 'observer.hostname'에 매핑되었습니다.
  • 'dvc_hostname'이 유효한 IP 주소인 경우 'principal.ip'에 매핑하고 그 외의 경우에는 'principal.hostname'에 매핑했습니다.
  • 'priority_code', 'Syslog_version', 'info_desc'가 'about.labels'에 매핑되었습니다.
  • 'prod_name'이 'metadata.product_event_type'에 매핑되었습니다.

2024-04-16

  • SYSLOG 로그의 새 패턴을 파싱하는 새로운 GROK 패턴을 추가했습니다.
  • 'connection_status'가 'security_result.detection_fields'에 매핑되었습니다.

2024-02-26

  • 키-값 데이터를 파싱하는 'kv' 블록을 추가했습니다.
  • 'username'이 'target.user.userid'에 매핑되었습니다.
  • 'message_info'에 대한 조건부 검사가 추가되었습니다.
  • 'u_prin_ip'가 'principal.ip'에 매핑되었습니다.
  • 'u_observer_ip'가 'observer.ip'에 매핑되었습니다.

2023-11-07

  • 버그 수정:
  • 'observer_host'의 매핑을 'observer.hostname'에서 'additional.fields'로 수정했습니다.

2023-08-19

  • 실패 로그를 파싱하는 Grok 패턴을 추가했습니다.

2023-05-26

  • 새 syslog 로그를 지원하는 Grok 패턴을 추가했습니다.

2023-01-06

  • 'product_type'을 파싱하도록 grok를 수정하고 'metadata.product_event_type'에 매핑했습니다.

2022-10-25

  • session_id를 추출하기 위해 'message_info'에 관한 새로운 grok 패턴이 추가되었습니다.
  • 'session_id'가 'network.session_id'에 매핑되었습니다.
  • detect_policy_change_failed가 false인 경우 target.ip를 principal.ip로 변경했습니다.
  • detect_policy_change_failed가 false인 경우 target.mac을 principal.mac으로 변경했습니다.

2022-10-12

  • 개선사항 - 다음 필드에 대한 매핑이 추가되었습니다.
  • 'msg' 필드에서 IP 값을 추출하여 'principal.ip'에 매핑했습니다.
  • 'msg' 필드에서 호스트 이름 값을 추출하여 'principal.hostname'에 매핑했습니다.
  • 'user'가 'target.user.userid'에 매핑되었습니다.
  • 'realm'이 'principal.group.attribute.labels'에 매핑되었습니다.
  • 'roles'가 'principal.user.group_identifiers'에 매핑되었습니다.
  • 'metadata.event_type' 값을 'GENERIC_EVENT'에서 'USER_UNCATEGORIZED'로 수정했습니다.

2022-10-03

  • 개선사항 - 'sudo'가 포함된 로그를 파싱했습니다.
  • 새 키-값 쌍 유형 로그 형식에 대한 지원이 추가되었습니다.

2022-07-01

  • 개선사항 - 이벤트 ID 4624에 관한 새 이벤트 생성
  • 'principal.ip' 또는 'target.ip' 또는 'principal.hostname'이 null이 아닌 경우 metadata.event_type을 'GENERIC_EVENT'에서 'STATUS_UPDATE' 또는 'NETWORK_CONNECTION'으로 변경했습니다.

2022-04-13

  • 개선사항-GENERIC_EVENT event_type의 새 필드에 대한 매핑이 추가되었습니다.
  • user_ip를 event.idm.read_only_udm.principal.ip로 변경합니다.
  • user_group_identifier를 event.idm.read_only_udm.target.user.group_identifiers로 변경합니다.
  • 시간대를 포함하도록 모든 event_type의 타임스탬프를 수정했습니다.
  • GENERIC 및 NETWORK_CONNECTION 이벤트 유형의 user_ip, target_ip 필드를 수정했습니다.