DX 時代、アプリケーションがますます重要な役割を担うことは間違いありません。アプリケーションといえば、Web アプリケーションを想像される方が多いのではないでしょうか。ユーザが手元のPCやスマートフォンを使い、HTTP / HTTPS 経由でWeb アプリケーションにアクセスすることは、もはや当たり前の時代になっています。しかし残念ながら、Web アプリケーションの脆弱性を悪用した攻撃は年々増え続けています。個人情報の漏洩やWebサイトの改ざんなどのセキュリティ事故が後を絶たない状況です。
Web のセキュリティ事故をなくすためには、どのような施策が有効なのでしょうか。基本的には、アプリケーションの設計や実装の段階で脆弱性を取り除くことが理想であり、あるべき姿だと考えます。また、アプリケーションが利用するツールやライブラリを脆弱性対応済みのバージョンにアップデートすることも重要です。しかし現実的には、アプリケーション側ですべての脆弱性を完全に排除するのは困難です。アプリケーションを改修するためには専門的な知識が必要です。ツールやライブラリのバージョンを変更する場合、その影響を事前に検証する必要があるため、すぐに対応できないことも考えられます。脆弱性の診断やソースコードのレビューをするための体制や予算が確保されていないことも多いでしょう。
切り札「WAF」への関心が高まる
アプリケーション側で根本的な対策を施すにも限界があります。その切り札として、Web Application Firewall (WAF) への関心が高まっています。WAF を導入することで、Web アプリケーションのセキュリティを大幅に強化することができます。従来のファイアウォールやIPS/IDS では防ぐことができない、Web アプリケーションの脆弱性を悪用した攻撃を防ぐことができるのです。
製品やサービスによって多少異なりますが、WAFは大きく2種類の方法で不正な通信を検知・遮断します。ポジティブ セキュリティモデル(Allowed リスト型)は、管理者が事前に定義した正しい通信のみを許可し、それ以外の通信は遮断する考え方です。たとえば、入力パラメータごとに、取り得る値の範囲や内容を正規表現でポリシーとして定義し、そのポリシーに合致した通信のみを許可します。事前にポリシーを定義する作業が難しい反面、ゼロデイ攻撃にも有効な防御方法です。一方、ネガティブ セキュリティモデル(Deny リスト型)は、シグネチャと呼ばれる既知の攻撃パターンと照らし合わせ、該当する通信を遮断する考え方です。シグネチャは、大きく2種類に分類されます。SQL インジェクションやクロスサイトスクリプティングなどの攻撃パターンに焦点を当てたシグネチャと、アプリケーションの脆弱性に焦点を当てたシグネチャがあります。シグネチャの設定は比較的簡単ですが、誤検知には十分注意する必要があります。特に正常な通信をWAF が不正とみなして遮断する偽陽性は、正当なユーザがサービスやアプリケーションを使えない問題につながります。
アプライアンス(ゲートウェイ)型WAF のメリット
WAF の提供形態は、アプライアンス(ゲートウェイ)型とソフトウェア(ホスト)型、クラウド(SaaS)型の3種類に分類することができます。それぞれ、コストや導入のしやすさ、設定の自由度などの観点でメリット・デメリットがあります。WAF を導入する目的や制約などを考えて、ベストな方式を選択する必要があるでしょう。今回のブログでは、アプライアンス型のWAF を中心に話を進めたいと思います。たとえば、WAF とロードバランサーの機能が一緒に提供されている場合、以下のようなメリットがあります。
・複数機能がオールインワンで提供される
SSL で暗号化されている状態の通信に対してWAF の検査は行えません。HTTP のヘッダやボディの中身を検査するためには、SSL を復号化する必要があります。ロードバランサーのSSL オフロード機能では、SSL で暗号化された通信を高速に復号化することができます。つまり、SSL オフロード → WAF 検査 → サーバ負荷分散 までの一連の処理を一気通貫で実現できるのです。さらに、DDoS 防御やレート制限、L7ポリシー制御、ボット管理などのセキュリティ機能がオールインワンで提供されます。
・サーバに余計な負荷をかけない
ソフトウェア(ホスト)型WAF のように、SSL の復号化やWAF の検査をサーバで実施した場合、余計な処理負荷が発生し、本来のアプリケーションとしての機能に悪影響を及ぼす可能性があります。アプリケーションのロジックに関係ない機能は、別のコンポーネントで実装するのが理想ではないでしょうか。
・設定の自由度が高い
WAF を導入してアプリケーションを保護することが目的だと考えると、企業が導入しているアプリケーションの特性に合わせて、最適なセキュリティ対策を施す必要があります。ポジティブセキュリティモデルとネガティブセキュリティモデルの両方を兼ね備えるのが最もセキュリティを強化できる実装方法だと考えます。クラウド(SaaS)型WAF は設定の自由度が低く、シグネチャによる防御方法しかサポートされていないことが多いです。さらに、シグネチャの検知条件が非公開のため、誤検知を修正するためのチューニングが難しい場合もあるので注意が必要です。
従来のアプライアンス型WAFの課題とは
WAF はWeb アプリケーションのセキュリティを大幅に強化してくれる重要なコンポーネントです。しかしWAFを導入していない、または導入に踏み切れない企業や組織が多いのが実情です。その背景には、「WAF の設定は難しい」、「誤検知が多い」、「WAF の運用は大変」、「パフォーマンスが落ちる」などのイメージがあるのではないでしょうか。従来のアプライアンス型のWAF には以下のような課題があります。
・煩雑なポリシーの設定と運用
– ポリシーの設定にはアプリケーションとセキュリティの深い知識が必要
– アプリケーションの仕様変更や脆弱性が発生する度にポリシーを見直す運用が必要
・セキュリティ可視化の欠如
– 膨大な数のログに埋もれている“誤検知”を精査するのが困難
– いつ、誰が、どんな攻撃を仕掛けたのか、状況を体系的に把握するのが困難
・パフォーマンスの低下
– WAF 機能を有効にすることで、CPU やメモリなどのリソースが逼迫
– システムに大きな変更や通信影響を伴わずに性能を拡張するのが困難
NSX Advanced Load Balancer が提供するWAF の特徴
VMware が提供するNSX Advanced Load Balancer は、マルチクラウド対応の完全ソフトウェア型ロードバランサーです。コントロールプレーンとデータプレーンが分離されたアーキテクチャを採用していることが特徴です。単一のコントローラ(コントロールプレーン)から、あらゆる環境に分散されたロードバランサー(データプレーン)の集中管理と可視化、ライフサイクル管理の自動化、柔軟なスケーリング、セルフヒーリングを実現します。
従来のアプライアンス型WAF の課題を解決する、NSX Advanced Load Balancer のWAF の特徴について説明したいと思います。
・ポリシーの設定と運用の簡素化
– WAF のラーニング機能を活用することで、煩雑なポリシーの設定を自動化
– アプリケーションの仕様変更に伴う通信の変化を検知して、ポリシーを自動調整
– アプリケーションの脆弱性や攻撃パターンのシグネチャを自動アップデート
・セキュリティの高度な分析と可視化
– 攻撃元のIP アドレスや攻撃の種類、攻撃された時間帯などを体系的に可視化
– 個々のトランザクション(リクエスト・レスポンス)単位で検知・遮断の詳細を可視化
– 膨大なログの中から“誤検知”を抽出して、ワンクリックでポリシーを修正可能
・高いパフォーマンスと拡張性
– WAF の検査フローを効率化することで、検査に伴う処理負荷を軽減
– 自動またはオンデマンドでパフォーマンスを迅速かつ柔軟に拡張
WAF の性能劣化と誤検知を最小化する仕組み
NSX Advanced Load Balancer では、3つの段階に分けてWAF の検査を行います。正常なトラフィックを段階的に許可していくことで検査効率を高め、性能劣化と誤検知を最小限に抑えることが可能になります。
第1段階の「許可リスト」では、そもそもWAF の検査は不要と判断できる通信の条件を定義します。たとえば、管理者のIP アドレスからのアクセスや特定のURLパス宛のアクセスなどを条件として定義します。この条件に合致した通信は、WAF の検査をバイパスすることになります。それ以外の通信は、次の段階の検査に移ります。
第2段階の「ポジティブセキュリティ」では、管理者が正しい通信の条件を入力パラメータごとに正規表現などで定義します。入力パラメータの値が条件に合致した通信は許可され、その時点で検査は終了します。入力パラメータの値が条件に合致しない通信は遮断されます。ポジティブセキュリティの検査に該当しない通信は、次の段階の検査に移ります。
第3段階の「シグネチャ」では、攻撃パターンやアプリケーション脆弱性のシグネチャを設定します。シグネチャに合致した通信は遮断され、それ以外の通信は許可されます。
WAF のパフォーマンスは、トラフィックのパターン(GET メソッドとPOST メソッドの割合、ヘッダやボディのサイズなど)や検査するシグネチャの数によって大きく変動します。WAF の第1・2段階の検査でトラフィックを早目に選別することで、最も負荷がかかる第3段階のシグネチャで検査するトラフィック量を減らすことがパフォーマンスを最大化する鍵となります。
また、NSX Advanced Load Balancer には簡単に拡張(スケールアウト・スケールアップ)できる仕組みがあります。パフォーマンスが不足した場合でも、迅速かつ柔軟に処理能力を引き上げることができます。ソフトウェアとアーキテクチャの力で100万SSL TPS (EC) のパフォーマンスを達成したレポートも公開されておりますので、参考にしていただければと思います。
WAF の設定と運用を効率化する便利な機能
最後にNSX Advanced Load Balancer が提供するWAF の便利な機能を4つ紹介します。WAF の設定や運用に役立つこと間違いありません。
① WAF のラーニング(自動学習)
一般的にポジティブセキュリティでポリシーを定義するのは大変な作業です。アプリケーションの構造を理解した上で、URL パスごとに入力パラメータの取り得る値の範囲や値を正規表現でポリシーとして定義する必要があります。大規模なWeb サイトであれば、作業に要する手間と時間が大幅に増えるでしょう。そのような場合、WAF のラーニング機能が有用です。WAF のラーニングとは、正常な通信データをWAF が学習し、その学習結果を自動的にポリシーに反映してくれる便利な機能です。
② WAF 通信の可視化
WAF の設定を最適化したり、トラブルシューティングを含む運用を効率化したりするためには、WAF の通信を可視化する必要があります。WAF に関する可視化の機能を2種類ご紹介します。WAF 以外の可視化については、別のブログで詳しく紹介しておりますので、そちらをご覧ください。(遂にここまで見えてきた!ロードバランサー可視化の衝撃)
1つ目は、トランザクションログの可視化です。トランザクションごとに、クライアン情報やリクエスト・レスポンス内容、WAF の検査結果、処理遅延、違反したルールなどを詳細に見ることができます。膨大なログの中で見落としがちな誤検知への対処や、容易なトラブルシューティングが可能になります。
2つ目は、統計情報の表示です。攻撃の種類や頻度、パターンなどの情報をダッシュボードに分かりやすく表示します。管理者は攻撃の傾向や全体像を把握できるため、よりプロアクティブにセキュリティ対策を施すことができるようになります。
③ 例外ルールの簡単設定
誤検知が発覚した場合、該当のトランザクションログから、例外ルールを簡単に追加設定することが可能です。
④ Pulse Service (運用支援)
最後にWAF の運用を支援するクラウドサービスをご紹介します。VMware が提供するNSX ALB Pulse Service では、お客様のWAF と連携して、セキュリティ情報のアップデートなどの運用支援を行います。具体的には、以下のようなサービスを提供しています。(2021年10月現在)
・WAF シグネチャの更新(手動または自動で適用)
・IP レピュテーションデータベースの更新
・Bot 関連データベースの更新
本サービスは、NSX Advanced Load Balancer の保守契約があるすべてのお客様が無償でご利用いただけます。
まとめ
NSX Advanced Load Balancer のWAF はいかがでしたか?WAF の複雑で難しいイメージを少しでも払拭できればと思いブログを書きました。WAF には様々な設定があり、何から始めればよいか分からないかもしれません。実は、SQL インジェクションとクロスサイトスクリプティングの攻撃を遮断するシグネチャを適用するだけでも、Web アプリケーションのセキュリティは大幅に強化されます。事実、IPA(情報処理推進機構)が公開する「ウェブサイトの脆弱性の種類別の届出状況」によれば、この2つの脆弱性を悪用した攻撃が全体の約7割を占めているようなデータがあります。セキュリティの事故が発生してから対応するのでは、企業側の損害が大き過ぎます。ぜひ、WAF の導入を検討してみてはいかがでしょうか。
〜お知らせ①〜
VMware では、各種製品をクラウド上でご評価いただくHands-on Labs(HOL) という仕組みを無償でご提供しています。今回ご紹介した各種ソリューションへの最初の一歩の入り口としてぜひご活用ください。
おすすめのHOLメニューはこちらから
- VMware NSX Advanced Load Balancer (Avi Networks) – Getting Started (HOL-2237-01-NET)
- VMware NSX Advanced Load Balancer (Avi Networks) – Global Server Load Balancing (HOL-2237-02-NET)
- VMware NSX Advanced Load Balancer (Avi Networks) Web Application Security (HOL-2237-03-NET)
- VMware NSX Advanced Load Balancer (Avi Networks) with Kubernetes (HOL-2237-04-NET)
- VMware NSX Advanced Load Balancer (Avi Networks) Lightning Lab (HOL-2237-91-ISM)
〜お知らせ②〜
いよいよVMworld 2021Japan が11月25日(木)と26日(金)に開催されます。本ブログで紹介したNSX Advanced Load Balancer のセッションもありますので、ぜひご参加ください。
- デモで分かりやすく解説!VMware NSX Advanced Load Balancer を活用したWeb のセキュリティ強化 ~マルチクラウド環境に最適な WAF の実装と可視化を解説~
- マルチクラウド時代に即応が可能なロードバランサー
お申込みはこちらから