Anomali ThreatStream IOC 로그 수집

다음에서 지원:

이 문서에서는 API를 사용하여 Anomali ThreatStream IOC 로그를 Google Security Operations에 수집하는 방법을 설명합니다. 파서는 JSON 또는 CEF 형식의 IOC 데이터를 통합 데이터 모델 (UDM)로 변환합니다. 코드는 먼저 입력을 JSON으로 파싱하려고 시도하고, 실패하면 'CEF:' 접두사를 확인하여 CEF 메시지로 처리하고 IOC 속성을 추출하여 UDM 필드에 매핑합니다.

시작하기 전에

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

  • Google SecOps 인스턴스
  • Anomali ThreatStream 엔터프라이즈 테넌트에 대한 액세스 권한

전용 API 사용자 만들기

  1. ThreatStream에 로그인합니다. Anomali Enterprise를 사용하는 경우 기본 UI로 전환합니다.
  2. 관리 > 사용자로 이동합니다.
  3. + 사용자 추가를 클릭하거나 기존 서비스 계정을 선택합니다.
  4. 다음 세부정보를 입력합니다.
    • 이메일: 서비스 계정 이메일 주소 (예: anomali_ioc_secops@example.com)
    • 인증 소스: 표준을 선택합니다.
    • 사용자 유형: API 사용자를 선택합니다.
    • 역할: 읽기 전용을 선택합니다 (표시기를 나열하는 데 충분함).
  5. 저장을 클릭합니다.
  6. 새 계정으로 활성화 이메일이 전송됩니다. 활성화를 완료하세요.

API 키 생성

  1. API 사용자ThreatStream에 로그인합니다.
  2. 프로필 아바타 > 내 API 키로 이동합니다.
  3. 새 키 생성을 클릭합니다.
  4. 설명을 입력합니다 (예: Google SecOps export).
  5. 저장을 클릭합니다.
  6. 아래에 표시된 키 값을 복사하여 안전한 위치에 저장합니다. 키 값이 다시 표시되지 않습니다.
  1. 관리 > 조직 설정으로 이동합니다.
  2. IP 허용 목록 탭을 선택합니다.
  3. + 추가를 클릭합니다.
  4. Google SecOps 테넌트 주소를 입력하고 저장을 클릭합니다.

피드 설정

  1. SIEM 설정> 피드로 이동합니다.
  2. 새로 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다 (예: Anomali TS IOC).
  4. 소스 유형으로 서드 파티 API를 선택합니다.
  5. Anomali 로그 유형을 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 파라미터의 값을 지정합니다.
    • 사용자 이름: 새로 만든 API 사용자를 입력합니다.
    • 보안 비밀: 이전에 복사한 생성된 API 키를 입력합니다.
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
  8. 다음을 클릭합니다.
  9. 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.

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 전문가로부터 답변을 받으세요.