このページには、Recorded Future リスクリストと、Splunk Enterprise でインデックス作成用に一般的に設定されているさまざまなログ ファイルを相関させる検索例が含まれています。これらの検索はいずれも「そのまま」直接使用できる可能性は低く、知識豊富な Splunk エンジニアに、Recorded Future リスク リストとクライアント Splunk インスタンス内のさまざまなログ ファイルを関連付ける検索を構築するための開始点を提供することを目的としています。多くの例は IP アドレスに焦点を当てており、ここで見つかった例からドメイン、脆弱性、ハッシュの同様の検索を簡単に作成できます。
このサポート ページで利用可能な検索のリストは次のとおりです。
- 単一の情報源 - 単一フィールドの例
- 単一の情報源 - 複数フィールドの例
- Recorded Futureリスク情報を元のログソースに追加する
- ドメイン抽出と検索
- ハッシュ抽出と検索
- Splunk Statsを使用してイベントにカウントを追加する
- Splunk Threat Intelligence KV Store で RF データを検索する
- ES の Recorded Future ルックアップテーブルで IP を検索する
- Core SplunkのRecorded FutureルックアップテーブルでIPを検索する
追加の一般的な便利な検索の提案を歓迎します。
単一の情報源 - 単一フィールドの例:
この検索は、ファイアウォール (netscreen など) からの最新の 24 時間のデータと、Recorded Future IP リスクリスト検索を関連付けます。ファイアウォール ログから、リスクがゼロではないことと相関するすべての宛先 (「dst」) IP アドレスが結果に表示されます。
sourcetype=netscreen:firewall earliest=-24h | eval Name=dst | eval Time=start_time | lookup rf_ip_threatfeed Name OUTPUT Risk、RiskString、EvidenceDetails | search Risk != "" | eval RiskScore = Risk | eval Rule = spath(EvidenceDetails,"EvidenceDetails{}.Rule")| eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}.EvidenceString")| search Risk != "" | sort -RiskScore | table Name、Time、RiskScore、RiskString、Rule、EvidenceString | rename Name as IPAddress
単一の情報源 - 複数フィールドの例
これは上記と似た例ですが、相関関係ではファイアウォール データの「src」列と「dst」列の両方を使用して危険な IP アドレスを識別します。
sourcetype=netscreen:firewall earliest=-24h | eval Name=src + ";" + dst | makemv delim=";" Name | mvexpand Name | eval Time=start_time | lookup rf_ip_threatfeed Name OUTPUT Risk、RiskString、EvidenceDetails | search Risk != "" | eval RiskScore = Risk | eval Rule = spath(EvidenceDetails,"EvidenceDetails{}.Rule")| eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}.EvidenceString")| search Risk != "" | sort -RiskScore | table Name、Time、RiskScore、RiskString、Rule、EvidenceString | rename Name as IPAddress
Recorded Futureリスク情報を元のログソースに追加する:
これはバルクエンリッチメントの例です。以下のサンプルでは、Rapid7からの脆弱性スキャンデータがSplunkにロードされており、 Recorded Futureリスク情報をデータセットに追加していることを前提としています。
情報源=“Rapid7_Nexpose_Splunk_Vulnerability_Data" | fields cve, asset_id, dest | eval Name=cve | lookup rf_vuln_threatfeed Name OUTPUT Risk, RiskString, EvidenceDetails | search Risk != "" | eval Rule = spath(EvidenceDetails,"EvidenceDetails{}.Rule")| eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}.EvidenceString") | convert ctime(_time) as Time | table Time, Name, asset_id, dest, Risk, RiskString, Rule, EvidenceString | rename asset_id as "NeXpose AssetID" | sort -Risk </query>
ドメイン抽出と検索:
この検索では、過去 24 時間の「_raw」ログ フィールドで見つかったドメイン名を抽出し、Recorded Future によってスコア付けされたゼロ以外のリスク ドメインと相関するドメイン名を表示します。
index=main evalNsourcetype=squid:access earliest=-24h | rex field=_raw "http://(?<domain>[^/]+)/.+" | eval Time=strftime(_time," %m/% d/%y %I:% M: %S:% p") | eval Name=domain | lookup rf_domain_threatfeed Name OUTPUT Risk、RiskString、EvidenceDetails | search Risk != "" | eval Domain = Name | eval RiskScore = Risk | eval Rule = spath(EvidenceDetails,"EvidenceDetails{}.Rule")| eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}.EvidenceString") |sort -RiskScore | table Domain、Time、RiskScore、RiskString、Rule、EvidenceString
ハッシュ抽出と検索:
この検索は、エンドポイント製品デバイスに記録されたハッシュ(例:Symantec 社と Recorded Future 社のハッシュ リスク リストを比較します。リスクがゼロではない Recorded Future データ内のデータと一致するハッシュが、ハッシュが観測されたときのタイムスタンプとともに表示されます。
sourcetype="symantec:ep:risk:file" earliest=-24h | rex field=_raw "アプリケーションハッシュ: (?<file_hash>[^,]+)" | eval Name=file_hash | eval Time=strftime(_time," %m/% d/%y %I:% M: %S:% p") | lookup rf_hash_threatfeed Name OUTPUT Risk、RiskString、EvidenceDetails | search Risk != "" | eval Rule = spath(EvidenceDetails,"EvidenceDetails{}.Rule")| eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}.EvidenceString") |sort -Risk | table Name、Time、Risk、RiskString、Rule、EvidenceString | rename Name as Hash
Splunk Statsを使用してイベントにカウントを追加する
この検索は、haproxy ログ ファイルの「remoteip」フィールドを、 Recorded Future IP リスク リストと相関させます。ログ レコードとリスク リストのすべての相関関係を表示するのではなく、この検索は IP アドレスごとにグループ化し、過去 24 時間以内の相関イベントの数を表示します。
sourcetype="haproxy:http" 最早=-24h | rex field=captured_headers "^(?<remoteip>\d+\.\d+\.\d+\.\d+).*$"| search remoteip=* | eval Name=remoteip | lookup rf_ip_threatfeed Name OUTPUT Risk、RiskString、EvidenceDetails | search Risk != "" | eventstats count by Name |eval Rule = spath(EvidenceDetails,"EvidenceDetails{}.Rule")| eval EvidenceString = spath(EvidenceDetails,"EvidenceDetails{}.EvidenceString") | sort -count | table Name、count、Risk、RiskString、Rule、EvidenceString | Name を "Destination IP" に変更 | count を Count に変更 | Rule を "Rule(s)" に変更
Splunk Threat Intelligence KV Store で RF データを検索する
これにより、Threat Intelligence KV ストアで利用可能な Recorded Future リスクリストが検索されます。
| `ip_intel` | threat_key=rf* を検索
ESのRFルックアップテーブルでIPを検索する
これは、Recorded Future IP リスクリスト ルックアップ テーブル (Splunk ES) で特定の IP アドレスを検索する簡単な検索です。
| inputlookup 記録されたFutureIpThreatList | 検索名=162.208.22.34
Core SplunkのRFルックアップテーブルでIP(例:162.208.22.34)を検索します。
これは、Recorded Future IP リスクリスト ルックアップ テーブル (Splunk Enterprise) で特定の IP アドレスを検索する簡単な検索です。
| inputlookup rf_ip_threatfeed | 検索名=162.208.22.34<