情報セキュリティスペシャリスト
情報技術者試験まとめへ

ネットワークセキュリティ(4)

Webアプリケーションファイアウォール(WAF)

WAFとは

Webアプリ用のファイアウォールのこと。クライアントとWebサーバの間において、クライアントがWebサーバに送信するデータを検査して、SQLインジェクションなどの攻撃を遮断するためのもの。
通常のファイアウォールでは、レイヤ4までのヘッダーのチェックがほとんどで、IPアドレスやポート番号でのアクセス制御を行っていた。したがって、悪意のある攻撃であっても、80番のWebアクセスであればすべて通過させてしまう。これに対し、WAFはレイヤ4以上、つまりヘッダーだけでなくデータの中身もチェックする。これにより、SQLインジェクションやクロスサイトスクリプティングなどをも防御することができる。また、最近はWebサーバに特化した高度な攻撃が増えていて、SQLインジェクションやクロスサイトスクリプティングなど、IPSでは止められないものがたくさんある。

WAFの機能と分類

WAFの主な機能

機能の名称機能の概要
シグネチャによる通信検査機能HTTPによる通信をシグネチャと比較し、一致した場合には攻撃として検知する。シグネチャには、脆弱性を悪用する攻撃に含まれる可能性の高い文字列が定義されている。シグネチャの更新情報は、WAFの開発元から定期的に配信される。シグネチャごとに有効化、無効化の選択ができ、有効化したシグネチャに対しては、検知時に通信を遮断するか、遮断は行わず通知だけを行うかを設定できる。独自のシグネチャも作成が可能である。
クッキーの暗号化機能Webアプリケーションがブラウザに対してクッキーを発行した際、クッキーの値を暗号化して引き渡す。ブラウザからクッキーを受信した際、値を復号して、Webアプリケーションに引き渡す。
SSLアクセラレーション機能SSL通信の暗号化と復号を行う。
負荷分散機能販売システムで利用中のLBと同等性能の負荷分散機能を有する。

WAFは設置形態による分類

ネットワーク型WAF

ネットワーク機器として配置するWAFです。アプライアンス製品とソフトウェアとして提供されている製品がある。リバースプロキシ、あるいはブリッジとして配置する。サーバ台数が多い場合に、コストパフォーマンスが高くなる。 また、リバースプロキシサーバとして動作する「リバースプロキシ型」とブリッジとして動作する「ブリッジ型」がある。

ホスト型WAF

Webサーバにソフトウェア(ソフトウェア型)として導入するタイプ。WAFはネットワーク機器が増えないため、レイテンシ(遅延時間)がほとんどないことがメリット。また、費用も低額なものが多いです。デメリットとして、Webサーバ毎に導入するため、サーバ台数が多い場合にコスト高になる場合がある。

SaaS型WAF

SaaS(Software as a Service)として提供されるWAF。ネットワーク型WAF(リバースプロキシ)を共用サービスとして提供するもの。初期投資を抑えることができ、運用負荷も低いことが特徴。

WAFの防御戦略

以下の手法により、外部からの攻撃をブロックする。

シグネチャによる攻撃検知とブロック

SQLインジェクションやクロスサイトスクリプティングなどの攻撃パターンをシグネチャとして定義しておき、外部からの要求(リクエスト)がシグネチャとマッチした場合、攻撃とみなし、通信をブロックするなどの防御処置をとる。

ホワイトリストによる検査

パラメータ毎に、値の仕様を定義し、その仕様に外れた場合に要求をブロックする。仕様(ホワイトリスト)は、各画面のパラメータ毎に定義する必要がある。

画面遷移の正当性チェック

WAFによっては、画面遷移の正当性をチェックする機能がある。

外部からの攻撃は、正規の画面遷移を経ずに直接該当ページを参照する場合が多いことから、画面遷移のチェックにより攻撃を防ぐことができる場合がある。

hiddenパラメータやCookieの保護

画面遷移の正当性チェックとあわせて、hiddenパラメータやラジオボタン等の値が改変されていないことをチェックする機能。Webアプリケーションでは、これらの値は簡単に改変できるため、値が改変されても大丈夫なように設計すべきだが、そうなっていないアプリケーションが多いことが現状であり、攻撃に悪用される場合がある。また、hiddenパラメータ等に対してSQLインジェクション等の攻撃を仕掛ける場合も多くある。
パラメータの改変防止機能により、これらの攻撃を防御することができる。 同様に、クッキー(Cookie)の改変機能や暗号化機能を有するWAFもある。クッキーを暗号化することで、セッションハイジャックに対する防御が可能となる。


≪WAFのブラックリストとホワイトリスト≫
シグネチャ検査で用いられる検出パターンには、「ブラックリスト」と「ホワイトリスト」と呼ばれる二種類がある。それぞれ用途が異なり、長所と短所がある。

問題のある通信データパターンを定義したものであり、該当する通信を遮断するか又は無害化する。

正しいパターンや通信を許可したいパターンを定義したもの。ホワイトリストで記載された通信は、許可される。

ブラックリストホワイトリスト
概要攻撃または不正と判断できるパターン
(一致した場合に不正と判定)
正しいパターン、通信を許可したいパターン
(一致しなかった場合に不正と判定)
長所既知の攻撃を効率良く検出できる。たいていのパラメータを限定することなく全体を検査できる。Webアプリケーションの作りに依存しないため、比較的導入・運用負担が小さい。未知の攻撃にも対応できる。
短所新たな攻撃手法が発見された場合、随時パターンを更新する必要がある。誤検出が発生する可能性がある。パラメータ毎にパターンを定義する必要があり、運用負担が大きい。正しいパターンを定義できない、または困難な場合がある。

WAFの設置場所とSSL


通常は、PC→WAF→Webサーバという並びで構成される。WAFが無い場合、PCとWebサーバ間でSSL通信をする。ところが、httpsで暗号化されていると、通信をチェックできないため、SSLによる暗号化はPCとWAF間にとどめることが多い。
最近のWAFのほとんどは、SSLを終端して復号化する機能を持っている。しかし、処理性能は高くない。専用のSSLアクセラレータ(多くはLBとの一体型)を入れるのがbest。

WAFのデメリット


などがある。

 

ページトップへ 次へ