Deap Peace

イラストやデザイン、買ってみてよかったものや日常のちょっとした出来事をダラダラ書いていきます。

Androidのセキュリティーを見直そう!

2011-06-19 04:42:26 | 【PDA】Docomo SO-01C「Xperia Arc」
今週の東京はずっと雨でしたね

みなさんの所はいかがでしょう?

そういえば、うちにいつも顔を出してくれてる塾生さんと一緒にいつも塾が始まる前後1時間くらいを過ごしてるのですが、女の子はやっぱり占いとか大好きなので一緒にその子と星座占いをしてたのですが…

「ねぇ!ちーちゃん何座?あたしは水瓶座ー♪」
「あら?良い星座じゃない~♪水瓶座は頭の良い女性のシンボルなのよ♪」

「へー♪ちーちゃんは?ちーちゃんは何の星座?」
「私は蠍座♪苦しみと戦うのが大好きな蠍座よ♪」

「く…苦しいのが好きなの?息止めたりとか?」
「…そういう方向じゃないわね…」


Androidのセキュリティーを考える

…っていうコトで先週はまんまとマルウェアーに引っかかってた管理人ですが(...orz)、それもありましたのでここで少しAndroidのセキュリティーについて、私が思ってるコトだけじゃなくてみなさんと一緒に考えてみたいなぁ…って思ってこんな記事を書き起こしてみました

今回、色々と考えていきたいのは

マルウェア:
一見便利なアプリに見せかけて、ユーザーに使わせてるうちに個人情報などを勝手に抜き取り、外部の人間にそれを渡してしまう危険なソフトのコトをマルウェアと呼んでいます。ユーザーは便利アプリだと思って使っているのでいつ個人情報を抜き取られているかに気が付きにくいのも厄介です。

ウィルス:
マルウェアは使っているうちにその被害を蒙ってしまうタイプですが、ウィルスはもっと直接的でインストールと同時に発動します。マルウェアは個人情報を抜き取るなどスパイ的な活動が中心なのに対してウィルスは攻撃的で、酷いモノだと端末自体を再起不能にさせてしまうものもあります。


…の2つで、下のほうではそれの対策とかを実際にしてみています。


ケータイとスマートフォンの違い

まずはココから考えてみたいと思います

携帯電話関連会社に勤めてる友達と先週会ってきた時に「ケータイだと思ってるユーザーがスマートフォンに流れてきてるので要注意です」とも言ってたのですが、そもそも一般的なケータイとスマートフォン、どんなところがどう違うのでしょうか…って言うのを少しまとめてみました


ケータイ(セキュリティー:強い)

Linuxをベースにした独自OSで展開しています。
業界によって言い方が違いますが、一般的にガラケーとか海外ではMobile Phone、DocomoなどではFuture Phone…と言っていたりするのがコレです。

独自アプリしか使えませんのでDocomoのケータイ用に作ったウィルス、マルウェアはDocomo用(…それも特定機種だけだったり)にしか使えません。

アップデートでその穴を塞がれたらまた一から新しくそれらを作り直さないといけないので、労力の割りに見返り(?)は少ないのが現状で、i-Modeなどはサーバーの認証システムも厳しいので、野良アプリからのインストール以外ではウィルスを作りにくいのも特徴です。

野良アプリは有志のまとめサイトくらいでしか告知がされないので、必然的に多数のユーザーがインストールできる可能性は少ないのもセキュリティーに一役買ってるのかもしれません。

最近はフルブラウザによるインターネットブラウジングも出来ますが、携帯する電話機から派生してる状態なのでPCの利便性に比べるとまだまだ満足には展開していません。


スマートフォン(セキュリティー:弱い)

Linux、Unix、Windowsをベースにした3種類のOSで展開しています。

LinuxベースではAndroid、UnixベースではiOS、WindowsベースではWindows Mobileが有名で、基本的にAndroid用に作ったウィルス、マルウェアはそれを搭載する全ての会社の端末で実行できる怖さがあります。

PC、サーバー系のカーネルから派生してることもあって、電話機と言うよりも電話機能を搭載している小型PC…というのがスマートフォンの立ち位置です。

PCライクな操作感が特徴で、PCと同じようにうっかりしているとすぐにセキュリティーが甘くなります。


フルWindowsスマートフォン(セキュリティー:貧弱)

WillcomのD4、DocomoのF-07Cなど、デスクトップやノートPCに搭載されてるフルバージョンのWindowsを搭載しているスマートフォンで、ハードウェアもPC用品と全く同じものを使っているので、PCで使ってるソフトをそのままインストールして使うことができるのが最大のメリットです。

PCで使ってるソフトをそのまま使えるため、ウィルス、マルウェアなどもそのまま引き継いできているため、セキュリティーはかなり弱いです。

またハードウェアスペックがモバイル用の貧弱なモノを使っているので、セキュリティーソフトを動かしているだけで他の作業が遅くなったり、それだけでバッテリーが切れてしまうこともしばしばあります。


Androidマーケットは何も感知していません

それではお話しをAndroidに移します…が、国内で回線会社を通して購入するAndroidスマートフォンには「Androidマーケット」って言う機能がついてて、基本的に殆どのアプリはここからダウンロードして使う形になっています。

iOSでいうApp Storeとか、PC用LinuxのDebian、UbuntuとかだとSynapticがこれに当たる機能だったりしてますが、少なくともSynapticはサーバーを管理してる場所、人がそこに登録されてるアプリが安全かどうかをある程度判断してくれているので、インストールできるアプリは大体安全だったりします。

Androidマーケットは…って言うとコレがあんまり…で、基本ほとんど何も感知していないと思っていただいて構いませんorz

マーケットは初回手数料さえ支払えば誰でも登録できて、自由に自作アプリを公開できます。

…でも例えばそのアプリにバグがあったとしても、あるいはマルウェアそのものだったりしてもGoogle側は殆どタッチしません。

この辺にPCと同じ「自分で何とかしてください」…っていう感じがヒシヒシと出てますねorz

でもPCはユーザーが自由にアプリを好きな所から探してきて好きにインストールする風潮があるのでそれも通じますが、殆どマーケットに縛られてるAndroidの場合は中々そう言っていられないところもあって、これからユーザーが沢山増えてくれば来るほど色々問題になりそうな部分でもあります


パーミッションをチェックして身を守ろう!

…っていうコトでココから実際にそんな危険なアプリから身を守る方法とかを載せてみたいと思いますorz

まず、Linux、Unixでは良く出てくる「パーミッション」…って言う言葉ですが、Windowsユーザーの方やAndroidが始めてのユーザーの方には中々分かり辛い用語…だと思いますorz

LinuxやUnixではファイルに対してかなり厳格な実行権限が設けられてたりします。

例えば、アプリをダウンロードしてきてもそれを開いて見るコトが出来る権限や、実際にそれを実行してOSにインストールできる権限など色々な権限があったりしてて、ファイルをダウンロードして実行しようとすると「ファイルにその権限がありません」なんてエラーを吐かれる事もしばしばあります。

アプリ側にももちろんそんな権限があったりしてて、例えばインターネットに出られる権限、カメラ機能を動かせる権限、色々な権限があってそれらが上手くユーザーが提示してる権限と一致した所で始めて使うことができます。

Androidにもそれと同じ権限の縛りがあるのですが、極力ユーザーがそれを意識しないでも使えるように出来てるのも、良かったのか悪かったのか…っていう感じですorz

↓にそれをまとめて図解してみました


※この記事に載っている画像も全部クリックで原寸大に表示できます





…こんな感じでアプリは色々な権限を要求してくるのですが、同じような機能のアプリでも電話帳にアクセスするような権限を求めてくるのは基本的に怪しいと思って構いません

こういった一見便利そうなアプリを装って全然関係の無い電話帳や電話番号などを引き抜いて他者に渡してしまうのがマルウェアの特徴です。


パーミッションチェックにはこのアプリがオススメ!

パーミッションのチェックにはS2 Permission CheckerとtSpyCheckerという2つのアプリがオススメですよ♪♪


S2 Permission Checker




tSpy Checker




怪しいパーミッションのアプリ、どう対応したらいい?

…実際にココが一番悩ましいところですが、メモ帳とか歌詞検索とか、他のアプリで代用が効いちゃうようなアプリに関しては今の怪しいアプリを一旦アンインストールしてそれに乗り換えてしまうのが一番安全な方法です。

…でも、例えばもうそのアプリじゃないと出来ないようなコト…特にカメラアプリとかに多いのですが、そういうモノをどうやって安全に運用するか…みたいな方法をまとめたのが下の図です。





…っていう感じで、文章でもうちょっと詳しく説明してみると…


App Shield(有料:250円)で権限をフィルタリング

こちらのご紹介を頂いてましたまささん本当に本当にありがとうございました♪♪

…一応、有料アプリで250円(1ダウンロードに付き)でApp Shield…っていうアプリがあって、これで怪しいアプリが要求してる変な権限をフィルタリングして使えなくしてしまう方法があります。

これによってアプリは電話帳を盗みたい…のだけどそれが封殺されてしまってるので盗めないようになります。


逆アセンブルでプログラムをハック

今私が勉強中なのがこちらの方法で、プログラムそのものをユーザー側でハッキングしてしまって、権限要求そのものを「全く無かったコト」にしてしまう方法です。

上のApp Shieldと違うのは、App Shieldだとフィルタリングをかけてるだけなので、プログラムそのものは権限を要求し続けます。

そのため万が一…って言うコトもありえるのですがこちらの方法だとプログラムそのものを書き換えてしまうので、アプリは元からその権限があったことすら知らない状態になります。

…でもこちらの方法にもデメリットがあって、まず一つがライセンス違反になること、もう一つはこれをしたことでそのプログラムはアップデート不可になります。

アップデート自体は出来ますが、アップデートされるたびにまたハックし直さないといけない状態になりますorz

こちらについてはまだ私も勉強中で不完全にしか出来てませんので、ちゃんとした形になりましたら特集を組ませて頂きたいと思います♪♪


S2 Permission Checkerを入れよう!

…っていうコトでココから実際にS2 Permission Checkerをインストールして使ってみたいと思います♪♪

今回もSO-01C「Xperia Arc」を使っていきますが、他のOSでもアプリの操作自体は全く同じです



























…って言う感じで使っていきます


…おまけでちょっとだけですが、逆アセンブルでどんな感じになるかを載せてみました

アプリ標準インストール直後のパーミッション



逆アセンブル後のパーミッション



…これはちょっと極端な例で取り合えず今は危険そうな権限を全部取り払ったのですが、今度はプログラムの挙動自体が怪しくなってしまいましたので、まだまだ改良の余地がありそうです…orz


ウィルスに対して使えるのがセキュリティーの老舗「Lookout」

ココまではマルウェアを中心にお伝えしてみましたが、ウィルスに対してもある程度防御ラインを張っておく必要はもちろんあったりしてて、そこに使えるのがセキュリティーソフトの老舗「Lookout」です





LookoutはAndroid関係のセキュリティー記事でよく目にしますが、そのくらいウィルスに対して使えるアプリを出してくれています。

Lookout FreeとLookout Premiumの2種類があって、インストールする時には無料で使うにもLookout Premiumuがオススメです。

Lookout Premiumは一定日数がたっても購入しない場合には勝手に機能限定の無料版(ウィルス対策だけならこれで十分機能します)として使い続けるコトができますので、取り合えずこれを入れておけば大丈夫かな…って思います

操作や説明は全部英語ですが、中学卒業くらいの英文法 + Weblio英和辞典サイトで大体読めるようになってますので多分大丈夫…なはず…ですorz


PCと同じだと考えてAndroidを見ていきましょうorz

…っていうコトでココまでセキュリティーを簡単に追ってきましたが、実際に色々な対策をしてたり、逆アセンブルとかをしてると本当にPCと同じね…って思いました

特に人気が出てくるとセキュリティーの一番弱いところを突かれてしまうのはPC用OSの今までを見てても本当に痛感してますので、私達もそれなりに防御方法を考えておかないといけなさそうですねorz


関係がありそうな他の記事…

Docomo SO-01C「Xperia Arc」に関係するブログ内リンク★

Xperia Arcの記事も膨れ上がりそうですので、こちらで一括ターミナルしてます