図1:過去6時間に発生したWAFイベント。
2.このトラフィックによってトリガーされた上位10個のルールIDを確認する。 ルールIDは、トラフィックをさらにフィルタリングし、さまざまなWAFイベントのペイロードを監視するための優れた方法である。 つまり、さらに分析するために、これらのルールIDでトラフィックのフィルタリングを1つずつ開始する。
図2:WAFイベントによって起動された上位10のルール
3.次に、一致する値フィールドを見て、このルールをトリガーしたペイロード値を確認する。
図3:[Matched Value]列のペイロード値。
4.ペイロード値を分析して、悪意のあるものかどうかを特定する。 見た目がわからない場合は、 ペイロードに含まれる可能性のある悪意のある値をいくつか紹介する。
- パストラバーサル:http://some_site.com.br/../../../../some dir/some file ¹ http://testsite.com/get.asp?f=/etc/passwd²
- LFIの脆弱性:攻撃者が.iniなどのサーバー上の機密ファイルにアクセスしようとしている。Edgecast WAFはデフォルトでこれや他の多くの重要なファイルシステム拡張をブロックする。
- クロスサイトスクリプティング:http://testsite.test/<スクリプト>alert(“test”);</script>§ <img src=”http://url.to.file.which/not.exist”onerror=alert(document.cookie);>アッカンゼン
- SQLインジェクション: select * from items where‘a’=’a’; apply select 1;復号化
- リモートコード実行: eval(“\$$user =‘$regdate’);復号化
- 時間ベースの攻撃:1を選択してスリープ(2)、選択しないベンチマーク(2000000、MD5(「A」))、¹‹
5.ペイロードが悪意のあるものかどうかまだわからない場合は、対応するペイロードでリクエストを開始したクライアントIPのリストを見ることで、それを理解するのに最適な方法がある。 クライアントIPが分散されている場合、つまり変化している場合、ペイロードが偽陽性である可能性が高い。 しかし、すべてのクライアントIPが同じ値を持つ場合、潜在的なボリューム攻撃を示し、悪意のあるペイロードに分類される。 これを実証するために、ステップ3を参照して、この一致する値を選択してみよう。{“IATA”:[“TGZ”,“MEX”]}そして例として使用する。 このペイロードを送信したクライアントIPのリストを調べるには、一致する値をフィルタとして次のように追加する。
図5:ペイロード値を送信したクライアントIP {“IATA”:[“TGZ”,“MEX”]}。
この場合、この要求を行うさまざまなIPアドレスを考えると、これらの要求が実際のユーザーから発信された可能性が高く、これが偽陽性の候補になる可能性が高い。
6. false positiveが識別されたら、Managed Rulesセクションで例外を作成することができるが、その前に、このペイロードが見つかった場所を見つける必要がある。クエリ文字列、リクエストヘッダー、URL、またはその他の場所。 これはステップ5からの同じページの一致する列を見ることによって容易にする。 この使用例では、ペイロードは、次に示すように、「data」クエリ引数に見つかった。
図6:ペイロード値の場所:{“IATA”:[“TGZ”,“MEX”]}。
7.経験則としては、偽陽性ペイロードを含むフィールドでこれらの特定の照合をフィルタリングし、この照合されたパラメータで実際の悪意のあるペイロードを運ぶ他の要求がないことを確認することである。 言い換えれば、特定のMatched Onフィールドのペイロードが悪意のあるものではない。 これは、該当するフィールドで照合されたにフィルタを追加することによって達成される。 使用例を見ると、このクエリ引数に悪意のあるペイロードがないことが確認できる。
図7:クエリ引数dataで送信されるすべてのペイロード値。
8.例外を作成する前の最後のステップは、Matched OnフィールドによってトリガーされたルールIDを見つけることである。 この偽陽性によってトリガーされたすべてのルール(ルールID)を記録しようとしている。 使用例に基づいて、この情報はステップ5からの同じページで利用可能である。
図8:ペイロード値によってトリガーされるルールのリスト{“IATA”:[“TGZ”,“MEX”]}。
9.例外を作成する。 [管理されたルール]セクションに移動し、これらの例外を追加する管理されたルールをクリックする。
図9: WAF構成用に作成された既存の管理対象ルール
10.「例外」タブに移動し、「新しい条件を追加」をクリックする。 args、request_cookies、ペイロードが見つかったURLなど、フィールドで一致するタイプを選択する。 次に、queryやcookieなどのパラメータ名を入力する。 最後に、ペイロードがトリガーしたすべてのルールIDのリストを入力する。