자체 위협 인텔리전스 피드 통합

다음에서 지원:

이 가이드는 맞춤 침해 지표 (IoC)와 서드 파티 위협 인텔리전스 피드를 Google Security Operations에 통합하려는 보안 엔지니어와 탐지 엔지니어를 대상으로 합니다. 위협 피드를 수집하고, 표시기를 통합 데이터 모델 (UDM) 항목 컨텍스트 그래프 (ECG)로 정규화하고, 표시기 항목을 스트리밍 이벤트 원격 분석과 상호 연관하는 방법을 설명합니다. 이 방법을 따르면 환경 전반에서 위협 탐지를 자동화하고 수동 지표 조회를 없앨 수 있습니다. 성공적인 통합을 통해 알림 분류 시간이 단축되고 실시간 및 소급 위협 감지를 통해 조직의 보안 상황이 강화됩니다.

맞춤 위협 인텔리전스 피드를 통합하면 보안 운영팀이 외부 지표 스트림 (예: 멀웨어 정보 공유 플랫폼(MISP), STIX/TAXII 또는 상업용 피드)을 내부 보안 원격 분석과 결합할 수 있습니다. ECG로 정규화되면 위협 엔티티는 자동 표시기 일치와 맞춤 다중 이벤트 YARA-L 2.0 상관관계 규칙을 모두 지원합니다.

주요 용어

  • 엔티티 컨텍스트 그래프 (ECG): 보안 이벤트 로그와의 상관관계를 위해 상태 저장 엔티티 레코드 (예: 애셋, 사용자, 위협 지표)를 유지하는 Google SecOps의 컨텍스트 스토리지 레이어입니다.
  • 통합 데이터 모델 (UDM): Google SecOps에서 원시 이벤트 로그와 컨텍스트 항목 데이터를 정규화하는 데 사용하는 표준화된 스키마입니다.
  • 표시기 수명 주기 간격 (metadata.interval): 위협 표시기가 ECG에서 활성화되는 시기를 정의하는 시간 제한 유효성 창 (start_timeend_time)입니다.
  • 자동 IoC 일치: 수신 보안 이벤트가 ECG의 활성 지표 엔티티와 일치할 때 생성되는 시스템 생성 발견 사항으로, IoC 일치 페이지에 표시됩니다.
  • YARA-L Retrohunt: 최대 30일 전의 과거 보안 원격 분석에 대해 YARA-L 2.0 감지 규칙을 실행하는 주문형 과거 검색입니다.

일반적인 사용 사례

다음 사용 사례에서는 자체 위협 인텔리전스를 가져오는 것이 일반적인 보안 운영 목표를 해결하는 방법을 보여줍니다.

자동화된 실시간 표시기 매칭

  • 목표: 맞춤 상관관계 규칙을 유지하지 않고 수집된 서드 파티 지표에 대해 스트리밍 보안 이벤트를 자동으로 평가합니다.
  • : 대량 위협 피드의 수동 규칙 유지보수를 없애고 IoC 일치 페이지에 즉각적인 일치를 표시합니다.

맞춤 YARA-L 상관관계 규칙 및 레트로헌팅

  • 목표: 다중 이벤트 원격 분석을 사용하여 ECG에서 위협 인텔리전스 항목을 결합하고, 레트로헌트를 사용하여 최대 30일의 이전 데이터를 검사합니다.
  • 가치: 다단계 공격을 감지하고 위협 피드에 표시기가 추가되기 전에 발생한 과거 침해를 발견합니다.

시작하기 전에

시작하기 전에 다음 기본 요건을 충족하는지 확인하세요.

  • 권한: Google SecOps에서 데이터 피드를 관리하고 감지 규칙을 작성하려면 ID 및 액세스 관리 권한 (예: Chronicle API Admin 또는 Chronicle API Editor)이 있어야 합니다. 필요한 역할에 관한 자세한 내용은 기능 액세스 구성을 참고하세요.
  • 환경 확인: 활성 Google SecOps 인스턴스와 외부 위협 인텔리전스 제공업체 (예: MISP, STIX/TAXII 또는 Cloud Storage 버킷)의 유효한 API 사용자 인증 정보 또는 엔드포인트 URL이 있는지 확인합니다.
  • 검색과 규칙 기능 비교: UDM 검색을 사용하면 활성 창과 관계없이 ECG에 저장된 원시 엔티티 레코드를 검사할 수 있지만 YARA-L 감지 규칙 및 자동 일치는 metadata.interval이 이벤트 타임스탬프를 포함하는 지표만 평가합니다.
  • 대시보드 및 검색 필드 접두사: UDM 검색, 대시보드 또는 YARA-L 규칙에서 위협 인텔리전스 엔티티를 쿼리할 때는 표시기 값 (예: graph.entity.ip)에 graph.entity. 접두사를 사용하고 위협 속성 지정 필드에는 graph.metadata.threat. 접두사를 사용합니다.

위협 인텔리전스 지표 수집

외부 표시기 스트림을 Google SecOps로 가져오기 위한 수집 메커니즘을 선택하고 구성합니다.

피드 수집 메커니즘 선택

다음 지원되는 메커니즘을 사용하여 위협 인텔리전스 피드를 수집할 수 있습니다.

  • 사전 빌드된 기본 파서: Google SecOps에는 다양한 위협 인텔리전스 플랫폼의 기본 파서가 포함되어 있습니다. IOC로 분류된 지원되는 파서 목록은 지원되는 로그 유형 및 기본 파서를 참고하세요. 지원되는 공급업체로는 MISP, ThreatConnect, Intel471, Cyjax가 있습니다.
  • 피드 관리 API: Google SecOps 콘솔에서 또는 피드 관리 API를 사용하여 피드를 구성하여 외부 HTTPS, Cloud Storage 또는 Amazon S3 엔드포인트에서 주기적으로 표시기를 가져옵니다.
  • 수집 API: 수집 API를 사용하여 사전 구조화된 엔티티 페이로드를 Google SecOps로 직접 전송합니다.
  • Bindplane 에이전트: Bindplane 에이전트를 사용하여 온프레미스 또는 클라우드 환경에서 표시기 로그를 수집하고 전달합니다.
  • Cloud Run Functions: Cloud Run Functions를 사용하여 서버리스 수집 스크립트를 배포하여 외부 API (예: STIX/TAXII 또는 MISP)에서 표시기를 가져와 Google SecOps로 스트리밍합니다. 자세한 내용은 Cloud Run Functions로 배포된 수집 스크립트 사용을 참고하세요.
  • Google SecOps 대응 통합: 콘텐츠 허브 커넥터를 통해 표시기를 수집하여 자동화된 플레이북의 일부로 위협 목록을 동기화합니다. 자세한 내용은 콘텐츠 허브 사용하기를 참고하세요.

위협 인텔리전스 피드 온보딩

위협 인텔리전스 제공업체의 표시기 로그를 Google SecOps로 수집하려면 다음 단계를 따르세요.

  1. 특정 위협 피드 형식 또는 제공업체의 온보딩 절차를 따릅니다.

  2. 기본 파서가 표시기 속성을 UDM 엔티티 필드로 추출할 수 있도록 해당 IoC 로그 유형 (예: STIX, MISP_IOC, CSV_CUSTOM_IOC 또는 THREATCONNECT_IOC)을 수신 피드 데이터에 할당합니다.

  3. 데이터 수집 대시보드를 열고 수신 로그 항목이 파싱되지 않은 로그 오류 없이 표시되는지 확인합니다.

엔티티 컨텍스트 그래프 채우기 및 검증

위협 지표가 Google SecOps에 입력되면 파싱 파이프라인이 이를 UDM 엔티티 레코드로 정규화하고 ECG를 채웁니다. 엔티티 보강 작동 방식에 대한 자세한 내용은 Google SecOps에서 이벤트 및 엔티티 데이터를 보강하는 방법을 참고하세요.

정형 데이터와 비정형 데이터 매핑

위협 인텔리전스 데이터를 Google SecOps에 전송하는 방법에 따라 적절한 필드 매핑 워크플로를 따르세요.

  • 구조화된 데이터 수집: 수집 API를 사용하여 사전 구조화된 UDM 항목 레코드를 직접 전송할 때는 수집 전에 UDM Entity 스키마에 따라 각 페이로드를 포맷합니다.
  • 구조화되지 않은 데이터 및 반구조화된 데이터 수집: 피드, Bindplane 에이전트 또는 전달자를 사용하여 원시 로그(예: CSV, JSON, STIX 또는 CEF)를 전송할 때 사전 빌드된 기본 파서를 할당하거나 파서 확장 프로그램을 사용하여 맞춤 필드 매핑을 만들어 표시기 값을 추출하고 필수 UDM 엔티티 필드에 매핑합니다.

항목을 IoC로 만드는 요소

ECG의 엔티티 레코드가 자동 매칭 및 감지 규칙에 의해 실행 가능한 IoC로 인식되려면 파서 또는 API 페이로드가 다음 5개의 UDM 필드 그룹을 채워야 합니다.

  • 항목 유형(metadata.entity_type): 지원되는 표시기 항목 유형입니다(예: DOMAIN_NAME, IP_ADDRESS, FILE, URL).
  • 소스 유형 (metadata.source_type): 데이터 소스 분류입니다. 고객이 수집한 위협 인텔리전스 피드의 경우 ENTITY_CONTEXT로 설정해야 합니다.
  • 아티팩트 식별자 (entity.*): graph.entity.ip, graph.entity.hostname, graph.entity.domain.name, graph.entity.file.sha256 (또는 md5, sha1), graph.entity.url과 같은 표시기 값 자체입니다.
  • 위협 메타데이터 (metadata.threat): threat_feed_name, threat_name, category, severity, confidence을 비롯한 위협을 설명하는 컨텍스트 속성입니다.
  • 수명 주기 간격 (metadata.interval):

    • metadata.interval.start_time: 표시기가 활성화되는 시점의 타임스탬프입니다.
    • metadata.interval.end_time: 표시기가 만료되는 타임스탬프입니다.

스키마 정의는 항목의 UDM 필드 목록EntityMetadata를 참고하세요.

일반적으로 표시기는 수집 및 파싱 후 2~5분 이내에 UDM 검색에서 검색 가능해집니다. UDM 검색을 실행하여 지표가 ECG를 채우는지 확인합니다.

  1. Google SecOps 탐색 메뉴에서 조사 > 검색을 선택합니다.
  2. 검색 필드에 수집된 지표 값의 엔티티 그래프를 타겟팅하는 쿼리를 입력합니다.

    • IP 주소:

      graph.entity.ip = "<var>IP_ADDRESS</var>"
      
    • 도메인:

      graph.entity.hostname = "<var>DOMAIN_NAME</var>"
      
    • 파일 해시 (SHA-256):

      graph.entity.file.sha256 = "<var>SHA256_HASH</var>"
      
    • 소스 제품:

      graph.metadata.source_product = "<var>SOURCE_PRODUCT_NAME</var>"
      
  3. 검색을 클릭하거나 Enter 키를 누릅니다.

  4. 반환된 항목 카드를 클릭하고 threatinterval 필드에 예상되는 메타데이터와 활성 타임스탬프가 포함되어 있는지 확인합니다.

원격 분석 상관관계 분석 및 위협 감지

위협 지표가 ECG에 채워지면 수신되는 보안 이벤트 및 이전 보안 이벤트와 상관관계를 설정합니다.

자동 IoC 일치 사용 설정

Google SecOps에는 맞춤 감지 규칙과 독립적으로 작동하는 자동 일치 엔진이 포함되어 있습니다. 이벤트 원격 분석이 심전도의 활성 표시기와 일치하는 경우:

  • 시스템 생성 일치: 플랫폼에서 맞춤 규칙 유지보수 없이 IoC 일치 레코드를 자동으로 생성합니다.
  • 예상 수집 후 시간 (대략적인 추정치):
    • 스트리밍 이벤트: 지표가 ECG에 채워지면 (일반적으로 수집 후 5~15분) Google SecOps에서 수신되는 스트리밍 이벤트를 평가하고 5~15분 이내에 IoC 일치 페이지에 일치 항목을 표시합니다.
    • 이전 이벤트: 자동 매칭 엔진은 일괄 주기에서 새로 수집된 표시기를 이전 원격 분석과 비교하여 소급 평가하며, 초기 매칭은 일반적으로 1~4시간 내에 표시되고 전체 이전 상관관계는 24시간 내에 완료됩니다.
  • 간격 시행: 일치 엔진은 이벤트 타임스탬프가 metadata.interval 내에 있는 활성 지표에 대해 이벤트를 엄격하게 평가합니다.

YARA-L 2.0 상관관계 규칙 작성

YARA-L 2.0 감지 규칙을 작성하여 이벤트 원격 분석 (예: 네트워크 연결, DNS 쿼리 또는 프로세스 실행)을 ECG의 표시기 엔티티와 결합합니다. 맞춤 규칙을 사용하면 표시기 일치를 행동 기준, 애셋 컨텍스트, 제외 목록과 결합할 수 있습니다.

  1. Google SecOps 탐색 메뉴에서 감지 > 규칙 및 감지를 선택한 다음 새로 만들기를 클릭합니다.
  2. 규칙의 events: 섹션에서 UDM 이벤트 필드 (예: $net.target.ip = $ip)를 해당 ECG 항목 필드 (예: $ioc.graph.entity.ip = $ip)와 조인하는 자리표시자 변수를 정의합니다.
  3. 위협 속성 (예: $ioc.graph.metadata.threat.category)으로 항목 변수를 필터링하고 match: 섹션에서 상관관계 시간 창 (예: $ip over 5m)을 지정합니다.

  4. 새 규칙 저장을 클릭합니다.

레트로헌트를 실행하여 이전 침해 사례 감지

위협 인텔리전스 피드에는 조직에서 피드를 수집하기 며칠 또는 몇 주 전에 공격자가 사용한 지표가 포함되는 경우가 많습니다. 실시간 규칙은 새로 수신되는 원격 분석을 평가하는 반면, YARA-L 역추적은 최대 30일의 이전 보안 이벤트에 규칙 논리를 소급 적용합니다.

  1. Google SecOps 탐색 메뉴에서 감지 > 규칙 및 감지를 선택합니다.
  2. 규칙 목록에서 맞춤 위협 인텔리전스 규칙을 찾습니다.
  3. 를 클릭하여 규칙 옵션을 더 확인하고 YARA-L Retrohunt를 선택합니다.
  4. YARA-L Retrohunt 대화상자에서 이전 검색의 시작 시간과 종료 시간을 선택합니다. 선택한 기간이 규칙에 지정된 일치 기간보다 크거나 같아야 합니다.
  5. 실행을 클릭합니다.
  6. 규칙의 감지 탭을 열어 진행 상황을 모니터링하고 이전 일치 항목을 검사합니다.

자세한 내용은 이전 데이터에 대한 규칙 실행을 참고하세요.

일치 항목 및 알림 조사

Google SecOps의 전용 뷰에서 자동 일치 및 맞춤 상관관계 규칙에 의해 생성된 발견 사항을 검토합니다.

IoC 일치 페이지에서 자동 조회 검토

자동 표시기 일치를 조사하려면 다음 단계를 따르세요.

  1. Google SecOps 탐색 메뉴에서 감지 > IoC 일치를 선택합니다.
  2. 필터 컨트롤을 사용하여 지표 유형 (도메인, IP 주소, 파일 해시 또는 URL)별로 발견 사항의 범위를 지정합니다.
  3. 표시기를 클릭하면 다음과 같은 정보가 표시되는 일치 세부정보 패널이 열립니다.
    • 연결된 내부 애셋 및 사용자 이름입니다.
    • 최초 발생 및 최근 발생 이벤트 타임스탬프입니다.
    • 위협 인텔리전스 피드 소스 및 신뢰도 기여 분석
  4. UDM 검색에서 보기를 클릭하여 표시기와 연결된 모든 원시 원격 분석 이벤트를 검사합니다.

자세한 내용은 Applied Threat Intelligence를 사용하여 IOC 보기를 참고하세요.

알림 및 감지 페이지에서 규칙 히트 분류

맞춤 YARA-L 규칙으로 생성된 감지는 알림감지 페이지에 표시됩니다.

  1. Google SecOps 탐색 메뉴에서 감지 > 알림 및 IoC를 선택하여 우선순위가 지정된 규칙 알림을 확인합니다.
  2. 알림 이름을 클릭하여 알림 세부정보 페이지를 열고 상관관계가 지정된 이벤트 행과 ECG 엔티티 속성이 나열된 감지 표를 검사합니다.
  3. 알림이 사용 중지된 무음 규칙 또는 완료된 사후 검색의 경우 감지 > 규칙 및 감지를 열고 규칙 이름을 클릭한 다음 감지 탭을 검사합니다.

맞춤 지표를 Emerging Threats Center와 연관시키기

신규 위협 센터를 사용하여 맞춤 IoC 일치가 더 광범위한 적대적 캠페인 및 악성코드군과 어떤 관련이 있는지 조사할 수도 있습니다.

  1. Google SecOps 탐색 메뉴에서 감지 > 신규 위협을 선택합니다.
  2. 활성 위협 캠페인 및 권고를 검토하고 UDM 검색으로 전환하여 맞춤 위협 피드의 지표가 관찰된 캠페인 활동과 중복되는지 확인합니다.

자세한 내용은 Emerging Threats Center 개요를 참고하세요.

고급 저작물 및 참조에 액세스

맞춤 위협 인텔리전스 규칙을 빌드할 때 다음 YARA-L 2.0 스니펫과 참조 리소스를 사용하세요.

악성 IP 주소와 일치하는 아웃바운드 네트워크 연결

이 규칙은 아웃바운드 NETWORK_CONNECTION 이벤트를 ECG의 활성 IP 표시기와 상관관계로 연결합니다.

rule custom_ioc_network_connection {
  meta:
    author = "Security Operations"
    description = "Detects connections to IPs matching custom threat intel"
    severity = "HIGH"
    priority = "HIGH"

  events:
    $net.metadata.event_type = "NETWORK_CONNECTION"
    $net.target.ip = $ip

    $ioc.graph.entity.ip = $ip
    $ioc.graph.metadata.threat.category = "SUSPICIOUS_NETWORK"

  match:
    $ip over 5m

  outcome:
    $risk_score = max(85)
    $threat_name = array_distinct($ioc.graph.metadata.threat.threat_name)
    $source_feed = array_distinct($ioc.graph.metadata.source_product)
    $principal_hostname = array_distinct($net.principal.asset.hostname)

  condition:
    $net and $ioc
}

악성 도메인과 일치하는 DNS 쿼리

이 규칙은 수집된 위협 피드에서 악성으로 표시된 도메인의 NETWORK_DNS 조회를 식별합니다.

rule custom_ioc_malicious_domain_query {
  meta:
    author = "Security Operations"
    description = "Detects DNS queries for domains matching threat intel"
    severity = "MEDIUM"
    priority = "MEDIUM"

  events:
    $dns.metadata.event_type = "NETWORK_DNS"
    $dns.network.dns.questions.name = $domain

    $ioc.graph.entity.hostname = $domain

  match:
    $domain over 10m

  outcome:
    $threat_name = array_distinct($ioc.graph.metadata.threat.threat_name)
    $source_feed = array_distinct($ioc.graph.metadata.source_product)
    $client_ip = array_distinct($dns.principal.ip)

  condition:
    $dns and $ioc
}

악성 SHA-256 파일 해시와 일치하는 프로세스 실행

이 규칙은 PROCESS_LAUNCH 이벤트가 ECG에 저장된 알려진 악성 SHA-256 파일 해시와 일치할 때 트리거됩니다.

rule custom_ioc_malicious_file_execution {
  meta:
    author = "Security Operations"
    description = "Detects process launches matching malicious file hashes"
    severity = "CRITICAL"
    priority = "HIGH"

  events:
    $process.metadata.event_type = "PROCESS_LAUNCH"
    $process.target.process.file.sha256 = $sha256

    $ioc.graph.entity.file.sha256 = $sha256

  match:
    $sha256 over 5m

  outcome:
    $threat_name = array_distinct($ioc.graph.metadata.threat.threat_name)
    $file_path = array_distinct($process.target.process.file.full_path)
    $hostname = array_distinct($process.principal.asset.hostname)
    $user = array_distinct($process.principal.user.userid)

  condition:
    $process and $ioc
}

커뮤니티 블로그 및 추가 리소스

YARA-L 규칙 작성 및 맞춤 위협 인텔리전스 피드 상관관계에 관한 추가 예는 다음 Google Cloud 커뮤니티 리소스를 참고하세요.

문제 해결

이 섹션을 사용하여 위협 인텔리전스 피드를 온보딩하고 상관관계 규칙을 빌드할 때 성능 기대치를 관리하고 일반적인 문제를 해결합니다.

지연 시간, 서비스 할당량, 한도

  • 인그레션 및 UDM 검색 색인 생성: 새로 인그레션된 표시기는 일반적으로 2~5분 이내에 UDM 검색에 표시됩니다. 피드 수집 후 5분 이상 기다린 다음 누락된 항목 레코드 문제를 해결하세요.
  • 자동 IoC 일치 지연 시간: 지표가 ECG에 채워지면 수신 스트리밍 이벤트와의 일치가 5~15분 이내에 IoC 일치 페이지에 표시됩니다. 이전 이벤트에 대한 소급 일괄 일치에는 일반적으로 1~4시간이 걸립니다 (전체 이전 상관관계의 경우 최대 24시간).
  • 엔티티 컨텍스트 그래프 상관관계 창: 자동 IoC 일치 및 YARA-L 상관관계 규칙은 활성 metadata.interval 창 내에서만 지표를 평가합니다. 만료된 end_time 값이 있는 표시기는 일치 항목을 생성하지 않습니다.
  • RetroHunt 검색 창: YARA-L RetroHunt는 실행당 최대 30일의 이전 원격 분석을 스캔합니다. 완료 시간은 규칙 복잡성과 시스템 리소스 가용성에 따라 다릅니다.

오류 해결

이 표를 사용하여 위협 인텔리전스 온보딩 및 감지 규칙 작성 중에 발생하는 문제를 진단하고 해결하세요.

문제 문제 설명 수정
파싱되지 않은 IoC 로그 피드 상태에 수신 데이터가 표시되지만 로그가 UDM 항목으로 파싱되지 않습니다. 피드 로그 유형이 파서 (예: STIX, MISP_IOC, CSV_CUSTOM_IOC)와 일치하는지 확인합니다. 데이터 수집 대시보드에서 원시 스키마 오류를 확인합니다.
UDM 검색 결과 누락 표시기 로그는 오류 없이 파싱되지만 UDM 검색에서 엔티티 레코드가 반환되지 않습니다. 쿼리가 udm.principal.* 이벤트 필드가 아닌 graph.entity.* 필드 (예: graph.entity.ip)를 타겟팅하는지 확인합니다.
알려진 지표에서 규칙이 트리거되지 않음 이벤트와 표시기가 UDM 검색에 있지만 YARA-L 규칙에서 탐지가 생성되지 않습니다. 표시기의 metadata.interval.start_timemetadata.interval.end_time이 이벤트 타임스탬프를 둘러싸고 있는지 확인합니다.
레트로헌트 중에 홍수 알림 레트로헌트를 실행하면 수백 개의 중복 SOAR 케이스와 알림이 생성됩니다. RetroHunt를 시작하기 전에 규칙의 알림 전환 버튼을 사용 중지합니다. 실시간 알림을 다시 사용 설정하기 전에 감지 페이지에서 감지를 검토하세요.
거짓양성이 많이 발생함 노이즈가 많은 표시기로 인해 무해한 내부 스캐너 또는 관리 호스트에서 감지가 트리거됩니다. 규칙에 참조 목록 제외 (예: not $net.principal.ip in %benign_scanner_ips)를 추가하고 행동 이벤트 컨텍스트를 요구합니다.

유효성 검사 및 테스트

실시간 알림 모드에서 맞춤 위협 인텔리전스 규칙을 사용 설정하기 전에 내장된 규칙 테스트 기능을 사용하여 규칙의 로직을 확인하세요.

  1. 감지 > 규칙 및 감지를 열고 규칙을 클릭하여 규칙 편집기를 엽니다.
  2. 하단 패널에서 규칙 테스트를 클릭하여 알림이나 SOAR 케이스를 생성하지 않고 최근의 이전 이벤트 데이터 및 활성 ECG 엔티티에 대해 규칙을 평가합니다.
  3. 반환된 테스트 감지를 검사하여 outcome 변수 (예: $threat_name$source_feed)가 예상대로 채워지는지 확인합니다.

다음 단계

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.