v3 API を使用して ThreatConnect IoC のログを収集する

以下でサポートされています。

Google Security Operations の ThreatConnect フィードを使用すると、IP アドレス、ドメイン、URL、ファイル ハッシュなどのセキュリティ侵害インジケーター(IOC)と、そのコンテキスト(脅威の種類、信頼度スコア、タグなど)を ThreatConnect アカウントから自動的に取得できます。これらの 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 統合用に指定された既存の API ユーザーを使用します。
  3. 新しい API ユーザーを作成するには:

    1. [Settings] > [Org Settings] に移動します。
    2. [Organization Settings] ページの [Membership] タブに移動します。
    3. [Create API User] をクリックします。
    4. [API User Administration] ウィンドウのフィールドに入力します。

      • First Name: API ユーザーの名を入力します。
      • Last Name: API ユーザーの姓を入力します。
      • System Role: [Api User] または [Exchange Admin] のシステムロールを選択します。

      • Organization Role: API ユーザーの組織ロールを選択します。

      • Include in Observations and False Positives: API ユーザーから提供されたデータをカウントに含めるには、チェックボックスをオンにします。

      • Disabled: 管理者がログの完全性を保持する場合は、チェックボックスをオンにして API ユーザーのアカウントを無効にします。

  4. アクセス ID と秘密鍵をコピーして安全に保存します。

  5. [保存] をクリックします。

  6. 関連する API ユーザーのアクセス ID とシークレット キーを取得し、次のステップに進みます。

Google Security Operations で ThreatConnect フィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで、[単一のフィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: ThreatConnect Logs)。
  5. [ソースタイプ] で [サードパーティ API] を選択します。
  6. [Log Type] で、[ThreatConnect IOC V3] を選択します。
  7. [次へ] をクリックします。
  8. ThreatConnect v3 API の次の詳細を入力します。
    • Username: 手順 1 で取得した ThreatConnect アクセス ID を入力します。
    • Secret: 手順 1 で取得した ThreatConnect 秘密鍵を入力します。
    • API Hostname: ThreatConnect インスタンスの FQDN(例: <myinstance>.threatconnect.com)。
    • 所有者: 指標の取得元となる ThreatConnect の組織、コミュニティ、ソースを指定します。所有者は 1 行に 1 人ずつ入力します。詳細については、オーナーの概要をご覧ください。
    • TQL: 取り込み要件に基づいて IoC を取得するために必要な TQL クエリ(TQL クエリの作成方法を参照)。
    • フィールド: デフォルトでは取得されない、取得する追加フィールドの名前。1 行に 1 つのフィールドを入力します(デフォルト フィールドと追加フィールドのリストを参照)。
  9. [次へ] をクリックします。
  10. [Finalize] 画面でフィードの設定を確認し、[Submit] をクリックします。

取り込みを検証する

  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 インジケーターの信頼度 Integer 1、2、3、... 100
4 dateAdded インジケーターが外部で作成された日時 DateTime "2023-10-04T12:34:56Z"
5 id インジケーターの ID Integer 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 Integer 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 レスポンスに 1 つ以上の追加フィールドを含めるには、フィードの設定時に、[フィールド] 入力ボックスにフィールド値を別々の行で入力します。たとえば、関連付けられたグループとタグのデータを API レスポンスに含めるには、1 行目に associatedGroups と入力し、Enter を押して、2 行目に tags と入力します。

インジケーター属性の詳細については、インジケーターの概要をご覧ください。追加フィールドの詳細については、API レスポンスに追加フィールドを含めるをご覧ください。

一般的な問題のトラブルシューティング

  • Authentication Failed: API ホスト、アクセス ID、シークレット キーを再度確認します。API ユーザーに v3 API の正しい権限が付与されており、ロックされていないことを確認します。Google SecOps が ThreatConnect API ホストにアクセスするのをブロックするネットワーク ファイアウォールがないことを確認します。
  • No Data Ingested(データが取り込まれていない):
    • 設定したフィルタ(信頼度、タグ、タイプなど)が、ThreatConnect インスタンスで使用可能なインジケーターと一致していることを確認します。
    • ThreatConnect API ユーザーの権限を確認します。
    • Google SecOps UI で最新のフィードのステータスを確認し、エラー メッセージがないか確認します。
  • API レート制限: ThreatConnect は API レート制限を適用する場合があります。コネクタは標準のレート制限を処理しますが、過度なフェッチは遅延を引き起こす可能性があります。制限の詳細については、ThreatConnect API ドキュメントをご覧ください。
  • データ解析の問題: ログが取り込まれても正しく解析されない場合は、Google SecOps の未加工ログと、ThreatConnect v3 API からのインジケーターの想定される JSON 出力を比較します。パーサーの問題が疑われる場合は、 Google Cloud サポートにお問い合わせください。

v2 Connector から移行する

v2 API に基づく以前の ThreatConnect フィードを使用していた場合は、次の点を考慮してください。

  • 主な違い: v3 API では、データ構造、フィルタリング パラメータ、新機能が異なる場合があります。ThreatConnect v3 API のドキュメントを確認して、取り込むインジケーターに関連する変更を把握します。
  • v3 フィードを設定する: v3 API 認証情報を使用して、新しいフィード(上記を参照)を設定します。移行期間中は、v2 フィードと v3 フィードを同時に実行できます。
  • データを検証する: v3 フィードで取り込まれたデータと古い v2 フィードのデータを比較して、完全性と正確性を確認します。フィールドの変更や改善点をメモします。
  • 古いフィードを無効にする: v3 フィードが想定どおりに動作していることを確認したら、v2 API を使用する古いフィード構成を無効にするか削除して、データの重複を回避し、API 呼び出しを減らすことができます。

詳細

ThreatConnect v3 REST API の詳細については、ThreatConnect のドキュメントをご覧ください。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
id entity.asset.product_object_id 直接マッピングされます。
md5 entity.file.md5 直接マッピングされます。
sha1 entity.file.sha1 直接マッピングされます。
sha256 entity.file.sha256 直接マッピングされます。
hostName entity.hostname 直接マッピングされます。
ip entity.ip マッピング: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$ → ip
type entity.ip マッピング: Address → ip
active entity.labels.value 直接マッピングされます。
activeLocked entity.labels.value 直接マッピングされます。
associatedindicators_active entity.labels.value 直接マッピングされます。
associatedindicators_rating entity.labels.value 直接マッピングされます。
calScore entity.labels.value 直接マッピングされます。
dnsActive entity.labels.value 直接マッピングされます。
fileActions.count entity.labels.value 直接マッピングされます。
observations entity.labels.value 直接マッピングされます。
privateFlag entity.labels.value 直接マッピングされます。
rating entity.labels.value 直接マッピングされます。
threatAssessConfidence entity.labels.value 直接マッピングされます。
threatAssessRating entity.labels.value 直接マッピングされます。
threatAssessScoreFalsePositive entity.labels.value 直接マッピングされます。
threatAssessScoreObserved entity.labels.value 直接マッピングされます。
webLink entity.labels.value 直接マッピングされます。
whoisActive entity.labels.value 直接マッピングされます。
security_result entity.security_result 統合済み
legacyLink entity.url 直接マッピングされます。
address entity.user.email_addresses 統合済み
type entity.user.email_addresses マッピング: EmailAddress → address
has_file metadata.entity_type マッピング: true → FILE
has_host metadata.entity_type マッピング: true → DOMAIN_NAME
has_url metadata.entity_type マッピング: true → URL
associatedgroups_dateAdded metadata.event_timestamp ISO8601 として解析
associatedgroups_lastModified metadata.event_timestamp ISO8601 として解析
associatedindicators_dateAdded metadata.event_timestamp ISO8601 として解析
associatedindicators_lastModified metadata.event_timestamp ISO8601 として解析
attributesdata_dateAdded metadata.event_timestamp ISO8601 として解析
attributesdata_lastModified metadata.event_timestamp ISO8601 として解析
tag_lastUsed metadata.event_timestamp UNIX_MS として解析
lastModified metadata.interval.end_time ISO8601 として解析
dateAdded metadata.interval.start_time ISO8601 として解析
confidence metadata.threat.confidence_score 直接マッピングされます。
threatAssessScore metadata.threat.risk_score 直接マッピングされます。
ownerName metadata.threat.threat_feed_name 直接マッピングされます。
ownerId metadata.threat.threat_id 直接マッピングされます。
なし entity.labels.key 定数: rating
なし metadata.entity_type 定数: FILE

変更履歴

このパーサーの変更ログを表示する

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。