Netskope 알림 로그 수집 v1

다음에서 지원:

개요

이 파서는 JSON 형식 메시지에서 Netskope 알림 로그를 추출하여 Google Security Operations UDM으로 변환합니다. 필드를 정규화하고, 타임스탬프를 파싱하고, 알림과 심각도를 처리하고, 네트워크 정보 (IP, 포트, 프로토콜)를 추출하고, 사용자 및 파일 데이터를 보강하고, 필드를 UDM 구조에 매핑합니다. 파서는 로그인 및 DLP 이벤트와 같은 특정 Netskope 활동도 처리하고 향상된 컨텍스트를 위해 맞춤 라벨을 추가합니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Google SecOps 인스턴스
  • Netskope에 대한 액세스 권한 관리

Netskope REST API 액세스 사용 설정

  1. 관리자 사용자 인증 정보를 사용하여 Netskope 테넌트에 로그인합니다.
  2. 설정 > 도구 > REST API v1로 이동합니다.
  3. Google SecOps 전용 새 API 키를 만듭니다.
  4. 설명이 포함된 이름을 입력합니다 (예: Google SecOps 키).
  5. 생성된 보안 비밀을 복사하여 저장합니다.

피드 설정

피드를 구성하려면 다음 단계를 따르세요.

  1. SIEM 설정 > 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 다음 페이지에서 단일 피드 구성을 클릭합니다.
  4. 피드 이름 필드에 피드 이름을 입력합니다(예: Netskope 알림 로그).
  5. 소스 유형으로 서드 파티 API를 선택합니다.
  6. 로그 유형으로 Netskope를 선택합니다.
  7. 다음을 클릭합니다.
  8. 다음 입력 파라미터의 값을 지정합니다.
    • 인증 HTTP 헤더: 이전에 <key>:<secret> 형식으로 생성된 키 쌍으로, Netskope API에 대해 인증하는 데 사용됩니다.
    • API 호스트 이름: Netskope REST API 엔드포인트의 FQDN (정규화된 도메인 이름)(예: myinstance.goskope.com)입니다.
    • API 엔드포인트: alerts를 입력합니다.
    • 콘텐츠 유형: 모두를 입력합니다.
  9. 다음을 클릭합니다.
  10. 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.

선택사항: Netskope 이벤트 로그를 수집하도록 피드 구성 추가

  1. SIEM 설정 > 피드로 이동합니다.
  2. 새로 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다 (예: Netskope 이벤트 로그).
  4. 소스 유형으로 서드 파티 API를 선택합니다.
  5. 로그 유형으로 Netskope를 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 파라미터의 값을 지정합니다.
    • 인증 HTTP 헤더: 이전에 <key>:<secret> 형식으로 생성된 키 쌍으로, Netskope API에 대해 인증하는 데 사용됩니다.
    • API 호스트 이름: Netskope REST API 엔드포인트의 FQDN (정규화된 도메인 이름)(예: myinstance.goskope.com)입니다.
    • API 엔드포인트: events를 입력합니다.
    • 콘텐츠 유형: 파싱하려는 이벤트에 따라 page, application, audit, infrastructure 또는 network를 입력합니다.
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
  8. 다음을 클릭합니다.
  9. 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.

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 또는 hostnamedstip 또는 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.ipprincipal.ip 배열로 병합했습니다.
srcip principal.ip grok을 사용하여 srcip 필드에서 추출하고 principal.asset.ipprincipal.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 전문가로부터 답변을 받으세요.