メニュー

WAFの検知方法:WAFの基礎知識4

WAFの基礎知識

更新日:2020年6月2日(初回投稿)
著者:増井技術士事務所 代表 増井 敏克

前回は、WAFとその他のセキュリティ技術との違いを説明しました。Webアプリケーションを狙った攻撃パターンは多岐にわたるため、その全てをWAFで検知することは決して容易ではありません。次々と登場する新たな攻撃に対応するには、検知するパターンのメンテナンスが必要になります。今回は、実際にWAFが行っている検知方法と、さまざまな運用や監視の手法、およびその最近のトレンドについて紹介します。

今すぐ、技術資料をダウンロードする!(ログイン)

1. ブラックリスト方式

不正な入力をチェックしたいとき、まず思いつくのは、その入力に共通する要素を調べる方法でしょう。例えば、フォームにHTMLのタグが入力された場合に問題が発生するのであれば、HTMLのタグを入力できないようにすれば良いのです。このように、不正と判断される攻撃パターンのリストを用意しておき、その内容と一致する処理が行われた時にブロックする、もしくは無害化する方法を、ブラックリスト方式といいます。

身近でブラックリストという言葉を耳にするのは、クレジットカードを作成したり、ローンを組んだりする場面です。過去に延滞の発生や破産などによって信用が失われた場合、ブラックリストが発生します。そこに掲載されている人は、クレジットカードの作成やローンの申し込みができなくなります。

WAFでのブラックリストも同様で、そこに登録された攻撃パターンに対し、その通信を拒否したり無害化したりします。登録した攻撃パターンと一致する攻撃は全て排除できるため、確実な手法ではあるものの、リストのメンテナンスを継続的に行う必要があります。新たな攻撃手法は次から次へと発生しているため、このブラックリストへの登録作業が頻繁に発生します。もし、防ぐべき攻撃手法の登録が漏れてしまうと、その攻撃を防ぐことはできません。逆に、正常な処理内容であっても、誤ってリストに登録されることで、実行できなくなってしまいます。

2. ホワイトリスト方式

ブラックリスト方式とは逆に、正常と判断される通信のみを許可する方法を、ホワイトリスト方式といいます。リストに登録されているもの以外は許可しないため、新たな攻撃パターンの発生にも影響を受けません。さらに、最初に適切なリストを作成しておけば、そのWebアプリケーションの仕様が変わらない限り、リストの更新作業は必要ありません。ただし、入力可能なパターンとして、文字の種類や文字数、入力形式など、全ての正常パターンを最初に登録する必要があるため、その作成には時間がかかります。実際には、ホワイトリスト作成機能を持つ製品があるため、一般的な通信を何度か繰り返すことで、そこに共通する内容を元に、WAFがリストを自動生成してくれます。こうした機能を使うことで、管理コストを削減できる可能性があります。

こうした簡便性から、ホワイトリスト方式の方がブラックリスト方式よりも人気を集めているようです。とはいえ、ホワイトリストとして定義できないような場面も存在するため、どちらが良いということはなく、アプリケーションの特徴に応じて使い分ける必要があります(表1)。

なお、Webアプリケーションの仕様変更や機能追加が発生した場合、ホワイトリストの定義を見直す必要があることを忘れてはいけません。ブラックリストやホワイトリストという言葉は、子ども向けのフィルタリングソフトなどで使われることもあります。これらは、利用者側に設置して、利用可能なWebサーバを判断するために使われます。しかし、WAFの場合は、サーバ側に設置して通信内容をチェックする、という違いがあります。

表1:ブラックリストとホワイトリストの違い(引用:独立行政法人情報処理推進機構セキュリティセンター、Web Application Firewall(WAF)読本、2011年、P.20)https://www.ipa.go.jp/files/000017312.pdf

表1:ブラックリストとホワイトリストの違い

3. パターンマッチングとAIの活用

保管用PDFに掲載中。ぜひ、下記よりダウンロードして、ご覧ください。

    ピックアップ記事

    tags