matchsig()

matchsig() 関数は、指定したパターングループに定義されたパターンのうち一つ以上が対象文字列にマッチすれば true を返します。

構文

matchsig(STR_GUID, STR_EXPR)

パラメーター

STR_GUID
パターングループのGUIDです。有効なパターングループ識別子である必要があります。存在しないGUIDを指定した場合、クエリのパース段階でエラーが発生します。
STR_EXPR
検索対象の文字列式です。評価値は文字列型である必要があります。文字列型でない場合は false を返します。

説明

matchsig() 関数は、指定したパターングループに属するパターンのうち一つ以上が STR_EXPR の値にマッチすれば true、マッチするパターンがなければ false を返します。

STR_EXPR の値が文字列型でない場合は false を返します。

Logpresso Sonarは、Aho-Corasickアルゴリズムを使用して数千件以上のパターンを同時に高速で検索します。まず入力文字列からキーワードを検索し、次にパターンに検証式が設定されている場合はその検証式を追加評価して最終的なマッチ結果を決定します。

パターンは必須キーワード条件と任意の検証式で構成されます。

#パターン名パターン(必須):一次高速検出検証式(任意):二次フィルター
1xp_cmdshellsp_addextendedproc and xp_cmdshell
2zb_now_connectREMOTE_ADDR and (fputs or fwrite)path == "lib.php"

パターングループは、Sonarウェブコンソールの ポリシー > パターングループ メニューで管理します。

エラーコード

該当なし

使用例

  1. raw フィールドの値に指定したパターングループのパターンがマッチするか確認します。

    json "{'raw': 'GET /index.php HTTP/1.1'}"
    | eval result = matchsig("550e8400-e29b-41d4-a716-446655440000", raw)
    | # result: false
    
  2. STR_EXPR の値が文字列型でない場合

    json "{'raw': 12345}"
    | eval result = matchsig("550e8400-e29b-41d4-a716-446655440000", raw)
    | # result: false
    

互換性

matchsig() 関数はSonar 4.0以前のバージョンから提供されています。