WAF (Web Application Firewall)登場の背景
現代のWebサイトは、非常に大きなセキュリティリスクにさらされています。攻撃のレベルは年々上がっており、DoS攻撃やICMPアタックといったネットワークレベルの攻撃だけではなく、SQLインジェクションやクロスサイトスクリプティングといった
アプリケーションの脆弱性を突く高度な手法を用いて個人情報やクレジットカード情報を盗み出すといった、実利を求める悪質なものへ進化しています。
しかしながら、インターネットの広がりと共に、重要な情報はますますWebアプリケーションに集約されるようになっており、情報漏洩や攻撃に対するリスクは増加し続けているのが現状です。
Webアプリケーションセキュリティに対する発想の転換
こうした状況下、アプリケーションの脆弱性に対する責任は、アプリケーションの開発者が負っているのが現状です。
しかし、本当にそれは「全体最適」と呼べるのでしょうか?
アプリケーション開発者がセキュリティに対する責任を負っている現状では、当然開発者は新規の機能追加を抑えようとするでしょう。また、Ajaxなど新しいユーザー体験をもたらす先進的な技術の利用を
「セキュリティリスクが高まる」という理由でためらってしまうかもしれません。
また、セキュリティのチェック項目が増えることで、テストに必要な費用が向上してしまい、機能追加など生産性の向上に繋がる肝心の部分への投資が抑制されてしまうかもしれません。
これは、アプリケーション開発者がセキュリティに対して責任を負っている現状では回避できない問題です。
ですが、発想を変えて、Webアプリケーションに対する攻撃についてアプリケーション開発者が考慮しなくても良い(もしくは考慮する範囲が限定された)ならばどうでしょう?
アプリケーション開発者は、より知的な活動にパワーを注ぐことができますから、モチベーションを保ちながら高度なアプリケーション開発へリソースを集中することができるだけでなく、
セキュリティ試験の様な基本的には何も生み出さない部分への投資を抑えることができるようになり、全体としての生産性向上が期待できます。
つまり、Webアプリケーションに対する攻撃はゲートウェイで防いだ方が、生産性の向上とコスト削減に繋がる可能性が高い、ということです。
NetScalerのWAF機能
NetScalerはこうした要求に応えるために、WAF(Web Application Firewall)機能をNetScalerのプラットフォームに統合しました。NetScalerが持つ高度なトラフィックマネジメント機能とセキュリティ機能が一体となることで、他の追随を許さない最高レベルの「アプリケーションデリバリープラットフォーム」へと進化しました。
NetScalerによるアプリケーション防御のイメージ

Deep Stream Inspection
NetScalerは、クライアントとWebサーバ間の通信内容について、既存の概念を破る深いレベルまで解析。画面の遷移を逐次解析したり、セッションハイジャック、前ページと異なるフォーム値のチェックなど、高度な攻撃に対する防御機能を備えます。
自動学習機能
NetScalerのWAF機能は、ポジティブセキュリティモデルを採用。基本的にはアクセスを許可するURL(ホワイトリスト)を作成し、リストに載っていないページへのアクセスを遮断。さらに実際に流れる通信の内容から自動的に学習することで、ホワイトリストを自動的に更新することが可能です。
情報流出防止機能
ユーザーからの攻撃だけでなく、アプリケーションの不具合などによる予期せぬ情報流出を阻止する機能も完備。特にクレジットカード番号に対する防御では、クレジットカード情報を扱う事業者への準拠が求められている世界標準PCI DSSの要求に沿った自動的な流出防止が可能。
クレジットカード情報がデータベースからWebアプリケーションに渡されたとしても、NetScalerが自動的に番号を検出し、番号の一部を自動的に隠蔽させるといった防御が可能です。
どのような防御ができるのか?
実際にNetScalerのWAF機能で防御可能な攻撃の一例です。
| SQLインジェクション | SQLインジェクション攻撃からの防御を行う機能です。PHPとPostgreSQLの組み合わせで起こりえる「addslashes()関数でも防御できないSQLインジェクション攻撃」なども適切に排除可能です。 |
| XSS(クロスサイトスクリプティング) | クロスサイトスクリプティング対策を実施することができます。HTMLの内容を解釈しますので、「簡単なFONTタグなどは認めるが、JavaScriptなどはブロックする」といった実際の運用と現場の要求に即した防御が可能です。 |
| バッファオーバーフロー | HTTPリクエストの長さに制限を設けることで、アプリケーションやWebサーバーのバッファオーバーフローを防ぎます。 |
| クッキー改ざん | NetScalerは、該当するユーザーが直前のアクセスでどのようなクッキーを保持していたのか、その内容を保持。不正にクッキーを改ざんしても、自動的に不正クッキーを削除することで、セッションハイジャックなどからアプリケーションを守ります。 |
| クレジットカード番号 個人情報隠蔽 |
画面にクレジットカードを表示する際、番号の先頭12(11)桁を自動的にXに置換。さらにフォーマットを定義することで、個人情報の漏洩防止も可能です。 HTML内部だけでなくCSVファイルの場合でも同様にブロックできますので、アプリケーションの不備などによる情報漏えいを防ぎます。 |
| ソースコード隠蔽 | Webアプリケーションでは、動的処理の開始タグにたった一文字の不備があるだけでソースコードの内容が丸見えになってしまう危険があります
(たとえばJSPのスクリプトレット開始タグ「<%」や、PHPの開始タグの「<?php」などの内、「<」を付け忘れるだけでその後のスクリプトが丸見えになる可能性があります)。 NetScalerは、こうした内部のプログラムが意図せず表示されることが無いように表示のブロックをかけることが可能です。 |
| Start URL | ユーザーが直接アクセスすることができるURLを明示することで、意図しないページに直接アクセスされることを防ぐことができます。 |
導入ポリシー
NetScalerのWAFは非常に強力な機能で、簡単な設定で75%以上(当社試算)のWebアプリケーションに対する攻撃を防御することができます。
それ以上のセキュリティレベルを求める場合は、アプリケーションとの整合性検査など導入に時間がかかるものもありますので、段階的に導入することが理想的です。
WAFに関するご質問、お問い合わせはこちらからお願いいたします。



