■Androidでの個人情報漏えい対策3(TaintDroidその後)

 以前以下の記事で紹介した、Androidで通信している内容をダンプしてチェックし不正な通信をするアプリを特定することを可能にするTaintDroidだが、今年の8/30に更新されておりAndroid2.3.4に対応したソースコードも公開されていた。

 Androidでの個人情報漏えい対策2(TaintDroid)
 http://blog.isnext.net/issy/archives/429

 公開された記事ではNexusOneとNexusS向けのTaintDroid入りカスタムROMの作成方法が紹介されており、実際に試してみることができるように配慮されている。(紹介されているのはLinuxでの作成手順と思われる)

 TaintDroid
 http://appanalysis.org/index.html
 http://appanalysis.org/download.html

 TaintDroidはカスタムKernelと通知用のアプリTaintDroid UIの2つから構成されることになり、Ext2でフォーマットされたMicroSDにダンプデータを書き出せるようになっているようだ。これを使うことで、従来難しかった3G通信時に端末が行っているインターネット通信をtcpdumpレベルでキャプチャして確認することができるようになる。実際にマルウェア等の発見で利用されたこともあるようだ。

 この手順に従った実際のカスタムROM作成の再現はいずれ別記事にするとして、ここまで情報が公開されているので、TaintDroidが搭載されているカスタムROMがリリースされているのではないかとXDA等を検索して確認してみたが、TaintDroidを使っていることを明示しているものは見つけることができなかった。LeeDroid向け等いくらかTaintDroidを搭載して欲しいという要望は見かけるのだが、カスタムROMの作者には今のところヒットしていないようだ。

 しかし、1つだけ少し前のバージョンではあるがOptionでTaintDroidに対応しているツールを発見することができた。なんと2010年の10月の時点で、Galaxy S向けのUniversal Lagfixでtweak karnelとしてTaintDroidを導入することが可能になっていた。

 [KERNEL][101111] Universal lagfix [EXT4,JFS] and tweak kernel [BLN2.2] {0.3}
 http://forum.xda-developers.com/showthread.php?p=8760115

 GalaxyシリーズのModに詳しいGagdet is not Gadget.さんの同lagfixの紹介記事「[Galaxy S] 複数のLagFixに対応したUniversal lagfix」でも触れられていなかったので当時全く気付いていなかった。(同blogには個人的に読者としてGalaxyTabのMod情報で大変お世話になっています。ありがとうございます。)Galaxy Sのユーザなら比較的簡単にTaintDroidを利用できる可能性があるので、試してみてもいいかもしれない。

 より具体的なカスタムROM実装方法が公開されたことで今後のカスタムROMで対応してくるものが増え、必要なチェックが容易にできるようになることを期待したい。WhisperCoreにはぜひ取り込んで欲しい機能だと思う。個人的にもTaintDroid ROMを手順に沿ってビルドしてみようと思うが、インストールできる環境が限定されているので、WhisperCore含めた継続的な実験のためにもNexusシリーズを追加入手したいところではある。リソースの検討をしつつ近いうちに記事にできるようにしたい。

, ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

■NexusOneにWhisperCoreをインストールしたメモ
 以前にAndroidでの個人情報漏えい対策(DroidWall)の記事に「WindowsのZoneAlarmやMacOSXのLittle Snitchのように、通信時にアラームをあげてくれるタイプの製品が登場することを期待したい」と書いたのだが、その通りのパーソナルファイアウォール実装がWhisperMonitorとしてリリースされたので試してみたメモ。

 WhisperCore
 http://www.whispersys.com/whispercore.html
 WhisperCore 0.4アップデートメモ
 http://blog.isnext.net/issy/archives/1173
 WhisperCore 0.5アップデートメモ
 http://blog.isnext.net/issy/archives/1272

■WhisperCoreをインストールする
 WhisperMonitorはWhisper SystemsからWhisperCoreというカスタムROMに含まれるアプリとして提供されているため、以下のページからNexusOne用のインストーラをダウンロードして端末にカスタムROMとしてインストールを行う。(カスタムROMをインストールしたことない人、ROM Manager以外で標準ROMに戻す方法を知らない人はインストールしない方が賢明です、きっと。)

 WhisperMonitor説明
 http://www.whispersys.com/whispermonitor.html
 WhisperCoreインストーラダウンロード
 http://www.whispersys.com/whispercore.html

 今回はMacOSX版をダウンロードして実験。CyanogenMod 7.0.2.1がインストール済み(oem unlock済み、root化済み、CWM Recovery導入済み)のNexusOneを書き換え。Whisper Core Installerは端末のoem unlockを実行するので、保証を無くしたくない人は実行してはいけない(現時点でWhisperCoreが対応しているNexusOneやNexusSを使っている人でそういう人は少数だと思うが)。

1)USBデバッグをonの状態でMacにUSB接続する。
2)MacにダウンロードしたWhisper Core Installerを起動する
3)ダイアログに沿って進める
4)完了 とっても簡単w
5)端末の起動時にパスフレーズを設定する(毎回起動時に入力するため)

 WhisperCoreはセキュリティ強化?したカスタムROMのため、標準で内蔵ストレージが初期化&暗号化される。SDcardの暗号化はオプションとなっていてインストール過程では勝手に暗号化されることはないが、念のためインストール前にROMのバックアップとSDcardに保存されたバックアップデータをPCのストレージに退避させておくことをオススメ。WhisperCoreとして元のROMに戻す機能も用意されていないので、元に戻すためには自分で準備をしておくことが必要になる。

■WhisperCoreのレビュー
 インストール再起動後のアンドロイドバージョンは2.3.3、モデル番号が Full Android on Passion、カーネルバージョン 2.6.35.7-59427-ga04760d-dirty moxie@searching #70、ベースバンドバージョン 32.36.00.28H_4.06.00.12_7、ビルド番号 full_passion-userdebug 2.3.3 WS0.3 eng. moxie.20110502.221518 test-keysとなっている。カスタムROMの内容自体はほぼ標準のAndroid2.3.xでレスポンスも悪くない感じ。アプリケーションとして WhisperCore Updater と WhisperMonitor が独自にインストールされている。また日本語環境にも対応しており、言語設定で日本語に設定することが可能で、日本語入力プログラムとしてオムロンソフトウェア社のJapanese IME Ver.1.3.5が導入されているのですぐに利用が可能。

 インストール直後にはWhisperMonitorはdisableの設定になっているが、アプリを起動してメニューを出してEnableしてあげれば即座に有効になる。その後ブラウザなどを利用するとダイアログが出て、宛先のホスト名 or IPと通信ポートが表示され、どのように許可を出すのか求められるようになる。許可の方法は以下の2つの項目の組み合わせ。
 1)宛先
 ・ホストとポートをセットで限定した許可(To this address and port)
 ・ホストのみ限定した許可(To this address)
 ・ポートのみ限定した許可(To this port)
 ・限定なしで許可(Anywhere)
 2)許可期間
 ・一度だけ許可(Once)
 ・再起動するまで許可(Until reboot)
 ・常に許可(Always)
サンプルで許可(Allow)前提で書いているが、もちろん拒否(Deny)することも可能。条件を選んで許可か拒否のいずれかを選ぶことになる。ダイアログ上はアクセスしようとしているアプリ名 or システム名が宛先とポート番号とセットで提示されるので表示項目としては必要最低限ではないかと思われる。実際のところIPアドレスで表示される場合も多くどこが所有しているアドレスなのかわからないので微妙だなぁと思う。ある程度判断材料を提示しようとするならIP表示の場合は可能な限りwhoisなどで所有者まで表示してほしいと思う。

 一度設定した許可/拒否の条件は、WhisperMonitorアプリのFilter Rulrsタブでアプリ単位に確認できる。アプリをクリックすると設定された条件がリストされるので、変更したい条件を長押しするとPOPメニューからルールの削除やテンポラリ化ができる。アプリ毎の許可条件をわかりやすく確認できるのでこれは嬉しい。表示される条件は許可/拒否共に、再起動するまで or 常に の条件に設定されているもののみで、一度だけのものは表示されないので注意。Connection Historyタブには一度だけ条件も含めて許可/拒否した履歴がアプリのアイコンと共にリストされるため確認には非常に便利になっている。

 実際にこれらを使用してみると、如何にアプリがたくさんのアクセスをバックグラウンドでしようとしているか(広告表示のアクセスを含め)実感することができる。残念ながらこちらで記事にしていたTaintDroidのように通信パケットの内容までは表示してくれないのだが、いずれそうした中身も確認&フィルタリングできるようになってくれると嬉しいなぁと思う。久しぶりにTaintDroidもその後をさらりと調べてみたが、まだ実装したROMについての言及は無いようで見つけることはできなかった。ディスカッションフォーラムもあまり活気無くやや残念な感じ。どこかでひっそり着々と開発実装が進んでいることを期待したい。

 とりあえずまだ改善の余地はあるものの、アプリ単位宛先単位で通信が制御できるようになるこの実装は非常に素晴らしい試みであると思われる。

■WhisperCoreのroot
 仕組み的にrootが有効になっていないと実現できないはずと思ったので、WhisperCoreのroot状況について確認してみた。MacのTerminalからadb shellで接続してsuしてみると、実にあっさりとrootになることができた。これはフォントの入れ替えもできるかな?と思い、日本語フォントの入れ替え手順を実行してみると、SDCardにインストールされたbusyboxを使って当然のように入れ替え可能。フォント自体は端末再起動しないとちゃんと反映されなかったが、adb shellからはroot権限でいろいろ実行することが可能。

 じゃあ要rootアプリはどうだろうと言うことでROM Managerをインストールしてみたところ、「特権コマンドを実行中にエラーが発生しました」ということでやはりNG。superuserアプリをインストールすればいいかな?と思ったが、インストール後、suのupdateインストールまでは再起動込みでなんとかできたところ、ROM Managerからはやはりエラーになりroot権限が利用できない状況は変わらず…。これについてはまた時間のある時に確認したい。

 とりあえずコマンドラインではrootでいろいろできそうなので、しばらくこの環境上で常用するアプリの動作など試してみようと思う。TaintDroidも言及していたが、こうしたレベルのセキュリティを実装するためにはAndroidではカスタムROMという手法を取らざるを得ないというのが残念に思う。むしろAndroidに標準で組み込んで欲しい機能だと思うだが…携帯として利用するエンドユーザ層を考えるといろんな意味で標準で搭載というのは難しいんだろうなぁ…と思ってしまう。せめて標準の範囲内で利用可否の選択肢を提供してもらえるといいんだが…iOSとの差別化の観点からも実現してもらいたいと切に願う。

, , , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (1 投票, 平均値/最大値: 5.00 / 5)
Loading...

■Androidでの個人情報漏えい対策2(TaintDroid)
 前回の漏えい対策記事でDroidWallを発展させたパーソナルファイアウォールが望まれるという内容を紹介したが、今回はAndroidが送信している情報をチェックできる方法が提供され始めるようなので、紹介しておく。前回の記事は以下。

 Androidでの個人情報漏えい対策(DroidWall)
 http://blog.isnext.net/issy/archives/339

■Androidの通信をダンプ可能なTaintDroid
 コンテンツファイアウォールを制作するための基礎技術となる通信のダンプだが、これまでのところそれを可能にしユーザに見やすくする方法が提供されていなかったようだ。今回公表されたTaintDroidはAndroidアプリが行った通信をチェックし通知バーからその内容を確認できる手段を提供する。具体的な動作は以下のページのDemo動画で確認できる。

 TaintDroid
 http://appanalysis.org/index.html
 http://appanalysis.org/demo/index.html

 通信内容にIMEIや個人情報が含まれているかどうか目視で確認できるので、非常にわかりやすい。これを導入すれば新しいアプリを導入した際に、起動時等に行われた通信をチェックし不正な振る舞いがされていないか、ある程度の知識があれば確認することが可能になる。もちろん、これをベースにより個人情報を発見しやすくしたり、フィルターやマスクを行うセキュリティアプリケーションの開発登場も期待できると思われる。

 残念ながらこのTanitDroidは単体アプリとしては提供されず(Androidの動作上の制限のため)、TaintDroidを組み込んだカスタムROMの形で提供されることになるらしい。TaintDroidは近くソースコードが公開されるということなので、CyanogenModなどの有名どころが採用する可能性は高いと思われる。できればこのような仕組みはiPhoneとの差別化という観点からもAndroidの標準機能として実装し、セキュリティ懸念への対策として有効に活用できるようにしてもらいたい。TaintDroidはAndroidのユーザがセキュリティ意識を大きく向上させうるかもしれない期待に満ちた実装だと思うので、ぜひ今後の動向に注目したい。

, ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...