「セキュリティに対する重要性は理解したけれど、用語が難しくて」という声を聞くことがよくあります。そんな方に、セキュリティの頻出用語を解説します。第45回は、「WAF(Web Application Firewall)」についてです。
世界中で、Webテクノロジーを利用したアプリケーションやサービスが爆発的に増加してきました。SNSやブログサービス、ホテル予約システムや企業の受発注システム、インターネットバンキングなど、今やWebテクノロジーを利用していないサービスはほとんど考えられない状況です。
一方で、これらのサービスのほとんどは誰でもアクセスできるWebサイトも多く、サイバー攻撃者もアクセスが可能です。Webサイトが攻撃されると、サイトの改ざんや情報漏えいなどさまざまなインシデントが発生します。Webサイトが乗っ取られた場合、自分たちが予期せず、他のWebサイトを攻撃する踏み台とされることもあります。
公開されたWebサイトへの防御ソリューションとして、ファイアウォール、IPS(不正侵入防御システム)と並んで、WAF(Web Application Firewall)の利用が増えています。
これらはいずれも主に外部からの攻撃に対してシステムを守るという動作をし、それぞれ対象となる領域、目的、レイヤーが違います。これらを組み合わせることで、より強固なシステムを構築します。
ファイアウォールは、ネットワークレベルで、外部に公開する必要のないサービスやアクセスする企業を制限するとき、送信元と送信先の情報(IPアドレスやポート番号など)を元にアクセスを制限します。つまり、Webアプリケーションが用いるHTTP通信全体を制限したり、アクセスするユーザーをIPアドレスで制限したりすることは可能ですが、これらの通信の中身までは検査しません。
IPSは、プラットフォームレベルで、オペレーティングシステムの脆弱性を悪用した攻撃やファイル共有サービスへの攻撃など、さまざまな種類の攻撃を検査・防御します。
WAFは、ファイアウォールやIPSよりも上位レイヤーでのWebアプリケーションの脆弱性を悪用した攻撃などからシステムを守ります。
Webサイトのアプリケーションへの攻撃で狙われやすい脆弱性としては、代表的なSQLインジェクションやクロスサイトスクリプティング(XSS)、クロスサイトリクエストフォージェリ(CSRF)などがあります。これらの脆弱性に対しては、開発段階からの対応、攻撃を検知して防御する、運用面での対応などが必要です。
独立行政法人 情報処理推進機構 (IPA) では、『安全なウェブサイトの作り方』として、IPAが届出を受けた脆弱性関連情報を基に、届出件数の多かった脆弱性や攻撃による影響度が大きい脆弱性を取り上げて、ウェブサイト開発者や運営者が適切なセキュリティを考慮したウェブサイトを作成するための資料を公開しています。特に、データベースへのアクセスを行うSQLについては、「安全なSQLの呼び出し方」として、別冊としてまとめています。
また、さまざまな事情から、Webサイトの脆弱性を修正できないといったことがあります。このような場合、有効なセキュリティ対策の1つとなるのが、WAFの利用です。
WAFの基本機能は、ユーザーとWebサイト間のHTTP 通信の内容を検査し、「悪いもの」と判定したHTTP 通信に対して、定義した処理を実行し記録します。それ以外には、各ソリューションベンダーの提供するWAFにより、それぞれ付加価値のついた機能がついていることが多くあります。
WAFには、オンプレミス型(ソフトウェアあるいはアプライアンス)と、クラウド型(SaaS型)があります。オンプレミス型は、ユーザーのデータセンターにソフトウェアをインストールしたり、アプライアンスを設置することで導入します。クラウド型は、クラウドベンダーやセキュリティサービスプロバイダなどがアプリケーションサービスとして提供する形態です。ユーザーのシステム構成や目的に応じて、最適な導入形態を選択することになります。
WAFを導入したから、すべてのWebサイトへの攻撃を防御できるわけではありません。開発から運用まで含めて、検討・対応することが重要です。