前回は、近年ますます重要度が増しつつあるセキュリティ対策、特にDDoS攻撃への対応においてApplication Delivery Controller(以下、ADC)が脚光を浴びていることを紹介した。簡単におさらいすると、ADCはネットワークレイヤーを防御する「ネットワークファイアウォール」とアプリケーションレイヤーを防御する「WAF(Web Application Firewall)」の双方の機能を持ち、DDoSをはじめとするWebアプリケーションを狙った攻撃に対する多層防御を実現する。前回はネットワークファイアウォールの機能について詳しく取り上げたが、今回はもう1つの要であるWAFの機能について詳しく紹介する。

アプリケーションの脆弱性を狙った攻撃を防ぐにはWAFが不可欠

WAFは、アプリケーションの手前に設置されるセキュリティアプライアンスで、アプリケーション層のプロトコル、より具体的に言えばHTTPプロトコルの内容やアプリケーションペイロードデータ、セッション管理状況を精査することで、Webアプリケーションの脆弱性を突いたり、あるいは不正ログインを狙う攻撃からサイトを守るというものだ。

ちなみに、このWAF、セキュリティの世界では今やおなじみになったが、一般的にその役割が正しく理解されているとは言い難い。特にIDS/IPSでWebアプリケーションのセキュリティ対策ができると誤解されていることがあるので注意が必要だ。その誤解の背景には、IDS/IPS、WAFともにシグネチャマッチング技術を使って不正アクセスを検知・防御することから、両者の正確な違いを理解されづらいことがある。実際、WAFはIDS/IPSとはまったく異なる技術だ。両者の最大の相違点は、IDS/IPSがミドルウェアへの多様なプロトコルを用いた不正アクセスにシグネチャのパターンマッチングに基づき検知・防御するのに対して、WAFはIDS/IPSと同様にシグネチャのパターンマッチングに基づきながらも(注1)、Webアプリケーションに特化しており、「HTTPリクエスト/レスポンスが正常か」「ペイロードに不正なデータがないか」「本来流出しないはずのデータがレスポンスとして含まれていないか」までをチェックするところにある。

注1)WAFはシグネチャマッチング以外に、ポジティブセキュリティと呼ばれる正規の通信を定義し、それ以外を不正と判断する方法を併せ持つのが一般的

この違いは極めて大きい。具体的にIDS/IPSのみでWebアプリケーションの脆弱性を守ろうとした場合の課題例を一つ説明しよう。IDS/IPSやWAFといった不正アクセス検知技術には誤検知がつきもので、運用を続ける中で個々の誤検知の内容を検証し、もしそれが正常なアクセスであれば検知対象から順次外していく。こうした細かいチューニング作業を重ねながら、徐々に誤検知を減らしていく。IDS/IPSでは、ある特定のURIに特定の文字を入力し、誤検知が発生と判断されてシグネチャを検知対象から外した場合、Webアプリケーション全体に対して"一律"にシグネチャを外すことしかできない。WAFであれば、HTTPプロトコルレベルで解析してシグネチャの検知処理を制御しているため、「特定URIに対するHTTP POSTメソッドの場合だけシグネチャを検知対象から外す」といった、極めて細かなチェックが可能だ。つまり、シグネチャを外すということはリスクが増大することを意味するが、WAFを用いた場合はそのリスクを特定のアクセスのみに限定できるが、IDS/IPSの場合はWebアプリケーション全体にリスクが及んでしまうのだ。

ファイアウォール、IDS/IPS、WAFの防御対象の違い

このほかの面でも、WAFとIDS/IPSが持つ機能は異なっているが、WAFがIDS/IPSよりも優れているということではなく、対象となる防御領域が異なり、ともに必要なセキュリティだと理解いただきたい。両者を混同して語られるケースも見受けられるので、それぞれの機能と役割をきちんと理解した上で、適切に使い分けることが大切だ。

BIG-IPはWAF専用製品よりも優れたパフォーマンスと管理性を実現

このWAFの機能を搭載したセキュリティアプライアンスは、Eコマース・公共・金融サイトを中心に普及してきているが、その運用には人的リソースや高度なノウハウが必要で、かつ十分なコストパフォーマンスを発揮できないケースも多く、その運用に苦労している企業も多いようだ。そこで注目を集めているのが、BIG-IPのようにWAF機能を搭載できるADC製品だ。こうした製品は一般的に、WAF単体の専用製品と比べてさまざまな面でメリットがあるとされている。

その1つが、複数のセキュリティやネットワーク制御機能を単一のデバイスに集約することにより、デバイスの数を削減し機器コストを圧縮できる点だ。例えばBIG-IPなら、定評のあるロードバランシングとしての機能に加え、ファイアウォール機能、そして今回取り上げるWAFの機能まで、すべてを1つに統合できる。つまり、冗長化構成を考慮すると、6台(ファイアウォール 2台+ロードバランサ2台+ WAF 2台)のデバイスが必要なところを、BIG-IP 2台で構成することができる。

BIG-IP:ファイアウォール、ロードバランサ、WAFを統合してコストを削減

また、前回説明したネットワークファイアウォール機能と同様のアプローチだが、BIG-IPにはWAFの設定ポリシーを効率的に管理できる便利な機能が数多く搭載されている。特に、WAFの設定変更を適用する前に、実際のトラフィックを使って事前に動作検証できる「ポリシー・ステージング」の機能は、BIG-IPにしかない極めてユニークかつ実践的な機能であり、ユーザーの間でも評価が高い。

さらにログ機能も、一般的なWAF製品と比べて優れた点が多い。BIG-IPは、"クライアント - BIG-IP"間の通信と"BIG-IP - アプリケーション"間の通信をそれぞれ完全に分離した上で、双方の通信プロトコルを一カ所でフルスタック制御する「アプリケーション・フルプロキシ」というアーキテクチャを採用している(詳しくは本連載第2回を参照のこと)。そのため、ネットワークレイヤーのみならず、HTTPプロトコルやアプリケーションペイロードデータに関しても、あらゆる情報を引き出し、ログに詳細に記録できるのだ。

Cookie情報をもとに不正ユーザーのログオンをピンポイントで特定

さて、このアプリケーション・フルプロキシというBIG-IP独自のアーキテクチャは、これまでのWAFにはなかった強力な不正アクセス対策機能を実現した。現在、攻撃者が何らかの手段により入手したIDとパスワードのリストを用いて、さまざまなサイトにログインを試みる「リスト型アカウントハッキング」攻撃が猛威を振るっており、つい最近も大手航空会社のサイトへの不正ログインが発覚するなど、実に多くのインシデントが頻発している。

こうした攻撃を防ぐには、ユーザーに同じIDとパスワードを使いまわししないという周知徹底が基本となるが、徹底するのは実質困難であり、システム担当者側でも対策を施す必要がある。例えば「3分間にログイン失敗が3回連続した場合にはアラートを出して、それ以上のログインの試行を許さない」といった、いわゆるログインの振る舞いをポリシーとして規定し、規定に違反するログインを監視する必要がある。現在のセキュリティ製品の中にはそうした機能を備えている製品もあるが、実は限界もある。

例えば、疑わしいログイン試行を検知した後の「ブロック処理」。通常、ログイン失敗を繰り返したユーザーを検知し、ソースIPアドレスをもとにフィルタをかけてブロックするというのが一般的だ。しかし、疑わしいと判断されたIPアドレスからのパケットをブロックしたとしても、IPアドレスはインターネット上でNATされて複数のユーザーで共有されていることも多い。また、攻撃者がIPアドレスを変えながら攻撃を繰り返すこともあるため、決して有効なブロック手段とは言えない。

しかしBIG-IPの場合、ユーザーのアプリケーションのセッション識別情報である「Cookie」をもとに「3分間の内にログイン失敗が3回連続したCookieデータを持つユーザーは、それ以上のログインの試行を許さない」など、ユーザーをピンポイントで特定・ブロックできるのだ。ソースIPアドレスベースの制御とは異なり、NAT環境や異なるIPアドレスからの攻撃であっても、正確かつ適切なブロックを実現している、BIG-IPでしか実現されていないユニークかつ強力な不正アクセス防御機能だ。

BIG-IPはCookieによるセッション管理対策で制度が高い

以上、2回にわたってADCの最新のセキュリティ機能の中から、主にDDoS攻撃や不正侵入に対抗するための機能を紹介した。次回は、近年急速にニーズが高まりつつある「モバイルアクセスのセキュリティ対策」を取り上げる予定だ。