Tanium Stream 로그 수집
다음에서 지원:
Google SecOps
SIEM
이 문서에서는 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 서비스 계정 구성
- Tanium Console에 로그인합니다.
- 모듈 > 스트림으로 이동합니다.
- 오른쪽 상단에서 설정을 클릭합니다.
- 서비스 계정 섹션에서 다음을 구성합니다.
- 서비스 계정 사용자: 적절한 스트림 권한이 있는 사용자를 선택합니다.
- 계정에 연결 사용자 역할 권한이 있는지 확인합니다.
- 스트림 데이터 소스 및 엔드포인트에 대한 액세스 권한을 확인합니다.
- 저장을 클릭하여 서비스 계정 구성을 적용합니다.
Tanium Stream 기본 요건 수집
- 관리자로 Tanium Console에 로그인합니다.
- 관리 > 권한 > 사용자로 이동합니다.
- 다음 역할이 있는 서비스 계정 사용자를 만들거나 식별합니다.
- 스트림 관리자 또는 스트림 읽기 전용 사용자 역할
- Connect User 역할 권한
- 모니터링 중인 컴퓨터 그룹에 대한 액세스 권한 (권장: 모든 컴퓨터 그룹)
- 스트림 콘텐츠 세트에 대한 저장된 질문 읽기 권한
Google SecOps용 AWS S3 버킷 및 IAM 구성
- 이 사용자 가이드(버킷 만들기)에 따라 Amazon S3 버킷을 만듭니다.
- 나중에 참조할 수 있도록 버킷 이름과 리전을 저장합니다 (예:
tanium-stream-logs
). - 이 사용자 가이드(IAM 사용자 만들기)에 따라 사용자를 만듭니다.
- 생성된 사용자를 선택합니다.
- 보안 사용자 인증 정보 탭을 선택합니다.
- 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
- 사용 사례로 서드 파티 서비스를 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 설명 태그를 추가합니다.
- 액세스 키 만들기를 클릭합니다.
- CSV 파일 다운로드를 클릭하여 나중에 사용할 수 있도록 액세스 키와 비밀 액세스 키를 저장합니다.
- 완료를 클릭합니다.
- 권한 탭을 선택합니다.
- 권한 정책 섹션에서 권한 추가를 클릭합니다.
- 권한 추가를 선택합니다.
- 정책 직접 연결을 선택합니다.
- AmazonS3FullAccess 정책을 검색하여 선택합니다.
- 다음을 클릭합니다.
- 권한 추가를 클릭합니다.
Tanium Connect AWS S3 대상 구성
- Tanium Console에 로그인합니다.
- 모듈 > 연결로 이동합니다.
- 연결 만들기를 클릭합니다.
- 다음 구성 세부정보를 제공합니다.
- 이름: 설명이 포함된 이름을 입력합니다 (예:
Stream Telemetry to S3 for SecOps
). - 설명: 선택사항인 설명입니다 (예:
Export endpoint telemetry and threat hunting data to AWS S3 for Google SecOps ingestion
). - 사용 설정: 연결이 일정에 따라 실행되도록 사용 설정하려면 선택합니다.
- 이름: 설명이 포함된 이름을 입력합니다 (예:
- 다음을 클릭합니다.
연결 소스 구성
- 소스 섹션에서 다음 구성 세부정보를 제공합니다.
- 소스 유형: 저장된 질문을 선택합니다.
- 저장된 질문: 다음 스트림 관련 저장된 질문 중 하나를 선택합니다.
- 실시간 엔드포인트 원격 분석을 위한 스트림 - 엔드포인트 이벤트
- 네트워크 활동 모니터링을 위한 스트림 - 네트워크 이벤트
- 프로세스 실행 추적을 위한 스트림 - 프로세스 이벤트
- 파일 시스템 활동의 경우 스트림 - 파일 이벤트
- 행동 분석을 위한 스트림 - 위협 탐색 데이터
- 컴퓨터 그룹: 모든 컴퓨터 또는 모니터링할 특정 컴퓨터 그룹을 선택합니다.
- 새로고침 간격: 데이터 수집에 적합한 간격을 설정합니다 (예: 실시간 원격 분석의 경우 5분).
- 다음을 클릭합니다.
AWS S3 대상 구성
- 대상 섹션에서 다음 구성 세부정보를 제공합니다.
- 대상 유형: 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/
).
- 다음을 클릭합니다.
필터 구성
- 필터 섹션에서 데이터 필터링 옵션을 구성합니다.
- 새 항목만 전송: 마지막 내보내기 이후의 새 원격 분석 데이터만 전송하려면 이 옵션을 선택합니다.
- 열 필터: 필요한 경우 특정 이벤트 속성을 기반으로 필터를 추가합니다 (예: 이벤트 유형, 프로세스 이름 또는 위협 지표별로 필터링).
- 다음을 클릭합니다.
AWS S3용 데이터 형식 지정
- 형식 섹션에서 데이터 형식을 구성합니다.
- 형식: JSON을 선택합니다.
- 옵션:
- 헤더 포함: JSON 출력에 헤더가 포함되지 않도록 하려면 선택 해제합니다.
- 빈 셀 포함: 환경설정에 따라 선택합니다.
- 고급 옵션:
- 파일 이름 지정: 기본 타임스탬프 기반 이름 지정을 사용합니다.
- 압축: 스토리지 비용과 전송 시간을 줄이려면 Gzip을 선택합니다.
- 다음을 클릭합니다.
연결 예약
- 일정 섹션에서 내보내기 일정을 구성합니다.
- 일정 사용 설정: 자동 예약 내보내기를 사용 설정하려면 선택합니다.
- 일정 유형: 반복을 선택합니다.
- 빈도: 거의 실시간 원격 분석 데이터를 위해 5분마다를 선택합니다.
- 시작 시간: 첫 번째 내보내기에 적절한 시작 시간을 설정합니다.
- 다음을 클릭합니다.
연결 저장 및 확인
- 요약 화면에서 연결 구성을 검토합니다.
- Save(저장)를 클릭하여 연결을 만듭니다.
- 연결 테스트를 클릭하여 구성을 확인합니다.
- 테스트가 완료되면 지금 실행을 클릭하여 초기 내보내기를 실행합니다.
- 연결 개요 페이지에서 연결 상태를 모니터링합니다.
Tanium Stream 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정> 피드로 이동합니다.
- + 새 피드 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예:
Tanium Stream logs
). - 소스 유형으로 Amazon S3 V2를 선택합니다.
- 로그 유형으로 Tanium Stream을 선택합니다.
- 다음을 클릭합니다.
- 다음 입력 파라미터의 값을 지정합니다.
- S3 URI:
s3://tanium-stream-logs/tanium/stream/
- 소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
- 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다. 기본값은 180일입니다.
- 액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키입니다.
- 보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키입니다.
- 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
- S3 URI:
- 다음을 클릭합니다.
- 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.
UDM 매핑 테이블
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
additional.event__AlgorithmName | additional.fields.key: eventAlgorithmName additional.fields.value.string_value: %{additional.eventAlgorithmName} |
원시 로그 필드 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.eventClientProcessStartKey} |
원시 로그 필드 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.eventFailureReason} |
원시 로그 필드 additional.event__FailureReason 에서 직접 가져온 값입니다. |
additional.event__ImpersonationLevel | additional.fields.key: eventImpersonationLevel additional.fields.value.string_value: %{additional.eventImpersonationLevel} |
원시 로그 필드 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.eventKeyLength} |
원시 로그 필드 additional.event__KeyLength 에서 직접 가져온 값입니다. |
additional.event__KeyName | additional.fields.key: eventKeyName additional.fields.value.string_value: %{additional.eventKeyName} |
원시 로그 필드 additional.event__KeyName 에서 직접 가져온 값입니다. |
additional.event__KeyType | additional.fields.key: eventKeyType additional.fields.value.string_value: %{additional.eventKeyType} |
원시 로그 필드 additional.event__KeyType 에서 직접 가져온 값입니다. |
additional.event__LmPackageName | additional.fields.key: eventLmPackageName additional.fields.value.string_value: %{additional.eventLmPackageName} |
원시 로그 필드 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.eventMandatoryLabel} |
원시 로그 필드 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.eventOperation} |
원시 로그 필드 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.eventProviderName} |
원시 로그 필드 additional.event__ProviderName 에서 직접 가져온 값입니다. |
additional.event__RestrictedAdminMode | additional.fields.key: eventRestrictedAdminMode additional.fields.value.string_value: %{additional.eventRestrictedAdminMode} |
원시 로그 필드 additional.event__RestrictedAdminMode 에서 직접 가져온 값입니다. |
additional.event__ReturnCode | additional.fields.key: eventReturnCode additional.fields.value.string_value: %{additional.eventReturnCode} |
원시 로그 필드 additional.event__ReturnCode 에서 직접 가져온 값입니다. |
additional.event__RpcCallClientLocality | additional.fields.key: eventRpcCallClientLocality additional.fields.value.string_value: %{additional.eventRpcCallClientLocality} |
원시 로그 필드 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.eventStatus} |
원시 로그 필드 additional.event__Status 에서 직접 가져온 값입니다. |
additional.event__SubStatus | additional.fields.key: eventSubStatus additional.fields.value.string_value: %{additional.eventSubStatus} |
원시 로그 필드 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.eventSubjectLogonId} |
원시 로그 필드 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.eventTaskContentNew} |
원시 로그 필드 additional.event__TaskContentNew 에서 직접 가져온 값입니다. |
additional.event__TaskName | additional.fields.key: eventTaskName additional.fields.value.string_value: %{additional.eventTaskName} |
원시 로그 필드 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.eventTargetLinkedLogonId} |
원시 로그 필드 additional.event__TargetLinkedLogonId 에서 직접 가져온 값입니다. |
additional.event__TargetLogonId | additional.fields.key: eventTargetLogonId additional.fields.value.string_value: %{additional.eventTargetLogonId} |
원시 로그 필드 additional.event__TargetLogonId 에서 직접 가져온 값입니다. |
additional.event__TargetOutboundDomainName | additional.fields.key: eventTargetOutboundDomainName additional.fields.value.string_value: %{additional.eventTargetOutboundDomainName} |
원시 로그 필드 additional.event__TargetOutboundDomainName 에서 직접 가져온 값입니다. |
additional.event__TargetOutboundUserName | additional.fields.key: eventTargetOutboundUserName additional.fields.value.string_value: %{additional.eventTargetOutboundUserName} |
원시 로그 필드 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.eventTokenElevationType} |
원시 로그 필드 additional.event__TokenElevationType 에서 직접 가져온 값입니다. |
additional.event__TransmittedServices | additional.fields.key: eventTransmittedServices additional.fields.value.string_value: %{additional.eventTransmittedServices} |
원시 로그 필드 additional.event__TransmittedServices 에서 직접 가져온 값입니다. |
additional.event__VirtualAccount | additional.fields.key: eventVirtualAccount additional.fields.value.string_value: %{additional.eventVirtualAccount} |
원시 로그 필드 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_LOGIN 및 USER_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.logType 및 additional.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 전문가로부터 답변을 받으세요.