Netskope 알림 로그 수집 v1
다음에서 지원:
Google SecOps
SIEM
개요
이 파서는 JSON 형식 메시지에서 Netskope 알림 로그를 추출하여 Google Security Operations UDM으로 변환합니다. 필드를 정규화하고, 타임스탬프를 파싱하고, 알림과 심각도를 처리하고, 네트워크 정보 (IP, 포트, 프로토콜)를 추출하고, 사용자 및 파일 데이터를 보강하고, 필드를 UDM 구조에 매핑합니다. 파서는 로그인 및 DLP 이벤트와 같은 특정 Netskope 활동도 처리하고 향상된 컨텍스트를 위해 맞춤 라벨을 추가합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- Netskope에 대한 액세스 권한 관리
Netskope REST API 액세스 사용 설정
- 관리자 사용자 인증 정보를 사용하여 Netskope 테넌트에 로그인합니다.
- 설정 > 도구 > REST API v1로 이동합니다.
- Google SecOps 전용 새 API 키를 만듭니다.
- 설명이 포함된 이름을 입력합니다 (예: Google SecOps 키).
- 생성된 키와 보안 비밀을 복사하여 저장합니다.
피드 설정
피드를 구성하려면 다음 단계를 따르세요.
- SIEM 설정 > 피드로 이동합니다.
- 새 피드 추가를 클릭합니다.
- 다음 페이지에서 단일 피드 구성을 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다(예: Netskope 알림 로그).
- 소스 유형으로 서드 파티 API를 선택합니다.
- 로그 유형으로 Netskope를 선택합니다.
- 다음을 클릭합니다.
- 다음 입력 파라미터의 값을 지정합니다.
- 인증 HTTP 헤더: 이전에
<key>:<secret>
형식으로 생성된 키 쌍으로, Netskope API에 대해 인증하는 데 사용됩니다. - API 호스트 이름: Netskope REST API 엔드포인트의 FQDN (정규화된 도메인 이름)(예:
myinstance.goskope.com
)입니다. - API 엔드포인트: alerts를 입력합니다.
- 콘텐츠 유형: 모두를 입력합니다.
- 인증 HTTP 헤더: 이전에
- 다음을 클릭합니다.
- 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.
선택사항: Netskope 이벤트 로그를 수집하도록 피드 구성 추가
- SIEM 설정 > 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예: Netskope 이벤트 로그).
- 소스 유형으로 서드 파티 API를 선택합니다.
- 로그 유형으로 Netskope를 선택합니다.
- 다음을 클릭합니다.
- 다음 입력 파라미터의 값을 지정합니다.
- 인증 HTTP 헤더: 이전에
<key>:<secret>
형식으로 생성된 키 쌍으로, Netskope API에 대해 인증하는 데 사용됩니다. - API 호스트 이름: Netskope REST API 엔드포인트의 FQDN (정규화된 도메인 이름)(예:
myinstance.goskope.com
)입니다. - API 엔드포인트: events를 입력합니다.
- 콘텐츠 유형: 파싱하려는 이벤트에 따라 page, application, audit, infrastructure 또는 network를 입력합니다.
- 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
- 인증 HTTP 헤더: 이전에
- 다음을 클릭합니다.
- 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.
UDM 매핑 테이블
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
access_method |
extensions.auth.auth_details |
access_method 필드에서 직접 매핑됩니다. |
action |
security_result.action |
action 필드에서 직접 매핑되거나 action 이 'alert' 또는 'bypass'인 경우 QUARANTINE 로 설정됩니다. action 이 허용인 경우 ALLOW action 이 차단된 경우 BLOCK |
action |
security_result.action_details |
'alert' 또는 'bypass'인 경우 action 필드에서 매핑됩니다. |
activity |
security_result.description |
activity 필드에서 직접 매핑됩니다. |
alert |
is_alert |
alert 이 'yes'이면 true , 그렇지 않으면 false 로 설정합니다. |
alert_name |
- | IDM 객체에 매핑되지 않았습니다. |
alert_type |
security_result.category_details |
alert_type 필드에서 직접 매핑됩니다. |
app |
target.application |
app 필드에서 직접 매핑됩니다. |
app_activity |
additional.fields {key:"app_activity", value:{string_value: |
additional.fields 의 키-값 쌍으로 app_activity 필드에서 직접 매핑됩니다. |
app_session_id |
target.resource.attribute.labels {key:"App Session Id", value: |
grok을 사용하여 message 필드에서 추출하고 라벨로 추가했습니다. |
appcategory |
security_result.category_details |
category 이 비어 있는 경우 appcategory 필드에서 직접 매핑됩니다. |
browser |
network.http.user_agent |
'알 수 없음'이 아닌 경우 browser 필드에서 직접 매핑됩니다. |
browser_version |
network.http.parsed_user_agent.browser_version |
browser_version 필드에서 직접 매핑됩니다. |
browser_version |
network.http.parsed_user_agent.family |
browser_version 이 있는 경우 'USER_DEFINED'로 설정됩니다. |
category |
security_result.category_details |
category 필드에서 직접 매핑됩니다. |
cci |
security_result.detection_fields {key:"cci", value: |
detection_fields 의 키-값 쌍으로 cci 필드에서 직접 매핑됩니다. |
ccl |
security_result.confidence |
ccl 값에 따라 설정됩니다. 'poor' 또는 'low'는 LOW_CONFIDENCE 에 매핑되고, 'medium'은 MEDIUM_CONFIDENCE 에 매핑되고, 'high' 또는 'excellent'는 HIGH_CONFIDENCE 에 매핑됩니다. |
ccl |
security_result.confidence_details |
ccl 필드에서 직접 매핑됩니다. |
client_bytes |
network.sent_bytes |
부호 없는 정수로 변환된 후 client_bytes 필드에서 직접 매핑됩니다. |
count |
additional.fields {key:"count", value:{string_value: |
additional.fields 의 키-값 쌍으로 count 필드에서 직접 매핑됩니다. |
device |
principal.resource.resource_subtype |
device 필드에서 직접 매핑됩니다. |
device |
principal.resource.type |
device 필드가 있으면 'DEVICE'로 설정됩니다. |
dlp_file |
target.file.full_path |
있는 경우 dlp_file 필드에서 직접 매핑되고, 그렇지 않으면 file_path 에서 매핑됩니다. |
dlp_profile |
security_result.rule_type |
dlp_profile 필드에서 직접 매핑됩니다. |
dlp_rule |
security_result.rule_name |
dlp_rule 필드에서 직접 매핑됩니다. |
dlp_rule_severity |
security_result.severity |
alert_type 이 DLP인 경우 dlp_rule_severity 필드에서 직접 매핑됩니다. |
dlp_rule_severity |
_severity |
severity 이 비어 있으면 dlp_rule_severity 필드에서 매핑됩니다. |
domain |
target.asset.hostname |
domain 필드에서 직접 매핑됩니다. |
domain |
target.hostname |
domain 필드에서 직접 매핑됩니다. |
dsthost |
target.asset.hostname |
IP가 아니고 dstip 이 비어 있는 경우 dsthost 필드에서 직접 매핑되고, 그렇지 않으면 target.hostname 에 매핑됩니다. |
dsthost |
target.hostname |
IP가 아니고 dstip 이 비어 있지 않은 경우 dsthost 필드에서 직접 매핑됩니다. |
dstip |
target.asset.ip |
dstip 필드에서 직접 매핑됩니다. |
dstip |
target.ip |
dstip 필드에서 직접 매핑됩니다. |
dstport |
target.port |
정수로 변환된 후 dstport 필드에서 직접 매핑됩니다. |
dst_country |
target.location.country_or_region |
dst_country 필드에서 직접 매핑됩니다. |
dst_location |
target.location.city |
dst_location 필드에서 직접 매핑됩니다. |
dst_region |
target.location.name |
dst_region 필드에서 직접 매핑됩니다. |
file_path |
target.file.full_path |
dlp_file 이 비어 있는 경우 file_path 필드에서 직접 매핑됩니다. |
file_size |
target.file.size |
부호 없는 정수로 변환된 후 file_size 필드에서 직접 매핑됩니다. |
file_type |
target.file.mime_type |
'알 수 없음'이 아닌 경우 file_type 필드에서 직접 매핑됩니다. |
from_user |
network.email.from |
이메일 주소인 경우 from_user 필드에서 직접 매핑됩니다. |
from_user_category |
principal.resource.attribute.labels {key:"From User Category", value: |
principal.resource.attribute.labels 의 키-값 쌍으로 from_user_category 필드에서 직접 매핑됩니다. |
hostname |
principal.asset.hostname |
비어 있지 않은 경우 hostname 필드에서 직접 매핑되고, 비어 있는 경우 instance_id 에서 매핑됩니다. |
hostname |
principal.hostname |
비어 있지 않은 경우 hostname 필드에서 직접 매핑되고, 비어 있는 경우 instance_id 에서 매핑됩니다. |
id.time |
metadata.event_timestamp |
파싱되어 메타데이터의 event_timestamp에 매핑됩니다. |
instance_id |
principal.asset.hostname |
hostname 이 비어 있는 경우 instance_id 필드에서 직접 매핑됩니다. |
instance_id |
principal.hostname |
hostname 이 비어 있는 경우 instance_id 필드에서 직접 매핑됩니다. |
intermediary |
intermediary |
intermediary 필드에서 직접 매핑됩니다. |
ip_protocol |
network.ip_protocol |
parse_ip_protocol.include 파일에 의해 파싱된 후 ip_protocol 필드에서 매핑됩니다. |
ja3 |
network.tls.client.ja3 |
16진수 패턴과 일치하는 경우 ja3 필드에서 직접 매핑됩니다. |
ja3s |
network.tls.server.ja3s |
16진수 패턴과 일치하는 경우 ja3s 필드에서 직접 매핑됩니다. |
malware_id |
security_result.threat_id |
malware_id 필드에서 직접 매핑됩니다. |
malware_name |
security_result.threat_name |
malware_name 필드에서 직접 매핑됩니다. |
malware_severity |
security_result.severity |
대문자로 변환된 후 malware_severity 필드에서 직접 매핑됩니다. |
malware_type |
security_result.detection_fields {key:"Malware Type", value: |
detection_fields 의 키-값 쌍으로 malware_type 필드에서 직접 매핑됩니다. |
matched_username |
principal.user.email_addresses |
이메일 주소인 경우 matched_username 필드에서 직접 매핑됩니다. |
md5 |
target.file.md5 |
md5 필드가 비어 있지 않거나 '사용할 수 없음'인 경우 직접 매핑됩니다. |
metadata.event_type |
metadata.event_type |
처음에는 'GENERIC_EVENT'로 설정되며 다른 필드에 따라 재정의될 수 있습니다. srcip 또는 hostname 와 dstip 또는 dsthost 또는 domain 가 있는 경우 NETWORK_HTTP 로 설정됩니다. srcip 또는 hostname 가 있지만 dstip , dsthost 또는 domain 가 없는 경우 STATUS_UPDATE 로 설정합니다. user 이 있으면 USER_UNCATEGORIZED 로 설정합니다. activity 이 '인트로스펙션 스캔'이고 shared_with 또는 from_user 가 있는 경우 EMAIL_UNCATEGORIZED 로 설정됩니다. activity 이 '로그인 실패', '로그인 성공' 또는 '로그인 시도'인 경우 USER_LOGIN 로 설정합니다. |
metadata.log_type |
metadata.log_type |
'NETSKOPE_ALERT'로 설정합니다. |
metadata.product_log_id |
metadata.product_log_id |
_id 필드에서 직접 매핑됩니다. |
metadata.product_name |
metadata.product_name |
'Netskope Alert'로 설정됩니다. |
metadata.vendor_name |
metadata.vendor_name |
'Netskope'으로 설정합니다. |
netskope_pop |
observer.hostname |
netskope_pop 필드에서 직접 매핑됩니다. |
object |
additional.fields {key:"Object", value:{string_value: |
additional.fields 의 키-값 쌍으로 object 필드에서 직접 매핑됩니다. |
object_id |
additional.fields {key:"Object id", value:{string_value: |
additional.fields 의 키-값 쌍으로 object_id 필드에서 직접 매핑됩니다. |
object_type |
additional.fields {key:"Object type", value:{string_value: |
additional.fields 의 키-값 쌍으로 object_type 필드에서 직접 매핑됩니다. |
organization_unit |
principal.administrative_domain |
organization_unit 필드에서 직접 매핑됩니다. |
os |
principal.platform |
os 필드에서 매핑됨: 'Windows'는 WINDOWS 에, 'MAC'은 MAC 에, 'LINUX'는 LINUX 에 매핑됩니다. |
os_version |
principal.platform_version |
os_version 필드에서 직접 매핑됩니다. |
other_categories |
- | IDM 객체에 매핑되지 않았습니다. |
page |
network.http.referral_url |
referer 이 비어 있는 경우 page 필드에서 직접 매핑됩니다. |
policy |
security_result.summary |
policy 필드에서 직접 매핑됩니다. |
principal.user.email_addresses |
principal.user.email_addresses |
이메일 주소인 경우 user 필드에서 병합됩니다. |
protocol |
network.application_protocol |
첫 번째 '/' 뒤의 모든 항목을 삭제한 후 protocol 필드에서 직접 매핑됩니다. 대문자로 변환됩니다. |
publisher_cn |
additional.fields {key:"publisher_cn", value:{string_value: |
additional.fields 의 키-값 쌍으로 publisher_cn 필드에서 직접 매핑됩니다. |
publisher_name |
additional.fields {key:"publisher_name", value:{string_value: |
additional.fields 의 키-값 쌍으로 publisher_name 필드에서 직접 매핑됩니다. |
referer |
network.http.referral_url |
referer 필드에서 직접 매핑됩니다. |
security_result.alert_state |
security_result.alert_state |
alert 이 'yes'인 경우 'ALERTING', alert 이 'no'인 경우 'NOT_ALERTING', 그렇지 않은 경우 'UNSPECIFIED'로 설정됩니다. |
security_result.category_details |
security_result.category_details |
category 또는 appcategory 또는 alert_type 필드에서 병합되었습니다. |
security_result.confidence |
security_result.confidence |
ccl 필드에서 파생됩니다. |
security_result.confidence_details |
security_result.confidence_details |
ccl 필드에서 직접 매핑됩니다. |
security_result.description |
security_result.description |
activity 필드에서 직접 매핑됩니다. |
security_result.rule_name |
security_result.rule_name |
dlp_rule 필드에서 직접 매핑됩니다. |
security_result.rule_type |
security_result.rule_type |
dlp_profile 필드에서 직접 매핑됩니다. |
security_result.severity |
security_result.severity |
_severity , malware_severity 또는 dlp_rule_severity 필드에서 파생됩니다. |
security_result.summary |
security_result.summary |
policy 필드에서 직접 매핑됩니다. |
security_result.threat_id |
security_result.threat_id |
malware_id 필드에서 직접 매핑됩니다. |
security_result.threat_name |
security_result.threat_name |
malware_name 필드에서 직접 매핑됩니다. |
server_bytes |
network.received_bytes |
부호 없는 정수로 변환된 후 server_bytes 필드에서 직접 매핑됩니다. |
severity |
_severity |
severity 필드에서 직접 매핑됩니다. |
sha256 |
target.file.sha256 |
sha256 필드에서 직접 매핑됩니다. |
shared_with |
network.email.to |
shared_with 필드에서 파싱되며 이메일 주소인 경우 network.email.to 배열에 추가됩니다. |
site |
additional.fields {key:"site", value:{string_value: |
additional.fields 의 키-값 쌍으로 site 필드에서 직접 매핑됩니다. |
src_country |
principal.location.country_or_region |
src_country 필드에서 직접 매핑됩니다. |
src_latitude |
principal.location.region_latitude |
src_latitude 필드에서 직접 매핑됩니다. |
src_location |
principal.location.city |
src_location 필드에서 직접 매핑됩니다. |
src_longitude |
principal.location.region_longitude |
src_longitude 필드에서 직접 매핑됩니다. |
src_region |
principal.location.name |
src_region 필드에서 직접 매핑됩니다. |
srcip |
principal.asset.ip |
grok을 사용하여 srcip 필드에서 추출하고 principal.asset.ip 및 principal.ip 배열로 병합했습니다. |
srcip |
principal.ip |
grok을 사용하여 srcip 필드에서 추출하고 principal.asset.ip 및 principal.ip 배열로 병합했습니다. |
srcport |
principal.port |
정수로 변환된 후 srcport 필드에서 직접 매핑됩니다. |
target.user.email_addresses |
target.user.email_addresses |
이메일 주소인 경우 to_user 필드에서 병합됩니다. |
threat_match_field |
security_result.detection_fields {key:"Threat Match Field", value: |
detection_fields 의 키-값 쌍으로 threat_match_field 필드에서 직접 매핑됩니다. |
timestamp |
metadata.event_timestamp |
timestamp 또는 id.time 필드에서 파싱됩니다. |
to_user |
target.user.email_addresses |
to_user 필드에서 파싱되며 이메일 주소인 경우 target.user.email_addresses 배열에 추가됩니다. |
to_user_category |
target.resource.attribute.labels {key:"To User Category", value: |
target.resource.attribute.labels 의 키-값 쌍으로 to_user_category 필드에서 직접 매핑됩니다. |
traffic_type |
security_result.detection_fields {key:"traffic_type", value: |
detection_fields 의 키-값 쌍으로 traffic_type 필드에서 직접 매핑됩니다. |
tunnel_id |
additional.fields {key:"tunnel_id", value:{string_value: |
additional.fields 의 키-값 쌍으로 tunnel_id 필드에서 직접 매핑됩니다. |
tunnel_type |
additional.fields {key:"tunnel_type", value:{string_value: |
additional.fields 의 키-값 쌍으로 tunnel_type 필드에서 직접 매핑됩니다. |
type |
security_result.detection_fields {key:"type", value: |
detection_fields 의 키-값 쌍으로 type 필드에서 직접 매핑됩니다. |
ur_normalized |
- | IDM 객체에 매핑되지 않았습니다. |
url |
target.url |
url 필드에서 직접 매핑됩니다. |
user |
event.idm.read_only_udm.principal.user.userid |
user 필드에서 직접 매핑됩니다. |
user |
principal.user.email_addresses |
이메일 주소인 경우 user 필드에서 직접 매핑됩니다. |
useragent |
network.http.user_agent |
useragent 필드에서 직접 매핑됩니다. |
useragent |
network.http.parsed_user_agent |
parseduseragent로 변환되고 network.http.parsed_user_agent 에 매핑되었습니다. |
user_agent |
network.http.user_agent |
user_agent 필드에서 직접 매핑됩니다. |
user_agent |
network.http.parsed_user_agent |
parseduseragent로 변환되고 network.http.parsed_user_agent 에 매핑되었습니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.