【コラム】みんなに必要な「安全なWebアプリケーションのセキュリティ」

韓国でネットサイトの取引価格情報を1万3千ウォンから44億ウォンに改ざんし、多額の利益を不正取得した容疑者らが逮捕される事件がありました。Webサイトの脆弱性を狙ったこの事件は、一見巧妙な手口のハッキング攻撃のように見えますが、実際には、価格に関わるパラメータ(Parameter:媒介変数)を修正して利益を奪取する「パラメータ・タンパリング(Parameter Tampering)」攻撃関連の犯罪です。

このパラメータ・タンパリング攻撃は、Webセキュリティ、その中でもアプリケーションのセキュリティに関わる基礎的な攻撃にも関わらず、未だにもそのようなWeb攻撃の脆弱性による被害が起きていることに大変残念なばかりです。

前回の「Webアプリケーションのセキュリティを強調する理由」にも言及した通り、アプリケーションのセキュリティはWebセキュリティにおいて最重要項目です。私たちが普段使っているWebは、全てアプリケーションで構成されています。Webサイト、モバイルアプリなどは全てアプリケーションで構成されており、上記のパラメータ・タンパリングのようなWeb攻撃の大多数がアプリケーション関連の攻撃です。

企業のセキュリティ管理者は、多様なWebセキュリティソリューションを導入し、Web攻撃に備えています。しかし、自社が購入し管理するWebセキュリティソリューションの役割は何か、その中でアプリケーションのセキュリティに関わるソリューションは何かを正確に区別できるセキュリティ管理者はわずかであります。

要するに、基本的なネットワークセキュリティソリューションを除き、アプリケーションのセキュリティにおいて適切なWebセキュリティソリューションを適用・運用している企業は少ないということです。こうしたアプリケーションの環境は、企業のセキュリティにおける全体レベルを格下げし、さらにはハッカーの狙う潜在的な標的になる恐れがあります。なお、Web攻撃は、企業の個人情報漏えいといった多大な被害を及ぼします。

今回は、Webアプリケーションのセキュリティについて探ってみましょう。アプリケーションのセキュリティ構築において実質的に必要かつ重要なWebセキュリティソリューションの役割や機能に焦点を合わせて話します。

 

■ Webアプリケーションのセキュリティとセキュリティソリューション
アプリケーションの構築は、家造りに例えると解かりやすいです。家をどうやって造るかによってその家の安全性が決まるように、アプリケーションもどうやって構築するかによってアプリケーションの安全性が決まります。

したがって、アプリケーションのセキュリティは、構築初期の開発段階から構築後のメンテナンスに至るまで、全ての段階にわたって念を入れる必要があります。ただし、その実践が難しいのが現実です。適切なガイドラインがないことも一つの理由として考えられますが、Webアプリケーションのセキュリティに対する理解が十分できていないことも無視できません。

Webスキャナ(Web Scanner), Webアプリケーションファイアウォール(Web Application Firewall;WAF)といった言葉自体の意味は解かっても、それらの正確な機能や作動位置などは解かり難いです。しかし、Webアプリケーションのセキュリティや、それぞれのソリューションが作動する位置を家造りに例えれば、簡単に理解できます。

私たちは、一般的にPCやノートパソコン、モバイルデバイスを利用してWebに接続します。IT用語としては、Webに接続するために利用するPCやノートパソコン、モバイルデバイスを「クライアント」といい、Webサイトやモバイルアプリケーションの画面のようにWebコンテンツを保存しておき、クライアントが接続したらコンテンツを表示するシステムを「サーバ」といいます(ITシステムにおけるサーバが全てWebサーバではありませんが、ここではWebセキュリティに関してのことですので、Webサーバを例えて説明します)。そして、クライアントとWebサーバを繋ぐ連結網を「Web」といいます。

セキュリティの観点からみると、一般的にクライアントのセキュリティは個別システムの安全と関係があり、サーバのセキュリティは企業システムの安全と関係があります。企業内部にあるクライアントのセキュリティもありますが、今回は、企業内におけるWebセキュリティの核心となるサーバのセキュリティについて探ってみましょう。

 

セキュアコーディング
まず、開発段階は、家を造るプロセスと言えます。家は、堅固な地盤に丈夫で安全なレンガで造らなければなりません。それをアプリケーションになぞらえて考えると、脆弱性が残存するリスクがあるコードは排除し、安全なソースやプログラムを利用したセキュアコーディングがレンガに当たります。

セキュアコーディングとは、開発プロセスにおいて開発者の知識不足やミス、又は各プログラミング言語の固有の弱点など様々な原因によって生じえる脆弱性を最小化するために、設計の段階からセキュリティを考慮してコードを作成する製作方式を意味します。

ネットワーク階層は、データの送受信にかかわる通信を担当する役割をし、システム階層は私たちがよく知っているWindows、Linuxといったオペレーティングシステム(OS)のように、様々なアプリケーションが作動できるようにするプラットフォームの役割を行います。アプリケーションは、最上位の階層であり、多様な機能を行うプロトコル(HTTP、FTP等)及び応用サービスを提供します。

アプリケーションの開発には構築のスピードも考慮すべきですが、安全かつ体系的に開発することが、さらに重要です。安全ではない開発環境に、他のWebセキュリティソリューションを導入することは、場当たり的な対策にすぎません。

 

Webスキャナ
家造りの完了後、罅が入っているところはないか、傾いているところはないかなどのチェックが必要です。家をチェックすることのように、外部からアプリケーションを点検するWebスキャナを定期的に行う必要があります。

Webスキャナは、Web脆弱性診断ツールとも呼ばれ、Webアプリケーションの外部から通信を介して潜在的脆弱性や設計上の脆弱性を分析するプログラムです。

現在、多様な種類のWebスキャナが市販されており、その中には、非商業用として提供されているものもあります。Webスキャナのパフォーマンスはそれぞれですが、その核心は、効果を得るためには、地道な点検でアプリケーションを定期的かつ持続的な確認が必要であるということです。

 

マルウェアの検知
家の外部だけでなく、内部も虫などが入り込める穴とかはないか、チェックする必要があります。アプリケーションの内部を点検するソリューションには、マルウェアの検知ソリューションがあります。マルウェア(Web-Based Malware)は、一般的にWebシェル(Web Shell)と呼ばれ、アプリケーションの内部で動作する悪性コードです。

ハッカーは、Webシェルを介してセキュリティシステムをバイパスして別途の認証を行わずシステムに接続することができます。それを点検するためには、Webシェルだけを専門的に検知するソリューションを活用し、サーバの内部から検知する必要があります。Webスキャナと同様に、マルウェアの検知ソリューションも定期的な点検や実行が不可欠です。

 

Webアプリケーションファイアウォール(Web Application Firewall;WAF)
もうアプリケーションという家を安全なレンガで造り、内外部も点検しました。それで終わりでしょうか。家造りを完了したら、次は、外部からの予期せぬアクセスを遮断し、点検の際に見つけなかった内部リスクを補完するために垣根を作ります。アプリケーションのセキュリティおいては、Webアプリケーションファイアウォール(Web Application Firewall;WAF)がこの垣根に該当します。

WAFは、Webを介した外部からの侵入やWeb攻撃を検知し、対応する役割を果たします。特に、セキュアコーディング、Webスキャナが検知したWebセキュリティの脆弱性が外部にさらされないように保護するだけではなく、それらのソリューションに至る前に外部で遮断する役割を行います。

また、マルウェアがWebサーバにアップロードされることも遮断します。一般的なファイアウォール(Firewall)とは違って、Webアプリケーションに特化して開発されたからこそ、可能なことです。さらに、他のソリューションと異なり、サーバへの構築・適用にコストがかからず、外部に便利にインストールできます。最新のWAFは広範囲で多様なWeb攻撃をリアルタイムで遮断し、学習モードによるルールの適用も可能という特徴があります。

 

データセキュリティ(Data Security)
最後に、家の中に置く現金や通帳のような財産をどうやって保管するかも重要です。アプリケーションでは、個人情報やクレジットカード情報、口座情報といった重要データなどがこの財産に該当します。一般的なWebアプリケーション環境では、データベースを構築し、データを保管及び管理します。

安全なデータ管理のためには、データセキュリティ関連のWebセキュリティソリューションを導入する必要があります。データを暗号化することにより、ハッカーがデータを解読できないようにするデータ暗号化ソリューションをド導入することが一般的です。

しかし、暗号化だけで済むわけではありません。誰がいつアクセスしたかが確認できるアクセス制御や監査ログにも注意を払わなければなりません。データ暗号化においては、暗号化されたデータを復号できる鍵(Key)の管理が非常に重要になるため、鍵管理にも特別な注意が必要となります。

 

Webセキュリティの定石
まさにWebセキュリティ時代の到来です。数多くのWeb攻撃が存在し、そのWeb攻撃は、今この瞬間にも新しいタイプの攻撃が現れ、トライされています。2回にわたり、Webセキュリティの重要性を訴え、Webセキュリティに対する理解を深めようと、ITシステムをネットワーク、システム、アプリケーションの3つの階層に分けて探ってみました。これまで言及したWebセキュリティソリューションを各階層別にまとめると、下記の図になります。

安全なWebセキュリティを実現するためには、各階層別の特長を理解し、適材適所にWebセキュリティソリューションを導入することが求められます。アプリケーションのセキュリティがWebセキュリティにおいて最も大きい比重を占めているものの、基本的にネットワークとシステムの安定性が保障されていなければ安全なWebセキュリティは確保できません。

“An organization’s overall Security is only as strong as its weakest Link”

という言葉があります。複数のセキュリティ要素のうち、最も弱い要素がその会社全体のセキュリティレベルの決め手になるという意味です。一方に偏らず、バランス良くセキュリティ対策を立てることが求められます。各階層にはそれぞれの問題を抱えており、その問題毎に最適なソリューションがあるということを認識する必要があります。

Webセキュリティソリューションの市場は、年々拡大しています。2012年にプロスト・アンド・サリバンがまとめた報告書によりますと、アジア太平洋地域におけるコンテンツセキュリティ市場は、2017年には、その規模が15億7千ドルに達し、年間成長率も約17.9%に迫ると見込んでいます。IT産業の一般的な成長率が7~9%というのだから、非常に高い数値であります。

Webセキュリティソリューションがあふれているこの時代に、それぞれの機能や動作位置をスマートに判断し、適材適所にWebセキュリティソリューションを配置することで、安全なWebセキュリティを実現することを願います。