Elastic がバージョン 9.4 をリリースしました。セキュリティ自動化エンジン「Workflows」の正式版リリースを筆頭に、AI によるルール生成・専門知識モジュール(Skills)・クエリ言語 ES|QL の大幅強化など、幅広い領域にわたるアップデートが含まれています。本記事では注目機能を速報でまとめます。
1. Elastic Workflows が正式版(GA)に
セキュリティ運用の自動化エンジン「Elastic Workflows」が 9.3 の試験公開(Tech Preview)から正式版に昇格しました。
アラートの受信から、ケース作成・担当者割当・Slack 通知・外部システム連携までを YAML または自然言語で定義し、Kibana 内で完結して実行できます。データ移動が不要な点が他の SOAR ツールとの大きな違いです。
主な追加機能:
- ケース管理ステップが 4 種類 → 25 種類に拡張:担当者割当・証拠添付・重要度設定・タグ管理など、インシデントの全ライフサイクルに対応
- Human-in-the-Loop(waitForInput):AI が調査・分類を行い、エスカレーション判断だけをアナリストに委ねる仕組みを正式サポート
- ワークフローの組み合わせ(workflow.execute):マルウェア対応・フィッシング対応などを独立したモジュールとして再利用可能に
- 制御フロー強化:switch(多方向分岐)・while(ループ)・loop.break/continue を追加
- 自然言語でのワークフロー作成(Tech Preview):攻撃対応シナリオを日本語・英語で説明するだけで YAML を自動生成
最小構成のワークフロー例(YAML):
name: Critical アラート対応ワークフロー
enabled: true
triggers:
- type: alert # アラート発火を起点に起動
steps:
- name: create_case
type: cases.createCase
with:
owner: securitySolution
title: "{{ event.rule.name }} - {{ event.alerts[0].host.name }}"
severity: high
tags:
- auto-triage📎 参照:Elastic Workflows GA: automation where your security data already lives
2. Elastic AI Agent に専門知識モジュール「Skills」が登場
従来の AI アシスタントは「すべての知識を1つのプロンプトに詰め込む」設計でした。9.4 では、タスクに応じて専門知識モジュール(スキル)をオンデマンドで切り替える「Skills」アーキテクチャが導入されました。
コンテキストウィンドウを知識ではなく実データに使える分、各スキルの回答精度が向上します。スキルを追加しても既存スキルの品質が落ちない設計が特徴です。
9.4 で搭載された 5 つのセキュリティスキル:
| スキル | 役割 |
|---|---|
| Detection Rule Edit | 自然言語から ES|QL 検知ルールを生成・編集 |
| Alert Analysis | アラートのトリアージ・関連アラート探索・脅威インテル照合 |
| Threat Hunting | 仮説駆動型の脅威ハンティング(横移動・C2 テンプレート内蔵) |
| Entity Analytics | ユーザー・ホストのリスクスコア・行動パターンのプロファイリング |
| Security ML Jobs | 機械学習ジョブの異常をエンティティコンテキストと相関させて調査 |
このほか、Kibana ダッシュボード作成・ワークフロー YAML 生成・エンティティ関係グラフ作成の 3 つのプラットフォームスキルも追加されました。
実際の使い方の例(自然言語プロンプトを送るだけ):
| プロンプト例 | 起動するスキル |
|---|---|
| 「アラート 82a1f を分析して。認証情報窃取キャンペーンと関連してる?」 | Alert Analysis |
| 「過去7日間で侵害されたホストからの横移動をハントして」 | Threat Hunting |
| 「今週最もリスクの高いユーザーとその要因を教えて」 | Entity Analytics |
| 「svc-backup-prod に関連する異常は何?」 | Security ML Jobs |
3. AI による ES|QL 検知ルール自動生成
攻撃の挙動を自然言語で記述するだけで、本番対応の ES|QL 検知ルールを AI が自動生成します。ルール作成画面から「AI rule creation」を選択するだけで使用できます。
生成されるもの:
- ES|QL クエリ(構文検証済み)
- MITRE ATT&CK マッピング
- 重要度・リスクスコア
- タグ・スケジュール設定
生成後はチャット形式で反復的に調整でき、有効化前に自環境の実ログでプレビュー確認が可能です。
実際のプロンプト例(公式ブログより):
「Okta で、同一ユーザー&同一 IP から:3 回以上の認証失敗、1 回以上の MFA 失敗、ログイン成功、その後に権限付与またはポリシー更新。この全シーケンスが揃った場合に、認証情報窃取の成功攻撃として検知して」
これだけで、STATS で各段階をカウントして閾値判定する複雑な ES|QL クエリ・MITRE ATT&CK マッピング(T1110.004 Credential Stuffing・T1078 Valid Accounts)・重要度設定までが一括生成されます。
⚠️ Enterprise ライセンスが必要です。
📎 参照:From plain English to production rule: AI-native Elasticsearch ES|QL detection in Elastic Security
4. ES|QL クエリ言語の強化
Elastic のパイプライン型クエリ言語 ES|QL に 4 つの大きな機能が追加されました。
サブクエリ(Subqueries):異なるインデックスの複数クエリを 1 文で結合。例えばビジネスデータとサーバーログを時系列でまとめて分析できます。
FROM
(FROM ecommerce | EVAL domain = "business" | KEEP ts, domain, summary),
(FROM logs | EVAL domain = "ops" | KEEP ts, domain, summary)
| SORT tsロジカルビュー(Logical Views):複雑な集計ロジックを名前付きで保存し、ダッシュボード・アラート全体で再利用できます。SQL の VIEW に相当する概念で、ビュー定義を更新すれば参照する全ダッシュボードに即時反映されます。
-- ビューを定義(一度だけ)
CREATE VIEW high_risk_users AS
FROM .alerts-security*
| WHERE risk_score > 70
| STATS ...
-- 以降、複数のダッシュボードから FROM view_name で参照可能
FROM high_risk_users -- 事前定義したビューを通常のインデックスのように利用
| WHERE @timestamp > NOW() - 24 hours
| KEEP user.name, risk_scoreJSON 関数抽出:JSON 形式で格納されたフィールドの値を、再インデックスなしに直接クエリで取り出せます。スキーマが不定形なログデータの分析に有効です。
ROW raw = "{ \"user\": { \"name\": \"yamada\", \"id\": 42 }, \"source\": { \"ip\": \"10.0.0.1\" } }"
| EVAL user_name = JSON_EXTRACT(raw, "user.name")
| EVAL user_id = JSON_EXTRACT(raw, "user.id")
| EVAL src_ip = JSON_EXTRACT(raw, "source.ip")
| KEEP user_name, user_id, src_ip実行結果:
user_name | user_id | src_ip
----------+---------+-----------
yamada | 42 | 10.0.0.1パスは user.name のドット記法、groups[0] のブラケット記法のどちらも利用できます。キーに . が含まれる場合は ['event.id'] のブラケット記法が必須です。
マッピング外フィールドへのアクセス(SET unmapped_fields="load"):インデックス定義に漏れていたフィールドも後から遡ってクエリ可能になりました(従来の「無知の崖」問題を解消)。
9.3のバージョン


-- 従来:マッピング外のフィールドは結果に含まれない
FROM my_unmapped_test
| KEEP @timestamp, user, amount, department
-- 9.4:SET ディレクティブで未マッピングフィールドも _source から取り出せる
SET unmapped_fields="load";
FROM my_unmapped_test
| KEEP @timestamp, user, amount, department実行結果(SET unmapped_fields="load" を指定した場合):
@timestamp | user | amount | department
---------------------+--------+--------+-------------
2026-05-06T13:00:00Z | tanaka | 320 | sales
2026-05-06T12:00:00Z | yamada | 150 | engineering"load" のほかに "nullify"(明示的に null を返す)も指定可能です。性能面では _source からの読み出しになるため、マッピング済みフィールドのクエリよりやや遅くなる点に注意が必要です。
📎 参照:What’s new in Elastic 9.4(公式ブログ) ・ ES|QL Logical Views 詳細ブログ ・ Elasticsearch リリースノート
5. ベクトル検索の高速化
AI ワークロード(RAG など)の基盤となるベクトル検索が大幅に強化されました。
- DiskBBQ 改善:フィルター付きクエリのレイテンシを最低 3 倍改善
- GPU 加速インデックス作成が GA 昇格:NVIDIA cuVS 統合により、セルフマネージド環境でインデックス速度が最大 12 倍、force merge が 7 倍高速化
- 量子化ビット数の選択肢拡大:1 ビットのみだったところ、2・4・7 ビットが追加。精度とサイズのバランスを調整可能に
量子化ビットの設定例(インデックス作成時):
PUT bbq_disk-index
{
"mappings": {
"properties": {
"my_vector": {
"type": "dense_vector",
"dims": 64,
"index": true,
"index_options": {
"type": "bbq_disk",
"bits": 2 // 1, 2, 4, 7 から選択(数値が大きいほど高精度・大容量)
}
}
}
}
}
⚠️ GPU 機能はセルフマネージド環境(NVIDIA GPU 搭載サーバー)限定です。
📎 参照:What’s new in Elastic 9.4(公式ブログ) ・ DiskBBQ アーキテクチャ解説ブログ ・ GPU ベクトルインデックス加速ブログ ・ GPU ベクトルインデックス ドキュメント
6. Kibana の強化
AI によるダッシュボード作成:自然言語でダッシュボードのレイアウトや可視化を説明すると、AI が反復的に構築します。
Dashboards as Code:ダッシュボードを API・JSON で定義・管理できます。Git による差分管理や CI/CD パイプラインでの自動デプロイが可能になりました。
API 経由でダッシュボードを作成する例:
POST kbn:/api/dashboards
{
"title": "My first API dashboard",
"panels": [
{
"grid": { "x": 0, "y": 0, "w": 24, "h": 10 },
"type": "vis",
"config": {
"type": "xy",
"title": "Total log entries over time",
"layers": [
{
"type": "line",
"data_source": {
"type": "esql",
"query": "FROM kibana_sample_data_logs | STATS count = COUNT() BY BUCKET(@timestamp, 75, ?_tstart, ?_tend)"
}
}
]
}
}
]
}Agent Builder の拡張:Skills・Attachments・Connectors・Plugins の 4 プリミティブが追加。長い会話でのコンテキスト管理(クエリ結果オフロード・コンパクション・要約)が改善され、マルチターン対話のコスト効率も向上しました。
📎 参照:What’s new in Elastic 9.4(公式ブログ) ・ Elastic AI Agent ドキュメント
7. Observability:メトリクス・時系列分析の強化
TSDB パフォーマンス改善:時系列メトリクスの保存効率が Prometheus 比 2.6 倍向上、クエリ速度は Prometheus/Mimir 比で最大 25 倍高速化。
ES|QL 時系列関数の追加:rate(変化率)・changes(変化量)・cumulative(累積)・trange(時間範囲)・clamp(値クリップ)が利用可能に。
PromQL のネイティブサポート:Prometheus メトリクスを Elasticsearch に直接取り込み、Kibana 上で PromQL を実行できます。PromQL の結果を ES|QL パイプラインに流し込むことも可能です。
PromQL → ES|QL を組み合わせる例:
# PromQL の結果を ES|QL コマンドにパイプして集計
PROMQL index=k8s step=1h bytes=(max by (cluster) (network.bytes_in))
| STATS max_bytes=MAX(bytes) BY cluster
| SORT cluster📎 参照:What’s new in Elastic 9.4(公式ブログ) ・ Elasticsearch リリースノート(TSDB・PromQL 詳細)
8. セキュリティ:エンティティ管理の深化
エンティティ統合(Entity Resolution):Okta・Microsoft Entra など複数の IdP に存在するアカウントを 1 つの従業員レコードに名寄せ。「同一人物が複数 ID を持っている」問題を解消し、横断的なリスク評価が可能になります。
統合のイメージ:
従来(バラバラに存在) 9.4(1つのレコードに統合)
───────────────────────── ────────────────────────────
Okta: t.yamada@co.jp ┐
Entra: tyamada ├──→ 山田 剛(Takeshi Yamada)
GitHub: yamada-t │ └─ リスクスコアを統合計算
Slack: takeshi.yamada ┘ └─ クロスシステムのアラートを集約動的ウォッチリスト(Dynamic Watchlists):組織的な重要度(例:役員・特権アカウント)をリスクスコアへの乗数として反映できます。
エンティティ起点のハンティングリード:アラート起点の受動的調査から、リスクの高い行動パターンを事前に洗い出す能動的なハンティングへのシフトを支援します。
エンドポイント調査の拡張:
- Runscript Response Action + Script Library:感染端末へのリモートスクリプト実行とライブラリ管理
- Memory Dump Response Action(Linux 対応):マルウェア解析用のメモリ取得
- Osquery 強化・Jumplists テーブル拡張:最近使用したファイル履歴のフォレンジック照会
📎 参照:What’s new in Elastic 9.4(公式ブログ) ・ Elastic Security リリースノート ・ Entity Analytics AI Skill ブログ
まとめ:9.4 の位置付け
| カテゴリ | 主なアップデート |
|---|---|
| セキュリティ自動化 | Workflows GA・25 種ケースステップ・Human-in-the-Loop |
| AI エージェント | Skills 5 種・プラットフォームスキル 3 種・Agent Builder 拡張 |
| 検知エンジニアリング | AI による ES|QL ルール自動生成・MITRE 自動マッピング |
| クエリ言語 | ES|QL サブクエリ・ビュー・JSON 抽出・マッピング外フィールド |
| ベクトル検索 | 3〜12 倍高速化・量子化ビット選択肢拡大 |
| 可観測性 | TSDB 効率化・PromQL ネイティブ対応・時系列集計関数 |
| エンティティ管理 | 名寄せ・動的ウォッチリスト・能動的ハンティングリード |
9.4 はセキュリティチームだけでなく、インフラ・SRE・AI 開発チームにも広く関わるリリースです。特に Workflows と Skills の組み合わせによる「Agentic SOC(自律型 SOC)」への移行は、今後の Elastic Security の方向性を示すものといえます。


