私たちは日頃からインターネットを通じて、Webアプリケーションやサービスを利用し、様々な恩恵を受けています。その一方でWebサイトの改ざんや情報漏えいなどの事件・事故は後を絶ちません。Webサイトの運営者は、Webサイトを取り巻く脅威が身近に存在していることを認識し、適切な対応を実施する必要があります。
Webサイトを取り巻く脅威からWebサイトを保護する機能を有し、Webサイトのセキュリティ対策の強化に欠かせない存在となったのがWAF(Web Application Firewall)です。本稿では、WAFとはどのような製品なのか?どのようなケースで役立つのかを解説します。
WAFとは?
WAFを解説するにあたり、まずは「Webアプリケーション」と「脆弱性」について知っていただきたいと思います。
Webアプリケーションとは、皆さんがインターネットを通じて日頃から使用しているアプリケーションのことで、検索エンジンやインターネットバンキング、ブログなど、Webを介して利用するアプリケーションと考えるとイメージしやすいと思います。
Webアプリケーションの開発には、Ruby・PHP・Python・Java・JavaScript・HTML・CSSといったプログラミング言語が使用され、クライアントとWebサーバーがHTTPプロトコルにしたがって通信し、ユーザーからのメッセージなどの入力や検索結果に対して応答します。
Webを介してクライアントからの要求に動的に応答するプログラムのセキュリティ上の問題、つまり脆弱性が存在すると外部からの情報の窃取や改ざんを許すことになるため、安全なWebアプリケーション、サイト運営には脆弱性対策がとても重要です。
脆弱性は自社開発におけるコーディングの際に生じてしまうケースや使用しているフレームワーク、CMSで脆弱性が発見されるといったケースがあります。ソースコードにちょっとした不備があっただけでも、それがセキュリティ上の大きな問題となり、情報漏えいやサイト改ざんといった被害に繋がる危険性があります。安心・安全なウェブサイトの運営は、セキュア設計・セキュアプログラミングが基本であり、それを完璧に行うことができれば何の心配もありません。しかしながら、脆弱性をゼロにすることは現実的に考えて難しい面があります。Webアプリケーションは継続的な改善が加えられますし、人手を介する作業であるためミスが絶対に生じないと言い切ることはできません。また、Apache Struts 2やWordPressといったフレームワーク、ソフトウェアにおいても脆弱性が発見されることがあります。開発・提供元からの脆弱性情報がないか情報収集に努め、適切な対策を講じる必要があります。
そこでWAFの登場です。WAFとは、Webアプリケーションの脆弱性を悪用したサイバー攻撃からWebサイトを保護するためのセキュリティ製品です。
WAFはクライアントからWebサーバーに対するHTTP/HTTPS通信の内容を1つ1つ検査して、不正なアクセスがないかをチェックします。不正アクセスや脆弱性を悪用する攻撃と思わしき通信があれば、即座にアクセスを遮断し、Webアプリケーションを保護します。万一の脆弱性に備えて、また運用上の問題ですぐにバージョンアップすることができない事態など、WAFを導入しているとセーフティネットとして大きな役割を果たします。
では、WAFは数あるサイバー攻撃の中でもどのような攻撃を防げるのでしょうか?
SQLインジェクション
SQL文を含んだ入力データを送信してデータベースに不正にアクセスする。データベース内の機密情報の漏洩やデータ改ざんにより、大きな被害を受ける恐れがある。関連記事:WAFによるSQLインジェクション攻撃の防御
クロスサイトスクリプティング
脆弱な標的サイトにアクセスするように仕向けることで、ウェブサイトが本来想定していない機能(スクリプト実行など)をブラウザ側で実行させる。Cookieのセッション情報が盗まれるなどの恐れがある。
クロスサイトリクエストフォージェリ
対象ウェブサイトの投稿や登録といった重要な機能について、他のサイトから本来の手順を経ずにクライアントに実行させる。なりすまし投稿などに悪用される恐れがある。OSコマンドインジェクション
OSコマンドを含んだ入力データを送信してサーバー上のリソースに不正にアクセスする。サーバー上で任意のコマンドが実行された結果、大きな被害を受ける恐れがある。関連記事:WAFによるOSコマンドインジェクション攻撃の防御
ディレクトリトラバーサル
ディレクトリパスを遡ってサーバー上のファイルに不正にアクセスする。本来公開を意図していないファイルへの参照・実行の恐れがある。関連記事:WAFによるディレクトリトラバーサル攻撃の防御
改行コードインジェクション(HTTPヘッダ、メールヘッダ)
改行コードを含んだ入力データを送信して、HTTPレスポンスヘッダやHTTPレスポンスを改ざんする。クライアントは偽りのCookieやページ内容による影響を受ける可能性がある。任意のメールヘッダの挿入や本文の改変、不正なメール送信に悪用される可能性もある。
WAFは、Webアプリケーションの脆弱性を悪用する攻撃の防御に特化した製品であり、様々な脅威からWebサイトを保護します。
WAFが有効なケース
WAFの活用が有効なケースは大きく以下の3つがありますので、それぞれのケースについて説明します。脆弱性を修正できない
脆弱性の存在を把握しながらも運用上の理由からアプリケーションを修正できない場合があります。このケースは、メンテナンス計画の都合や修正に想像以上の工数を要するといった場合だけでなく、Apache Struts 2のようなフレームワークやWordPressなどのCMSを利用している場合にもWAF活用のメリットがあります。
利用しているフレームワークやソフトウェアに脆弱性が発見された場合、自ら脆弱性を修正して対処するということは困難です。開発元や提供元から修正バージョン、パッチなどに関する情報を入手して適用するなど、迅速かつ適切な対応が求められます。しかしながら、稼働中のWebサイトに対する影響を考慮する必要があり、事前のバックアップやテスト環境等による修正バージョンの適用、動作確認が推奨されているため、思うように作業が進まないことがあるのが実情です。
脆弱性の修正やパッチの適用を計画しながら、WAFを併用することで現実的かつ効果的な対策が可能となります。
保険的対策
情報漏えい等の事故が起きてしまうと、直接的・間接的に莫大なコストが生じてしまいます。前述のとおり、Webアプリケーションの開発には人手を介し、継続的な改善が加えられていくため、脆弱性ゼロは難しいというのが現状です。
事前対策としてWAFを導入することで、万が一のリスクを低減することができます。WAFは、Webサイトのセキュリティ対策の強化に欠かせない存在となり、近年のニーズとして最も多いケースとなっています。
今すぐ攻撃を防御
Webサイトが実害を被ると対策が完了するまでサービスの再開は困難となり、ダウンタイムは機会損失に直結してしまいます。2000年代半ば頃、SQLインジェクションという脆弱性、攻撃が広く知られるようになり、2010年頃までSQLインジェクション攻撃による大規模な情報漏えいが多発していました。2011年には、「LizaMoon攻撃」と呼ばれたSQLインジェクションによる世界的な大規模改ざんが大きな話題になりました。
現在は、事前対策としてのWAF導入が進んでいますが、当時のWAFの用途としては、Webサイトが攻撃を受けて実害を受けたあとの事後対策という面がありました。実際、当社も2010年頃は「脆弱性の修正をしながらサービスを再開するため、WAFで防御しながら作業を進めたい」といったご相談を多くいただいていました。
緊急対応としてのWAF活用は迅速なサイト復旧の助けとなります。
WAFを検討しよう!
いかがでしょうか?Webサイトセキュリティを強化したい、サイバー攻撃による情報漏えいやサイト改ざんを防ぎたい、サービスに安全性という付加価値を持たせたい、などのニーズを持っている場合は、ぜひWAFをご検討ください。サイバー攻撃による被害が起こってからでは後手となってしまうため、事前対策としてのWAF導入をおすすめします。
もっと見る: WAFって何?導入のメリットとは
- カテゴリ:
- WAF
- キーワード:
- WAF
この記事に関する製品のご紹介
ホスト型WAF「SiteGuard Server Edition」
SiteGuard Server Editionは、ウェブサーバーのモジュールとして動作するホスト型WAF製品です。Webサーバー自体にインストールするため、専用ハードウェアが必要ありません。ネットワーク構成を変更せず、できるだけシンプルに導入したいお客様に最適な製品です。
詳細はこちら