関連記事 2020.12.01
WAFはなぜ導入が必要?利用目的とメリット・デメリットを解説
WAF(ワフ)は、Webアプリケーションの脆弱性を悪用する
サイバー攻撃からWebサイトを保護するセキュリティ対策です。
2023.02.02 EGセキュアソリューションズ
WAFは、SQLインジェクションやXSS(クロスサイトスクリプティング)などのWebアプリケーションの脆弱性を悪用する攻撃からWebサイトを保護するセキュリティ対策です。Web Application Firewallの略称で、それぞれの単語の頭文字からWAF(ワフ)と呼ばれています。よく知られているネットワークの境界線でアクセスを制御するファイアウォールとは異なり、通信内容をアプリケーションレベルで検査できるのが特徴です。
ECサイトやインターネットバンキングのように、会員の個人情報やクレジットカード情報などを取り扱い、ユーザーからのリクエストに応じて動的にページを作成するWebサイトが主な保護対象となります。
安全なWebサイトの運営には、Webアプリケーションのセキュリティが重要であり、セキュア設計・セキュアプログラミングが基本且つ、根本的なセキュリティ対策となります。
それを完璧に行うことができれば何の心配もありませんが、常にセキュアプログラミングのノウハウを持つ自社スタッフや開発委託先を確保できるとはかぎらないのが実情です。また、人が関わる作業であることから、間違った実装や対策漏れなどが生じることも考えられます。
このほか、CMSなどのソフトウェアを使用してWebサイトを構築している場合、通常自ら脆弱性を修正するといったことは困難です。
内部的な自主検査はもちろんのこと、運用開始前に第三者による脆弱性診断を受ける取り組みは一般化していますが、脆弱性が見つかった場合の対応については、運用上の理由(サイトを停止できない、バージョンアップできないなど)により修正が困難であったり、修正までに長い時間が必要になることもあります。
結果、SQLインジェクションやXSSといった攻撃による被害が多発してしまっているのが実情です。
このような実情から根本的なセキュリティ対策を基本としつつ、別のアプローチでの対策が求められるようになり、Webアプリケーションの脆弱性の有無とは独立したかたちで攻撃を防御できるWAFの活用が急速に進んでいます。
関連記事 2020.12.01
WAFはなぜ導入が必要?利用目的とメリット・デメリットを解説
関連記事 2020.01.08
WAFが実現するセキュリティ対策について
同じファイアウォールという名称を含んでいますが、IPアドレスやポート番号、通信方向といったルールをもとにアクセスを制御する一般的なファイアウォールとは異なり、WAFはHTTP通信の内容を検査することでWebサイトに対する不正アクセスを検出します。また、OSの脆弱性やワームなどの特徴的な通信を検出し、システムを幅広く防御するセキュリティ対策として、IPS(不正侵入防止システム)がありますが、IPSではWebアプリケーションの脆弱性を悪用した攻撃を防ぎきることはできません。
Webサイトのセキュリティ対策には、ウェブアプリケーションの保護に特化したWAFが必要とされており、ファイアウォールやIPSとの違いは機能の優劣ではなく、それぞれが担う役割の違いを意味しています。
関連記事 2019.12.04
WAFとファイアウォールの違いとは?
関連記事 2019.12.16
IPSとWAFの違いとは?
WAFはWebアプリケーションの保護に特化したセキュリティ対策で、HTTPプロトコルでやり取りされるデータを検査し、Webアプリケーションの脆弱性を悪用する不正アクセスからWebサイトを保護します。
WAFによる防御の基本はシグネチャ検査です。検出ルール(シグネチャ)に基づき、HTTPリクエスト(要求行、要求ヘッダ、要求本文)およびHTTPレスポンス(ステータスコード、応答ヘッダ、応答本文)に含まれる各種データを検査して攻撃を検出します。
シグネチャには定義方法により、不正なパターンを定義する「ブラックリスト(拒否リスト)」と安全とみなすパターンを定義する「ホワイトリスト(許可リスト)」の二種類があります。
“不正な値や攻撃と判定するルール”を定義したものであり、通信の内容がルールに一致した場合に防御します。SQLインジェクションやXSS(クロスサイトスクリプティング)など、Webアプリケーションの脆弱性を悪用する攻撃を防ぐためのルールが定義されているほか、アクセス頻度の判定などの独自ルールを定義できることもあります。
通常、単にシグネチャと呼ぶ場合はブラックリストを指すことが多く、製品が標準搭載するシグネチャを活用することで、利用者は一から防御ルールを作成する必要なく、全サイトに対して均一のセキュリティ対策を適用することができます。
“正しい値、想定している通信の内容”を定義したものであり、 通信の内容がルールに一致しなかった場合に防御します。入力される内容を数値に限定したり、桁数を制限するといったルールが該当します。
WAFはシグネチャ検査だけでなく、Cookieを保護する機能やページ遷移の検査、トークンの発行とチェック、応答ヘッダの追加・削除などの機能を備えていることがあります。また、近年は独自の検査ロジックを組み合わせたり、AIを活用しているWAF、DDoS攻撃に対応したWAFなど、様々なセキュリティ対策が行えるようになっています。
近年のWAFは誤検出の低減や性能の向上など、様々な工夫がなされているだけでなく、Webサイトの特性や運用方針に合わせて、いくつかの形態から選択することができるようになっています。
DNSの設定変更により、WAFサービス提供事業者のネットワークを経由するようにして検査・防御するWAFです。
(Webサーバーにエージェントをインストールし、エージェントとサービス提供事業者のWAFがネットワーク経由で連携する形態もあります。)
専用ハードウェアを用意したり、物理的なネットワークを変更する必要がなく、サービスの提供事業者にWAFの運用を任せることができるという利点があります。
一般的にFQDNの数や通信量によってサービス料金が上がることのほか、組織外(自社環境以外)の通信障害などの影響を受ける可能性があるといった課題もあります。
ファイルのアップロード・ダウンロードが多いサイトには向いていない
関連記事 2019.12.18
クラウド型?サーバー(ホスト)型?タイプで選ぶWAF
クラウド型WAF(SiteGuard Cloud Edition)の詳細はこちら
ソフトウェア型のWAFの場合、Webサーバーにインストールして利用するホスト型の構成が一般的です。Webサーバーのモジュールとして動作するため、最もシンプルな構成でWAFを導入できます。
WebサーバーごとにWAFをインストールする必要があり、導入要件がWebサーバーの環境に依存しますが、専用ハードウェアを必要とせず、ネットワーク構成に影響を与えないことが主な利点となります。以前はWebサーバーの負荷が課題になることもありましたが、昨今のハードウェア性能の向上もあり、影響は少なくなっています。
ホスト型WAF(SiteGuard Server Edition)の詳細はこちら
ハードウェア、ソフトウェアの機能が一体化し、Webサーバーの前段で独立した機器として動作するWAFです。
リバースプロキシのほか、インライン構成で設置されることが多く、複数のWebサーバーを一元的に保護することができます。
リバースプロキシはサイトの成長に合わせて拡張しやすく、インライン構成は導入しやすい点が特長です。専用機としてのハードウェアの購入費やネットワークの構成変更が必要となります。仮想アプライアンスとして提供されることもあります。
AWSやAzureなどのパブリックラウドのサービスメニューとして提供されるWAFです。スピーディにデプロイすることが可能である反面、メンテナンスは自社で行うことが一般的で、Webアプリケーションやセキュリティに精通していないと適切に運用できない場合があります。近年は、防御ルールの作成や適用、メンテナスを自動化するサービスも提供されています。
WAFを導入することで、運用上の理由によりアプリケーションの修正が困難な場合や保険的対策として万一の事態に備えるほか、セキュリティ事故が起きてしまったあとの事後対策に役立てることができます。
脆弱性の存在を把握しながらも運用上の理由からアプリケーションを修正できない場合があります。このケースは、メンテナンス計画の都合や修正に想像以上の工数を要するといった場合だけでなく、Apache Struts 2のようなフレームワークやWordPressなどのCMSを利用している場合にもWAF活用のメリットがあります。
利用しているフレームワークやソフトウェアに脆弱性が発見された場合、自ら脆弱性を修正して対処するということは困難です。開発元や提供元から修正バージョン、パッチなどに関する情報を入手して適用するなど、迅速かつ適切な対応が求められます。しかしながら、稼働中のWebサイトに対する影響を考慮する必要があり、事前のバックアップやテスト環境等による修正バージョンの適用、動作確認が推奨されているため、思うように作業が進まないことがあるのが実情です。
脆弱性の修正やパッチの適用を計画しながら、WAFを併用することで現実的かつ効果的な対策が可能となります。
関連記事 2021.12.11
Apache Log4jの脆弱性(CVE-2021-44228)と「SiteGuardシリーズ」の対応
関連記事 2020.03.02
WAFとセキュリティプラグインでWordPressの安全性を高めよう
情報漏えい等の事故が起きてしまうと、直接的・間接的に莫大なコストが生じてしまいます。前述のとおり、Webアプリケーションの開発には人手を介し、継続的な改善が加えられていくため、脆弱性ゼロは難しいというのが現状です。
事前対策としてWAFを導入することで、万が一のリスクを低減することができます。WAFは、Webサイトのセキュリティ対策の強化に欠かせない存在となり、近年のWAFのニーズとして多いケースとなっています。
Webサイトが実害を被ると対策が完了するまでサービスの再開は困難となり、ダウンタイムは機会損失に直結してしまいます。2000年代半ば頃、SQLインジェクションの脆弱性、攻撃が広く知られるようになり、2010年頃までSQLインジェクション攻撃による大規模な情報漏えいが多発していました。2011年には、「LizaMoon攻撃」と呼ばれたSQLインジェクションによる世界的な大規模改ざんが大きな話題になりました。
現在は、事前対策としてのWAF導入が進んでいますが、当時のWAFの用途としては、Webサイトが攻撃を受けて実害を受けたあとの事後対策という面がありました。実際、当社も2010年頃は「脆弱性の修正をしながらサービスを再開するため、WAFで防御しながら作業を進めたい」といったご相談を多くいただいていました。
緊急対応としてのWAF活用は迅速なサイト復旧の助けとなります。
WAFを導入することで、以下のような攻撃を防ぎ、Webサイトのセキュリティレベルを向上させることができます。
SQLインジェクション | SQL文を含んだ入力データを送信してデータベースに不正にアクセスする。データベース内の機密情報の漏洩やデータ改ざんにより、大きな被害を受ける恐れがある。 |
脆弱な標的サイトにアクセスするように仕向けることで、Webサイトが本来想定していない機能(スクリプト実行など)をブラウザ側で実行させる。Cookieのセッション情報が盗まれるなどの恐れがある。 | |
CSRF (クロスサイトリクエストフォージェリ) |
対象Webサイトの投稿や登録といった重要な機能について、他のサイトから本来の手順を経ずにクライアントに実行させる。なりすまし投稿などに悪用される恐れがある。 |
OSコマンドインジェクション | OSコマンドを含んだ入力データを送信してサーバー上のリソースに不正にアクセスする。サーバー上で任意のコマンドが実行された結果、大きな被害を受ける恐れがある。 |
ディレクトリトラバーサル | ディレクトリパスを遡ってサーバー上のファイルに不正にアクセスする。本来公開を意図していないファイルへの参照・実行の恐れがある。 |
改行コードインジェクション (HTTPヘッダ、メールヘッダ) |
改行コードを含んだ入力データを送信して、HTTPレスポンスヘッダやHTTPレスポンスを改ざんする。クライアントは偽りのCookieやページ内容による影響を受ける可能性がある。任意のメールヘッダの挿入や本文の改変、不正なメール送信に悪用される可能性もある。 |
XXE(XML External Entity) | XMLには実態参照と呼ばれる内部・外部(URL)リソースを読み込む構文があり、XXEはアプリケーションがXMLを処理する際にこの構文を悪用される脆弱性。サーバー内の不正なファイル参照のほか、他のサーバーへ攻撃を仕掛けるSSRF(Server Side Request Forgery)につながる恐れもある。 |
クリックジャッキング | Webサイト上のリンクやボタンを偽装・隠ぺい、視覚的に騙してクリックに誘導し、利用者の意図しない操作を行わせる攻撃手法。意図しない商品購入や投稿、悪意あるサイトに誘導されるなどの恐れがある。 |
WAFはどのような攻撃を防ぐことができるのか?~徳丸浩が動画で解説~
WAFは、Webアプリケーションの脆弱性を悪用した攻撃による個人情報の窃取や改ざんなどから、Webサイトを保護するセキュリティ対策です。
ECサイトやインターネットバンキングのように、会員の個人情報やクレジットカード情報などを取り扱い、ユーザーからのリクエストに応じて動的にページを作成するWebサイトが主な保護対象となります。
前述のとおり、WAFにはいくつかの種類があります。それぞれに特徴があるため、導入や運用にかかるコストも異なります。
一般的にサービス利用開始時に初期費用がかかります。以降は、毎月支払うサービス料金が必要となります。
特にWebサーバーやサイト数が少ない場合に、WAFを安価に導入できるほか、マネージドサービスとして提供されるため、日々の運用にかかるコストを削減できるというメリットがあります。
Webサーバーに製品をインストールするためのライセンス費用と保守費用がかかります。通常、年間ライセンスとなり、ボリュームディスカウント等による割引を受けられることがあります。
1台から数台のWebサーバーの環境の場合、導入にかかる費用を比較的に安く抑えることができます。クラウド型のように、Webサイトの数やトラフィック量に料金・価格が左右されることもありません。
その一方、WAFの運用を自社で行う必要がありますので、自社でWAFを運用することができるか、運用コストとのバランスを取れるかがポイントになります。
Webサーバーの台数やサイト数が多いとはどういうことか?:
アプライアンス製品の場合、専用ハードウェアを購入するための費用と保守費用がかかります。クラウド型やホスト型に比べて高額になる傾向があります。
ソフトウェア製品の場合も専用のサーバーを用意し、製品をインストールするためのライセンス費用と保守費用がかかります。そのため、コストとしては比較的に高額になりますが、既存のリバースプロキシ等を上手く活用することで費用を抑えられることもあります。
WAFの運用は自社で行うか、専門業者へ依頼するか、そのコストも考慮する必要がありますが、高機能であることも多く、保護対象となるWebサーバーの数が多い場合には有力な選択肢となります。
WAFの種類や構成だけでなく、日々の運用までを見据えたコストとして、WAFの価格・料金プランを見るようにしましょう。
関連記事 2023.01.27
気になるWAFのコスト!価格・料金プランを徹底解説
WAF選定・導入のポイントは、稼働しているWebサイトの環境や特性、運用方針に合わせて適切なWAFを選定することです。重要なポイントではありますが、単純に「インストールが簡単そうだから」「費用が安いから」という理由だけで決めてしまうと、
など、運用開始後に困ってしまうことも少なくありません。
提供形態や構成、検討ポイントをもとに正しく選定することが大切です。
ModSecurityのようにライセンスにしたがえば無償で利用することができるWAFもありますので、高度な技術力のある企業や個人の場合、オープンソースのWAFを有効活用することも一つの選択肢となります。しかしながら、実際の運用性やサポートを考えると、管理画面やドキュメント類、サポートデスクの利用といったサービスが充実している商用のセキュリティ製品のほうが安心できるというユーザーが多いと考えられます。
SiteGuardシリーズにご興味のある方はこちら