security-generate-security-sample-data について
Elastic Securityのサンプルイベント、攻撃シナリオ、合成アラートを生成するスキルです。デモや検知テスト用にKibanaのセキュリティ画面をデータで埋め、継続生成と削除も行えます。
主な機能
- 01ECS準拠のセキュリティイベント生成
- 024種類の攻撃シナリオのシミュレーション
- 03MITRE ATT&CKマッピング付き合成アラートの作成
- 04イベントの継続的な配信
- 05生成したサンプルデータの削除
活用シーン
- 01セキュリティデモ用のKibanaデータ準備
- 02攻撃シナリオを使った検知ルールのテスト
- 03ライブデモ中のダッシュボード更新
- 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.mdscripts/demo-walkthrough.jses-client.jskibana-client.jssample-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 キーまたはユーザー名とパスワードのいずれかが必要です。