サイバー攻撃が増えている中、企業はセキュリティ対策が必須となっています。
セキュリティ対策の中でも、Webサイトのセキュリティとして有効なものに「WAF」があります。
この記事では、WAFの基本的なことから、種類や仕組み、メリットなど詳しく解説していきます。
WAF(ワフ)は、「Web Application Firewall(ウェブ・アプリケーション・ファイアーウォール)」の略で、Webアプリケーションの脆弱性を突いた攻撃へ対するセキュリティ対策のひとつです。
ネットショッピングやインターネットバンキングなど、顧客情報やクレジットカード情報に関するデータのやり取りが発生するWebサービスがWAFの保護対象です。
WAFで防御できる攻撃はさまざまあり、SQLインジェクションやクロスサイトスクリプティング(XSS)、DoS/DDoS攻撃などよくある攻撃から守ることができます。
まずは「クラウド型WAF」です。
クラウド上で提供されているWAFをサービスとして利用します。
DNSの設定をするだけでWAFを導入できるため、サーバーへのソフトウェアインストールや専用ハードウェアの用意、物理的なネットワークを変更する必要がありません。
2つ目は「ホスト型WAF」です。
ソフトウェアで提供されているWAFをWebサーバーにインストールして利用します。
WebサーバーごとにWAFをインストールする必要があるため、Webサーバーの環境に依存してしまいますが、専用のハードウェアは不要であるためネットワーク構成に影響は出ません。
3つ目は「ゲートウェイ型WAF」です。
Webサーバーの前段に独立した専用機器を設置します。
インライン構成で設置するのが一般的で、複数のWebサーバーを一元的に保護することができます。
専用機として扱うため、ハードウェアの購入費やネットワークの構成変更が必要になります。
AWSやAzureなどのパブリックラウドのサービスメニューとして提供されているWAFです。
従量課金制であるため、コストの試算時にはアクセス数の増減の有無がないかなどを検討することが重要です。
WAFにはFirewallという単語が含まれています。WAFとは別のセキュリティ手法として「ファイアーウォール」があります。
同じものであると思われがちですが、この2つは「防御する対象」と「防御できる攻撃手法」において違いがあります。
まず、WAFとファイアウォールでは、防御の対象が異なります。
WAFが「Webアプリケーション」を主に防御の対象とするのに対し、ファイアウォールは「内部ネットワーク」を対象としています。
次に、防御できる攻撃の種類です。
まずWAFは、Webアプリケーションにおけるセキュリティ上の不備を利用する「SQLインジェクション」や、脆弱性のあるWebサイト閲覧者に対して、不正なスクリプトを読み込ませて被害を起こさせる「クロスサイトスクリプティング」などを検知することができます。
一方ファイアウォールは、SQLインジェクションやクロスサイトスクリプティング攻撃には対応できません。
ファイアウォールは、ポートスキャンと呼ばれる、外部から特定のファイルを送信してその反応を確かめるという攻撃を検知し侵入口で防ぎます。
WAFによる防御の基本はシグネチャ検査です。シグネチャと呼ばれる検出ルールに基づいて、HTTPリクエスト/レスポンスに含まれる各種データを検査して攻撃を検出します。
シグネチャには通信を不正と定義する「ブラックリスト(拒否リスト)」と、安全と定義する「ホワイトリスト(許可リスト)」の2種類があります。
ブラックリストは、「不正な値や攻撃(拒否)と判定するルール」をシグネチャに定義付けておき、シグネチャに一致する通信を拒否します。
ブラックリストでは、拒否する通信をあらかじめ決めておく必要があるため、未知の攻撃には対応することができません。
ブラックリスト型で最新の攻撃を検知するためには、攻撃の方法が分かり次第、都度シグネチャの更新が必要となります。
ホワイトリストは、「許可する通信」をシグネチャに定義し、シグネチャと一致しなかった通信についてはすべて拒否し、不正アクセスの防止を図ります。
ホワイトリストでは、未知の攻撃を防ぎWebアプリケーションに応じて柔軟な対応ができます。
また、上記2種類に加えて、近年は独自の検査ロジックを組み合わせた強力なWAFや、AIを活用しているWAFなど様々なセキュリティ対策が行えるようになってきています。
Webサイトが実害を受けると対処が完了するまでサービス再開は困難となり、機会損失に直結します。
万一の事態において、WAFで防御を固めながら、脆弱性の修正とサービス再開を進めるなど、緊急対応としてのWAF活用は迅速なサイト復旧の助けとなります。
フレームワークやWordPressなどのCMSを利用している場合には、脆弱性の存在を把握しながらも運用上の理由からアプリケーションを修正できない場合があります。
WAFを活用することで、現実的かつ効果的な対策が可能となります。
情報漏えい等のセキュリティ事故が起きてしまうと、直接的または間接的にコストがかなり生じてしまいます。
Webアプリケーションの開発は、人の手で行われていることがほどんどであるため、脆弱性を全くなくすのは困難だと言われています。
セキュリティ事故に備えた事前対策としてWAFを導入することで、万が一のリスクを低減することができます。
WAFを導入する際に、「インストールが簡単そうだから」「費用が安いから」という単純な理由だけで決めてしまうと、仕様の不一致やコスト超過など、運用開始後に問題となってしまうことがあります。
WAF選定・導入する際には、稼働しているWebサイトの環境や特性、運用方針を踏まえたうえで正しく選定するようにしましょう。
WAFは、誤検知や誤検出と呼ばれる判定ミスをすることがあり、誤検知によるWebサイトへの影響を低減するために、WAFのチューニングを行うことがあります。
WAFの導入だけでなく、初期チューニングを代行してくれるベンダーや、WAFの運用をサービスとして提供する事業者に依頼してみるのも良いかもしれません。
今回はWAFについて基本的なことから、Webアプリケーションをどのような攻撃から保護することができるのかなどについて解説しました。
WAFを1度入れたからWebアプリケーションのセキュリティは大丈夫ではありません。セキュリティの脅威は日々進化しています。
定期的に自社のWebアプリケーションのセキュリティ対策について見直し、必要に応じてさらなるセキュリティ対策を検討してみてはいかがでしょうか。