Cohesity 로그 수집
다음에서 지원:
Google SecOps
SIEM
개요
이 파서는 grok 패턴을 사용하여 Cohesity 백업 소프트웨어 syslog 메시지에서 필드를 추출합니다. 이 스크립트는 표준 syslog 메시지와 JSON 형식 로그를 모두 처리하여 추출된 필드를 UDM에 매핑하고, 사용자 및 대상 식별자의 존재 여부에 따라 event_type을 동적으로 할당합니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- Cohesity 관리에 대한 권한이 있는지 확인합니다.
Cohesity 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정 > 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예: Cohesity Logs).
- 소스 유형으로 Webhook을 선택합니다.
- 로그 유형으로 Cohesity를 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 다음 입력 파라미터의 값을 지정합니다.
- 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예:
\n
). - 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
- 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예:
- 다음을 클릭합니다.
- 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.
- 보안 비밀 키 생성을 클릭하여 이 피드를 인증하기 위한 보안 비밀 키를 생성합니다.
- 비밀 키를 복사하여 저장합니다. 이 보안 비밀 키는 다시 볼 수 없습니다. 필요한 경우 새 보안 비밀 키를 재생성할 수 있지만 이 작업을 하면 이전 보안 비밀 키는 더 이상 사용할 수 없게 됩니다.
- 세부정보 탭의 엔드포인트 정보 필드에서 피드 엔드포인트 URL을 복사합니다. 클라이언트 애플리케이션에서 이 엔드포인트 URL을 지정해야 합니다.
- 완료를 클릭합니다.
웹훅 피드에 대한 API 키 만들기
Google Cloud 콘솔 > 사용자 인증 정보로 이동합니다.
사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.
Chronicle API에 대한 API 키 액세스를 제한합니다.
엔드포인트 URL 지정
- 클라이언트 애플리케이션에서 웹훅 피드에 제공된 HTTPS 엔드포인트 URL을 지정합니다.
다음 형식의 커스텀 헤더의 일부로 API 키와 보안 비밀 키를 지정하여 인증을 사용 설정합니다.
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
권장사항: API 키를 URL에 지정하는 대신 헤더로 지정하세요.
웹훅 클라이언트가 커스텀 헤더를 지원하지 않는 경우 다음 형식의 쿼리 매개변수를 사용하여 API 키와 보안 비밀 키를 지정할 수 있습니다.
ENDPOINT_URL?key=API_KEY&secret=SECRET
다음을 바꿉니다.
ENDPOINT_URL
: 피드 엔드포인트 URL입니다.API_KEY
: Google SecOps에 인증하기 위한 API 키입니다.SECRET
: 피드를 인증하기 위해 생성한 보안 비밀 키입니다.
Google SecOps용 Cohesity에서 Webhook 구성
- Cohesity 클러스터 관리에 로그인합니다.
- 보호 작업 섹션으로 이동합니다.
- webhook을 구성할 보호 작업을 선택합니다.
- 보호 작업 옆에 있는 작업 메뉴 (세로 점 3개) > 수정을 클릭합니다.
- 알림 탭을 선택합니다.
- + 웹훅 추가를 클릭합니다.
- 다음 매개변수의 값을 지정합니다.
- 이름: 웹훅을 설명하는 이름을 입력합니다 (예: Google SecOps).
- URL: Google SecOps
<ENDPOINT_URL>
를 입력합니다. - 메서드: 게시를 선택합니다.
- Content Type(콘텐츠 유형): application/json을 선택합니다.
- 페이로드: 이 필드는 전송하려는 특정 데이터에 따라 다릅니다.
- 웹훅 사용 설정: 체크박스를 선택하여 웹훅을 사용 설정합니다.
- 구성 저장: 저장을 클릭하여 웹훅 구성을 보호 작업에 적용합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
ClientIP |
principal.asset.ip |
ClientIP 필드에서 직접 매핑됩니다. |
ClientIP |
principal.ip |
ClientIP 필드에서 직접 매핑됩니다. |
description |
security_result.description |
description 필드에서 직접 매핑됩니다. |
DomainName |
target.asset.hostname |
DomainName 필드에서 직접 매핑됩니다. |
DomainName |
target.hostname |
DomainName 필드에서 직접 매핑됩니다. |
EntityPath |
target.url |
EntityPath 필드에서 직접 매핑됩니다. |
host |
principal.asset.hostname |
host 필드에서 직접 매핑됩니다. |
host |
principal.hostname |
host 필드에서 직접 매핑됩니다. 타임스탬프로 파싱된 후 ts 필드에서 복사됩니다. principal_mid_present , target_mid_present , principal_user_present 의 존재를 기반으로 파서 로직에 의해 결정됩니다. 가능한 값: NETWORK_CONNECTION , USER_UNCATEGORIZED , STATUS_UPDATE , GENERIC_EVENT . 'Cohesity'로 하드코딩되었습니다. |
product_event_type |
metadata.product_event_type |
product_event_type 필드에서 직접 매핑됩니다. 'COHESITY'로 하드코딩되었습니다. |
pid |
principal.process.pid |
pid 필드에서 직접 매핑됩니다. |
Protocol |
network.application_protocol |
Protocol 필드에서 직접 매핑되며 대문자로 변환됩니다. |
RecordID |
additional.fields (키: 'RecordID', 값: RecordID ) |
RecordID 필드에서 직접 매핑되며 additional.fields 아래에 중첩됩니다. |
RequestType |
security_result.detection_fields (키: 'RequestType', 값: RequestType ) |
RequestType 필드에서 직접 매핑되며 security_result.detection_fields 아래에 중첩됩니다. |
Result |
security_result.summary |
Result 필드에서 직접 매핑됩니다. |
sha_value |
additional.fields (키: 'SHA256', 값: sha_value ) |
sha_value 필드에서 직접 매핑되며 additional.fields 아래에 중첩됩니다. |
target_ip |
target.asset.ip |
target_ip 필드에서 직접 매핑됩니다. |
target_ip |
target.ip |
target_ip 필드에서 직접 매핑됩니다. |
target_port |
target.port |
target_port 필드에서 직접 매핑되고 정수로 변환됩니다. |
Timestamp |
metadata.collected_timestamp |
타임스탬프로 파싱된 후 Timestamp 필드에서 직접 매핑됩니다. |
ts |
events.timestamp |
타임스탬프로 파싱된 후 ts 필드에서 직접 매핑됩니다. |
UserID |
principal.user.userid |
UserID 필드에서 직접 매핑되고 문자열로 변환됩니다. |
UserName |
principal.user.user_display_name |
UserName 필드에서 직접 매핑됩니다. |
UserSID |
principal.user.windows_sid |
UserSID 필드에서 직접 매핑됩니다. |
변경사항
2024-09-24
- JSON 로그 형식을 지정하기 위한 'gsub'을 삭제했습니다.
2024-09-10
- 로그에서 원치 않는 문자를 삭제하는 'gsub'이 추가되었습니다.
- 'prin_ip'가 'principal.ip'에 매핑되었습니다.
2024-07-28
- 'EntityId' 및 'RegisteredSource.EntityId'가 'principal.user.userid'에 매핑되었습니다.
- 'Description' 및 'EventMessage'가 'metadata.description'에 매핑되었습니다.
- 'IP'가 'principal.ip' 및 'principal.asset.ip'에 매핑되었습니다.
- '사용자'가 'principal.user.user_display_name'에 매핑되었습니다.
- 'Action, 'Domain, 'ServiceContext, 'AttributeMap.AttemptNum, 'cluster_id, 'cluster_name, 'ClusterInfo.ClusterId, 'ClusterInfo.ClusterName, 'TaskId, 'EntityName, 'EntityType, 'BackupJobId, 'BackupJobName, 'EnvironmentType, 'RegisteredSource.EntityName, 'RegisteredSource.EntityType, 'AttributeMap.BridgeConstituent, 'ReplicationTarget.ClusterName, 'ReplicationTarget.ClusterId가 'additional.fields'에 매핑되었습니다.
2024년 5월 16일
- 파서를 새로 만들었습니다.