ikepyonのだめ人間日記

セキュリティに関することを書いていく予定。

誤ったWAFの使い方 - 国連でもへ

ちと、幾つか気になったことがあったので。

WAFを導入してもアプリケーションの脆弱性を完全に保護することは不可能です。WAFの防御方法はブラックリスト方式であるため予め分かっている脆弱性しか保護できません。

F5のApplication Security ManagerやCitrixのCitrix Application Firewallではホワイトリスト方式です。金床さんのGuardian@JUMPERZ.NET(http://guardian.jumperz.net/)でもホワイトリスト書けそうですね。ただ、パラメータの数だけホワイトリストを作成するのが非常に面倒ですw
商用のWAFは一定期間トラフィックを学習させることでホワイトリストを作成するようにしていることが多いみたいです。
多分、ブラックリスト方式のWAFは少ないんじゃないでしょうか?

アプリケーションロジックに誤りがあってもWAFには判別不可能です。例えば、権限を持たないユーザが本来参照または変更できてはならないデータを参照・変更できてしまう。認証済みのユーザだけが利用できる機能が認証無しで利用できてしまう。

これも製品によると思います。事前に指定した一定の画面遷移を経なければエラーとするような機能のあるWAFがあったと思います(違ったかな?)。後レスポンスの内容に例えばクレジットカード番号っぽいものなどが含まれていたらはじくような機能があるWAFもあります。
とはいえ、CookieにユーザIDとパスワードが含まれているとかその手の類のアプリケーションロジックについては対策できないのは同意です。

まあ、セキュリティチェックがWAF入れたからといって不要かというとそういうわけではなく、きちんと設定されているか?と言う確認の意味でも必要だと思います。

ちなみに、私はWAFって使ってうれしいとこ限られるんじゃね?って考えです。
WAFが有効な組織って、毎日のようにアプリの更新が頻繁にあるか、ホスティングサービスのようにチェックできない&修正できないアプリが存在するケースぐらいじゃないかと思うんですよ。それ以外の場合、本番稼動する前にしっかりテストして、しっかり直せばいいんじゃね?と思うんですよねぇ。
WAFって入れて終わりじゃなくて、設定に手間が非常にかかるし(下手すりゃコード修正するのと同じくらい)、商用のは高いしで結構敷居高いんだよねぇ。
実際WAFが出てかなり経つけど売れてるか?というとそれほど売れてないみたいだし・・・