Tanium Discover 로그 수집
이 문서에서는 Tanium Connect의 기본 S3 내보내기 기능을 사용하여 Amazon S3를 통해 Tanium Discover 로그를 Google Security Operations에 수집하는 방법을 설명합니다. Tanium Discover는 환경 전반에서 네트워크 인터페이스와 애셋을 자동으로 검색하여 관리 및 비관리 엔드포인트, 네트워크 기기, 기타 연결된 시스템에 대한 가시성을 제공합니다. 파서는 JSON 로그에서 필드를 추출하고, MAC 주소 및 OS 정보와 같은 특정 필드를 변환하여 UDM에 매핑합니다. 다양한 데이터 유형을 처리하고, 공급업체 및 제품 세부정보와 같은 메타데이터를 추가하며, 추출된 필드를 최종 UDM 이벤트 구조로 병합합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- Tanium Connect 및 Tanium Console에 대한 권한 있는 액세스
- Tanium Discover 2.11 이상이 설치되고 구성됨
- AWS (S3, IAM)에 대한 관리자 액세스
Google SecOps용 AWS S3 버킷 및 IAM 구성
- 이 사용자 가이드(버킷 만들기)에 따라 Amazon S3 버킷을 만듭니다.
- 나중에 참조할 수 있도록 버킷 이름과 리전을 저장합니다 (예:
tanium-discover-logs
). - 이 사용자 가이드(IAM 사용자 만들기)에 따라 사용자를 만듭니다.
- 생성된 사용자를 선택합니다.
- 보안 사용자 인증 정보 탭을 선택합니다.
- 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
- 사용 사례로 서드 파티 서비스를 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 설명 태그를 추가합니다.
- 액세스 키 만들기를 클릭합니다.
- CSV 파일 다운로드를 클릭하여 나중에 사용할 수 있도록 액세스 키와 비밀 액세스 키를 저장합니다.
- 완료를 클릭합니다.
- 권한 탭을 선택합니다.
- 권한 정책 섹션에서 권한 추가를 클릭합니다.
- 권한 추가를 선택합니다.
- 정책 직접 연결을 선택합니다.
- AmazonS3FullAccess 정책을 검색하여 선택합니다.
- 다음을 클릭합니다.
- 권한 추가를 클릭합니다.
Amazon S3 버킷에 대한 권한 구성
- Amazon S3 콘솔에서 이전에 만든 버킷을 선택합니다.
- 권한 > 버킷 정책을 클릭합니다.
버킷 정책 편집기에서 다음 정책을 추가합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:user/tanium-connect-s3-user" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::tanium-discover-logs", "arn:aws:s3:::tanium-discover-logs/*" ] } ] }
다음 변수를 바꿉니다.
YOUR_ACCOUNT_ID
을 AWS 계정 ID로 변경합니다.tanium-discover-logs
을 실제 버킷 이름으로 변경합니다(다른 경우).tanium-connect-s3-user
을 실제 IAM 사용자 이름으로 변경합니다(다른 경우).
저장을 클릭합니다.
S3 내보내기를 위한 Tanium Connect 구성
- 관리자로 Tanium Console에 로그인합니다.
- Tanium Connect > Connections로 이동합니다.
- 연결 만들기를 클릭합니다.
- 일반 정보 섹션에서 다음 구성 세부정보를 제공합니다.
- 이름: 설명이 포함된 이름을 입력합니다 (예:
Tanium Discover to S3
). - 설명: 의미 있는 설명을 입력합니다 (예:
Export Tanium Discover interface data to S3 for Google SecOps ingestion
). - 사용 설정: 연결을 사용 설정하려면 선택합니다.
- 로그 수준: 정보 (기본값)를 선택하거나 필요에 따라 조정합니다.
- 이름: 설명이 포함된 이름을 입력합니다 (예:
- 구성 섹션의 소스에서 Tanium Discover를 선택합니다.
- 디스커버 소스 설정을 구성합니다.
- 보고서 유형: 내보낼 인터페이스 유형을 선택합니다.
- 모두: 디스커버의 모든 인터페이스를 내보냅니다.
- 관리형: Tanium 클라이언트가 설치된 인터페이스를 내보냅니다.
- 관리되지 않음: Tanium 클라이언트가 설치되지 않은 인터페이스를 내보냅니다.
- 라벨 지정됨: 라벨이 적용된 모든 인터페이스를 내보냅니다.
- 라벨 없음: 라벨이 적용되지 않은 인터페이스를 내보냅니다.
- 무시됨: 무시됨으로 표시된 인터페이스를 내보냅니다.
- 관리할 수 없음: 관리할 수 없음으로 표시된 인터페이스를 내보냅니다.
- 보고서 유형: 내보낼 인터페이스 유형을 선택합니다.
- 대상에서 AWS S3를 선택합니다.
- 다음 구성 세부정보를 제공합니다.
- 대상 이름: 이름을 입력합니다 (예:
Google SecOps S3 Bucket
). - AWS 액세스 키: 이전에 만든 IAM 사용자의 액세스 키 ID를 입력합니다.
- AWS 보안 비밀 키: 이전에 만든 IAM 사용자의 보안 비밀 액세스 키를 입력합니다.
- 버킷 이름: S3 버킷 이름 (예:
tanium-discover-logs
)을 입력합니다. - 버킷 경로: 선택사항입니다. 경로 접두사 (예:
tanium/discover/
)를 입력합니다. - 리전: 버킷이 있는 AWS 리전을 선택합니다 (예:
us-east-1
).
- 대상 이름: 이름을 입력합니다 (예:
- 형식 섹션에서 출력 형식을 구성합니다.
- 형식 유형: JSON을 선택합니다.
- 열 헤더 포함: 열 헤더를 포함할지 선택합니다.
- 문서 생성: 원시 JSON 데이터를 전송하려면 이 옵션을 선택 해제합니다.
- 선택사항: 출력 구성 섹션에서 필터를 구성합니다.
- 필터: 필터를 사용하여 특정 라벨을 내보낼 수 있습니다. 예를 들어 'Lost Interface'로 태그된 모든 인터페이스를 내보내려면 정규 표현식 필터를 적용하고 라벨 타겟 열에서 일치시킬 텍스트로 'Lost Interface'를 입력합니다.
- 맞춤 열: 사용 사례와 관련된 맞춤 열을 추가합니다.
- 일정 섹션에서 연결이 실행되는 시기를 구성합니다.
- Schedule Type(일정 유형): Cron을 선택합니다.
- 크론 표현식: 정기 내보내기를 위한 크론 표현식을 입력합니다 (예: 6시간마다
0 */6 * * *
). - 시작일: 일정의 시작일을 설정합니다.
- 변경사항 저장을 클릭합니다.
- Connect 개요 페이지에서 연결로 이동합니다.
- 만든 연결 (Tanium Discover to S3)을 클릭합니다.
- 지금 실행을 클릭하여 연결을 테스트합니다.
- 연결을 실행할 것인지 확인합니다.
- 연결 상태를 모니터링하고 검색 인터페이스 데이터가 S3 버킷으로 내보내지는지 확인합니다.
선택사항: Google SecOps용 읽기 전용 IAM 사용자 및 키 만들기
- AWS 콘솔 > IAM > 사용자 > 사용자 추가로 이동합니다.
- Add users를 클릭합니다.
- 다음 구성 세부정보를 제공합니다.
- 사용자:
secops-reader
를 입력합니다. - 액세스 유형: 액세스 키 – 프로그래매틱 액세스를 선택합니다.
- 사용자:
- 사용자 만들기를 클릭합니다.
- 최소 읽기 정책 (맞춤) 연결: 사용자 > secops-reader > 권한 > 권한 추가 > 정책 직접 연결 > 정책 만들기
JSON 편집기에서 다음 정책을 입력합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::tanium-discover-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::tanium-discover-logs" } ] }
이름을
secops-reader-policy
로 설정합니다.정책 만들기 > 검색/선택 > 다음 > 권한 추가로 이동합니다.
보안 사용자 인증 정보> 액세스 키> 액세스 키 만들기로 이동합니다.
CSV를 다운로드합니다 (이러한 값은 피드에 입력됨).
Tanium Discover 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정> 피드로 이동합니다.
- + 새 피드 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예:
Tanium Discover logs
). - 소스 유형으로 Amazon S3 V2를 선택합니다.
- 로그 유형으로 Tanium Discover를 선택합니다.
- 다음을 클릭합니다.
- 다음 입력 파라미터의 값을 지정합니다.
- S3 URI:
s3://tanium-discover-logs/tanium/discover/
(다른 버킷 이름이나 경로를 사용한 경우 경로를 조정하세요). - 소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
- 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다. 기본값은 180일입니다.
- 액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키 (위에서 생성한 읽기 전용 사용자에서 가져옴)
- 보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키 (위에서 생성한 읽기 전용 사용자에서 가져옴)
- 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
- S3 URI:
- 다음을 클릭합니다.
- 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.
UDM 매핑 테이블
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
CentralizedNmap |
principal.asset.attribute.labels.key |
'CentralizedNmap' 값은 파서에 의해 할당됩니다. |
CentralizedNmap |
principal.asset.attribute.labels.value |
원시 로그의 CentralizedNmap 필드에서 직접 가져와 문자열로 변환됩니다. |
IpAddress |
principal.asset.ip |
원시 로그의 IpAddress 필드에서 직접 가져옵니다. |
IpAddress |
principal.ip |
원시 로그의 IpAddress 필드에서 직접 가져옵니다. |
Labels |
principal.asset.attribute.labels.key |
'Labels' 값은 파서에 의해 할당됩니다. |
Labels |
principal.asset.attribute.labels.value |
원시 로그의 Labels 필드에서 직접 가져옵니다. |
MacAddress |
principal.asset.mac |
원시 로그의 MacAddress 필드에서 직접 가져오며, 하이픈은 콜론으로 대체되고 값은 소문자로 변환됩니다. |
MacAddress |
principal.asset.product_object_id |
MacAddress 필드를 소문자로 변환하고 하이픈을 콜론으로 바꾼 후 'TANIUM:'과 연결합니다. |
MacAddress |
principal.mac |
원시 로그의 MacAddress 필드에서 직접 가져오며, 하이픈은 콜론으로 대체되고 값은 소문자로 변환됩니다. |
MacOrganization |
principal.asset.attribute.labels.key |
'MacOrganization' 값은 파서에 의해 할당됩니다. |
MacOrganization |
principal.asset.attribute.labels.value |
원시 로그의 MacOrganization 필드에서 직접 가져와 문자열로 변환됩니다. |
Managed |
principal.asset.attribute.labels.key |
'Managed' 값은 파서에 의해 할당됩니다. |
Managed |
principal.asset.attribute.labels.value |
원시 로그의 Managed 필드에서 직접 가져와 문자열로 변환됩니다. |
Os |
principal.asset.platform_software.platform |
Os 이 'Windows'인 경우 값은 'WINDOWS'로 설정됩니다. Os 이 'Linux'인 경우 값은 'LINUX'로 설정됩니다. 그 외에는 값이 'UNKNOWN_PLATFORM'으로 설정됩니다. |
Os |
principal.platform |
Os 이 'Windows'인 경우 값은 'WINDOWS'로 설정됩니다. Os 이 'Linux'인 경우 값은 'LINUX'로 설정됩니다. 그 외에는 값이 'UNKNOWN_PLATFORM'으로 설정됩니다. |
OsGeneration |
principal.asset.platform_software.platform_version |
원시 로그의 OsGeneration 필드에서 직접 가져와 문자열로 변환됩니다. |
OsGeneration |
principal.platform_version |
원시 로그의 OsGeneration 필드에서 직접 가져와 문자열로 변환됩니다. |
Ports |
principal.asset.attribute.labels.key |
'Ports' 값은 파서에 의해 할당됩니다. |
Ports |
principal.asset.attribute.labels.value |
원시 로그의 Ports 필드에서 직접 가져옵니다. |
Profile |
principal.asset.attribute.labels.key |
'Profile' 값은 파서에 의해 할당됩니다. |
Profile |
principal.asset.attribute.labels.value |
원시 로그의 Profile 필드에서 직접 가져옵니다. |
TaniumComputerId |
principal.asset.attribute.labels.key |
'TaniumComputerId' 값은 파서에 의해 할당됩니다. |
TaniumComputerId |
principal.asset.attribute.labels.value |
원시 로그의 TaniumComputerId 필드에서 직접 가져와 문자열로 변환됩니다. |
Unmanageable |
principal.asset.attribute.labels.key |
'관리할 수 없음' 값은 파서에 의해 할당됩니다. |
Unmanageable |
principal.asset.attribute.labels.value |
원시 로그의 Unmanageable 필드에서 직접 가져와 문자열로 변환됩니다. 원시 로그의 time 필드에서 가져와 파싱되고 에포크 초로 변환됩니다. 'SCAN_NETWORK' 값은 파서에 의해 할당됩니다. 'TANIUM_DISCOVER' 값은 파서에 의해 할당됩니다. 'Discover' 값은 파서에 의해 할당됩니다. 'Tanium' 값은 파서에 의해 할당됩니다. 원시 로그의 HostName 필드에서 직접 가져옵니다. 원시 로그의 time 필드에서 가져와 파싱되고 에포크 초로 변환됩니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.