comments■Androidでの個人情報漏えい対策3(TaintDroidその後)以前以下の記事で紹介した、Androidで通信している内容をダンプしてチェックし不正な通信をするアプリを特定することを可能にするTaintDroidだが、今年の8/30に更新されておりAndroid2.3.4に対応したソースコードも公開されていた。Androidでの個人情報漏えい対策2(TaintDroid)http://blog.isnext.net/issy/archives/429公開された記事ではNexusOneとNexusS向けのTaintDroid入りカスタムROMの作成方法が紹介されており、実際に試してみることができるように配慮されている。UIの2つから構成されることになり、Ext2でフォーマットされたMicroSDにダンプデータを書き出せるようになっているようだ。これを使うことで、従来難しかった3G通信時に端末が行っているインターネット通信をtcpdumpレベルでキャプチャして確認することができるようになる。実際にマルウェア等の発見で利用されたこともあるようだ。この手順に従った実際のカスタムROM作成の再現はいずれ別記事にするとして、ここまで情報が公開されているので、TaintDroidが搭載されているカスタムROMがリリースされているのではないかとXDA等を検索して確認してみたが、TaintDroidを使っていることを明示しているものは見つけることができなかった。LeeDroid向け等いくらかTaintDroidを搭載して欲しいという要望は見かけるのだが、カスタムROMの作者には今のところヒットしていないようだ。1つだけ少し前のバージョンではあるがOptionでTaintDroidに対応しているツールを発見することができた。karnelとしてTaintDroidを導入することが可能になっていた。lagfix」でも触れられていなかったので当時全く気付いていなかった。(同blogには個人的に読者としてGalaxyTabのMod情報で大変お世話になっています。ありがとうございます。Sのユーザなら比較的簡単にTaintDroidを利用できる可能性があるので、試してみてもいいかもしれない。具体的なカスタムROM実装方法が公開されたことで今後のカスタムROMで対応してくるものが増え、必要なチェックが容易にできるようになることを期待したい。WhisperCoreにはぜひ取り込んで欲しい機能だと思う。ROMを手順に沿ってビルドしてみようと思うが、インストールできる環境が限定されているので、WhisperCore含めた継続的な実験のためにもNexusシリーズを追加入手したいところではある。リソースの検討をしつつ近いうちに記事にできるようにしたい。Snitchのように、通信時にアラームをあげてくれるタイプの製品が登場することを期待したい」と書いたのだが、その通りのパーソナルファイアウォール実装がWhisperMonitorとしてリリースされたので試してみたメモ。SystemsからWhisperCoreというカスタムROMに含まれるアプリとして提供されているため、以下のページからNexusOne用のインストーラをダウンロードして端末にカスタムROMとしてインストールを行う。Manager以外で標準ROMに戻す方法を知らない人はインストールしない方が賢明です、きっと。)WhisperMonitor説明http://www.whispersys.com/whispermonitor.htmlWhisperCoreインストーラダウンロードhttp://www.whispersys.com/whispercore.html今回はMacOSX版をダウンロードして実験。Recovery導入済み)のNexusOneを書き換え。unlockを実行するので、保証を無くしたくない人は実行してはいけない(現時点でWhisperCoreが対応しているNexusOneやNexusSを使っている人でそういう人は少数だと思うが)。1)USBデバッグをonの状態でMacにUSB接続する。簡単w5)端末の起動時にパスフレーズを設定する(毎回起動時に入力するため)WhisperCoreはセキュリティ強化?したカスタムROMのため、標準で内蔵ストレージが初期化&暗号化される。SDcardの暗号化はオプションとなっていてインストール過程では勝手に暗号化されることはないが、念のためインストール前にROMのバックアップとSDcardに保存されたバックアップデータをPCのストレージに退避させておくことをオススメ。WhisperCoreとして元のROMに戻す機能も用意されていないので、元に戻すためには自分で準備をしておくことが必要になる。test-keysとなっている。カスタムROMの内容自体はほぼ標準のAndroid2.3.xでレスポンスも悪くない感じ。独自にインストールされている。Ver.1.3.5が導入されているのですぐに利用が可能。インストール直後にはWhisperMonitorはdisableの設定になっているが、アプリを起動してメニューを出してEnableしてあげれば即座に有効になる。IPと通信ポートが表示され、どのように許可を出すのか求められるようになる。許可の方法は以下の2つの項目の組み合わせ。reboot)・常に許可(Always)サンプルで許可(Allow)前提で書いているが、もちろん拒否(Deny)することも可能。条件を選んで許可か拒否のいずれかを選ぶことになる。システム名が宛先とポート番号とセットで提示されるので表示項目としては必要最低限ではないかと思われる。実際のところIPアドレスで表示される場合も多くどこが所有しているアドレスなのかわからないので微妙だなぁと思う。ある程度判断材料を提示しようとするならIP表示の場合は可能な限りwhoisなどで所有者まで表示してほしいと思う。Rulrsタブでアプリ単位に確認できる。アプリをクリックすると設定された条件がリストされるので、変更したい条件を長押しするとPOPメニューからルールの削除やテンポラリ化ができる。アプリ毎の許可条件をわかりやすく確認できるのでこれは嬉しい。条件に設定されているもののみで、一度だけのものは表示されないので注意。Historyタブには一度だけ条件も含めて許可/拒否した履歴がアプリのアイコンと共にリストされるため確認には非常に便利になっている。実際にこれらを使用してみると、如何にアプリがたくさんのアクセスをバックグラウンドでしようとしているか(広告表示のアクセスを含め)実感することができる。残念ながらこちらで記事にしていたTaintDroidのように通信パケットの内容までは表示してくれないのだが、いずれそうした中身も確認&フィルタリングできるようになってくれると嬉しいなぁと思う。久しぶりにTaintDroidもその後をさらりと調べてみたが、まだ実装したROMについての言及は無いようで見つけることはできなかった。ディスカッションフォーラムもあまり活気無くやや残念な感じ。どこかでひっそり着々と開発実装が進んでいることを期待したい。改善の余地はあるものの、アプリ単位宛先単位で通信が制御できるようになるこの実装は非常に素晴らしい試みであると思われる。■WhisperCoreのroot仕組み的にrootが有効になっていないと実現できないはずと思ったので、WhisperCoreのroot状況について確認してみた。shellで接続してsuしてみると、実にあっさりとrootになることができた。これはフォントの入れ替えもできるかな?と思い、日本語フォントの入れ替え手順を実行してみると、SDCardにインストールされたbusyboxを使って当然のように入れ替え可能。shellからはroot権限でいろいろ実行することが可能。Managerをインストールしてみたところ、「特権コマンドを実行中にエラーが発生しました」ということでやはりNG。Managerからはやはりエラーになりroot権限が利用できない状況は変わらず...。これについてはまた時間のある時に確認したい。コマンドラインではrootでいろいろできそうなので、しばらくこの環境上で常用するアプリの動作など試してみようと思う。TaintDroidも言及していたが、こうしたレベルのセキュリティを実装するためにはAndroidではカスタムROMという手法を取らざるを得ないというのが残念に思う。Androidに標準で組み込んで欲しい機能だと思うだが...携帯として利用するエンドユーザ層を考えるといろんな意味で標準で搭載というのは難しいんだろうなぁ...と思ってしまう。標準の範囲内で利用可否の選択肢を提供してもらえるといいんだが...iOSとの差別化の観点からも実現してもらいたいと切に願う。comments■Androidでの個人情報漏えい対策2(TaintDroid)前回の漏えい対策記事でDroidWallを発展させたパーソナルファイアウォールが望まれるという内容を紹介したが、今回はAndroidが送信している情報をチェックできる方法が提供され始めるようなので、紹介しておく。Androidでの個人情報漏えい対策(DroidWall)http://blog.isnext.net/issy/archives/339■Androidの通信をダンプ可能なTaintDroidコンテンツファイアウォールを制作するための基礎技術となる通信のダンプだが、これまでのところそれを可能にしユーザに見やすくする方法が提供されていなかったようだ。今回公表されたTaintDroidはAndroidアプリが行った通信をチェックし通知バーからその内容を確認できる手段を提供する。具体的な動作は以下のページのDemo動画で確認できる。TaintDroidhttp://appanalysis.org/index.htmlhttp://appanalysis.org/demo/index.html通信内容にIMEIや個人情報が含まれているかどうか目視で確認できるので、非常にわかりやすい。これを導入すれば新しいアプリを導入した際に、起動時等に行われた通信をチェックし不正な振る舞いがされていないか、ある程度の知識があれば確認することが可能になる。これをベースにより個人情報を発見しやすくしたり、フィルターやマスクを行うセキュリティアプリケーションの開発登場も期待できると思われる。残念ながらこのTanitDroidは単体アプリとしては提供されず(Androidの動作上の制限のため)、TaintDroidを組み込んだカスタムROMの形で提供されることになるらしい。TaintDroidは近くソースコードが公開されるということなので、CyanogenModなどの有名どころが採用する可能性は高いと思われる。できればこのような仕組みはiPhoneとの差別化という観点からもAndroidの標準機能として実装し、セキュリティ懸念への対策として有効に活用できるようにしてもらいたい。TaintDroidはAndroidのユーザがセキュリティ意識を大きく向上させうるかもしれない期待に満ちた実装だと思うので、ぜひ今後の動向に注目したい。