Anomali ThreatStream IOC 로그 수집
다음에서 지원:
Google SecOps
SIEM
이 문서에서는 API를 사용하여 Anomali ThreatStream IOC 로그를 Google Security Operations에 수집하는 방법을 설명합니다. 파서는 JSON 또는 CEF 형식의 IOC 데이터를 통합 데이터 모델 (UDM)로 변환합니다. 코드는 먼저 입력을 JSON으로 파싱하려고 시도하고, 실패하면 'CEF:' 접두사를 확인하여 CEF 메시지로 처리하고 IOC 속성을 추출하여 UDM 필드에 매핑합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- Anomali ThreatStream 엔터프라이즈 테넌트에 대한 액세스 권한
전용 API 사용자 만들기
- ThreatStream에 로그인합니다. Anomali Enterprise를 사용하는 경우 기본 UI로 전환합니다.
- 관리 > 사용자로 이동합니다.
- + 사용자 추가를 클릭하거나 기존 서비스 계정을 선택합니다.
- 다음 세부정보를 입력합니다.
- 이메일: 서비스 계정 이메일 주소 (예:
anomali_ioc_secops@example.com
) - 인증 소스: 표준을 선택합니다.
- 사용자 유형: API 사용자를 선택합니다.
- 역할: 읽기 전용을 선택합니다 (표시기를 나열하는 데 충분함).
- 이메일: 서비스 계정 이메일 주소 (예:
- 저장을 클릭합니다.
- 새 계정으로 활성화 이메일이 전송됩니다. 활성화를 완료하세요.
API 키 생성
- API 사용자로 ThreatStream에 로그인합니다.
- 프로필 아바타 > 내 API 키로 이동합니다.
- 새 키 생성을 클릭합니다.
- 설명을 입력합니다 (예:
Google SecOps export
). - 저장을 클릭합니다.
- 키 아래에 표시된 키 값을 복사하여 안전한 위치에 저장합니다. 키 값이 다시 표시되지 않습니다.
권장사항: 수집기 IP 허용 목록에 추가
- 관리 > 조직 설정으로 이동합니다.
- IP 허용 목록 탭을 선택합니다.
- + 추가를 클릭합니다.
- Google SecOps 테넌트 주소를 입력하고 저장을 클릭합니다.
피드 설정
- SIEM 설정> 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예:
Anomali TS IOC
). - 소스 유형으로 서드 파티 API를 선택합니다.
- Anomali 로그 유형을 선택합니다.
- 다음을 클릭합니다.
- 다음 입력 파라미터의 값을 지정합니다.
- 사용자 이름: 새로 만든 API 사용자를 입력합니다.
- 보안 비밀: 이전에 복사한 생성된 API 키를 입력합니다.
- 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
- 다음을 클릭합니다.
- 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.
UDM 매핑 테이블
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
obj.asn |
entity.administrative_domain | 원시 로그의 asn 필드가 UDM 항목 객체의 administrative_domain 필드에 매핑됩니다. |
obj.confidence |
ioc.confidence_score | 원시 로그의 신뢰도 필드가 UDM ioc 객체의 confidence_score 필드에 매핑됩니다. |
obj.country |
entity.location.country_or_region | 원시 로그의 국가 필드가 UDM 엔티티 객체의 country_or_region 필드에 매핑됩니다. |
obj.created_ts |
entity.metadata.creation_timestamp | 원시 로그의 created_ts 필드가 UDM 엔티티 객체의 creation_timestamp 필드에 매핑됩니다. |
obj.created_ts |
ioc.active_timerange.start | 원시 로그의 created_ts 필드가 UDM ioc 객체의 start 필드에 매핑됩니다. |
obj.created_ts |
entity.metadata.threat.first_discovered_time | 원시 로그의 created_ts 필드가 UDM 위협 객체의 first_discovered_time 필드에 매핑됩니다. |
obj.expiration_ts |
entity.metadata.interval.end_time | 원시 로그의 expiration_ts 필드가 UDM 엔티티 객체의 end_time 필드에 매핑됩니다. |
obj.expiration_ts |
ioc.active_timerange.end | 원시 로그의 expiration_ts 필드가 UDM ioc 객체의 end 필드에 매핑됩니다. |
obj.id |
entity.metadata.product_entity_id | 원시 로그의 ID 필드가 UDM 엔티티 객체의 product_entity_id 필드에 매핑됩니다. |
obj.ip |
entity.entity.ip | 원시 로그의 ip 필드가 UDM 항목 객체의 ip 필드로 병합됩니다. |
obj.ip |
ioc.ip_and_ports.ip_address | 원시 로그의 ip 필드가 UDM ioc 객체의 ip_address 필드에 매핑됩니다. |
obj.itype |
ioc.categorization | 원시 로그의 itype 필드가 UDM ioc 객체의 categorization 필드에 매핑됩니다. |
obj.itype |
entity.metadata.threat.category_details | 원시 로그의 itype 필드가 UDM 위협 객체의 category_details 필드로 병합됩니다. |
obj.latitude |
entity.entity.location.region_latitude | 원시 로그의 위도 필드가 UDM 항목 객체의 region_latitude 필드에 매핑됩니다. |
obj.longitude |
entity.entity.location.region_longitude | 원시 로그의 경도 필드가 UDM 엔티티 객체의 region_longitude 필드에 매핑됩니다. |
obj.meta.detail2 |
ioc.description | 원시 로그의 detail2 필드가 UDM ioc 객체의 description 필드에 매핑됩니다. |
obj.meta.detail2 |
entity.metadata.threat.description | 원시 로그의 detail2 필드가 UDM 위협 객체의 description 필드에 매핑됩니다. |
obj.meta.severity |
ioc.raw_severity | 원시 로그의 심각도 필드가 UDM ioc 객체의 raw_severity 필드에 매핑됩니다. |
obj.meta.severity |
entity.metadata.threat.severity | 원시 로그의 심각도 필드가 UDM 위협 객체의 심각도 필드에 매핑됩니다. 심각도가 'very-high'인 경우 'CRITICAL'에 매핑됩니다. |
obj.meta.severity |
entity.metadata.threat.severity_details | 원시 로그의 심각도 필드가 UDM 위협 객체의 severity_details 필드에 매핑됩니다. |
obj.modified_ts |
entity.metadata.threat.last_updated_time | 원시 로그의 modified_ts 필드가 UDM 위협 객체의 last_updated_time 필드에 매핑됩니다. |
obj.org |
entity.entity.administrative_domain | 원시 로그의 org 필드가 UDM 항목 객체의 administrative_domain 필드에 매핑됩니다. |
obj.resource_uri |
entity.metadata.threat.url_back_to_product | 원시 로그의 resource_uri 필드는 UDM 위협 객체의 url_back_to_product 필드에 매핑됩니다. |
obj.retina_confidence |
entity.metadata.threat.confidence_score | 원시 로그의 retina_confidence 필드가 UDM 위협 객체의 confidence_score 필드에 매핑됩니다. |
obj.source |
ioc.feed_name | 원시 로그의 소스 필드가 UDM ioc 객체의 feed_name 필드에 매핑됩니다. |
obj.source |
entity.metadata.threat.threat_name | 원시 로그의 소스 필드가 UDM 위협 객체의 threat_name 필드에 매핑됩니다. |
obj.status |
entity.metadata.threat.threat_status | 원시 로그의 상태 필드가 UDM 위협 객체의 threat_status 필드에 매핑됩니다. |
obj.subtype |
entity.entity.file.sha1 | 하위 유형이 'SHA1'인 경우 원시 로그의 하위 유형 필드가 UDM 엔티티 객체의 sha1 필드에 매핑됩니다. |
obj.subtype |
entity.entity.file.sha256 | 원시 로그의 하위 유형 필드는 하위 유형이 'SHA256'인 경우 UDM 엔티티 객체의 sha256 필드에 매핑됩니다. |
obj.tags |
entity.metadata.source_labels | 원시 로그의 태그 필드가 UDM 항목 객체의 source_labels 필드에 매핑됩니다. |
obj.tags.id |
entity.metadata.source_labels | 원시 로그의 태그 배열에 있는 ID 필드가 UDM 엔티티 객체의 source_labels 필드에 매핑됩니다. |
obj.tags.name |
entity.metadata.source_labels | 원시 로그의 태그 배열에 있는 이름 필드는 UDM 항목 객체의 source_labels 필드에 매핑됩니다. |
obj.threatscore |
entity.metadata.threat.risk_score | 원시 로그의 threatscore 필드는 UDM 위협 객체의 risk_score 필드에 매핑됩니다. |
obj.threat_type |
entity.metadata.threat.detection_fields | 원시 로그의 threat_type 필드가 UDM 위협 객체의 detection_fields 필드에 매핑됩니다. |
obj.type |
entity.entity.file.md5 | 유형이 'md5'인 경우 원시 로그의 type 필드가 UDM 엔티티 객체의 md5 필드에 매핑됩니다. |
obj.type |
entity.entity.hostname | 유형이 'domain'인 경우 원시 로그의 type 필드가 UDM 엔티티 객체의 hostname 필드에 매핑됩니다. |
obj.type |
entity.entity.ip | 유형이 'ip' 또는 'ipv6'인 경우 원시 로그의 유형 필드가 UDM 항목 객체의 ip 필드에 병합됩니다. |
obj.type |
entity.entity.url | 유형이 'url' 또는 'string'인 경우 원시 로그의 type 필드가 UDM 엔티티 객체의 url 필드에 매핑됩니다. |
obj.type |
entity.entity.user.email_addresses | 유형이 'email'인 경우 원시 로그의 type 필드가 UDM 엔티티 객체의 email_addresses 필드에 병합됩니다. |
obj.type |
entity.metadata.entity_type | 원시 로그의 type 필드가 UDM 항목 객체의 entity_type 필드에 매핑됩니다. 유형이 'ip' 또는 'ipv6'인 경우 'IP_ADDRESS'에 매핑됩니다. 유형이 'domain'이면 'DOMAIN_NAME'에 매핑됩니다. 유형이 'md5'이거나 itype 필드에 'md5'가 포함된 경우 'FILE'에 매핑됩니다. 유형이 'url' 또는 'string'이면 'URL'에 매핑됩니다. 유형이 'email'이면 'USER'에 매핑됩니다. 그렇지 않으면 'UNKNOWN_ENTITYTYPE'에 매핑됩니다. |
obj.uuid |
entity.additional.fields | 원시 로그의 uuid 필드가 UDM 항목 객체의 fields 필드에 매핑됩니다. |
obj.value |
entity.entity.ip | 유형 필드가 'ip'이고 ip 필드가 비어 있으면 원시 로그의 값 필드가 UDM 엔티티 객체의 ip 필드에 병합됩니다. |
obj.value |
entity.entity.ip | ip_field_not_exists 필드가 true이고 value 필드가 IP 주소인 경우 원시 로그의 value 필드가 UDM 엔티티 객체의 ip 필드에 병합됩니다. |
obj.value |
entity.entity.url | 유형 필드가 'url' 또는 'string'인 경우 원시 로그의 값 필드가 UDM 엔티티 객체의 url 필드에 매핑됩니다. |
obj.value |
ioc.domain_and_ports.domain | type 필드가 'ip'가 아닌 경우 원시 로그의 value 필드가 UDM ioc 객체의 domain 필드에 매핑됩니다. |
obj.value |
ioc.ip_and_ports.ip_address | type 필드가 'ip'이고 ip 필드가 비어 있으면 원시 로그의 value 필드가 UDM ioc 객체의 ip_address 필드에 매핑됩니다. |
cn1 |
ioc.confidence_score | 원시 로그의 cn1 필드가 UDM ioc 객체의 confidence_score 필드에 매핑됩니다. |
cn2 |
entity.metadata.threat.rule_id | 원시 로그의 cn2 필드가 UDM 위협 객체의 rule_id 필드에 매핑됩니다. |
cs1 |
ioc.raw_severity | 원시 로그의 cs1 필드는 UDM ioc 객체의 raw_severity 필드에 매핑됩니다. |
cs2 |
entity.metadata.threat.threat_name | 원시 로그의 cs2 필드가 UDM threat 객체의 threat_name 필드에 매핑됩니다. |
cs3 |
entity.metadata.threat.threat_status | 원시 로그의 cs3 필드는 UDM 위협 객체의 threat_status 필드에 매핑됩니다. cs3 필드가 'active'인 경우 'ACTIVE'에 매핑됩니다. cs3 필드가 'cleared'인 경우 'CLEARED'로 매핑됩니다. cs3 필드가 'falsePositive' 또는 'falsepos'인 경우 'FALSE_POSITIVE'에 매핑됩니다. cs3 필드가 'threat_status_unspecified'인 경우 'THREAT_STATUS_UNSPECIFIED'에 매핑됩니다. |
cs4 |
entity.entity.administrative_domain | 원시 로그의 cs4 필드는 UDM 엔티티 객체의 administrative_domain 필드에 매핑됩니다. |
cs5 |
ioc.description | 원시 로그의 cs5 필드가 UDM ioc 객체의 description 필드에 매핑됩니다. |
cs5 |
entity.metadata.threat.detection_fields | 원시 로그의 cs5 필드는 UDM 위협 객체의 detection_fields 필드에 매핑됩니다. |
cs5 |
entity.metadata.threat.description | 원시 로그의 cs5 필드가 UDM 위협 객체의 설명 필드에 매핑됩니다. |
cs6 |
entity.metadata.threat.category_details | 원시 로그의 cs6 필드가 UDM 위협 객체의 category_details 필드에 병합됩니다. |
device_product |
entity.metadata.product_name | 원시 로그의 device_product 필드가 UDM 엔티티 객체의 product_name 필드에 매핑됩니다. |
device_vendor |
entity.metadata.vendor_name | 원시 로그의 device_vendor 필드가 UDM 항목 객체의 vendor_name 필드에 매핑됩니다. |
device_version |
entity.metadata.product_version | 원시 로그의 device_version 필드가 UDM 엔티티 객체의 product_version 필드에 매핑됩니다. |
msg |
entity.metadata.threat.summary | 원시 로그의 msg 필드가 UDM 위협 객체의 summary 필드에 매핑됩니다. |
shost |
entity.entity.hostname | 원시 로그의 shost 필드가 UDM 엔티티 객체의 hostname 필드에 매핑됩니다. |
shost |
entity.entity.url | 원시 로그의 shost 필드가 UDM 항목 객체의 url 필드에 매핑됩니다. |
shost |
ioc.domain_and_ports.domain | 원시 로그의 shost 필드가 UDM ioc 객체의 domain 필드에 매핑됩니다. |
src |
entity.entity.ip | 원시 로그의 src 필드가 UDM 항목 객체의 ip 필드로 병합됩니다. |
src |
ioc.ip_and_ports.ip_address | 원시 로그의 src 필드가 UDM ioc 객체의 ip_address 필드에 매핑됩니다. |
entity.metadata.threat.confidence | HIGH_CONFIDENCE | confidence_score 필드가 75 이상이면 UDM 위협 객체의 신뢰도 필드가 'HIGH_CONFIDENCE'로 설정됩니다. |
entity.metadata.threat.confidence | LOW_CONFIDENCE | confidence_score 필드가 50 이하인 경우 UDM 위협 객체의 신뢰도 필드가 'LOW_CONFIDENCE'로 설정됩니다. |
entity.metadata.threat.confidence | MEDIUM_CONFIDENCE | confidence_score 필드가 50보다 크고 74 이하인 경우 UDM 위협 객체의 신뢰도 필드가 'MEDIUM_CONFIDENCE'로 설정됩니다. |
entity.metadata.threat.confidence | UNKNOWN_CONFIDENCE | confidence_score 필드가 유효한 정수가 아닌 경우 UDM 위협 객체의 신뢰도 필드가 'UNKNOWN_CONFIDENCE'로 설정됩니다. |
entity.metadata.vendor_name | ANOMALI_IOC | UDM 엔티티 객체의 vendor_name 필드가 'ANOMALI_IOC'로 설정됩니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.