WAF CDNとは、WAF機能を持つCDNです。
WAF
WAF (Web Application Firewall)とは、Webサーバのフロントに配置し、Webサーバのセキュリティを高める機能です。以下の機能を、一般的にはシグネチャー(検知パターン)をベースに実行します:
- アタックの検知
- アタックの遮断
- 情報漏えい(機密情報を含むレスポンス)の遮断
実装
CDNにおけるWAF実装は、ほとんどの場合、以下のオープンソースモジュールをベースにしています。
- mod_security
- Naxsi
AWS WAF
2015年10月にAWS WAFがアナウンスされましたが、これは一般的なWAFとは異なります。通常、WAFでは、数百~数万のシグネチャが事前に用意されており、WAF機能をオンにするだけで攻撃に対する防御ができます。一方、AWS WAFは、CDN(Cloudfront)に対するACL(Access Control List)機能の追加のみであり、シグネチャは提供されません。そして、設定できる条件は以下だけであり
- リクエスト元のIPアドレス
- リクエストに含まれる文字列(正規表現の使用不可)
- SQLコード
料金についても、以下のようにWAFとしてみると高額です:
- ACLあたり$5/月
- AClの変更あたり$1/回
制限
専用WAFの場合、サイト毎に細かなチューニングを行います。
- ルールセット(検知パターン)の選択
- 専用WAFの場合、ルールセットが豊富(1万弱)であり、さまざまな脅威に対応できます。しかし、これらをそのまま使うと大量の誤検知アラームが発生します。そのため、以下のような項目をオリジンサーバに合わせ、不要なルールを削除します
- プラットフォーム(Web Server、OS)
- 役割(OCSP等)
- 自動学習による適用も可能ですが、高いセキュリティが要求されるサイトの場合、エキスパートによる手作業でのチューニングが必要です
- 専用WAFの場合、ルールセットが豊富(1万弱)であり、さまざまな脅威に対応できます。しかし、これらをそのまま使うと大量の誤検知アラームが発生します。そのため、以下のような項目をオリジンサーバに合わせ、不要なルールを削除します
- ルールセットの作成
- 代表的なものとして、レスポンス遮断の条件(情報漏えい対策)があります
- 例:クレジットカード番号、電話番号が含まれていた場合、レスポンスを遮断する
- 代表的なものとして、レスポンス遮断の条件(情報漏えい対策)があります
- URLパラメータの制限
- URLパラメータに許される情報の種類を制限します
- 例:メールアドレスを入力できるパラメータを制限する
- 自動学習による適用が一般的です
- URLパラメータに許される情報の種類を制限します
- アウトバウンド通信の制限
- オリジンサーバから外部サーバへの通信を監視し、必要によって遮断します
- 例:オリジンサーバから外部のWebサーバへの直接通信は、多くの場合、使用しません。これが検知された場合、オリジンサーバがクラックされ情報持ち出しのための外部通信である可能性があります
- オリジンサーバから外部サーバへの通信を監視し、必要によって遮断します
一方、CDN WAFは専用WAFのサブセット形であり、以下の機能制限を持ちます。
- ルールセット数
- 専用WAFに比べ少ない
- ルールセットの作成
- できない場合がある(情報漏えいレスポンスの遮断ができない)
- URLパラメータの制限
- できない場合がある
- アウトバウンド通信の制限
- できない(オリジンサーバからのアウトバウンド通信は、直接Internetに出て行くため不可能)