カスタム作成¶
セキュリティモニタリング > セキュリティイベント管理 > ルールを作成 に進み、作成を開始します。
検出タイプ¶
| フィールド | 説明 |
|---|---|
| SIEM | セキュリティ情報およびイベント管理(Security Information and Event Management) システムに組み込まれたクエリ関数に基づき、サーバー、ネットワーク機器、クラウドサービス、アプリケーションなど異なるシステムからのログやイベントデータを集約・分析するセキュリティ技術です。 |
| CSPM | クラウドセキュリティ態勢管理(Cloud Security Posture Management) クラウド環境の設定リスクを継続的に管理・低減するための自動化プロセスとツールのセットです。コンピューティングインスタンス、ストレージサービス、ネットワーク設定などのクラウドインフラをスキャンし、セキュリティベースラインやコンプライアンス基準に反する誤設定を自動的に特定します。 |
| ABA | AI エージェント行動分析(Agent Behavior Analytics) AI Agent の実行中の異常操作、権限昇格、機密データ漏洩などの高リスク行動を検出します。検出結果は、Agent モニタリングの Session、Trace、Tool、Skill にリスクイベントとアラートレベルとして表示されます。 |
基本設定¶
検出頻度¶
ルールは、ここで設定した間隔(5分ごと、1時間ごとなど)で実行されます。オプション:直近1分、直近5分、直近15分、直近30分、直近1時間、直近6時間、直近12時間、直近24時間。
上記のシステム提供のオプションに加えて、カスタム crontab ジョブ を入力し、秒、分、時、日、月、週などの周期で定期実行を設定することもできます。
検出間隔¶
各実行時におけるデータクエリの時間範囲を示します。検出頻度の影響を受け、選択可能な検出間隔が異なります。
| 検出頻度 | 検出間隔(ドロップダウン選択肢) |
|---|---|
| 1m | 1m/5m/15m/30m/1h/3h |
| 5m | 5m/15m/30m/1h/3h |
| 15m | 15m/30m/1h/3h/6h |
| 30m | 30m/1h/3h/6h |
| 1h | 1h/3h/6h/12h/24h |
| 6h | 6h/12h/24h |
| 12h | 12h/24h |
| 24h | 24h |
検出ルールの定義¶
セキュリティ検出ロジックを定義する際、スクリプト内で DQL を使用してデータをクエリし、条件式(フィールド一致、しきい値判定など)を定義してシグナルトリガーロジックを設定できます。
ルールを独自に作成する場合、以下の操作が可能です:
- テキストの自動折り返しまたはオーバーフロー表示の設定
- ショートカットキーによる内容のフォーマット処理
- ワンクリックコピー
- コンテンツボックスへのスクリプトの直接記述
- fx 関数の利用
- スクリプトのテスト
- 全画面編集
例:
# data1,ok = dql("T::re(`.*`):(avg(duration), service, span_id, status) by host limit 1")
# #data2 = dql("T::re(`.*`):(max(duration), service, span_id, status) by host limit 2")
# #result: 検出結果、必須、型は基本型(文字列、整数、浮動小数点)
# #result = data1.avg(duration)
# #dimension_tags: 検出対象、オプション、型は map
# #dimension_tags = {"host":data1['series'][0][0]['tags']['host']}
# #status: レベル、オプション、型は enum。ここで定義した場合、ユーザーがページで定義したレベルより優先されます
# # 選択可能な値:critical、high、medium、low、info
# status = "high"
# #extra_data: 追加属性、オプション、型は map
# #related_data = {"service":"wwwww"}
# #related_data = {"service":data1['series'][0][0]['columns']['service'],
# # "span_id":data1['series'][0][0]['columns']['span_id'],
# # "status":data1['series'][0][0]['columns']['status']}
# #fn trigger(result: int|float|bool|str, level: str = "", dim_tags: map = {}, related_data: map = {})
# #trigger(data1,status,dimension_tags,related_data)
# host = dql_series_get(data1,"host")
# service = dql_series_get(data1,"service")
# status = dql_series_get(data1,"status")
# trigger(data1,status,dimension_tags={"host":host},related_data={"service":service,"status":status})
data1 = dql("T::re(`.*`):(avg(duration), service, span_id, status) by host limit 1")
status = "high"
host = dql_series_get(data1,"host")
#printf("%v", {"host": host_o})
#host_info = dql_series_get(host_o,"host")
#printf("%v", {"host": host_info})
service = dql_series_get(data1,"service")
span_id = dql_series_get(data1,"span_id")
trigger(data1,status,dimension_tags={"host":host[0][0]},related_data={"service":service,"span_id":span_id})
上記のスクリプト例は主に3つの部分で構成されています:
-
データクエリ:DQL ですべての指標(
re(.*))をクエリし、各hostグループごとにdurationフィールドの平均値を計算し、service、span_id、statusフィールドを返します。limit 1は結果を1件のみ返す指定です。 -
データ処理:
-
アラートトリガー:
trigger(data1,status,dimension_tags={"host":host[0][0]},related_data={"service":service,"span_id":span_id})
これは、優先度 high のアラートをトリガーすることを示します。dimension_tags は検出対象(ここでは host をディメンションタグとして使用)を識別し、related_data は関連データ(service と span_id)を付加します。
注意
スクリプト編集時、dimension_tags と related_data の2つのフィールドを追加した場合のみ、最終的に生成されるイベントに関連情報が表示されます。
セキュリティレベル¶
現在のモニタリングルールのセキュリティレベルを選択します:
| レベル | df_status の値 |
|---|---|
| 重大 | critical |
| 高 | high |
| 中 | medium |
| 低 | low |
| 情報 | info |
注意
検出ルール内で条件判定によりセキュリティレベルをカスタマイズしている場合(例:status=high)、システムはルール内で定義されたセキュリティレベルを優先して採用し、グローバルなセキュリティレベル設定は無効になります。
ルール説明の設定¶
検出ルールを追加する際に、検出結果と推奨対応を入力します。これらはアラート通知のタイトルと説明として送信されます。
アラート設定¶
現在のワークスペース内の既存の アラートポリシー を選択して関連付けます。ルールが有効化されると、選択したアラートポリシーに従ってアラート通知がトリガーされます。
権限¶
セキュリティモニタリングデータの閲覧権限を設定し、データのセキュリティを向上させます。
ワークスペース内で「セキュリティモニタリング」の 管理権限 を持つメンバーロールは、このルールを操作できます。
指定されたメンバーのみがこのルールを操作できます。ワークスペース内のメンバー、ロール、チームを選択できます。
