2012/02/09

このアプリは安全か?危険か?

ここ最近、アプリケーションのパーミッション絡みでいろいろと意見が出ているようですが、アプリケーションの安全性に対し投げやりだったり、利用者と開発者の間で一方に責任を押し付けるようなちょっと見過ごせないコメントやBlogエントリを見かけるようになったので、この辺で利用者と開発者の2つの観点からアプリの安全性をどのように担保するのが良いのか考えて見ました。




利用者の観点からみた安全なアプリの見分け方



一番大事なのは、インストールする前にアプリの情報を収集することです。

利用者である私たちがアプリをインストールする際にが安全であるか否かを検討する際、その材料となる情報はあまり多くありません。

AndroidMarket上のアプリの説明や評価、あとはインターネットや人伝に聞いく噂がほとんどでしょう。
ここで気をつけなければいけないのは、それらの情報が参考になるか否かです。



1.Market上の開発者からのアプリ説明・パーミッションは最も重要な情報源


アプリの説明からそのアプリがどんな機能を持っているのか、そのアプリの機能に対して必要以上のパーミッションが与えられていないか。

アプリケーションの機能に合致しない(と思われる)パーミッションが無いか確認しましょう。この時点で求められているパーミッションを寛容に評価せず、疑問に思うパーミッションをチェックしましょう。

開発者によっては許可を求めているパーミッションがアプリのどの機能に用いられているか、アプリの説明に記載しているケースもあります。


アプリの説明にパーミッションの許可を求める理由が記載されていない場合は、以下の点について考えてみましょう。


A.そのアプリはどんなアプリですか?


要求されるパーミッションと比較して妥当かどうか判断するためアプリの持っている機能を確認します。

例)カメラ・ブラウザ・ゲームetc


B.それらに必要な機能や端末内の情報は何でしょうか?


その機能を実現するには端末のどんな情報や機器へのアクセスが必要でしょうか?

例)カメラ:カメラでの撮影・SDカードへのアクセス

ブラウザ:インターネットアクセス・ブックマーク情報へのアクセス

ゲーム:SDカードへのアクセス・バイブレーション


C.そのアプリのパーミッションは、端末から何を取得してますか?また端末外に送る方法を持っていますか?


例)取得している情報:端末の状態や識別情報・アドレス帳の情報・ブックマークやブラウザ履歴etc

外に送る方法:インターネットアクセス・SMS/MMSの送信・SDカードへの書き込みetc



A-B、B-Cの間で不整合がある(カメラなのにブックマークを見ている。ブラウザなのにSMS/MMSの送信権限を要求されるetc)はそのアプリの機能を疑うべきです。

ここで、「使う」「使わない」かの選択になるのですが、この選択をする前にもう一つ、確認する手段があります。(⇒2を参照)



2.アプリケーション開発者に確認しよう


意外と利用されていないのですが、AndroidMarketではアプリケーションを登録する際、開発者のWebサイトか連絡先メールアドレスの記載が必須になっています。

利用者としてこの連絡先を使わない手はありません。アプリケーションで疑問に思うことはこの連絡先を活用して直接確認してみるのも手です。

面倒ですが確実です。

ここで明らかに問題がある、もしくはアプリの機能やパーミッションが妥当だと判断できない場合は、インストールをお勧めしません。



3.あまり参考にならない情報もある


Marketのアプリに対するコメント欄は、コメント者のスマートフォンやアプリに対する技術的知識差が激しく、誤った認識や情報が錯綜しているのを見かけます。鵜呑みにせず、参考程度にとどめておきましょう。



4.参考にしてはいけない情報


ダウンロード数、評価をアプリケーションの安全性の観点であてにしてはいけません。アプリケーションの人気の度合いは安全性とは関係ありません。Spywareが500万ダウンロードされていたり、コメント欄やアプリケーション紹介サイトでこれは便利と評価されるケースもあります。

「みんなが使っているから安全」はAndroidの世界では全く通じないので気をつけましょう。



決定的な判断材料がない以上、我々利用者は手に入る情報から推測し、必要であれば直接確認することで対応するしかありません。
私は、ウィルス対策アプリを入れたうえで、ここまでやってな失敗(不正なアプリがはいる)様であればもう諦めます…。




開発者の観点から見た安全なアプリの提供の仕方


技術的な方法についてはAndroidSecurity本(タオ本)を読まれることを推奨いたします。
ここでは貴方が作ったアプリをユーザに安全に(安心して)利用してもらう心構えや準備すべき事柄を書きます。



1.そのアプリが想定される利用者によってどのように使われるか考えてください


貴方がマーケットに置いたアプリケーションは、登録時に設定した制限の範囲内で老若男女問わず誰しもがインストールし利用できます。

コンピュータに詳しい人、アプリケーション開発経験者はそこにはいないと思ってください。

ソース読めなどもってのほかです。そもそもソースからそのアプリの安全性を把握するなんて専門家のやる事です。



2.基本的にはユーザから見た観点を踏まえて必要な情報を提供する事が必要です


前述の通り、ユーザはそのアプリが、「どのような機能」を持っていてそれを実現するために「そのようなパーミッション」を必要としているか、明快な説明を求めています。

そのアプリを作った貴方なら難しくはないはずです。

あなたのアプリがどのように動くか、そしてそのためにどのパーミッションを必要としているか、箇条書きでよいのでマーケットのアプリ説明に記載しましょう。



3.ユーザの声に積極的に耳を傾ける


当たり前のことですが、ユーザ対応一つでアプリの見え方がずいぶん変わります。

アプリを登録する際、Webサイトかメールアドレスを登録していると思います。

もしくはTwitter等のコミュニケーションの手段を別に用意している場合もあるでしょう。こういったコミュニケーションの窓口を大いに活用すべきだと思います。

アプリに不正な疑いをかけられた時、アプリが正常に動かない時。間違いなくユーザからの問い合わせはこれらの問題を解決する道具になります。

際どいパーミッションを許可している程、ユーザへの対応は丁寧に開発者の信頼はアプリの信頼につながります。




まとめ


利用者と開発者それぞれの観点で記載していますが、よく見て頂くと利用者の確認すべき事項と、開発者の提示すべき情報が一致するようになっている事がお分かりいただけるかと思います。

Androidアプリの安全性を技術的に保証することは、今ところ難しいです。

そのため、上記のような開発者と利用者の間でアプリケーションの仕様を共有し信頼を築くことで安全性を担保するモデルを考えてみました。

もちろん絶対的に安全なモデルではありません。利用者によっても開発者にとっても手間はかかります。しかし、Androidマーケットの健全性を保つ一つの方法としてこのような運用による対策を提案させて頂きました。



0 件のコメント:

コメントを投稿