Tanium Stream 로그 수집

다음에서 지원:

이 문서에서는 Tanium Connect의 기본 AWS S3 내보내기 기능을 사용하여 Tanium Stream 로그를 Google Security Operations에 수집하는 방법을 설명합니다. Tanium Stream은 맞춤 Lambda 함수가 필요 없이 Tanium Connect를 사용하여 S3로 직접 내보낼 수 있는 JSON 형식으로 실시간 엔드포인트 원격 분석, 위협 추적 데이터, 행동 분석을 제공합니다. 파서는 Tanium Stream의 원시 JSON 로그를 통합 데이터 모델 (UDM)로 변환합니다. 먼저 일반적인 필드를 정규화한 다음 'logType' 또는 'eventType'에 따라 특정 로직을 적용하여 관련 정보를 적절한 UDM 필드에 매핑하고 네트워크 연결, 사용자 로그인, 프로세스 실행, 파일 수정과 같은 다양한 이벤트 유형을 처리합니다.

시작하기 전에

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

  • Google SecOps 인스턴스
  • Tanium Core Platform 7.0 이상
  • Tanium Stream 모듈이 설치되고 구성됨
  • 유효한 라이선스로 설치된 Tanium Connect 모듈
  • Tanium Threat Response 3.4.346 이상 (TR 통합을 사용하는 경우)
  • 관리 권한이 있는 Tanium Console에 대한 권한 액세스
  • AWS (S3, IAM)에 대한 관리자 액세스

Tanium Stream 서비스 계정 구성

  1. Tanium Console에 로그인합니다.
  2. 모듈 > 스트림으로 이동합니다.
  3. 오른쪽 상단에서 설정을 클릭합니다.
  4. 서비스 계정 섹션에서 다음을 구성합니다.
    • 서비스 계정 사용자: 적절한 스트림 권한이 있는 사용자를 선택합니다.
    • 계정에 연결 사용자 역할 권한이 있는지 확인합니다.
    • 스트림 데이터 소스 및 엔드포인트에 대한 액세스 권한을 확인합니다.
  5. 저장을 클릭하여 서비스 계정 구성을 적용합니다.

Tanium Stream 기본 요건 수집

  1. 관리자로 Tanium Console에 로그인합니다.
  2. 관리 > 권한 > 사용자로 이동합니다.
  3. 다음 역할이 있는 서비스 계정 사용자를 만들거나 식별합니다.
    • 스트림 관리자 또는 스트림 읽기 전용 사용자 역할
    • Connect User 역할 권한
    • 모니터링 중인 컴퓨터 그룹에 대한 액세스 권한 (권장: 모든 컴퓨터 그룹)
    • 스트림 콘텐츠 세트에 대한 저장된 질문 읽기 권한

Google SecOps용 AWS S3 버킷 및 IAM 구성

  1. 이 사용자 가이드(버킷 만들기)에 따라 Amazon S3 버킷을 만듭니다.
  2. 나중에 참조할 수 있도록 버킷 이름리전을 저장합니다 (예: tanium-stream-logs).
  3. 이 사용자 가이드(IAM 사용자 만들기)에 따라 사용자를 만듭니다.
  4. 생성된 사용자를 선택합니다.
  5. 보안 사용자 인증 정보 탭을 선택합니다.
  6. 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
  7. 사용 사례서드 파티 서비스를 선택합니다.
  8. 다음을 클릭합니다.
  9. 선택사항: 설명 태그를 추가합니다.
  10. 액세스 키 만들기를 클릭합니다.
  11. CSV 파일 다운로드를 클릭하여 나중에 사용할 수 있도록 액세스 키비밀 액세스 키를 저장합니다.
  12. 완료를 클릭합니다.
  13. 권한 탭을 선택합니다.
  14. 권한 정책 섹션에서 권한 추가를 클릭합니다.
  15. 권한 추가를 선택합니다.
  16. 정책 직접 연결을 선택합니다.
  17. AmazonS3FullAccess 정책을 검색하여 선택합니다.
  18. 다음을 클릭합니다.
  19. 권한 추가를 클릭합니다.

Tanium Connect AWS S3 대상 구성

  1. Tanium Console에 로그인합니다.
  2. 모듈 > 연결로 이동합니다.
  3. 연결 만들기를 클릭합니다.
  4. 다음 구성 세부정보를 제공합니다.
    • 이름: 설명이 포함된 이름을 입력합니다 (예: Stream Telemetry to S3 for SecOps).
    • 설명: 선택사항인 설명입니다 (예: Export endpoint telemetry and threat hunting data to AWS S3 for Google SecOps ingestion).
    • 사용 설정: 연결이 일정에 따라 실행되도록 사용 설정하려면 선택합니다.
  5. 다음을 클릭합니다.

연결 소스 구성

  1. 소스 섹션에서 다음 구성 세부정보를 제공합니다.
    • 소스 유형: 저장된 질문을 선택합니다.
    • 저장된 질문: 다음 스트림 관련 저장된 질문 중 하나를 선택합니다.
      • 실시간 엔드포인트 원격 분석을 위한 스트림 - 엔드포인트 이벤트
      • 네트워크 활동 모니터링을 위한 스트림 - 네트워크 이벤트
      • 프로세스 실행 추적을 위한 스트림 - 프로세스 이벤트
      • 파일 시스템 활동의 경우 스트림 - 파일 이벤트
      • 행동 분석을 위한 스트림 - 위협 탐색 데이터
    • 컴퓨터 그룹: 모든 컴퓨터 또는 모니터링할 특정 컴퓨터 그룹을 선택합니다.
    • 새로고침 간격: 데이터 수집에 적합한 간격을 설정합니다 (예: 실시간 원격 분석의 경우 5분).
  2. 다음을 클릭합니다.

AWS S3 대상 구성

  1. 대상 섹션에서 다음 구성 세부정보를 제공합니다.
    • 대상 유형: AWS S3를 선택합니다.
    • 대상 이름: 고유한 이름을 입력합니다 (예: Google SecOps Stream S3 Destination).
    • AWS 액세스 키: AWS S3 구성 단계에서 다운로드한 CSV 파일의 AWS 액세스 키를 입력합니다.
    • AWS 보안 비밀 액세스 키: AWS S3 구성 단계에서 다운로드한 CSV 파일의 AWS 보안 비밀 액세스 키를 입력합니다.
    • 버킷 이름: S3 버킷 이름 (예: tanium-stream-logs)을 입력합니다.
    • 리전: S3 버킷이 있는 AWS 리전을 선택합니다.
    • 키 접두사: S3 객체의 접두사를 입력합니다 (예: tanium/stream/).
  2. 다음을 클릭합니다.

필터 구성

  1. 필터 섹션에서 데이터 필터링 옵션을 구성합니다.
    • 새 항목만 전송: 마지막 내보내기 이후의 새 원격 분석 데이터만 전송하려면 이 옵션을 선택합니다.
    • 열 필터: 필요한 경우 특정 이벤트 속성을 기반으로 필터를 추가합니다 (예: 이벤트 유형, 프로세스 이름 또는 위협 지표별로 필터링).
  2. 다음을 클릭합니다.

AWS S3용 데이터 형식 지정

  1. 형식 섹션에서 데이터 형식을 구성합니다.
    • 형식: JSON을 선택합니다.
    • 옵션:
      • 헤더 포함: JSON 출력에 헤더가 포함되지 않도록 하려면 선택 해제합니다.
      • 빈 셀 포함: 환경설정에 따라 선택합니다.
    • 고급 옵션:
      • 파일 이름 지정: 기본 타임스탬프 기반 이름 지정을 사용합니다.
      • 압축: 스토리지 비용과 전송 시간을 줄이려면 Gzip을 선택합니다.
  2. 다음을 클릭합니다.

연결 예약

  1. 일정 섹션에서 내보내기 일정을 구성합니다.
    • 일정 사용 설정: 자동 예약 내보내기를 사용 설정하려면 선택합니다.
    • 일정 유형: 반복을 선택합니다.
    • 빈도: 거의 실시간 원격 분석 데이터를 위해 5분마다를 선택합니다.
    • 시작 시간: 첫 번째 내보내기에 적절한 시작 시간을 설정합니다.
  2. 다음을 클릭합니다.

연결 저장 및 확인

  1. 요약 화면에서 연결 구성을 검토합니다.
  2. Save(저장)를 클릭하여 연결을 만듭니다.
  3. 연결 테스트를 클릭하여 구성을 확인합니다.
  4. 테스트가 완료되면 지금 실행을 클릭하여 초기 내보내기를 실행합니다.
  5. 연결 개요 페이지에서 연결 상태를 모니터링합니다.

Tanium Stream 로그를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정> 피드로 이동합니다.
  2. + 새 피드 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다 (예: Tanium Stream logs).
  4. 소스 유형으로 Amazon S3 V2를 선택합니다.
  5. 로그 유형으로 Tanium Stream을 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 파라미터의 값을 지정합니다.
    • S3 URI: s3://tanium-stream-logs/tanium/stream/
    • 소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
    • 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다. 기본값은 180일입니다.
    • 액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키입니다.
    • 보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키입니다.
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
  8. 다음을 클릭합니다.
  9. 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
additional.event__AlgorithmName additional.fields.key: eventAlgorithmName
additional.fields.value.string_value: %{additional.event
AlgorithmName}
원시 로그 필드 additional.event__AlgorithmName에서 직접 가져온 값입니다.
additional.event__AuthenticationPackageName target.resource.name: %{additional.event__AuthenticationPackageName} 원시 로그 필드 additional.event__AuthenticationPackageName에서 직접 가져온 값입니다.
additional.event__CallerProcessId principal.process.pid: %{additional.event__CallerProcessId} 원시 로그 필드 additional.event__CallerProcessId에서 직접 가져온 값입니다.
additional.event__CallerProcessName principal.process.file.fullpath: %{additional.event_CallerProcessName} 원시 로그 필드 additional.event__CallerProcessName에서 직접 가져온 값입니다.
additional.event__ClientProcessId principal.process.pid: %{additional.event__ClientProcessId} 원시 로그 필드 additional.event__ClientProcessId에서 직접 가져온 값입니다.
additional.event__ClientProcessStartKey additional.fields.key: eventClientProcessStartKey
additional.fields.value.string_value: %{additional.event
ClientProcessStartKey}
원시 로그 필드 additional.event__ClientProcessStartKey에서 직접 가져온 값입니다.
additional.event__CommandLine target.process.commandline: %{additional.event_CommandLine} 원시 로그 필드 additional.event__CommandLine에서 직접 가져온 값입니다.
additional.event__ElevatedToken additional.fields.key: event__ElevatedToken
additional.fields.value.string_value: Yes/No
원시 로그 필드 additional.event__ElevatedToken에서 직접 가져온 값입니다.
값이 '%%1842'인 경우 '예'로 대체됩니다.
값이 '%%1843'인 경우 '아니요'로 대체됩니다.
additional.event__FQDN principal.hostname: %{additional.event__FQDN} 원시 로그 필드 additional.event__FQDN에서 직접 가져온 값입니다.
additional.event__FailureReason additional.fields.key: eventFailureReason
additional.fields.value.string_value: %{additional.event
FailureReason}
원시 로그 필드 additional.event__FailureReason에서 직접 가져온 값입니다.
additional.event__ImpersonationLevel additional.fields.key: eventImpersonationLevel
additional.fields.value.string_value: %{additional.event
ImpersonationLevel}
원시 로그 필드 additional.event__ImpersonationLevel에서 직접 가져온 값입니다.
additional.event__IpAddress target.ip: %{additional.event__IpAddress} 원시 로그 필드 additional.event__IpAddress에서 직접 가져온 값입니다.
additional.event__IpPort target.port: %{additional.event__IpPort} 원시 로그 필드 additional.event__IpPort에서 직접 가져와 정수로 변환된 값입니다.
additional.event__KeyLength additional.fields.key: eventKeyLength
additional.fields.value.string_value: %{additional.event
KeyLength}
원시 로그 필드 additional.event__KeyLength에서 직접 가져온 값입니다.
additional.event__KeyName additional.fields.key: eventKeyName
additional.fields.value.string_value: %{additional.event
KeyName}
원시 로그 필드 additional.event__KeyName에서 직접 가져온 값입니다.
additional.event__KeyType additional.fields.key: eventKeyType
additional.fields.value.string_value: %{additional.event
KeyType}
원시 로그 필드 additional.event__KeyType에서 직접 가져온 값입니다.
additional.event__LmPackageName additional.fields.key: eventLmPackageName
additional.fields.value.string_value: %{additional.event
LmPackageName}
원시 로그 필드 additional.event__LmPackageName에서 직접 가져온 값입니다.
additional.event__LogonGuid target.resource.product_objectid: %{additional.event_LogonGuid} 중괄호가 삭제된 원시 로그 필드 additional.event__LogonGuid에서 직접 가져온 값입니다.
additional.event__LogonProcessName target.process.file.fullpath: %{additional.event_LogonProcessName} 원시 로그 필드 additional.event__LogonProcessName에서 직접 가져온 값입니다.
additional.event__LogonType extensions.auth.authdetails: Logon Type: %{additional.event_LogonType} 원시 로그 필드 additional.event__LogonType에서 직접 가져온 값입니다.
additional.event__MandatoryLabel additional.fields.key: eventMandatoryLabel
additional.fields.value.string_value: %{additional.event
MandatoryLabel}
원시 로그 필드 additional.event__MandatoryLabel에서 직접 가져온 값입니다.
additional.event__NewProcessId target.process.pid: %{additional.event__NewProcessId} 원시 로그 필드 additional.event__NewProcessId에서 직접 가져온 값입니다.
additional.event__NewProcessName target.process.file.fullpath: %{additional.event_NewProcessName} 원시 로그 필드 additional.event__NewProcessName에서 직접 가져온 값입니다.
additional.event__ObjectServer security_result.categorydetails: %{additional.event_ObjectServer} 원시 로그 필드 additional.event__ObjectServer에서 직접 가져온 값입니다.
additional.event__Operation additional.fields.key: eventOperation
additional.fields.value.string_value: %{additional.event
Operation}
원시 로그 필드 additional.event__Operation에서 직접 가져온 값입니다.
additional.event__ParentProcessId principal.process.parentprocess.pid: %{additional.event_ParentProcessId} 원시 로그 필드 additional.event__ParentProcessId에서 직접 가져온 값입니다.
additional.event__ParentProcessName principal.process.parent_process.file.fullpath: %{additional.event_ParentProcessName} 원시 로그 필드 additional.event__ParentProcessName에서 직접 가져온 값입니다.
additional.event__ProcessId principal.process.pid: %{additional.event__ProcessId} 원시 로그 필드 additional.event__ProcessId에서 직접 가져온 값입니다.
additional.event__ProcessName principal.process.file.fullpath: %{additional.event_ProcessName} 원시 로그 필드 additional.event__ProcessName에서 직접 가져온 값입니다.
additional.event__PrivilegeList principal.user.attribute.permissions.name: %{additional.event__PrivilegeList} 원시 로그 필드 additional.event__PrivilegeList에서 직접 가져온 값입니다.
additional.event__ProviderName additional.fields.key: eventProviderName
additional.fields.value.string_value: %{additional.event
ProviderName}
원시 로그 필드 additional.event__ProviderName에서 직접 가져온 값입니다.
additional.event__RestrictedAdminMode additional.fields.key: eventRestrictedAdminMode
additional.fields.value.string_value: %{additional.event
RestrictedAdminMode}
원시 로그 필드 additional.event__RestrictedAdminMode에서 직접 가져온 값입니다.
additional.event__ReturnCode additional.fields.key: eventReturnCode
additional.fields.value.string_value: %{additional.event
ReturnCode}
원시 로그 필드 additional.event__ReturnCode에서 직접 가져온 값입니다.
additional.event__RpcCallClientLocality additional.fields.key: eventRpcCallClientLocality
additional.fields.value.string_value: %{additional.event
RpcCallClientLocality}
원시 로그 필드 additional.event__RpcCallClientLocality에서 직접 가져온 값입니다.
additional.event__Service securityresult.description: %{additional.event_Service} 원시 로그 필드 additional.event__Service에서 직접 가져온 값입니다.
additional.event__Status additional.fields.key: eventStatus
additional.fields.value.string_value: %{additional.event
Status}
원시 로그 필드 additional.event__Status에서 직접 가져온 값입니다.
additional.event__SubStatus additional.fields.key: eventSubStatus
additional.fields.value.string_value: %{additional.event
SubStatus}
원시 로그 필드 additional.event__SubStatus에서 직접 가져온 값입니다.
additional.event__SubjectDomainName principal.administrativedomain: %{additional.event_SubjectDomainName} 원시 로그 필드 additional.event__SubjectDomainName에서 직접 가져온 값입니다.
additional.event__SubjectLogonId additional.fields.key: eventSubjectLogonId
additional.fields.value.string_value: %{additional.event
SubjectLogonId}
원시 로그 필드 additional.event__SubjectLogonId에서 직접 가져온 값입니다.
additional.event__SubjectUserName principal.user.user_displayname: %{additional.event_SubjectUserName} 원시 로그 필드 additional.event__SubjectUserName에서 직접 가져온 값입니다.
additional.event__SubjectUserSid principal.user.windowssid: %{additional.event_SubjectUserSid} 원시 로그 필드 additional.event__SubjectUserSid에서 직접 가져온 값입니다.
additional.event__TaskContentNew additional.fields.key: eventTaskContentNew
additional.fields.value.string_value: %{additional.event
TaskContentNew}
원시 로그 필드 additional.event__TaskContentNew에서 직접 가져온 값입니다.
additional.event__TaskName additional.fields.key: eventTaskName
additional.fields.value.string_value: %{additional.event
TaskName}
원시 로그 필드 additional.event__TaskName에서 직접 가져온 값입니다.
additional.event__TargetDomainName target.administrativedomain: %{additional.event_TargetDomainName} 원시 로그 필드 additional.event__TargetDomainName에서 직접 가져온 값입니다.
additional.event__TargetLinkedLogonId additional.fields.key: eventTargetLinkedLogonId
additional.fields.value.string_value: %{additional.event
TargetLinkedLogonId}
원시 로그 필드 additional.event__TargetLinkedLogonId에서 직접 가져온 값입니다.
additional.event__TargetLogonId additional.fields.key: eventTargetLogonId
additional.fields.value.string_value: %{additional.event
TargetLogonId}
원시 로그 필드 additional.event__TargetLogonId에서 직접 가져온 값입니다.
additional.event__TargetOutboundDomainName additional.fields.key: eventTargetOutboundDomainName
additional.fields.value.string_value: %{additional.event
TargetOutboundDomainName}
원시 로그 필드 additional.event__TargetOutboundDomainName에서 직접 가져온 값입니다.
additional.event__TargetOutboundUserName additional.fields.key: eventTargetOutboundUserName
additional.fields.value.string_value: %{additional.event
TargetOutboundUserName}
원시 로그 필드 additional.event__TargetOutboundUserName에서 직접 가져온 값입니다.
additional.event__TargetSid target.user.windowssid: %{additional.event_TargetSid} 원시 로그 필드 additional.event__TargetSid에서 직접 가져온 값입니다.
additional.event__TargetUserName target.user.userid: %{additional.event__TargetUserName} 원시 로그 필드 additional.event__TargetUserName에서 직접 가져온 값입니다.
additional.event__TargetUserSid target.user.windowssid: %{additional.event_TargetUserSid} 원시 로그 필드 additional.event__TargetUserSid에서 직접 가져온 값입니다.
additional.event__TokenElevationType additional.fields.key: eventTokenElevationType
additional.fields.value.string_value: %{additional.event
TokenElevationType}
원시 로그 필드 additional.event__TokenElevationType에서 직접 가져온 값입니다.
additional.event__TransmittedServices additional.fields.key: eventTransmittedServices
additional.fields.value.string_value: %{additional.event
TransmittedServices}
원시 로그 필드 additional.event__TransmittedServices에서 직접 가져온 값입니다.
additional.event__VirtualAccount additional.fields.key: eventVirtualAccount
additional.fields.value.string_value: %{additional.event
VirtualAccount}
원시 로그 필드 additional.event__VirtualAccount에서 직접 가져온 값입니다.
additional.event__WorkstationName target.hostname: %{additional.event__WorkstationName} 원시 로그 필드 additional.event__WorkstationName에서 직접 가져온 값입니다.
additional.event_id security_result.rule_name: EventID: %{additional.event_id} 원시 로그 필드 additional.event_id에서 직접 가져와 문자열로 변환된 값입니다.
additional.query network.dns.questions.name: %{additional.query} 원시 로그 필드 additional.query에서 직접 가져온 값입니다.
additional.response network.dns.answers.name: %{additional.response} 원시 로그 필드 additional.response에서 직접 가져온 값입니다.
metadata.description metadata.description: %{metadata.description} 원시 로그 필드 metadata.description에서 직접 가져온 값입니다.
metadata.eventTimestamp metadata.event_timestamp.seconds: Extracted from %{metadata.eventTimestamp}
metadata.event_timestamp.nanos: Extracted from %{metadata.eventTimestamp}
초와 나노초는 날짜 파싱을 사용하여 원시 로그 필드 metadata.eventTimestamp에서 추출됩니다.
metadata.eventType metadata.product_event_type: %{metadata.eventType}
metadata.event_type: %{metadata.eventType}
원시 로그 필드 metadata.eventType에서 직접 가져온 값입니다.
metadata.logType metadata.product_event_type: %{metadata.logType}
metadata.event_type: %{metadata.logType}
원시 로그 필드 metadata.logType에서 직접 가져온 값입니다.
network.applicationProtocol network.application_protocol: %{network.applicationProtocol} 원시 로그 필드 network.applicationProtocol에서 직접 가져온 값입니다.
network.direction network.direction: %{network.direction} 원시 로그 필드 network.direction에서 직접 가져온 값입니다.
network.ipProtocol network.ip_protocol: %{network.ipProtocol} 원시 로그 필드 network.ipProtocol에서 직접 가져온 값입니다.
principal.assetId principal.asset_id: TANIUM:%{principal.assetId} 원시 로그 필드 principal.assetId에서 직접 가져온 값이며 'TANIUM:'이 앞에 붙습니다.
principal.hostname principal.hostname: %{principal.hostname} 원시 로그 필드 principal.hostname에서 직접 가져온 값입니다.
principal.process.companySpecificParentProcessId principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId} 원시 로그 필드 principal.process.companySpecificParentProcessId에서 직접 가져온 값이며 'TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId}'로 형식이 지정됩니다.
principal.process.companySpecificProcessId principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId} 원시 로그 필드 principal.process.companySpecificProcessId에서 직접 가져온 값이며 'TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId}'로 형식이 지정됩니다.
principal.process.commandLine target.process.command_line: %{principal.process.commandLine} 큰따옴표가 삭제되고 하이픈이 앰퍼샌드로 대체된 원시 로그 필드 principal.process.commandLine에서 직접 가져온 값입니다.
principal.process.file.fullPath target.process.file.full_path: %{principal.process.file.fullPath} 원시 로그 필드 principal.process.file.fullPath에서 직접 가져온 값입니다.
principal.process.file.md5 target.process.file.md5: %{principal.process.file.md5} 원시 로그 필드 principal.process.file.md5에서 직접 가져온 값으로, 소문자로 변환됩니다.
principal.process.parentPid principal.process.pid: %{principal.process.parentPid} PROCESS_LAUNCH 이벤트에만 원시 로그 필드 principal.process.parentPid에서 직접 가져온 값입니다.
principal.process.pid target.process.pid: %{principal.process.pid} PROCESS_LAUNCH 이벤트에만 원시 로그 필드 principal.process.pid에서 직접 가져온 값입니다.
principal.process.productSpecificProcessId principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} 원시 로그 필드 principal.process.productSpecificProcessId에서 직접 가져온 값이며 'TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}' 형식으로 지정됩니다.
principal.user.groupid principal.user.group_identifiers: %{principal.user.groupid} 원시 로그 필드 principal.user.groupid에서 직접 가져온 값입니다.
principal.user.userid principal.user.userid: %{principal.user.userid} 원시 로그 필드 principal.user.userid에서 직접 가져온 값입니다.
src.ip principal.ip: %{src.ip} 원시 로그 필드 src.ip에서 직접 가져온 값입니다.
src.port principal.port: %{src.port} 원시 로그 필드 src.port에서 직접 가져와 정수로 변환된 값입니다.
target.file.fullPath target.file.full_path: %{target.file.fullPath} 원시 로그 필드 target.file.fullPath에서 직접 가져온 값입니다.
target.file.md5 target.file.md5: %{target.file.md5} 원시 로그 필드 target.file.md5에서 직접 가져온 값입니다.
target.port target.port: %{target.port} 원시 로그 필드 target.port에서 직접 가져와 정수로 변환된 값입니다.
target.registry.registryKey target.registry.registry_key: %{target.registry.registryKey} 원시 로그 필드 target.registry.registryKey에서 직접 가져온 값입니다.
target.registry.registryValue target.registry.registry_value_data: %{target.registry.registryValue} 원시 로그 필드 target.registry.registryValue에서 직접 가져온 값입니다.
target.user.userDisplayName target.user.user_display_name: %{target.user.userDisplayName} 원시 로그 필드 target.user.userDisplayName에서 직접 가져온 값입니다.
target.user.windowsSid target.user.windows_sid: %{target.user.windowsSid} 원시 로그 필드 target.user.windowsSid에서 직접 가져온 값입니다.
user-agent network.http.user_agent: %{user-agent} 따옴표가 삭제된 원시 로그 필드 user-agent에서 직접 가져온 값입니다.
해당 사항 없음 extensions.auth.auth_mechanism: LOCAL/NETWORK/BATCH/SERVICE/UNLOCK/NETWORK_CLEAR_TEXT/NEW_CREDENTIALS/REMOTE_INTERACTIVE/CACHED_INTERACTIVE/MECHANISM_UNSPECIFIED additional.event__LogonType 값을 기반으로 파서 코드에 의해 결정됩니다.
해당 사항 없음 extensions.auth.type: MACHINE USER_LOGINUSER_LOGOUT 이벤트의 파서 코드에 의해 추가됩니다.
해당 사항 없음 metadata.event_type: PROCESS_LAUNCH/NETWORK_CONNECTION/FILE_OPEN/FILE_DELETION/REGISTRY_MODIFICATION/USER_LOGIN/STATUS_UPDATE/USER_LOGOUT/PROCESS_MODULE_LOAD/PROCESS_TERMINATION/USER_CHANGE_PERMISSIONS/SCHEDULED_TASK_MODIFICATION/SCHEDULED_TASK_DISABLE/SCHEDULED_TASK_ENABLE/SCHEDULED_TASK_DELETION/SCHEDULED_TASK_CREATION/PROCESS_UNCATEGORIZED metadata.logTypeadditional.event_id 값을 기반으로 파서 코드에 의해 결정됩니다.
해당 사항 없음 metadata.log_type: TANIUM_TH 파서 코드에 의해 추가된 하드 코딩된 값입니다.
해당 사항 없음 metadata.product_name: Stream 파서 코드에 의해 추가된 하드 코딩된 값입니다.
해당 사항 없음 metadata.vendor_name: Tanium 파서 코드에 의해 추가된 하드 코딩된 값입니다.
해당 사항 없음 principal.hostname: %{principal_hostname} principal.hostname 또는 additional.event__FQDN에서 가져온 값입니다.
해당 사항 없음 principal.ip: %{srcIp} src.ip가 있는 경우 grok을 사용하여 원시 로그 메시지에서 추출됩니다.
해당 사항 없음 securityresult.about.resource.name: %{additional.event_AuthenticationPackageName} 특정 additional.event_id 값의 원시 로그 필드 additional.event__AuthenticationPackageName에서 직접 가져온 값입니다.
해당 사항 없음 security_result.category: AUTH_VIOLATION 특정 additional.event_id 값의 파서 코드에 의해 추가됩니다.
해당 사항 없음 security_result.rule_name: EventID: %{additional.event_id} 원시 로그 필드 additional.event_id에서 직접 가져와 문자열로 변환된 값입니다.
해당 사항 없음 target.hostname: %{query_host} 호스트 이름이 포함된 경우 원시 로그 필드 additional.query에서 추출됩니다.
해당 사항 없음 target.ip: %{dstIp} src.ip가 있는 경우 grok을 사용하여 원시 로그 메시지에서 추출됩니다.
해당 사항 없음 target.ip: %{query_ip} IP 주소가 포함된 경우 원시 로그 필드 additional.query에서 추출됩니다.
해당 사항 없음 target.process.command_line: %{principal_process_commandLine} principal.process.commandLine이 비어 있지 않으면 principal.process.commandLine에서 가져온 값입니다.
해당 사항 없음 target.process.file.full_path: %{principal_process_file_fullPath} principal.process.file.fullPath이 비어 있지 않으면 principal.process.file.fullPath에서 가져온 값입니다.
해당 사항 없음 target.process.file.md5: %{principal_process_file_md5} principal.process.file.md5이 비어 있지 않으면 principal.process.file.md5에서 가져온 값입니다.
해당 사항 없음 target.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} principal.process.productSpecificProcessId에서 가져온 값으로, 'TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}' 형식으로 지정됩니다.
해당 사항 없음 target.resource.resource_type: TASK 특정 additional.event_id 값의 파서 코드에 의해 추가됩니다.
해당 사항 없음 timestamp.seconds: Extracted from %{metadata.eventTimestamp}
timestamp.nanos: Extracted from %{metadata.eventTimestamp}
초와 나노초는 날짜 파싱을 사용하여 원시 로그 필드 metadata.eventTimestamp에서 추출됩니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.