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アルゴリズムを使用して数千件以上のパターンを同時に高速で検索します。まず入力文字列からキーワードを検索し、次にパターンに検証式が設定されている場合はその検証式を追加評価して最終的なマッチ結果を決定します。
パターンは必須キーワード条件と任意の検証式で構成されます。
| # | パターン名 | パターン(必須):一次高速検出 | 検証式(任意):二次フィルター |
|---|---|---|---|
| 1 | xp_cmdshell | sp_addextendedproc and xp_cmdshell | |
| 2 | zb_now_connect | REMOTE_ADDR and (fputs or fwrite) | path == "lib.php" |
パターングループは、Sonarウェブコンソールの ポリシー > パターングループ メニューで管理します。
エラーコード
該当なし
使用例
-
rawフィールドの値に指定したパターングループのパターンがマッチするか確認します。json "{'raw': 'GET /index.php HTTP/1.1'}" | eval result = matchsig("550e8400-e29b-41d4-a716-446655440000", raw) | # result: false -
STR_EXPRの値が文字列型でない場合json "{'raw': 12345}" | eval result = matchsig("550e8400-e29b-41d4-a716-446655440000", raw) | # result: false
互換性
matchsig() 関数はSonar 4.0以前のバージョンから提供されています。