はじめに
Recorded Future の Collective Insights は、組織にとって重要な脅威の完全なビューを提供する、新しいタイプの Recorded Future 分析です。Collective Insights を使用すると、検出されたインシデントを分析して、次の 2 つの方法でインテリジェンス リソースを作成できます。
- Collective Insightsインフラストラクチャとコントロール全体にわたる侵害の包括的なビューを提供します。
- 匿名化されたデータを使用すると、企業の視界と全体の状況を特定の業界や地域と匿名で比較する視覚化と分析を作成できます。
Recorded FutureのCollective Insightsの詳細については、以下をご覧ください。 Collective Insights を使い始める。
はじめる
これは、インジケーター検知ルールから生成された Elasticsearch アラート インデックスからドキュメントを取り込むスクリプトベースのソリューションです。 このスクリプトは、Elasticsearch アラート インデックスを検索する時間を時間単位で指定して (デフォルトでは 1 時間)、 'lookback' -Lコマンドライン引数に基づいて初期検索を実行します。スクリプトが初めて実行されると、タイムスタンプがファイルに保存され、返されたアラートに応じて、今後のスクリプト実行時に参照されます。アラートが返された場合、保存されるタイムスタンプは最新の Elasticsearch アラートのタイムスタンプです。 それ以外の場合、保存されるタイムスタンプはスクリプトの実行時間になります。以降の実行では、Collective Insights に送信する次の一連のドキュメントを検索するときに、この参照タイムスタンプに 1 ミリ秒が追加されます。
- 保存されたタイムスタンプをコマンドライン引数 lookback で上書きするには、まずconfig/latest_timestamp.txtのファイルを削除してから、Python スクリプトを実行する必要があります。
デフォルトでは、Elasticsearch インスタンスのメジャー バージョン番号によって、スクリプトによってクエリされるアラート インデックスが決まります。
- v8.0.0 以降:アラート-security.アラート
- v8.0.0より前: .siem-signals-*
必要に応じて、 config/settings.ini内でデフォルトのアラート インデックスを上書きできます。
Recorded Future は各インシデントから次のフィールドを収集します。
- _id - 一意のElasticsearchドキュメントID
- @timestamp - ECS 形式のアラートタイムスタンプ。カスタムフィールドの場合は上書き可能です。
- ホスト名- ECS 形式の Elasticsearch ドキュメントのホスト名。カスタムフィールドの場合は上書き可能です。
- threat.enrichments.matched.atomic - インジケーター値が Recorded Future に書き戻されます。Recorded Future は、ip、domain、hash、url のタイプに一致するフィールドのみを収集します。
- kibana.アラート.rule.name - アラートをトリガーしたインジケーター一致ルールの名前。
- 脅威。 TTPs .id - 特定のセキュリティ インシデントで使用される特定の MITRE ATT&CK TTPsおよび支払。
前提条件
統合スクリプトを設定する前に、次の項目をインストール/収集する必要があります。
- Python v3.9
- Elasticsearch APIへのアクセス
- インターネットにアクセスできるローカル環境でスクリプトを実行する環境
- スクリプトをスケジュール通りに実行するためのサーバー/ワークステーション
- Recorded Future API と Elasticsearch API へのインターネットアクセス
- api.recordedfuture.com をホワイトリストに登録することをお勧めします
- Collective Insights API にアクセスできる Recorded Future API トークン
- これはアカウントチームから提供されます
- Elasticsearch からの次の情報:
- Elasticsearch ホスト: クラウド ID、ホスト名
- 認証方法(次のいずれか):
- APIトークンIDとトークンシークレット(APIトークン認証)
- ユーザー名とパスワード(基本認証)
- CA、クライアント証明書、およびクライアントキーファイル(証明書認証)
- アラート インデックス内のデータの読み取りと検索を行うためのインデックス読み取り権限
インストール
Elasticsearch Collective Insights Python スクリプトは、このサポート記事の添付ファイルとして入手できます。
パッケージが提供され、インストールが実行されるマシンにダウンロードされたら、次の手順に従ってスクリプトを初めて構成して実行します。
スクリプトを実行する前に、 config/settings.iniを調べて、必要に応じてパラメータを調整します。クライアントの認証情報/シークレットをスクリプトにパラメータとして渡すのではなく、環境変数として保存することもできます。 これを選択した場合は、次の環境変数を設定する必要があります。
- Collective Insights API: RF_API_KEY
- Elasticsearch ユーザー認証:
- ELASTIC_ユーザー| ELASTIC_パスワード
セットアップ手順
- 依存関係をインストールするための新しい仮想環境を設定し、次のスクリプトを実行します: python3 -m venv venv
- 新しい仮想環境のアクティブ化:情報源 venv/bin/activate
- requirements.txt から依存関係をインストールします。pip3 インストール -r 要件.txt
- 成功を確認するためにPythonスクリプトを実行します: python3 run_elk_ci.py -h
- イベントを取り込んで Collective Insights に送信するために、毎日スケジュールに従って実行されるスクリプトを設定します。
- 毎時0分に実行するcronスケジュールの例: 0 * * * * <FILE_DIR>/venv/bin/python3 <FILE_DIR>/run_elk_ci.py -k RF_API_KEY
トラブルシューティング
- モジュールがインストールされていないためスクリプトが失敗しています
- requirements.txt が pip3 で正しくインストールされていることを確認します。
- Pythonパッケージがインストールされている仮想環境がアクティブになっていることを確認します
- Recorded Future Collective Insights API に送信する権限がありません
- Recorded Future APIトークンに正しいCollective Insights API権限が有効化されていることを確認します。
- Collective Insights に送信されるアラートよりも多くのアラートが Elasticsearch から取り込まれるのはなぜですか?
- Collective Insightsは、API経由で送信する際に固有の指標をフィルタリングします。