mcpField
S
security-generate-security-sample-data

security-generate-security-sample-data

github.com/elasticセキュリティ6023.8k 回インストール今日更新
リポジトリ

security-generate-security-sample-data について

Elastic Securityのサンプルイベント、攻撃シナリオ、合成アラートを生成するスキルです。デモや検知テスト用にKibanaのセキュリティ画面をデータで埋め、継続生成と削除も行えます。

主な機能

  1. 01ECS準拠のセキュリティイベント生成
  2. 024種類の攻撃シナリオのシミュレーション
  3. 03MITRE ATT&CKマッピング付き合成アラートの作成
  4. 04イベントの継続的な配信
  5. 05生成したサンプルデータの削除

活用シーン

  1. 01セキュリティデモ用のKibanaデータ準備
  2. 02攻撃シナリオを使った検知ルールのテスト
  3. 03ライブデモ中のダッシュボード更新
  4. 04デモ後のサンプルイベントとアラートの削除

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/elastic/agent-skills --skill security-generate-security-sample-data

インストール後、Claude Code で/security-generate-security-sample-dataを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
sample-data-reference.md
scripts/
demo-walkthrough.js
es-client.js
kibana-client.js
sample-data.js

詳細

セキュリティのサンプルデータを生成

Elastic のセキュリティダッシュボード、Alerts タブ、Attack Discovery にデータを取り込むために、ECS 準拠のセキュリティイベント、複数ステップの攻撃シナリオ、合成アラートドキュメントを生成します。

クイックスタート

すべてを生成して Kibana を開く、手間のかからない方法です。

node skills/security/generate-security-sample-data/scripts/demo-walkthrough.js

ワークフロー

- [ ] Step 1: Set environment variables
- [ ] Step 2: Generate sample data
- [ ] Step 3: Explore in Kibana
- [ ] Step 4: Clean up when done
ステップ 1:環境変数を設定する
export ELASTICSEARCH_URL="https://your-project.es.region.aws.elastic.cloud"
export ELASTICSEARCH_USERNAME="admin"
export ELASTICSEARCH_PASSWORD="your-password"
export KIBANA_URL="https://your-project.kb.region.aws.elastic.cloud"
ステップ 2:サンプルデータを生成する
すべてを一度に生成する
node skills/security/generate-security-sample-data/scripts/sample-data.js \
  system endpoint okta aws windows --scenarios --alerts
イベントのみを生成する
node skills/security/generate-security-sample-data/scripts/sample-data.js \
  system endpoint --count 100
攻撃シナリオのみを生成する
node skills/security/generate-security-sample-data/scripts/sample-data.js --scenarios
合成アラートのみを生成する
node skills/security/generate-security-sample-data/scripts/sample-data.js --alerts
ステップ 3:Kibana で確認する

データを生成した後、次のページを案内してください。

  • Security > Alerts — MITRE ATT&CK マッピングを含む合成アラート
  • Security > Attack Discovery — アラートの分析には LLM コネクターが必要です
  • Security > Hosts — サンプルイベントからのホストアクティビティ
  • Security > Overview — すべてのセキュリティデータの概要
  • Discover — すべてのデータストリームにわたる未加工のイベント
ステップ 4:完了後にクリーンアップする
node skills/security/generate-security-sample-data/scripts/sample-data.js --cleanup

生成されるデータ

サンプルデータは、5 つのパッケージ(system、endpoint、windows、aws、okta)と、よくあるデモのテーマを網羅する 4 つの特定の攻撃シナリオ(Windows の認証情報窃取、AWS クラウドの権限昇格、Okta の ID 乗っ取り、ランサムウェアの一連の攻撃)にわたります。合成アラートドキュメントは、MITRE ATT&CK マッピング、重大度レベル、リスクスコアとともに .alerts-security.alerts-default にインデックス登録されます。

すべてのイベントでは、安全な RFC 5737/RFC 2606 アドレスを使用します。パッケージ、シナリオ、アラートの全一覧は、references/sample-data-reference.md を参照してください。

継続モード

ライブ環境をシミュレートするために、イベントをストリーミングします。

node skills/security/generate-security-sample-data/scripts/sample-data.js \
  --continuous --interval 15

5 回ごとのバッチに攻撃シナリオが含まれ、10 回ごとのバッチに合成アラートが追加されます。停止するには Ctrl+C を押してください。

ツールリファレンス

sample-data.js
フラグ説明
--count, -nパッケージごとのイベント数(既定値:50)
--scenariosすべての攻撃シミュレーションシナリオを実行する
--scenario NAME特定のシナリオを実行する
--alerts合成アラートドキュメントを生成する
--cleanupすべてのサンプルデータとアラートを削除する
--continuousライブイベントをストリーミングする(停止するには Ctrl+C)
--interval N継続バッチ間の秒数(既定値:30)
--json, -j結果を JSON 形式で出力する
--yes, -y確認プロンプトをスキップする
demo-walkthrough.js

すべてを生成して Kibana を開く、手間のかからない実行ツールです。

フラグ説明
--cleanupすべてのサンプルデータ、アラート、ケースを削除する
--continuous生成後にライブイベントをストリーミングする
--count Nパッケージごとのイベント数(既定値:50)
--interval Nバッチ間の秒数(既定値:30)

使用例

ステークホルダー向けのクイックデモ

「VP に Attack Discovery を見せられるよう、デモ環境をセットアップしてください。」

node skills/security/generate-security-sample-data/scripts/demo-walkthrough.js
シナリオを絞ったテスト

「検出ルールをテストするため、ランサムウェアの攻撃チェーンだけを生成してください。」

node skills/security/generate-security-sample-data/scripts/sample-data.js \
  --scenario ransomwareChain --alerts
ライブ SOC のシミュレーション

「デモ中にダッシュボードがアクティブな状態を保てるよう、イベントを生成し続けてください。」

node skills/security/generate-security-sample-data/scripts/demo-walkthrough.js --continuous
デモ後のクリーンアップ

「プロジェクトからすべてのサンプルデータを削除してください。」

node skills/security/generate-security-sample-data/scripts/sample-data.js --cleanup

ガイドライン

  • 生成されるすべてのドキュメントには、安全にクリーンアップできるよう tags: ["elastic-security-sample-data"] が付与されます。クリーンアップコマンドは、このマーカーが付いたドキュメントのみを削除します。
  • データストリームでマーカーフィールドがインデックス化されていない場合、クリーンアップでは _source.tags をスキャンし、過去14日間の該当するサンプルドキュメントを探します。
  • 合成アラートは .alerts-security.alerts-default に直接インデックス化されるため、検出ルールをインストールまたは有効化する必要はありません。
  • Attack Discovery を使用するには、Kibana の Stack Management > Connectors で LLM コネクター(OpenAI、Anthropic、Google Gemini など)を設定する必要があります。「Complete」プロジェクトティアでこの機能を利用できますが、コネクターは別途設定する必要があります。
  • アラートから調査ケースを作成するには、case-management スキルを使用してください。

本番環境での使用

  • **実際のアラートとともに合成データを投入する意図がない限り、本番クラスターでは実行しないでください。**サンプルイベントとアラートにはクリーンアップ用のタグが付与されていますが、ダッシュボード、Alerts タブ、Attack Discovery に実際のデータとともに表示されます。
  • すべての書き込み操作(generate、--cleanup、--continuous)では確認を求められます。エージェントから呼び出す際に確認を省略するには、--yes または -y を指定してください。
  • --cleanup はすべてのサンプルデータインデックスに対して deleteByQuery を実行します。実行前に、環境変数が意図したクラスターを指していることを確認してください。
  • --continuous モードでは、Ctrl+C で手動停止するまでイベントを無期限にインデックス化します。

環境変数

変数必須説明
ELASTICSEARCH_URLはいElasticsearch URL
ELASTICSEARCH_API_KEYはい*Elasticsearch API キー
ELASTICSEARCH_USERNAMEはい*Elasticsearch ユーザー名(代替手段)
ELASTICSEARCH_PASSWORDはい*Elasticsearch パスワード(代替手段)
KIBANA_URLいいえKibana URL(ケースの作成とリンク用)
KIBANA_USERNAMEいいえKibana ユーザー名(Kibana 機能を使用する場合)
KIBANA_PASSWORDいいえKibana パスワード(Kibana 機能を使用する場合)

*Elasticsearch では、API キーまたはユーザー名とパスワードのいずれかが必要です。

コメント