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 認証情報を取得する
- ThreatConnect インスタンスにログインします。
- [API ユーザー管理] セクションに移動して、新しい API ユーザーを作成するか、Google SecOps 統合用に指定された既存の API ユーザーを使用します。
新しい API ユーザーを作成するには:
- [Settings] > [Org Settings] に移動します。
- [Organization Settings] ページの [Membership] タブに移動します。
- [Create API User] をクリックします。
[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 ユーザーのアカウントを無効にします。
アクセス ID と秘密鍵をコピーして安全に保存します。
[保存] をクリックします。
関連する API ユーザーのアクセス ID とシークレット キーを取得し、次のステップに進みます。
Google Security Operations で ThreatConnect フィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
ThreatConnect Logs)。 - [ソースタイプ] で [サードパーティ API] を選択します。
- [Log Type] で、[ThreatConnect IOC V3] を選択します。
- [次へ] をクリックします。
- ThreatConnect v3 API の次の詳細を入力します。
- Access ID: 手順 1 で取得した ThreatConnect アクセス ID を入力します。
- Secret Key: ステップ 1 で取得した ThreatConnect 秘密鍵を入力します。
- API Hostname: ThreatConnect インスタンスの FQDN(例:
<myinstance>.threatconnect.com)。 - 所有者: 指標の取得元となる ThreatConnect の組織、コミュニティ、ソースを指定します。1 行に 1 人のオーナーを入力します。詳細については、オーナーの概要をご覧ください。
- TQL: 取り込み要件に基づいて IoC を取得するために必要な TQL クエリ(TQL クエリの作成方法を参照)。
- フィールド: デフォルトでは取得されない、取得する追加フィールドの名前。1 行に 1 つのフィールドを入力します(デフォルト フィールドと追加フィールドのリストを参照)。
- [次へ] をクリックします。
- [Finalize] 画面でフィードの設定を確認し、[Submit] をクリックします。
取り込みを検証する
- 構成を送信したら、初期データの取得にしばらく時間がかかります。
- [フィード] リストでフィードのステータスを確認します。ステータスは最終的に [完了] または [有効] と表示されます。
- Google Security Operations の検索ページでログをクエリして、データが取り込まれていることを確認します。
- クエリ
log_type = "THREATCONNECT_IOC_V3"を使用します。
- クエリ
- 取り込まれたログを調べて、フィールドが想定どおりに解析されていることを確認します。
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 |
指標の値 | Indicator Type に基づいて | "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 のドキュメントをご覧ください。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。