- トレンドマイクロ セキュリティブログ - https://blog.trendmicro.co.jp -

モバイル向け情報保護アプリの提供する機能を検証

情報を保護することは、デジタルライフにおいて常に最も重要な側面の1つであることに異論はないでしょう。昨今のスマートフォン(以下、スマホ)の使用頻度を考慮すると、なおさらです。スマホ端末内蔵のプライバシーおよびセキュリティ機能を活用するユーザがいる一方で、セキュリティ・プライバシー保護のアプリをさらに使用するユーザもいます。

スマホ上の情報を保護する手段の1つとして、「ファイルロック」機能などの情報保護を提供するアプリ を使用することが挙げられます。こうしたアプリは、名前が示唆するとおり、重要な情報を保存する際に使用され、追加のセキュリティ機能として、しばしば暗号化やパスワード保護により不必要なアクセスから情報を保護し します。

しかし、情報を保護する上でこれらのアプリはどれほど効果的なのでしょうか。これらのアプリが仕様通りであり、情報保護に必要な基準を満たしていると考えて良いのでしょうか。残念ながら、トレンドマイクロが、Google の公式アプリストア「Google Play」で、人気の高い情報保護アプリを解析したところ、セキュリティ上十分な機能を提供していないものがあることが確認できました。

弊社が解析したアプリの URLは以下のとおりです。

弊社は既に、上述のアプリの開発者およびGoogleに報告しています。

■チップを計算するアプリに装った情報保護アプリ
「File Hide Pro」は、数秒でファイルを隠すとうたう情報保護アプリです。さらにプライバシーを厚く保護するために、チップを計算するアプリに装っているとしています。しかし実際は、このアプリが提供する「保護」は、ファイル名の冒頭に「.」を追加してファイル名を変更するだけであることを弊社は確認しました。

図1が示すように、「隠す」が実行された後との違いは、ファイル名が変更されただけです。

図1:ファイルを隠す機能が実行される前と後のファイル名 [1]
図1:ファイルを隠す機能が実行される前と後のファイル名

事実、これらの「隠された」とするファイルは、ファイルエクスプローラで閲覧することができます。また、このアプリは、「隠された」ファイルのインデックスとして “sdcard/.hermit/.hermit_restore.hider” にファイルを作成します。これらのファイルは、SDカードに保存されており、全ユーザに読み取り権限があります。つまり、端末上のどのアプリからも読み取ることができるということです。不正なアプリやユーザは、“/.hermit_restore.hider” を手掛かりとして利用し、「隠された」とするファイルを探し出して、読み取るかもしれません。

図2:“.hermit_restore.hider”のコンテンツ [2]
図2:“.hermit_restore.hider”のコンテンツ

■読み取り可能なデータベースに隠されたファイル
「File Locker」は、固定されたフォルダ「/sdcard/ .MySecurityData/dont_remove/」にユーザのファイルを移動し、「隠し」ます。隠されたファイルの場所と元のファイルは、データベース管理システム 「SQLite3」 に保存されています。残念ながら、このデータベースと隠されたファイルは、SDカードに保存され、全ユーザに読み取り権限があります。

■オンライン銀行の個人情報を「保護」するアプリ
「Folder Lock」が他のアプリと一線を画す点は、クレジットカード番号やパスワード、またオンライン銀行関連やビジネス関連のその他の情報を保護する「ウォレット」を提供していることです。弊社の解析によると、ウォレット内の情報は暗号化されるどころか、平文で誰でも読み取りができるパスに保存されていることがわかりました。その他の「隠された」とするファイルも、暗号化せずに固定パスのフォルダに保存されています。

図3:「ウォレット」機能内の情報のサンプル [3]
図3:「ウォレット」機能内の情報のサンプル

図4:平文で保存された情報の例 [4]
図4:平文で保存された情報の例

■保護のない暗号化
「App Lock」は、仕様通りに実際にファイルを暗号化するアプリでした。しかし、本当にユーザのファイルは保護されているのでしょうか。解析した結果、そうではないことが判明しました。

このアプリは、開発者が自身で定義した固定のアルゴリズムを使用してファイルを暗号化します。残念ながら、しかし、サイバー犯罪者は、このAPKファイルを逆コンパイルして、容易に解読アルゴリズムを実行するかもしれません。これでは、暗号化された情報も平文で保存された情報と何の違いもありません。

図5:パスワード「123」でファイルをロックする [5]
図5:パスワード「123」でファイルをロックする

図6:ロックされたファイルが復号化され、パスワード「123」が表示される [6]
図6:ロックされたファイルが復号化され、パスワード「123」が表示される

特筆すべきことは、このアプリにおけるパスワード保護は、現実的ではないということです。設定されたパスワードは、暗号化され、暗号化されたそれぞれのファイルの最後のブロックに保存されるだけです。端的に言えば、パスワードも、保存された1つのファイルでしかありません。ファイルが復号化されると、ファイルとパスワードの両方がさらされます。たとえ第3者が復号方法を知り得たとしても、パスワードがファイルへのアクセスを防ぐのが理想的です。

■利用者が個人情報を保護するには
弊社が確認したこれらのアプリの共通点は、他のアプリやアカウントがその情報にアクセスできるということです。これは利用者がどの程度の情報保護の強度を期待しているかにもよりますが、セキュリティ専門家の観点からは、十分な情報保護機能とは言えないと考えます。利用者が保護したいファイルには情報収集や漏えいの危険性が残っているものと言えます。

これらのアプリは、非常に人気があり、数百万回のダウンロードに達しているアプリもあれば、単独で 5000万回のダウンロードを記録しているアプリもあります。利用者は、アプリをダウンロードする際は、自分が期待する機能が実現されているかどうか、よく確認する必要があります。アプリのレビューは、アプリが本当に紹介されている仕様通りに機能するかどうかの確認に役立ちます。

今回解析したアプリは、例えば情報を窃取しようとする攻撃者から情報を守るという観点では十分な保護機能を提供しているものとは言えませんでした。ユーザは自身のプライバシーを保護するためにどのレベルの保護が必要なのかを考えるべきでしょう。また、セキュリティ関連アプリを導入しなくても重要な情報を保護できる方法があります。それは、モバイル端末に格納されている情報量を制限することです。モバイル端末で実行される処理量および種類を考えると、何らかの形式で重要な情報を保存することは避けられないように思われます。しかし、保存される情報量を極最小限にすることで、ユーザは容易に管理することができます。20 のアプリを管理するよりも 5つのアプリを管理する方が簡単です。情報量を少なくすることで、プライバシーの問題を軽減することができます。

■開発者に求められるセキュアなアプリ作成に向けての自序努力
スマートフォンのアプリ開発者には多くの個人開発者も参加しています。こうした開発者はどのようにセキュアなアプリ作りを心掛ければ良いのでしょうか。

最も重要な事はすべての開発者は利用者に安全に使えるアプリを提供する自序努力を怠ってはならないということです。これは開発規模に関わらず求められる要求であると考えます。

自序努力を行っていくための情報源として、一般社団法人日本スマートフォンセキュリティ協会が発行する『Androidアプリのセキュア設計・セキュアコーディングガイド』(日本語版/英語版)が有効です。この文書には、セキュリティを考慮した設計・開発のノウハウが詰まっています。

開発者はガイドラインの内容に沿ったコーディングを行うことで、セキュリティ強度とともに、アプリの品質を高めることが期待できます。

■トレンドマイクロの提供するソリューション
トレンドマイクロでは、PCやモバイル端末間で安全にファイル共有が行えるオンラインストレージ 「SafeSync」 [8]を提供しています。「SafeSync」を活用することで、安全なクラウド上にファイルを保存したり、バックアップコピーを作成することができます。

参考記事:

 翻訳:臼本 将貴(Core Technology Marketing, TrendLabs)