v3 API를 사용하여 ThreatConnect IOC 로그 수집

다음에서 지원:

Google Security Operations의 ThreatConnect 피드를 사용하면 ThreatConnect 계정에서 IP 주소, 도메인, URL, 파일 해시와 같은 침해 지표 (IOC)와 컨텍스트 (예: 위협 유형, 신뢰도 점수, 태그)를 자동으로 가져올 수 있습니다. 이러한 IOC를 수집하면 Google Security Operations의 보안 데이터가 보강되어 위협 감지 및 조사 기능이 향상됩니다.

이 문서에서는 ThreatConnect v3 API 커넥터를 사용하여 ThreatConnect 인스턴스에서 IOC를 수집하도록 Google SecOps를 구성하는 방법을 설명합니다. 이 버전의 커넥터는 ThreatConnect v3 REST API를 사용하며 ThreatConnect v2 REST API를 사용하는 기존 커넥터의 업데이트된 버전입니다.

시작하기 전에

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

  • 활성 ThreatConnect 인스턴스 및 v3 API를 사용하여 필요한 표시기에 액세스할 수 있는 충분한 권한이 있는 사용자 계정 여기에는 일반적으로 지표와 속성을 읽을 수 있는 권한이 포함됩니다.
  • Google Security Operations 인스턴스
  • Google SecOps 피드를 관리할 수 있는 충분한 Identity and Access Management 권한이 Google Cloud 프로젝트에 있어야 합니다.

구성 단계

ThreatConnect IOC 피드를 설정하려면 다음 단계를 따르세요.

ThreatConnect v3 API 사용자 인증 정보 가져오기

  1. ThreatConnect 인스턴스에 로그인합니다.
  2. API 사용자 관리 섹션으로 이동하여 새 API 사용자를 만들거나 Google SecOps 통합을 위해 지정된 기존 사용자를 사용합니다.
  3. 새 API 사용자를 만들려면 다음 단계를 따르세요.

    1. 설정 > 조직 설정으로 이동합니다.
    2. 조직 설정 페이지의 멤버십 탭으로 이동합니다.
    3. Create API User(API 사용자 만들기)를 클릭합니다.
    4. API 사용자 관리 창의 필드를 작성합니다.

      • 이름: API 사용자의 이름을 입력합니다.
      • : API 사용자의 성을 입력합니다.
      • 시스템 역할: API 사용자 또는 Exchange 관리자 시스템 역할을 선택합니다.

      • 조직 역할: API 사용자의 조직 역할을 선택합니다.

      • 관찰 및 거짓양성에 포함: API 사용자가 제공한 데이터를 개수에 포함하려면 체크박스를 선택합니다.

      • 사용 중지됨: 관리자가 로그 무결성을 유지하려는 경우 체크박스를 클릭하여 API 사용자의 계정을 사용 중지합니다.

  4. 액세스 ID보안 비밀 키를 복사하여 안전하게 저장합니다.

  5. 저장을 클릭합니다.

  6. 관련 API 사용자의 액세스 ID와 보안 비밀 키를 가져와 다음 단계로 진행합니다.

Google Security Operations에서 ThreatConnect 피드 구성

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 다음 페이지에서 단일 피드 구성을 클릭합니다.
  4. 피드 이름 필드에 피드 이름을 입력합니다 (예: ThreatConnect Logs).
  5. 소스 유형으로 서드 파티 API를 선택합니다.
  6. 로그 유형에서 ThreatConnect IOC V3를 선택합니다.
  7. 다음을 클릭합니다.
  8. ThreatConnect v3 API에 대한 다음 세부정보를 입력합니다.
    • 액세스 ID: 1단계에서 얻은 ThreatConnect 액세스 ID를 입력합니다.
    • Secret Key: 1단계에서 획득한 ThreatConnect 보안 비밀 키를 입력합니다.
    • API 호스트 이름: ThreatConnect 인스턴스의 FQDN (예: <myinstance>.threatconnect.com)
    • 소유자: 표시기를 가져올 ThreatConnect 조직, 커뮤니티 또는 소스를 지정합니다. 소유자를 한 줄에 하나씩 입력합니다. 자세한 내용은 소유자 개요를 참고하세요.
    • TQL: 수집 요구사항에 따라 IoC를 가져오는 데 필요한 TQL 쿼리입니다 (TQL 쿼리 작성 방법 참고).
    • 필드: 기본적으로 가져오지 않는 가져올 추가 필드의 이름입니다. 한 줄에 하나의 필드를 입력합니다(기본 필드 및 추가 필드 목록 참고).
  9. 다음을 클릭합니다.
  10. 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.

수집 유효성 검사

  1. 구성을 제출한 후 초기 데이터 가져오기가 완료될 때까지 기다립니다.
  2. 피드 목록에서 피드 상태를 확인합니다. 상태가 최종적으로 완료됨 또는 활성으로 표시되어야 합니다.
  3. Google Security Operations 검색 페이지에서 로그를 쿼리하여 데이터가 수집되고 있는지 확인합니다.
    • log_type = "THREATCONNECT_IOC_V3" 쿼리를 사용합니다.
  4. 수집된 로그를 검사하여 필드가 예상대로 파싱되는지 확인합니다.

TQL 쿼리 작성 방법

ThreatConnect에서는 ThreatConnect Query Language (TQL)라는 SQL 스타일의 쿼리 언어를 사용하여 구조화된 쿼리를 빌드하여 데이터를 매우 타겟팅된 방식으로 검색할 수 있습니다. TQL 쿼리에는 매개변수 이름, 연산자, 값 또는 값 목록이 포함되며 괄호와 AND/OR 논리를 사용하여 여러 쿼리를 결합할 수 있습니다.

  • 다음 예시 TQL 쿼리는 지난 30일 동안 추가되었으며 Cobalt Strike, APT 또는 피싱과 연결된 신뢰도가 높은 네트워크 지표(IP, 호스트, URL)를 검색합니다. 또한 알려진 거짓양성과 내부 테스트 데이터를 명시적으로 필터링합니다.

    typeName IN ("Address", "Host", "URL")
    AND confidence > 75
    AND dateAdded > "NOW() - 30 DAYS"
    AND (summary CONTAINS "cobalt" OR tag STARTSWITH "APT" OR tag ENDSWITH "Phish")
    AND NOT tag = "False_Positive"
    AND source != "Internal_Testing"
    

TQL에 대한 자세한 내용은 ThreatConnect TQL 문서를 참고하세요.

기본 필드 및 추가 필드 목록

이 섹션에서는 ThreatConnect API에서 가져온 특정 데이터 포인트를 기본적으로 포함되는지 아니면 수동 구성이 필요한지에 따라 분류하여 자세히 설명합니다.

기본 필드

다음 기본 필드는 API에서 기본적으로 가져오며 추가 구성이 필요하지 않습니다.

# 필드 설명 유형 예시 값
1 active 표시기가 활성 상태인지 여부를 나타냅니다. 불리언 true, false
2 activeLocked 활성 표시기 상태가 잠겨 있는지 여부를 나타냅니다. 불리언 true, false
3 confidence 지표의 신뢰도 등급 정수 1, 2, 3, ... 100
4 dateAdded 표시기가 외부에서 생성된 날짜와 시간 DateTime "2023-10-04T12:34:56Z"
5 id 표시기의 ID 정수 1, 2, 3, ... 100
6 ip 주소 표시기와 연결된 IP 주소 문자열 "107.180.48.66"
7 lastModified 지표가 마지막으로 외부에서 수정된 날짜와 시간입니다. DateTime "2023-10-04T12:34:56Z"
8 legacyLink ThreatConnect 앱에서 표시기에 관한 세부정보에 액세스하기 위한 기존 URL (게이트) URL "https://app.threatconnect.com/auth/indicators/..."
9 ownerId 표시기가 속한 소유자의 ID 정수 1, 2, 3, ... 100
10 ownerName 표시기가 속한 소유자의 이름 문자열 "Demo Community"
11 privateFlag 표시기가 비공개인지 여부를 나타냅니다. 불리언 true, false
12 rating 지표의 위협 등급 Big Decimal 1.0, 2.0, 3.0, 4.0, 5.0
13 summary 지표의 값 지표 유형에 따라 "type": "Host","summary": "zayla.co" ; "type": "Address","summary": "107.180.48.66"
14 type 생성되는 지표의 유형 문자열 "Address", "Host", "Registry Key" (허용된 값 목록)
15 webLink ThreatConnect 앱의 표시기에 관한 세부정보에 액세스하는 URL (게이트) URL "https://app.threatconnect.com/#/details/indicators/10/overview"

추가 필드

데이터를 가져올 때 필드 입력 필드를 사용하여 기본 필드 목록에 포함되지 않은 추가 필드를 포함할 수 있습니다.

API 응답에 하나 이상의 추가 필드를 포함하려면 피드를 설정할 때 필드 입력란에 필드 값을 별도의 줄에 입력합니다. 예를 들어 API 응답에 연결된 그룹 및 태그의 데이터를 포함하려면 1행에 associatedGroups를 입력하고 Enter를 누른 다음 2행에 tags를 입력합니다.

표시기의 속성에 대한 자세한 내용은 표시기 개요를 참고하세요. 추가 필드에 대한 자세한 내용은 API 응답에 추가 필드 포함을 참고하세요.

일반적인 문제 해결

  • 인증 실패: API 호스트, 액세스 ID, 보안 키를 다시 확인합니다. API 사용자에게 v3 API에 대한 올바른 권한이 있고 잠겨 있지 않은지 확인합니다. Google SecOps가 ThreatConnect API 호스트에 액세스하는 것을 차단하는 네트워크 방화벽이 없는지 확인합니다.
  • 데이터가 수집되지 않음:
    • 설정한 필터 (예: 신뢰도, 태그, 유형)가 ThreatConnect 인스턴스에서 사용할 수 있는 표시기와 일치하는지 확인합니다.
    • ThreatConnect API 사용자의 권한을 확인합니다.
    • Google SecOps UI에서 최신 피드 상태를 확인하여 오류 메시지를 확인합니다.
  • API 비율 제한: ThreatConnect에서 API 비율 제한을 적용할 수 있습니다. 커넥터는 표준 비율 제한을 처리해야 하지만 과도한 가져오기로 인해 지연이 발생할 수 있습니다. 한도에 대한 자세한 내용은 ThreatConnect API 문서를 참고하세요.
  • 데이터 파싱 문제: 로그가 수집되었지만 올바르게 파싱되지 않은 경우 Google SecOps의 원시 로그를 ThreatConnect v3 API의 예상 JSON 출력과 비교합니다. 파서 문제가 의심되면 Google Cloud 지원팀에 문의하세요.

v2 커넥터에서 이전

v2 API를 기반으로 하는 이전 ThreatConnect 피드를 사용한 경우 다음 사항을 고려하세요.

  • 주요 차이점: v3 API의 데이터 구조, 필터링 매개변수 또는 기능이 다를 수 있습니다. ThreatConnect v3 API 문서를 검토하여 수집하는 지표와 관련된 변경사항을 파악합니다.
  • v3 피드 설정: v3 API 사용자 인증 정보를 사용하여 새 피드를 구성합니다 (위 설명 참고). 전환 기간 동안 v2와 v3 피드를 동시에 실행할 수 있습니다.
  • 데이터 검증: v3 피드에서 수집한 데이터를 이전 v2 피드의 데이터와 비교하여 완전성과 정확성을 확인합니다. 필드 변경사항이나 개선사항을 기록합니다.
  • 이전 피드 사용 중지: v3 피드가 예상대로 작동하는지 확인한 후 v2 API를 사용하는 이전 피드 구성을 사용 중지하거나 삭제하여 중복 데이터를 방지하고 API 호출을 줄일 수 있습니다.

자세히 알아보기

ThreatConnect v3 REST API에 대한 자세한 내용은 ThreatConnect 문서를 참고하세요.

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