ペンタセキュリティが毎月(年12回)掲載しているセキュリティコラムです。
当社のR&DセンターのTOSLabは、本コラムより、社会一般必要なICTセキュリティとその課題について提言することで
企業、そして社会のセキュリティ認識の向上およびセキュリティ文化の定着を支援致します。

【コラム】みんなに必要な「安全な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セキュリティを実現することを願います。

【コラム】韓国から見た日本年金機構の個人情報漏えい事件を語る

 

韓国から見た日本年金機構の個人情報漏えい事件を語る

 

マイナンバー社会保障・税番号制度の施行を目前に、必要なセキュリティ対策とは。
日本年金機構の年金情報の管理システムがハッキングを受け、125万人もの個人情報が漏えいされる大事故が発生した。日本の公共機関としては史上最大規模の事件であり、今後被害がさらに拡大する恐れもあることから、マイナンバー社会保障・税番号制度の施行を目前に、個人情報の管理における懸念や不信の声が高まっているという。韓国では常に目にしている「このシーン」が他国でも起きていることを見ていたら、妙な気持さえする。「ようこそ、地獄へ」各種メディアから報道されている事件の全貌から、その本質と核心を探ってみたところ、どうやら、セキュリティ対策といって、何をどうすればいいのか、はっきりしていない。一つずつ綿密に突き詰めていけば、問題の核心に近づけるはずだ。

現段階であがっている問題とその対策は、概ね以下の通りだ。

「発端はウイルス感染なので、問題はアンチウイルスソフトなのか。」
「組織の内部ネットワークによる拡散なので、ネットワークセキュリティに集中するべきなのか。」
「データを安全に保管していなかったので、データベースを暗号化すれば、済むのか。」

1. アンチウイルスソフトは対策にならない

最初にウイルスを発見した時、外部の管理会社は、「情報を漏えいできるようなウイルスではない」と判断した。恐らく従来型のウイルスを装った悪性コードであろう。アンチウイルスは、既存のリストからマッチングさせるシグネチャベースであるため、そもそものはなし、その限界がある。最近の情報セキュリティの傾向をみると、「アンチウイルスの導入は、基本中の基本」とみられる。しかし、実際には、それは対策にはならないのだ。攻撃者の立場で考えてみよう。「標的」を定めた攻撃者は、既知の攻撃のパターンを用いるバカなことはしない。市販のアンチウイルスソフトにてテストしてから攻撃に挑むだろう。だからと言って、市販のアンチウイルスソフトが不要というわけではない。少なくとも、「新米」のハッカーによる攻撃に対する対策としては、十分有効だろう。

 

2. ネットワークのセキュリティ対策で済む問題ではない
殆どのWebハッキング攻撃のパターンは、通常1次攻撃と2次攻撃にわけて考えられる。1次攻撃は、外部から標的の内部ネットワークに潜入すること、そして、2次攻撃は、1次攻撃の成功を持って内部のネットワークおよびシステムを支配し、目的を達成することを意味する。2次攻撃により成し遂げたいのは、「重要なデータ」である。最近の攻撃には、一昔前までの攻撃のようにただシステム上不具合を意図する愉快犯的な試みもないわけではないが、大規模のシステムを狙う場合のコストを考えても、得るもの(対価)がなければ、狙うも者もいないのが定説になっている。得るものとは?個人情報といった、いわゆる「カネになるもの」であることは、想像に難しくないだろう。

今回の事件に戻ろう。1次攻撃の試みとしてEメールを用いていることに注目する必要がある。通常のネットワークレベルのセキュリティ製品では、Webを介し転送されるEメールやWebコンテンツを監視対象にすることができない。「コンテンツ」はネットワークのL7(OSI 7レイヤによる分類)にてその「正体」が分かるが、主にL4を管理するネットワークセキュリティ製品は当該コンテンツの悪意を判断できないためだ。ここでL7を監視できる「WAF(Web Application Firewall、Webアプリケーションファイアウォール)」の出番となる。

だからこそ、ただ「ネットワークセキュリティ」だけでは、済む問題ではないというのだ。最初に感染した福岡支部の職員のパソコンをネットワークから完全隔離したにも関わらず、まもなく東京本部でも感染が確認され、すぐさまその広がりをみせた。ネットワークセキュリティにおける階層の脆弱性を利用したに違いないだろう。一体どれだけ「WAF導入の必要性」を訴えれば、分かっていただけるのか。残念なことばかりだ。

 

3. 単なるデータ暗号化では、十分ではない

 

今回の事件の当事者である日本年金機構やその監督機関である厚生労働省の方なら大変耳障りであるお話になるが、そもそもの話、なぜデータの暗号化をしていないのか。これは国民の個人情報を扱っている機関として恥を知るべく、この場を借りて指摘したい。もはや日本も韓国のように個人識別番号のマイナンバー社会保障・税番号の制度の施行を目前にしているものの、個人情報におけるセキュリティ対策として暗号化に関するコンプライアンスを定め、社会インフラを整備し、具体的な方法論を官公署のみならず民間にも浸透させていく等、特段の措置を取る必要がある。言うまでもなく、当然なことであろう。

「データ暗号化」は、事実上非常に複雑なものである。そのアルゴリズムは簡単であるものの、暗号化は複雑である。なぜだろう?

今後、これと類似した事件がどれだけ発生するかによっては、既存の個人識別番号を別な番号に「変換」することも考えられる。韓国がそうであった。そして番号を扱うシステム自体が「番号」の形式や属性に依存しているのであれば、「FPE (Format Preserving Encryption, 形態維持暗号化)」といった、より高度な暗号化技術が求められる場合も必ず出てくる。そのため、なりすまし防止への対応と同時に多様な環境への対応にも備えるべきだ。セキュリティを強調すると、その使用環境は狭まる傾向がある。しかし、セキュリティのためだといって、今更ながら特定の指定されたパソコンのみ使うことを強要することはできない。モバイル環境にも、個人情報が流れているPOS(Point Of Sale, 販売時点情報管理)システムなどにも、対応しなければならないのだ。要するに、単なる暗号化ではなく、「データ暗号化プラットフォーム」の構築が求められているということが言いたい。今回のような個人情報の漏えい事件により、当分は本人確認手続き等が厳しくなるだろうが、同時にデータ暗号化の仕組みは、ICTシステム全体にわたって適用されなければならない。単なる暗号化製品を提供している会社はいくらでもある。しかしながら、データ暗号化プラットフォームの全体をカバーできる暗号化専門会社は、そうはいない。必ず暗号化のコア技術を保有している「専門会社」と相談してもらいたい。

事件の全貌やその対策に関して検討してみた。 繰り返しいうが、韓国では、常に目にしていたシーンであり、日常茶飯事である。

日本の開発者、そして個人情報の管理責任者に言いたい。韓国では10年以上も前から毎日のように目にしていることであると。個人情報の管理と漏えいの問題は、日本にとっても他人のことではないことを認識してもらいたい。

WAPPLES

 

WAPPLESは, 世界各国117,000のWebサイトを保護している信頼のソリューションであり、ペンタセキュリティが独自開発し4ヶ国特許を取得した検知エンジンを搭載し、セキュリティ専門家に頼らなくても使える知能型WAFです。

 

 

D’Amo(ディアモ)

 

今年2014年リリース10周年を迎えたD’Amoは、韓国初のDBMS暗号化ソリューションを商用化した以来、セキュリティ市場No1として2,100ユーザ以上の安定された稼働実績を誇ります。長年の経験とノウハウ、そして研究を重ねてきた暗号化のコア技術をもとに、さらなるステージへとセキュリティソリューションの進化をリードしてまいります。

 

 

製品に関するお問い合わせ

E-Mail : japan@pentasecurity.com / TEL : 03-5361-8201

 

 

【コラム】Webアプリケーションのセキュリティを強調する理由

韓国インターネット振興院によると、ハッキングトライの全体の7割以上がWebを介して行われているというほど、Webセキュリティは、もはや選択ではなく必須となりました。

しかし、Webセキュリティは、専門家といっても安全を保障することは難しいです。それは、現在セキュリティ対策の標準化が進められておらず、企業それぞれが異なるセキュリティ対策を構築しているためです。

Webセキュリティの安全性を確保するためには、企業のセキュリティ担当者がWebセキュリティに対して十分に理解した上で、自社のITシステムに合うWebセキュリティを構築する必要があります。ほとんどの企業は、Webセキュリティソリューションを導入していますが、Webセキュリティを十分に理解し適材適所に導入・運用している企業が少ないのが実情です。

当カラムでは、Webセキュリティを容易に理解できるよう全般的なITシステムの構造からはじめ、WebセキュリティがITシステムにどのように適用されるかを説明します。まず、ITシステムに対する理解や、Webセキュリティの概要について探ってみましょう。

クライアント ‐ サーバの構造に対する理解

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

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

企業のサーバシステムの構造


企業内サーバのシステム構造を理解するために、まず、ITシステムの構造を確認してみましょう。

上図のように、ITシステムは、大きくネットワーク、システム、アプリケーションの3つの階層に構成されています。OSI 7階層やTCP/IP階層のような様々なITシステムモデルがありますが、こうした階層的分類では、ネットワーク、システム、アプリケーションの3つの階層が最も共通的な構造です。この3つの階層はお互いの相互作用を通じてITシステムを構成します。

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

サーバシステムの構造も基本的にはこのITシステムの構造に従います。要するに、安全なサーバのセキュリティとは、ITシステムにおける3つの階層のセキュリティ、すなわち、ネットワーク、システム、アプリケーションの全てのセキュリティが安全に構築されていることを意味します。

Webセキュリティの中核は、アプリケーションのセキュリティ


理解を助けるために、ITシステムの各階層はWebセキュリティを確保するために、実際にどのように構築されているか、現実的な観点から探ってみましょう。

ネットワークのセキュリティのためには、安全ではないIPやポート(Port)に対するアクセス制御を行う必要があり、許可されたIPやポートからのトラフィックに対しても有害性の有無をチェックする必要があります。そのため、ほとんどの企業では、ファイアウォール(Firewall)と侵入検知/防止システム(IDS/IPS)を構築しています。

しかし、ファイアウォールの場合、許可されたIPやポートからの攻撃は遮断できず、また、IDS/IPSにて行われるネットワーク階層における有害性検査は、アプリケーション階層に対する理解がないまま行われるため、アプリケーションの脆弱性を狙った攻撃に対しては遮断できないという限界があります。

システムのセキュリティはOSに関わることが多いです。Windows、Linux、UnixなどのOSに対する開発及び提供に関わるメーカーは、自社システムに対して定期的なセキュリティのアップデートやパッチを行うことにより、知られているWeb攻撃に備えています。企業のセキュリティ担当者は、セキュリティのアップデートやパッチを行うことに加え、定期的にシステムの悪性コードを検出し、システムを常に安全な状態に維持しなければなりません。そのために企業は、アンチウイルスソリューションを導入しています。

このように、ほとんどの企業は、ネットワーク及びシステムのセキュリティに対しては、その必要性を理解し、セキュリティの構築に力を入れています。しかし、アプリケーションのセキュリティに対しては、そうではありません。

アプリケーションの階層は、ネットワークやシステムの階層に比べ高度化されており、アプリケーションの種類も多様であるため、大部分のセキュリティ管理者はセキュリティの適用に困っています。Webセキュリティを構築する際にも同様です。

Webセキュリティにおいて最重要なのは、アプリケーションのセキュリティです。私たちが普段利用しているWebは全てアプリケーションで構成されています。WebサイトやモバイルWebなどは全てアプリケーションで構成されており、それをターゲットとしたWeb攻撃もアプリケーションの脆弱性を狙った攻撃が多いです。SQLインジェクション、XSS(クロス・サイト・スクリプティング)のような有名なWeb攻撃も全てWebアプリケーションであるWebサイトの脆弱性を狙った攻撃です。Webシェルと呼ばれるWeb基盤悪性コードもphpなどで構成されたWebアプリケーションです。

Webセキュリティ業界で有名なOWASP(The Open Web Application Security Project)が選定したWeb脆弱性Top10も全てWebアプリケーション攻撃です。つまり、現在行われているWeb攻撃の9割以上が全てWebアプリケーションを狙った攻撃であると言っても過言ではありません。要するに、安全なWebセキュリティを構築するためには、安全なWebアプリケーションセキュリティの構築が必須ということです。

Webセキュリティ対策 においてアプリケーションのセキュリティが最も重要であるにも関わらず、実際にはどのように構築すればよいかという難題にぶつかり、適切なセキュリティが行われていないのが現状です。

次回では、その難題を解消するために、アプリケーションのセキュリティを集中分析し、安全なWebアプリケーションのセキュリティを構築するためには、どうすればいいかについて説明します。