【Web】WAF(WebApplicationFirewall)とは?【セキュリティ】

最近はWebでは当たり前とも言えるWeb Application Firewall(WAF)について紹介したいと思います。
というか、まとめみたいなものです。

Web Application Firewallとは?

かんたんに言えばFireWallのWeb特化バージョン。
通常のFirewallがOSI参照モデルのネットワーク層(レイヤ3)・トランスポート層(レイヤ4)で動作するのに対して、Web Application Firewallはプレゼンテーション層(レイヤ6)・アプリケーション層(レイヤ7)で動作するイメージ。
さらに掘り下げると通常のFireWallがIPやポートで制限したり、制御するのに対してWeb Application FirewallはWebの攻撃に特化した防御機能を提供します。
つまり、通常のFirewallで防げない攻撃まで防ぐ様になっている、ということですね。
具体的には、

  • SQLインジェクションなどのインジェクション攻撃
  • HTTP Slow攻撃
  • クロスサイトスクリプティング(cross site scripting、XSS)
  • Flood攻撃
  • 各Webフレームワークの脆弱性への対応

などに対しての防御機能を提供するものです。
他にも製品によってDoS攻撃、DDos攻撃、Botに対する防御機能を提供するものもあり多種多少です。

Web Application Firewallの種類

Web Application Firewallには大きく分けて、

  • アプライアンス型
  • クラウド型

の2種類があります。
アプライアンスは自社のデータセンターなどに物理的な機器を配置する形式で初期コストが大きくかかるのが特徴。
対してクラウド型は自社のデータセンターに機器を置かず、クラウド上のサービスとして提供されているものを利用するタイプです。
クラウド型は導入コストがアプライアンスに比べて安くすむことから、比較的気軽に導入することができます。
ものによってはタダ同然で利用できるものもあるのが特徴。

昨今ではクラウド型の導入が進んでいるように思えます。
アプライアンスの場合は一度導入したら高価故になかなか変更できませんが、クラウド型は変更が用意なのもメリット。

ad

Web Application Firewallのメリット・デメリット

それではWAFを導入するとした場合のメリット・デメリットをざっくりご紹介します。

メリット

  • セキュリティレベルが上がる(信頼に繋がる)
  • 急な対応が必要な脆弱性が見つかってもWAF側で暫定対応してくれる可能性がある
  • WAFに個別のルール、条件を設定することで自社で利用しているフレームワーク等の脆弱性に迅速に対応できる場合がある
  • サービスによってはDoS、DDOSの防御機能、Bot対策なども提供されるものがありサービスダウンを防ぐことができる

次にデメリットです。

  • 導入、運用コストがかかる
  • 正規の通信もWAFでブロックしてしまう可能性がある
  • (ほぼありえないが)WAFサービスがダウンしてしまうと、自身のサービスもダウンしてしまう(繋がらなくなってしまう)

実際のところ一番の問題はコストになると思います。
ただ、セキュリティ対応はコストという考え方より投資と考えたほうがしっくりくるのでそのように考えてみてはいかがでしょうか。

実際の運用

運用イメージは下記の図のようなイメージでWAFを導入します。

基本的に、
  • LB、サーバの前段にWAFを導入する
  • WAFを経由しないアクセスは物理FW、AWSのSecurityGroupなどでブロックする(アクセスできないようにする)

というのがポイントです。
図のアイコンはAWSのものを使用していますが、オンプレでも変わりません。
特にクラウド型WAFの場合はデータセンターのネットワークの外にWAFが存在する形になるので考え方は上記と一緒です。
サーバ、LBへの通信は必ずWAFを経由して行うようにインフラ面の設定を行います。
これをしないと結局脆弱性が残ることになってしまうので注意が必要です。