sonar-assess-risk
イベントログのリスクスコアを計算します。検出ルールと資産情報をもとにETIRリスクスコアを算出してレコードに追加し、セキュリティ運用においてイベントの深刻度の優先順位付けに活用します。
コマンドプロパティ
| 項目 | 説明 |
|---|---|
| コマンドタイプ | 加工クエリ |
| 必要な権限 | なし |
| ライセンス使用量 | 該当なし |
| 並列実行 | 対応 |
| 分散実行 | データノードで実行(mapper) |
構文
オプション
simple=BOOLtを指定すると_rule_name、_private_ip、_capec_id、_likelihood_type、_likelihood_target、_exploit_target、_exploit_cve_idフィールドを省略します(デフォルト:f)。rule=BOOLtを指定するとルール関連フィールド(_rule_ticket_issue_cond、_rule_enabled)を追加で出力します(デフォルト:f)。
入力フィールド
| フィールド | 型 | 必須/任意 | 説明 |
|---|---|---|---|
_rule_type | string | 必須 | 検出ルールタイプ(STREAM または BATCH) |
_rule | integer | 必須 | 検出ルールID |
signature | string | 任意 | 検出されたシグネチャ文字列。検出ルールに連携されたシグネチャアプリから一致するシグネチャを照会し、CAPECマッピング情報(_capec_id)を取得するために使用します |
_site | string | 任意 | サイト名。指定すると、該当サイトに登録された資産情報に照会範囲を絞り込みます |
host_ip | string | 任意 | 検出されたホストのIPアドレス。資産情報(機密性・完全性・可用性ランク、CVE脆弱性)の照会に使用します |
src_ip | string | 任意 | イベントの送信元IPアドレス。host_ipと同様に資産情報の照会に使用します |
dst_ip | string | 任意 | イベントの宛先IPアドレス。host_ipと同様に資産情報の照会に使用します |
出力フィールド
このコマンドは入力レコードにフィールドを追加する加工クエリのため、下表にない入力フィールドはそのまま維持されます。検出ルールが見つかった場合、以下のフィールドが常に追加されます(ただし、シグネチャ・資産のマッチング情報がない場合は _risk_score の値が null になることがあります)。
| フィールド | 型 | 説明 |
|---|---|---|
_rule_type | string | 入力フィールドを維持(STREAM または BATCH) |
_rule | integer | 入力フィールドを維持(検出ルールID) |
host_ip | string | 入力フィールドを維持 |
src_ip | string | 入力フィールドを維持 |
dst_ip | string | 入力フィールドを維持 |
_signature_guid | string | 入力フィールドを維持(このコマンドは値を設定せず、CAPEC照会には signature フィールドを使用します) |
_risk_score | integer | 算出されたリスクスコア(0~100の値。値が大きいほどリスクが高い) |
simple=f(デフォルト)の場合に追加で出力されます。simple=t の場合、以下のフィールドは省略されます。
| フィールド | 型 | 説明 |
|---|---|---|
_rule_name | string | 検出ルール名 |
_private_ip | string | イベントで識別された内部IPアドレス |
_capec_id | string | シグネチャに関連付けられたCAPEC ID |
_likelihood_type | string | 可能性の計算に使用されたタイプ |
_likelihood_target | string | 可能性の計算対象 |
_exploit_target | string | 脆弱性が確認された資産のIPアドレス |
_exploit_cve_id | string | 関連するCVE ID |
rule=t の場合に追加で出力されます。
| フィールド | 型 | 説明 |
|---|---|---|
_rule_ticket_issue_cond | string | チケット発行条件(NEVER、ETIR_THRESHOLD、ALWAYS) |
_rule_enabled | boolean | 検出ルールの有効/無効 |
計算エラーが発生した場合に出力されます。
| フィールド | 型 | 説明 |
|---|---|---|
_error | string | エラーメッセージ |
_error_file | string | エラーが発生したソースファイル名 |
_error_line | integer | エラーが発生したソースコードの行番号 |
エラーコード
パースエラー
該当なし
ランタイムエラー
該当なし
処理中に例外が発生した場合、レコードを破棄せずに
_error、_error_file、_error_lineフィールドにエラー情報を記録してパイプラインに渡します。
説明
sonar-assess-risk はイベントレコードに含まれる _rule_type と _rule フィールドで対応する検出ルールオブジェクトを取得し、signature・_site・host_ip・src_ip・dst_ip フィールドを参照してETIRサービスでリスクスコアを計算し、レコードに追加します。
_rule_type と _rule フィールドは、イベントを発生させた元のログにのみ記録されます。そのため、event コマンドに raw=t オプションを指定して照会した結果を入力として使用します。
_rule IDに該当する検出ルールが存在しない場合、そのレコードにはフィールドを追加せずそのままパイプラインに渡します。一方、_rule_type や _rule フィールドがない、または値が正しくないためルール照会自体が失敗した場合は計算エラーとして処理され、_error などのエラーフィールドも追加されます。
simple=t オプションを使用すると _rule_name、_private_ip、_capec_id、_likelihood_type、_likelihood_target、_exploit_target、_exploit_cve_id フィールドを省略して出力がシンプルになります。リスクスコアのみが必要なフィルタリングパイプラインで便利です。
rule=t オプションを使用すると、検出ルールのチケット発行条件(_rule_ticket_issue_cond)と有効状態(_rule_enabled)も確認できます。
使用例
-
直近1時間以内のイベントのリスクスコアを計算
event duration=1h raw=t | sonar-assess-risk | fields _rule_type, _rule, _rule_name, src_ip, dst_ip, _risk_score -
simple=tオプションでリスクスコアのみを追加して高リスクイベントをフィルタリングevent duration=1d raw=t | sonar-assess-risk simple=t | search _risk_score >= 80 | sort -_risk_score -
検出ルール情報を含めてリスクスコアを計算
event duration=1h raw=t | sonar-assess-risk rule=t | fields _rule, _rule_name, _rule_enabled, _rule_ticket_issue_cond, _risk_score
変更履歴
sonar-assess-risk コマンドはSonar 4.0.2609.0(5.0系は5.0.2603.0)バージョンから利用可能です。