ペンタセキュリティシステムズ(ペンタセキュリティ)は6月16日、「みんなに必要な『安全なWebアプリケーションのセキュリティ』と題するセキュリティコラムを公開した。

一般的にWebを構成するシステムは、すべてアプリケーションで構成されており、攻撃者の多くがアプリケーションを狙って攻撃を仕掛けてくる。攻撃者は、この攻撃を発端として企業のシステム内部に入り込み、企業が保有する顧客情報を盗み出すことなどを目的としている。

企業もただ攻撃に指をくわえて見ているわけでなく、Webセキュリティソリューションを導入して防御している。ただ、ソリューションの導入さえすればすべて解決するわけではない。コラムでは「Webセキュリティソリューションの本来の役割は何か」「アプリケーションのセキュリティに関わるソリューションは何か」などを多くのセキュリティ担当者が正確に理解できていないと指摘。正しい知識を持ってソリューションを適用・運用している企業が少ないのが現状だという。

同社は、アプリケーションにおけるWebセキュリティの重要性を以前から強調している。今回のコラムでは、Webセキュリティソリューションの役割や機能に絞り込んで解説した。

Webアプリケーションのセキュリティとセキュリティソリューション

コラムでは「アプリケーションの構築は家造りに例えると解かりやすい」と述べられている。「家をどうやって造るかによってその家の安全性が決まる」とし、家造りとアプリケーションの作成のどちらも、初期段階からメンテナンスに至るまで念入りの調整が必要だという。

しかし、セキュリティ性能を重視したアプリケーションでも、攻撃を受けることがある。その理由の一つに、アプリケーションのセキュリティに対する理解が十分に行き届いていないことも考えられるという。

例えば、Webスキャナ(Web Scanner), Webアプリケーションファイアウォール(Web Application Firewall;WAF)といった言葉の意味を知っている人は多いが。それらの機能や作動位置などを正確に理解している人は少ない。

Webアプリケーションセキュリティソリューションのイメージ図

セキュリティの観点からみると、一般的にPCやモバイル端末などの「クライアント」のセキュリティは個別システムの安全と関係があり、サーバのセキュリティは企業システムの安全と関係がある。企業内においてクライアントを安全性を確保は重要であるが、第一に考えないといけないのがWebサーバーだ。

セキュアコーディング

実際に、Webサーバーのセキュリティ確保を家造りと比較すると、面白いほど同じ部分が多いことがわかる。まず、開発段階は、家を造るプロセスと同じといえる。家は、外装などはレンガなどの安全な材質が用いられる。それをアプリケーションになぞらえると。安全なソースやプログラムを利用したセキュアコーディングがレンガに該当する。

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

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

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

Webスキャナ

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

Webスキャナは、Web脆弱性診断ツールとも呼ばれ、Webアプリケーションの外部から通信を介して潜在的脆弱性や設計上の脆弱性を分析するプログラム。現在、多くの種類のWebスキャナが販売されている。Webスキャナの効果を得るためには、地道な点検でアプリケーションを定期的にメンテナンスする必要がある。

マルウェアの検知

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

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

Webアプリケーションファイアウォール

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

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

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

データセキュリティ

家を建てた後も、現金や通帳のような財産をどうやって保管するかを考慮する必要がある。アプリケーションでは、個人情報やクレジットカード情報、口座情報といった重要データなどが財産に該当する。一般的なWebアプリケーション環境では、データベースを構築し、データを保管及び管理する。

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

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

Webセキュリティの定石

Web攻撃は、今この瞬間にも新しいタイプが現れ、利用されている。コラムでは、Webセキュリティの重要性を訴え、Webセキュリティに対する理解を深められるよに、ITシステムをネットワーク、システム、アプリケーションの3つの階層に分けて解説してきた。これまで言及したWebセキュリティソリューションを各階層別にまとめると、下記の図のようになる。

各階層別Webセキュリティソリューションのイメージ図

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

現在、Webセキュリティソリューションもさまざまな種類が販売されている。それぞれの機能や動作位置をよく理解し、適材適所にWebセキュリティソリューションを配置することで、安全なWebセキュリティを実現できると、まとめている。