前回まではApplication Delivery Controller(以下、ADC)の基本的な役割や、その進化の経緯について見てきたが、今回からは最近特に発展が著しいADCの「セキュリティ機能」について、数回に分けて紹介していきたいと思う。今さら言うまでもないが、ここ数年の間にITシステムのセキュリティを取り巻く環境は急激に複雑化し対策が難しくなっている。特に顕著なのが、DDoS攻撃、SQLインジェクションなどWebアプリケーションの脆弱性を突く攻撃、リスト型アカウントハッキングといった対策がひと筋縄ではいかない困難な不正アクセスの増加だ。なかでも、DDoS攻撃の大規模化や手口の巧妙化が目立つ。実は今、多くの企業が高度化・大規模化・組織化したDDoS攻撃への対処に苦慮している。大規模なサイトであれば、すでにほとんどのサイトでファイアウォールやIDS/IPSなどを導入してはいるものの、近年発生しているDDoS攻撃は従来型の対策では十分に防ぎ切れないのが実情だ。そこで脚光を浴びているのが、BIG-IPに代表される"セキュリティ機器としてのADC"の存在である。

DDoS攻撃への2つの対策アプローチ

まず押さえておきたいのが、DDoS攻撃によるサイトダウンを回避するためには、対策箇所として大きく分けて2つのポイントがあり、それぞれ対応できる製品やテクノロジーが異なるということ。1つ目のポイントは、回線の帯域幅をパンクさせるタイプの攻撃への攻撃だ。とにかく大量のパケットを送りつけてネットワークの帯域幅そのものを枯渇させ、正規のトラフィックがネットワークを通過できないようにする攻撃だ。「UDP Flood」などが代表的な攻撃だ。

このタイプのDDoS攻撃を防ぐには、サイトを運営している企業が持つアプリケーションサイドで防御する対策では意味がなく、ネットワークのより上流側での対策が必要になる。具体的には、回線契約をしているプロバイダーが提供しているDDoS対策サービスを契約し、大量のパケットをプロバイダーのバックボーン網側で遮断し、自社が契約しているネットワークへの不正トラフィックの流入自体を防ぎ、ネットワークの帯域幅を確保する対策だ。最近ではクラウド型のDDoS対策サービスも登場しているので参考にするとよいだろう。

そして、2つ目のポイントがアプリケーションサイドへのDDoS攻撃だ。ルータ、ファイアウォール、ロードバランサ、サーバ、ミドルウェアなど、アプリケーションを稼働させるためのインフラリソースを枯渇させるタイプの攻撃だ。この手のDDoS攻撃は、「SYN Flood」などが代表的な攻撃だが、大量のパケットを送りつけてくる攻撃だけとは限らない。アプリケーションやミドルウェアなどの脆弱性を突く少量のパケットデータを送りつけることで誤動作や暴走を誘い、サイトをダウンさせてしまうというものも含まれる。

DDoSと言うと、どうしても大量のパケットを送信される攻撃のイメージが強いと思うが、実は少量のパケットデータでサイトダウンを引き起こす攻撃(Apache Killer、SSL/TLSなど再ネゴシエーションの脆弱性をつく攻撃で、Slowloris攻撃が有名)も多いということを念頭においた対策が必要だ。ADCによって防ぐことができるのは、こうした2つ目のポイントであるアプリケーションサイドへのDDoS攻撃だ。

DDoS攻撃への対策には2つのアプローチが必要

サイトをDDoS攻撃から守るというユーザーの最終目的の視点に立つと、帯域幅をパンクさせる攻撃、アプリケーションサイドへの攻撃のどちらか一方だけでDDoS対策ができるわけではなく、双方の対策が必要ということを理解しておく必要がある。

「ネットワークファイアウォール」と「Webアプリケーションファイアウォール」

これから以降は、ADCによって防ぐことができる、アプリケーションサイドへのDDoS対策について話を進めていこう。

アプリケーションサイドの対策でも、さらに大きく分けて、ネットワークレイヤーとアプリケーションレイヤーの2つのレイヤーで対策が必要となる。ネットワークレイヤーにおける防御を主に担うのが「ネットワークファイアウォール」で、一般的に「ファイアウォール」と言うと、こちらの製品カテゴリを指す。基本的な動作は、IPアドレスやTCP/UDPポート番号の組み合わせをベースに、通信の通過を許可・禁止することで、不正なアクセスをシャットアウトする仕組みだ。

そして、もう一つのアプリケーションレイヤーを防御するのが「Webアプリケーションファイアウォール」、通称「WAF(Web Application Firewall)」と呼ばれるカテゴリの製品だ。Webアプリケーションのフロントエンド(すぐ手前の意味)に置かれ、ネットワーク層より上位のアプリケーション層プロトコルの情報を基に、不正なトラフィックを検知、遮断する製品だ。より具体的に言えば、HTTPプロトコルやアプリケーションペイロードの中身まで検査、遮断している。つまり、一般的なネットワークファイアウォールとは、別の領域を防御し、技術的な動作もまったく別物であり、設計/構築/運用に必要とさせるノウハウは別物となるので注意が必要だ。

WAFはSQLインジェクションをはじめとするWebアプリケーションの脆弱性を突く攻撃にはもちろん有効だが、最近増加傾向にある、不正に入手したIDとパスワードを使ってシステムへの侵入を試みる「リスト型アカウントハッキング」への対策としても有効だ。

アプリケーションサイドの各レイヤーを狙った攻撃には複数レイヤーを防御

従来型のファイアウォールではパフォーマンス不足が課題

DDoS攻撃に対する守りを固めるには、このネットワークファイアウォールとWAFの2つの対策を同時に行い、あらゆるタイプの攻撃に備えることが重要だ。多くの場合、この2つの対策はそれぞれ別々の製品が担うことになるが、IDS/IPSなどのセキュリティ機器やロードバランサなどのネットワーク機器をネットワーク上に連結し、それぞれの製品でそれぞれ対策可能な処理を行うと、処理のオーバーヘッドが大きくなり、パフォーマンス劣化を引き起こす。また、機器が増えれば増えるほど初期コストや運用管理コストが増えてしまうなどの課題も引き起こしてしまう。

ここにおいて、BIG-IPに代表されるADCのメリットが生きてくる。BIG-IPは、ロードバランサとしての機能に加え、ネットワークファイアウォールとWAFの機能も内包している。同じ機器の中で両方の対策が一体となってネットワークレイヤー、アプリケーションレイヤーのセキュリティ処理が一度で処理されるため、余分な処理オーバーヘッドがなく、極めて高いパフォーマンスを発揮できるのだ。また、機器の数を削減できるのでコストメリットも大きい。

一般的にネットワークファイアウォールのパフォーマンスは拡張性に欠けている。大量のパケットを送りつけてくるDDoS攻撃ではあっという間にリソースが枯渇し、アプリケーションサイドのインフラとして最初にダウンするケースが多い。さらにファイアウォールでログも記録するとなると、より一層、処理負荷は高くなり、さらにパフォーマンス不足が課題となる。そのため、ファイアウォールのログを取得する場合は、10Gbpsのインターフェイスを備えたハイエンドのファイアウォールを購入して処理せざるを得なくなるのが実情だ。ただこうなると、ファイアウォールを導入・運用するためのコストがかさんでしまう。

その点、BIG-IPのネットワークファイアウォール機能は、一般的なファイアウォール製品よりも極めてパフォーマンスに優れるため、少ない台数で性能要件を満たせることが多い。ラインナップとしても、ローエンドなモデルから10Gbpsのインターフェイスを備えており、一般のファイアウォールと比較するとコストパフォーマンスに優れている。

BIG-IPはネットワークレイヤー、アプリケーションレイヤーのセキュリティ処理を一度で実行

実際のところ国内の例だと、広告配信インフラを運用する株式会社 PlatformIDが6台以上のファイアウォールをBIG-IPへ統合した例や、ゲームプラットフォームを提供している事業者の26台のファイアウォールがわずか2台のVIPRION(BIG-IPの上位モデルにあたるシャーシ型ハードウェア)に置き換えられた例など多数の実績がある。

このように優れたパフォーマンスを発揮できる理由は、BIG-IPのハードウェアとソフトウェアが、開発の当初の設計からADCの用途に最適化された形で設計・実装されているからである。いまや多くのネットワーク機器が汎用のハードウェアをベースとして、設計をインハウスで実施していない中、BIG-IP独自のこうしたハードウェアとソフトウェアの設計にこだわるF5は特異な存在と言ってもいいだろう。

従来型のファイアウォールでは「ポリシー管理」もネックに

ADCにはこのほかにも、ファイアウォール専用製品と比べて優れた点がいくつかある。例えば、「ポリシー」の運用管理を効率的に行える機能もその1つだ。ここで言うポリシーとは、IPアドレスとポート番号の組み合わせごとに、そのポートを空けるか、もしくは閉じるかを定義したACLのテーブル情報を指す。ある程度以上の規模のサイトともなれば、この設定情報の数は何百にも上るため、多くのネットワーク管理者はその管理に苦労することになる。

そこでBIG-IPのファイアウォール(製品名:BIG-IP AFM)には、こうした運用の課題を解決するための機能が備わっている。例えば、この設定情報のテーブルを個々のアプリケーションと独立して紐付けて管理できる機能が備わっている。アプリケーションの停止に伴いファイアウォールの設定を変更する際には、そのアプリケーションに紐付けられたテーブルを丸ごと消すだけで済むため、ポリシーの変更が別のポリシーに悪影響を与えるか否かをチェックする必要がなく、管理の手間が大幅に省力化されるとともに、作業ミスに起因するサイトダウンも効果的に防止できる。

また、こうしたファイアウォールのポリシー変更がもたらす最大の課題は、「実際には、本番のファイアウォールに設定してみないと何が起こるか正確に予測できない」ということである。正規の通信を遮断してしまうなどポリシー変更による予期せぬ事態を引き起こしてしまうことへの対応が極めて難しい。しかし、BIG-IPの「ポリシー・ステージング」という機能を使えば、新たに適用しようと考えているポリシー設定の事前検証を、ステージング環境で検証できる。つまり、本番サイトの実トラフィックでポリシー変更による問題が発生しないと判断された後に、そのポリシーを実トラフィックに適用開始するという運用が実現できるのだ。

運用管理負荷を軽減するポリシーステージング

このようにBIG-IPのネットワークファイアウォール機能は、一般的なファイアウォール製品と比べても遜色がないばかりか、多くの面でより優れた特徴を有している。さらには先に述べたように、これにWAFの機能を組み合わせて提供することで、DDoS攻撃に対する強固な守りを実現しているのだ。

このWAFの機能については、次回で改めて詳しく紹介しよう。