#Webアプリケーションファイアウォール(WAF)
IDS、IPSでNWを流れる不正なものを検知・防御できるようになったけれど、
アプリケーションの脆弱性を狙ったものは防御できない。
ただ、世の中にあるものはアプリケーションであり、そこも同様に防御する必要がある。
そんな時に近年利用されるものが、WAF(Webアプリケーションファイアウォールで、ワフと言われる)である。
##WAFの種類
いくつか種類があるが代表的なものは3つほど
- リバースプロキシ型
- いわゆるプロキシ(PCからWANに行く時に代理でアクセスする)の逆(リバース)
- なので、WANから来る通信をPCに代理で中に渡すもの
- これにより、どこの誰かも分からないアクセスを、知った人からの通信に変更できる
- ブリッジ型
- IPSなどと同様インラインで接続するが、通信は代行しない
- 橋のように単に架け橋となるだけ
- ソフトウェア型
- Webサーバーのプラグインとして利用されるもの
- サーバーには通信が届いてしまうので、防げないことも多いよ
##WAFが検知・防御する内容
- XSS
- インジェクション系の攻撃
- OS、SQL
- 不正アクセス
- ディレクトリ、ファイル
- セッションハイジャック
- アプリ独自の仕様について検出・防御するのは困難
- 複雑にするほどWAFの処理効率は落ち、システム全体の可用性が落ちることも有り得る
##WAFのチェック内容
- 接続元ホスト
- HTTPリクエスト(コマンド)
- クエリストリング(URLパラメータ)
- HTTPヘッダ情報
- POSTデータ
- クッキーの内容
チェック条件やパラメタについては、サイト管理者が設定する必要があるよ
##チェック後のアクションについて
- リクエストの排除、エラーコードの返却
- 安全ではあるが、誤って遮断した場合には不都合となることもある
- 特定URLへのリダイレクト
- 決まったページ(例えばセキュリティチームへの案内ページ)があるなら飛ばすもよし
- アラートの通知
- 特定プログラムの実行
- ログへの記録
- 少なくとも最低限これがないと今後の改善ができないので、ログは必須
##付加機能
- SSLアクセラレータ
- ロードバランサ(LB)やIPS/IDSに機能が備わっていれば、そちらに任せることも可能
- 負荷分散
- Passiveモード
- リバプロ型のWAFを経由した際に、通信元アドレスをそのまま引き継いで渡す機能
##構成例
- DMZに接続して公開Webサーバへの攻撃を防御する
- IDS/IPSと同じ一般的な構成
- クラスタ環境に接続
- LB併設型
- WAFはLB(+アクセラレータ)からの通信についてのみチェックを行う
- それぞれ機能が分離するため負荷は高くなく、利用しやすい
- 但し、機器は増えるので管理工数は増える
- LB兼用型
- 全てを担うことになるので、WAFの負荷が高くなってしまうことには注意
- 機器は1つ2つで済むため、構成としてはシンプル
- 全て統合されるのでどこかに問題があった場合、全体を停止する必要性が考えられる
- LB併設型
#総じて言うと
- WAFを入れればいいってもんではなく、アプリ側でもセキュリティ対策は必要である
- NW・FW・IPS(IDS)・WAF・アプリなど全体を見てどこをより守るのかなど検討が必要
- 可用性とセキュリティは表裏一体
- 家のセキュリティを高めるために鍵を10個も20個もつけてたら、出入りができない
- とは言え鍵をかけないと、泥棒に入られてしまうので、最低限1-2個の鍵は必要だよね
- 可用性とセキュリティは表裏一体
- どんな製品を入れればいいか
- 環境や費用次第であるため、現状に合ったものを入れるのがよい