sonar-assess-risk
イベントログのリスクスコアを計算します。検出ルールと資産情報をもとにETIRリスクスコアを算出してレコードに追加し、セキュリティ運用においてイベントの深刻度の優先順位付けに活用します。
コマンドプロパティ
| 項目 | 説明 |
|---|---|
| コマンドタイプ | 加工クエリ |
| 必要な権限 | なし |
| ライセンス使用量 | 該当なし |
| 並列実行 | 対応 |
| 分散実行 | データノードで実行(mapper) |
構文
オプション
simple=BOOLtを指定すると最終リスクスコアフィールド(_risk_score)のみを出力し、その他の分析フィールドは省略します(デフォルト:f)。rule=BOOLtを指定するとルール関連フィールド(_rule_ticket_issue_cond、_rule_enabled)を追加で出力します(デフォルト:f)。
入力フィールド
| フィールド | 型 | 必須/任意 | 説明 |
|---|---|---|---|
_rule_type | string | 必須 | 検出ルールタイプ(STREAM または BATCH) |
_rule | integer | 必須 | 検出ルールID |
_signature_guid | string | 任意 | シグネチャGUID |
host_ip | string | 任意 | 検出されたホストのIPアドレス |
src_ip | string | 任意 | イベントの送信元IPアドレス |
dst_ip | string | 任意 | イベントの宛先IPアドレス |
出力フィールド
simple=f(デフォルト)の場合に出力されます。simple=t の場合は _risk_score のみ出力されます。
| フィールド | 型 | 説明 |
|---|---|---|
_rule_type | string | 入力フィールドを維持(STREAM または BATCH) |
_rule | integer | 入力フィールドを維持(検出ルールID) |
_rule_name | string | 検出ルール名 |
host_ip | string | 入力フィールドを維持 |
src_ip | string | 入力フィールドを維持 |
dst_ip | string | 入力フィールドを維持 |
_signature_guid | string | 入力フィールドを維持 |
_risk_score | string | 算出されたリスクスコア(例: Critical、High、Medium、Low) |
_private_ip | string | イベントで識別された内部IPアドレス |
_capec_id | string | シグネチャに関連付けられたCAPEC ID |
_likelihood_type | string | 可能性の計算に使用されたタイプ |
_likelihood_target | string | 可能性の計算対象 |
_exploit_target | string | 攻撃対象の資産 |
_exploit_cve_id | string | 関連するCVE ID |
rule=t の場合に追加で出力されます。
| フィールド | 型 | 説明 |
|---|---|---|
_rule_ticket_issue_cond | string | チケット発行条件(ALWAYS、ONCE) |
_rule_enabled | boolean | 検出ルールの有効/無効 |
計算エラーが発生した場合に出力されます。
| フィールド | 型 | 説明 |
|---|---|---|
_error | string | エラーメッセージ |
_error_file | string | エラーが発生したソースファイル名 |
_error_line | integer | エラーが発生したソースコードの行番号 |
エラーコード
パースエラー
該当なし
ランタイムエラー
該当なし
処理中に例外が発生した場合、レコードを破棄せずに
_error、_error_file、_error_lineフィールドにエラー情報を記録してパイプラインに渡します。
説明
sonar-assess-risk はイベントレコードに含まれる _rule_type と _rule フィールドを使用して対応する検出ルールオブジェクトを取得し、ETIRサービスでリスクスコアを計算してレコードに追加します。
ルールオブジェクトが見つからない場合(_rule_type または _rule フィールドがないか、該当IDのルールが存在しない場合)、そのレコードにはフィールドを追加せずパイプラインに渡します。
simple=t オプションを使用すると _risk_score フィールドのみが追加されて出力がシンプルになります。リスクスコアの値のみが必要な集計やフィルタリングパイプラインで便利です。
rule=t オプションを使用すると、検出ルールのチケット発行条件(_rule_ticket_issue_cond)と有効状態(_rule_enabled)も確認できます。
使用例
-
直近1時間以内のイベントのリスクスコアを計算
table duration=1h sonar_events | sonar-assess-risk | fields _rule_type, _rule, _rule_name, src_ip, dst_ip, _risk_score -
リスクスコアのみを追加してリスクスコア別に集計
table duration=1d sonar_events | sonar-assess-risk simple=t | stats count by _risk_score -
検出ルール情報を含めてリスクスコアを計算
table duration=1h sonar_events | sonar-assess-risk rule=t | fields _rule, _rule_name, _rule_enabled, _rule_ticket_issue_cond, _risk_score
互換性
sonar-assess-risk コマンドはSonar 5.0.2603.0バージョンから利用可能です。