ビュー:

動作の概要

これらのルールはどちらも同様の動作をします。 パケットデータの先頭から順に設定されたキーワードに合致するものを検索し、合致したキーワードに割り当てられたスコアを合計して、スコアの合計が設定された閾値を超えると接続を拒否またはログを記録します。

設定

●XSS Patterns / SQL Injection Patterns:
それぞれの攻撃に使用されるキーワードグループとスコアを設定します。 1行毎に1グループで、キーワードのリストとそのキーワードグループに割り当てるスコアが定義されています。グループは最大32まで定義できます。
(書式) キーワード1,キーワード2,キーワード3,...:スコア
(例) <,%3c,>,%3e:1
「<」「%3c」「>」「%3e」のいずれかがパケットデータ中に見つかると、1点となります。

各行につき、スコアの追加は一度限り実行されます。

上述の例で、「<」「%3c」「>」「%3e」の全てのキャラクターが単一パケット内に複数存在する場合でも、加算されるスコアは1点となります。

(参考)2017年2月時点での、それぞれの初期設定値は以下の通りです。

  • XSS Paterns

    <,%3c,>,%3e:1
    (,%28,),%29:1
    [,%5b,],%5d,{,%7B,},%7D:1
    ',%27,\x22,%22:1
    script\W,javascript\W,vbscript\W,object\W,iframe,applet\W,embed\W,style:2
    OnLoad,OnError,OnMouse,OnClick,OnKey:1
    .src=,.src%3d,%2esrc=,%2esrc%3d, src=, src%3d,%20src=,%20src%3d,+src=,+src%3d,<form,%3cform,.submit,%2esubmit:1
    eval(,eval%28,<~/,%3c~/,%3c~%2F:1
    XMLHTTPRequest,.XMLHTTP,%2eXMLHTTP,OnReadyStateChange:1
    document.write,document.cookie:1

  • SQL Injection Patterns

    drop table,drop+table,insert into,insert+into,values\W,create table,create+table,delete\W,update\W,bulk insert,bulk+insert,shutdown\W:2
    declare\W,select\W:2
    cast\W,exec\W,load_file:2
    union\W,group by,group+by,order by,order+by,having\W:2
    and\W,or\W,like\W,is null,is+null,is not null,is+not+null,where\W:1
    --,%2D%2D,/*,%2F%2A,*/,%2A%2F:1
    ',%27,\x22,%22,char\W:1
    ;,%3B:1
    %2B,CONCAT\W:1
    %3D:1
    (,%28,),%29,@,%40:1
    ascii,substring:1
    version(,version%28,user(,user%28,system_user(,system_user%28,database(,database%28,@@hostname,%40%40hostname,@@basedir,%40%40basedir,@@tmpdir,%40%40tmpdir,@@datadir,%40%40datadir:2

●Drop Threshold:
接続を拒否する閾値を設定します。パケットデータ中で見つかったキーワードグループのスコアの合計が、この値を超えると、接続が拒否されます。

(例) 4点に設定されている場合、スコアの合計が5点以上になると接続が拒否されます。

●Log Threshold:
ログを記録する閾値を設定します。パケットデータ中で見つかったキーワードグループのスコアの合計が、この値を超えると、ログを記録します。(接続は拒否されません。)

(例) 3点に設定されている場合、スコアの合計が4点以上になるとログを記録します。

●Max distance between matches:
キーワード間の最大文字数を設定します。パケットデータ中で見つかったあるキーワードから、この文字数以内にいずれのキーワードも見つからない場合に、スコアの合計を0にリセットします。

(例) <1234567890123456789012345678901[
最大文字数が30の場合、キーワード「<」(1点)と「[」(1点)の間に31文字以上あるため、スコアは2点ではなく1点になります。

●Pages (resource) with a non-default score to drop on:
特定のページでだけ、接続を拒否する閾値を変更します。 1行に1ページずつ、ページのパスと接続を拒否する閾値を定義します。指定したページでは、「Drop Threshold」の値よりもこちらの値が優先されます。
(書式) ページのパス:閾値

(例) /index.html:5
/index.htmlページのみ、スコアの合計が6点以上になると接続が拒否されます。

●Form parameters with a non-default score to drop on:
特定のページの特定のフォームパラメータでだけ、接続を拒否する閾値を変更します。 1行に1ページずつ、ページのパス、パラメータ名と接続を拒否する閾値を定義します。設定されたページの設定された 指定したページの指定したパラメータでは、「Drop Threshold」の値よりもこちらの値が優先されます。
(書式) ページのパス:パラメータ名1=閾値1,パラメータ名2=閾値2,...

(例) /index.html:userid=5,passwd=7
/index.htmlページのuseridというパラメータでは6点以上、passwdというパラメータでは8点以上になると接続が拒否されます。

検出精度を向上するため、上記で設定できる項目以外にも、内部ではさらに詳細な判定も行っていますが、セキュリティ上の観点からその具体的な内容についてはご案内できませんので、ご了承ください。

ルールの調整

正常な通信がブロックされるなど、ルールによる検出が意図した通りに行われない場合は、「Drop Threshold」および「Log Threshold」を調整してください。

  • より多くの通信をブロック・検出したい場合は、「Drop Threshold」および「Log Threshold」の値を下げます。
  • ブロック・検出される通信を減らしたい場合は、「Drop Threshold」および「Log Threshold」の値を上げます。