PCIDSS適合次世代WAF

WAPPLES:ルール型WAFとは?

【今までの検知方法】

ブラックリストとは?

基本的な接続はすべて許可するが、リストアップされているものからの接続はすべて遮断します。
常にログをレビューする必要があり、接続を遮断するべきところからのアクセスを見つけたら、すべてこのブラックリストに登録する必要があります。未知の不正な接続があった場合、最初の接続は許可されてしまうため、未知の不正なものに対しての耐性はありません。

ホワイトリストとは?

基本的な接続はすべて遮断するが、リストアップされているものからの接続のみ許可します。
事前に接続を行うものを特定し、ホワイトリストに登録しておく必要があります。 あらかじめわかっている場合は問題ありませんが、新しいところからの接続の場合、最初の接続は問答無用に遮断されるため、利用者側の使い勝手を考慮する必要があります。

シグネチャベースのパターンマッチングとは?

第2世代の検知方法です。基本はブラックリストタイプで、 過去に認識された攻撃リクエストのパターン(シグネチャ)をデータベース化し、リクエストの内容をシグネチャと比較することで攻撃検知を行う手法です。
シグネチャは定期的に更新する必要があります。また、シグネチャに登録されていないような新しい攻撃には対応することができません。

ロジック分析エンジンの優位性・・・1

ルールベース(ロジック分析エンジン)とは?

第3世代の検知方法で、あらかじめプログラミングされた26(現時点)種類の攻撃検知エンジンの集まりです。個々が独立することで処理の高速化と運用の簡素化を実現しています。

シグネチャベースのマッチングの限界

リクエストの内容に対し、「禁則文字列が含まれるかどうか?」「文字列がどのように並んでいるか?」という検知方法のため、本来検知してはいけないものまでも検知してしまうことがあります。(過剰検知)また、検知する対象が一定の決まりによって作られているものの場合、検知するのは難しくなってきます。

クレジットカード番号を識別できるか?

一見ランダムに生成されていそうなクレジットカード番号。実は発行会社によって番号の作り方が定められております。

  クレジットカード番号 他社製 WAPPLES
1 2123-4214-1232-7584
(発行会社のルールに基づいた番号)
検知できない 検知
2 1111-2222-3333-4444
(ランダムに入力したもの)
検知できない 検知しない
※WAPPLESはクレジットカード番号の作り方(生成ロジック)を知っているため、クレジットカード番号であると判断することが可能です。

ロジック分析エンジンの優位性・・・2

SQLインジェクション?

  SQLリクエスト 他社製 WAPPLES
1 admin' or 1=1;-- 検知 検知
2 'or 'abcdzzz'='abcdzzz' 検知 検知しない
3 'or /*SQL comments*/ 160>150 検知 検知しない
4 I've an order for the Emperor 検知 検知しない
5 '1 or 2' 検知 検知しない
6 ';drop table'string can be used in SQL Injection attack. 検知 検知しない
7 'union select or' 検知 検知しない
8 'union select password users where name=' 検知 検知しない

※WAPPLESはSQLの仕様(ロジック)を知っているため、2~8のリクエスト内容は「SQLではなく単なる文字列」と判断できるため検知しません。

過剰検知が発生した場合、管理者がそれらのリクエストをホワイトリストに手動で登録することでWebサーバへリクエストを到達できるようにする必要があります。