2013.01.22

Androidセキュリティ

Android セキュリティ勉強会 に行ってきた。
勉強会自体、久しぶりかも。

Android アプリのセキュア設計・セキュアコーディングガイド
http://www.jssec.org/dl/android_securecoding.pdf

を作っている方のお話。

知ってる話が多かったけど、Android アプリから遠ざかっていたので、
なんというか、懐かしい感じがした。

再開しよう。

そしてもうちょっと詳しくなったら、ボランティアとか参加しよう。


Posted 2013.01.22, 00:07 by mera and filed in Android
Androidセキュリティ はコメントを受け付けていません
2012.04.28

第2回 Androidテスト祭り

第2回 Androidテスト祭り に行ってきた。
Android テスト部のは内容がしっかりしてて好きだ。

「Androidのセキュリティと品質保証の問題について」 (谷口 岳/タオソフトウェア株式会社)

『Android Security 安全なアプリケーションを作成するために』 の著者による、セキュリティについての講演。

本を読んであったので、その復習といった感じになったが、
全然内容を知らない人にとっては、ついていけない内容だったのではないだろうか。

というくらい、本同様にプログラマー目線の細かい話。
(この設定を忘れるとこういうセキュリティホールができるとか)

ユーザとベンダで生討論!みんなでつくる「受入れテストガイドライン」

発注側(電通の方々)と受注側(Androidテスト部)、という感じで、
違う立場の人が何を考えて何を気にしているのかを紹介しようというセッション。

プログラマーとかテスターとか、そういう技術者は、機能や技術の目線で話す。
でも、電通さんはクライアントに夢を売る商売であって、夢について合意が取れたら、実現手段を探す。
そしてクライアントの要望も、言語化できない雰囲気やイメージが重要である場合がほとんど。

電通さんの話で印象的だったのは、クライアントとの言語化できていない要望を言語化したいということ。
例えばフィギュアとか体操とか、スポーツでも芸術点のような要素はあって、その採点基準はあるはずだし、
フランスで芸術が盛んなのも批評家がたくさんいて、批評するための言語があるかららしい。

だから、ソフトウェアやサービスについても、言語化できないはずはないんだけどなーって。
もしそれができれば、なんとなくイメージ違うんだよねーって却下になることもなくなるはずということだ。

今回は問題の投げかけだけだったが、興味深い話だった。

CI導入ライブ-jenkins ci server

Jenkins で Android の自動テストをどうやればいいかってのを、デモを交えて。

Jenkins はソースコードのチェックアウト、ビルド、テスト実行、レポートという一連の流れを実行するアプリ。
うちの会社でも使っているから、内容はわかりやすかった。

エミュレータ上でのテストだけでなく、実機のテストもできるらしい。


と、ここまで来て、寒さがヤバくなってきたのでおしまい。
今風邪をひくわけにはいかんのだ。

1つ目のセッションから冷風は吹いてて周りの人も寒そうにしてたけど、
エアコンは見当たらなかったような・・・。


Posted 2012.04.28, 19:35 by mera and filed in Android, 勉強会
第2回 Androidテスト祭り はコメントを受け付けていません
2012.03.24

Android Bazaar and Conference 2012 Spring

Android Bazaar and Conference 2012 Spring

Android のカンファレンス@東大に行ってきた。

雨のせいなのか、回を重ねてきたせいなのか、よりもさらに活気がなくなった気がする。
ツールやフレームワークの紹介や、ノウハウの話が多かったのかな。

今回はアカデミートラックがなかったので、転々とするかなーと思ったが、
結果、大半を安田講堂(メイン会場)で過ごしていた。

○ 変貌するWebの世界 — クラウドとクラウド・デバイスのインパクト (丸山 不二夫/日本Androidの会 会長)

スマートフォンが普及するに従って、データ量が爆発していて、docomoもKDDIも回線がパンクしたりしていた。
Android 4.0で改善されるということだが、Android は iPhone より制御信号が多いらしい。
パケット自体をたくさん送れるように設備を増強したけど、制御信号用の設備を増強しなかったのが問題らしい。

という話が印象的だった。
アプリケーションを開発していて、見えていない影響範囲って怖いものである。

○ クラウド2.0 — 情報プラットフォームの構築に向けて (谷脇 康彦/総務省)

日本のネットインフラは世界で見ても整っているが、行政サービスは世界で見ても20位以下。
大震災のときの津波でバックアップのない書類が流されたり、
医療カルテや薬の手帳などが流されたりして、どうしようもできなかった。

全国共通のインフラにして個別で開発するのをやめれば管理コストも下がるし、
リスクを分散できるかもしれないなーっていうような話だったと思う。

○ スマートフォン時代における新たな広告収益戦略 (坂本達夫/グーグル株式会社)

AdMobというスマホ向けの広告サービスの紹介。

97%のユーザーが無料アプリを使っているのに対し、有料アプリを使っているのは48%。
そして平均で持っているアプリの数は、無料アプリが27.7本、有料アプリが4.8本。

ということで、有料アプリを買ってもらって稼ごうと考えるよりも、
無料アプリにして、広告やアプリ内課金で稼ぐことを考えるほうがいいケースが多いとのこと。

Google の広告サービス AdMob は、
・ 世界約200ヶ国でその国に合った広告が出る
・ 多彩なフォーマット
・ 自社広告機能、空き枠バックフィル(スマホ用の広告が少ないときはPC向け広告も出す)、カスタム検索広告、Ad Network Mediation(いくつかの広告サービスを混ぜて使える)
というのが売り。

広告で収益を得るためには、
1. 広告モデルを前提としたUI設計にすること (途中でムリヤリ広告を入れないようにする、ユーザーの操作の邪魔をしない)
2. ユーザーのアクティブ度を重視したKPIを考えること (アクティブユーザー数、アクセス頻度、滞在時間、継続率)
3. 製品ライフサイクルを意識した継続戦略 (既存アプリに新アプリの自社広告を出してユーザーを移す、とか)
といったことを考えるといいらしい。

○ スマホアプリの利用者情報送信における同意確認のあり方 (高木浩光/産業技術総合研究所)

個人情報の取り扱いなどを考えるWGにて、事業者から、
・ 何でもオプトインにするのはおかしい (オプトイン=事前承諾を得る方式)
・ 端末IDは必要だから使ってるんだ
という話が出てるらしく、落とし所を見つけるためにあれこれ考察した話。

何でもオプトインすればいいわけじゃなくて、どのデータをどのように利用するから同意してくれ、とわかりやすく提示すべき。
Android はアプリのインストール時に、使用するパーミッションを見てユーザーがOKするモデルだが、
それだとパーミッションが何に使われるのかわからないため、OKしたからといって、実際の使われ方に同意したわけではない。

ただ 『現在地検出アプリ』というアプリだったら位置情報を取得するのは明らかなので、いちいち同意を求めなくてもいいだろう、とのこと。
また、サービス実現のために必要最小限の技術を使うべきであって、ついでに個人情報を取得して儲けようというのはダメ。
同意を求める事項に嘘があったりすると法律違反にもなる。

端末IDの話は、技術的に使わなくてもいいはずなのに、ガラケー時代のアプリ開発手法でそのまま使っているケースがあるとのこと。
スマホはWifi接続ができるので、端末IDで認証できる範囲というのはあまりなく、実際には別の方法でいいはず。

だが、いろんなアプリで共通のIDを使いたいという要望があったとしたら、今は実現する方法がないとのこと。
(第三者Cookieみたいなものを使えばいいけど、それは一般的に望ましくない)

○ 「今までのトークセッションを覆す」ソーシャルやってるエンジニアの座談会 (梶原 大輔/グリー株式会社、山口 徹/株式会社ディー・エヌ・エー、田中 洋一郎/株式会社ミクシィ)

いろんなデバイスがあるよねーって話をしてたが、これといったテーマが見えず、途中から寝てしまった。

○ 知って得するHTML5とJavaScriptでネイティブアプリ開発、最新動向 (安田 陽、熊澤祐紀/株式会社レキサス)

シリコンバレーに行ったときに HTML5 と JavaScript が流行ってたよって話と、appMobi{!} というアプリの紹介。

appMobi{!} は、Chrome上で Android/iOS アプリの開発ができる開発環境。
これでアプリを作ると、高速化エンジン付きWebブラウザとHTML5, JavaScript, CSS を1つにまとめたパッケージができる。
Webブラウザ部分がAndroid/iOSの違いを吸収してくれる。

エミュレータがあり、実機でのテストができ、カメラやGPSセンサーにもアクセスでき、HTML5の弱点を補うアクセラレータが入ってる。
あと、ワンタッチ決済ツールも入っている。
その辺が PhoneGap, Titanium という他のクロスプラットフォーム開発環境と違うらしい。

常駐アプリみたいな複雑なものはできないが、ブラウザ上で動くようなアプリであれば作ることができるとのこと。

○ 無料オンラインメディアと紙メディアの違い:収益性、記事の方向性の違い 広告にしか頼れないオンラインメディアに信頼性はあるか? (一条真人/ITmedia オルタナティブブログ他)

紙の記事は企画に時間をかけるけど、オンラインメディアだとスピード競争だから内容が薄くなりがち。
また、オンラインメディアは広告収入に頼ってる部分があるので、広告主によって内容に影響が出るので公平じゃないこともある。

というような話を、資料も映像もなく、ラジオのように淡々と。
喉が痛かったこともあり、途中退出。

以上。

今日思ったことは、やっぱり自分でアプリを作る側の人間になろう、ということ。

今年の目標だ。


Posted 2012.03.24, 20:29 by mera and filed in Android, 勉強会
Android Bazaar and Conference 2012 Spring はコメントを受け付けていません
2011.12.19

Error: Android SDK tools upgrade to rev16: A folder failed to be moved.

またアップデートしてみたらエラーになった。
でも今度はアップデートしたら使えなくなったんじゃなくて、
アップデートができないので、まだマシかも。

エラーメッセージ曰く、アンチウィルスソフトが
C:\android-sdk\tools ディレクトリを使ってるかもしれないから止めろって。
でも、マカフィーの止められるプロセスを止めたところで変化なく、そういう問題ではないらしい。

toolsディレクトリの権限とか確認して、全部OKにしてみたけど、変わらなかった。

ググってみたら、やっぱりこのサイト。
前も解決策はこのサイトだったような気がする。

Can’t upgrade to Android SDK Tools, revision 16

1つ目の案は tools ディレクトリの名前を先に変えておいて、インストールし直し。
2つ目の案は Eclipse のバージョンが合ってないんじゃ?ということだが、こちらは該当しない。

というわけで、1つ目のほうを採用。

tools ディレクトリの名前を変えて、cmd.exe から
> cd :\C\android-sdk\tools2
> android.bat update sdk
を実行し、最初っから全部インストールしなおしたのであった。

無事に Android SDK Tools Rev.16 がインストールされた。


Posted 2011.12.19, 23:06 by mera and filed in Android
Error: Android SDK tools upgrade to rev16: A folder failed to be moved. はコメントを受け付けていません
2011.11.04

Androidアプリのコンパイルエラー: resources.ap_ does not exist

Eclipseを起動したらUpdateって出てきたので、そのままモジュールを更新した。
そしたら、アプリをコンパイルできなくなった・・・

Error generating final archive: java.io.FileNotFoundException: D:\workspaces\~\bin\resources.ap_ does not exist

Android Development Tools を v15.0.0 に更新したせいだと思われる。

Android SDK Manager のほうを更新してないから?と思って、更新してみたがダメ。

ググったら、2月くらいの記事で、[Project]→[Clean] すれば直ると書いてあったので試してみたが、ダメ。

で、すっごい探して、やっと効果がある方法を見つけた!
この記事→ Installed Android 4.0 now cannot run project – missing resources.ap_

Eclipse の [Window]→[Preferences]→[Android]→[Build] で、
中段の [Build Output] のラジオボタンを [Verbose] から [Normal] に変更すること。

やってみたら、ちゃんとコンパイルできて、実行できたー!!

いろいろ更新してる間にUSBドライバとか更新しちゃったから心配だったけど、無事に転送できてよかった・・・
あー、3時間くらい使ってしまった。。


Posted 2011.11.04, 01:18 by mera and filed in Android
2011.10.30

GALAXY SII ソフトウェア更新 Android 2.3.3→2.3.5

ボタン1つで更新するわけで、なかなかドキドキ。
電池は10%分くらい使った模様。

プログレスバーが80%を超えたあたりから進みが遅くてドキドキしたが、
問題なく再起動して、ちゃんとバージョンも上がってた。

サウンドON/OFFだったのが、マナーモードON/OFFと逆の意味になっててビックリした。
勝手に設定も反転しててくれたけど。

そうそう、今までバッテリーの減りが早かったのは、
データ通信を常にONにしていたからっぽい。
OFFにしたら、この時間でも半分残ってる。


Posted 2011.10.30, 00:03 by mera and filed in Android
GALAXY SII ソフトウェア更新 Android 2.3.3→2.3.5 はコメントを受け付けていません
2011.07.29

Money

MoneyNote というAndroidアプリを使って、出費をメモしている。

今まではExcel に書いていたのだけど、PCの用途が少なくなってきたので、
そのために起動することになるのは面倒だと思ったので。

キーボードが打ちづらくて1品ずつ記録するのは面倒で、買い物単位でまとめてしまっている。
だから、今までExcel でつけていたのよりは、だいぶ大雑把な記録になってしまっている。

それでも費目ごとの集計ができるのが嬉しい。
Excel につけていたわりに、集計は大雑把にしかしていなかったのだ^^;

というわけで、7月の1ヶ月分の集計が仕上がってきているので、ちょっと嬉しい。

いくつか試したけど、費目の編集ができて、メモをつけられて、CSVダウンロードができて、
それでいてバグってないのは、こいつが最初だった。

集計が積み重なっていくのは楽しそうだから、これからもバグらないでいてほしい。

ちなみに、収入はメモしてない。

収入は毎月変わらないので見ていてつまらないから、今までどおりExcel で管理予定。
出費のほうだけ、月ごとにExcel にコピーしようという目論見。


Posted 2011.07.29, 00:41 by mera and filed in Android
Money はコメントを受け付けていません
2011.07.18

WordPress for Android

先ほど入れたのは、ページ閲覧のほうがタッチパネル向きのデザインになるプラグイン。
投稿画面のほうが普通のページのままだったので使いづらい。

Android アプリで 『WordPress』 というものがあったのでインストール。
これは本家が出しているものだな。

起動すると、新規にBlogアカウントを作るか、作ってあるものを登録するか聞かれる。
私はここを編集するのが目的なので、登録に進む。

Blog URL として、WordPress が入っているトップディレクトリを指定する。
Username と Password はログインするために使ってるやつを使用。
リモート用のアカウントを作ってもよかったけど、まぁいいや。

その前に、WordPress側で [設定] ⇒ [投稿設定] から、
「リモート投稿」の項目で「XML-RPC」を有効にしなければならない。

(してなくてもエラーメッセージにそう書いてくれるので親切^^)

あとはアカウントが合っていれば、OK。
複数のブログを登録できるらしいので、たくさん持ってても1アプリ内で使える。
ないけど。

『コメント』『投稿』『ページ』『統計情報』の4項目があるけど、
主に使うのは『投稿』で、たまに『コメント』かな。


Posted 2011.07.18, 16:51 by mera and filed in Android, WordPress
WordPress for Android はコメントを受け付けていません
2011.07.17

Android Bazaar and Conference 2011 Summer

Android Bazaar and Conference 2011 Summer

Android のカンファレンス@早大に行ってきた。

に行ったやつの第2弾ってことでいいのかな。
暑さのせいかもしれないが、前回よりもお祭りっぽさはなくなっていた。

今度は自分自身もAndroidケータイを持っているし、
Android OS の build をしてみたり、アプリをコンパイルをやってみたりしてあったので、
発表者の言ってることが感覚として理解できて楽しかった。

前はキャリアやメーカーの発表や、ツール紹介、マーケティング系が多かった気がしたが、
今回はちょっとディープな開発の話や、セキュリティの話など興味深いものが多かった。

お祭りっぽさがなくて落ち着いた感じだったのはそういうこともあるのかな。

基調講演は大隈講堂にて、丸山不二夫先生。
最近のAndroidの急激な普及と、
3.11震災時とその後のクラウド環境と開発者たちの活躍、法律の足かせについて。
こうして振り返ってみると、ものすごい頑張ってた人たちがいたのに、自分は何もしてない・・・

お昼に日陰でサンドイッチを食べて、午後からパラレルセッション。

今回はアカデミートラックがあって、興味深いタイトルが多かったので、私の中のメインはそこだ。

Android is NOT just ‘Java on Linux’ (小林 哲之 / (株)京都マイクロコンピュータ)

Android OS とアプリの関係などの詳細について。
Linuxカーネルを使ってるけど、普通のLinuxとは違って、ドライバも特別なものであり、Java向けにしてある。

・ Linuxカーネル以外は、ほとんどがJavaで作られていて、DaemonもJavaらしい。
・ init のライブラリはスタティックリンクになっている。
・ prelink してる(aprioriというコマンド名)。
・ zygote って仕組み(?)で、Dalvik VM, class, library をコピーしていて、
そのときに UID を分けることでサンドボックス化している。
・ Dalvik VM では Java byte code を変換した dex code を実行する。
・ NDK プログラムでも、権限は root じゃない。

Virtual Smartphone:スマートフォン向けシンクライアント技術 (Eric Chen / NTT情報流通プラットフォーム研究所)

アカデミートラックは研究発表なので、懐かしかった。
さすがにこういう場なので、研究途中のものの紹介や、啓蒙活動が多かったかな。

この発表はデモ・話ともおもしろくて、楽しかった。

クラウド上のHypervisorで、Android OSをたくさん起動しておいて、
そこからモバイル端末に画面転送するシンクライアントの話。
センサー情報や入力情報を、サーバー側で受け取って処理するための仕組みを作ったとのこと。

個人情報をモバイル端末側で保存しないという情報漏洩対策がメインの目的だけど、
パワーを要する処理などをサーバー側で行うことで、バッテリー節約などの効果も期待。

オフライン対策や画面キャプチャ対策はまだない。

Android(TM)フォンのセキュリティとKDDIの取り組み (竹森 敬祐 / KDDI研究所)

Androidケータイを au から出すにあたって、どんなセキュリティ対策を取ったかという話。
竹森さんの話を聞いたのは3年ぶりくらい(?)だけど、相変わらず笑わせてくれる。

マルウェアの傾向をつかむために、わざと感染しようと頑張ったけど、
Android Marketからのダウンロードでは感染できなかったらしい。
不適切なアプリが削除されるのが、それだけ早いということ。

基本的にアプリは手動でインストールするものなので、
アプリをインストールする際のパーミッションが正しければだいたい大丈夫。

そのため、au one Market では、事前にセキュリティチェックを行なって、
パーミッションが正しいかどうかと、動作検証をして変な通信先につないでいないか確認している。

また、法人向けには、許可しないアプリをインストールさせないような、
ホワイトリストを作成して管理するような仕組みを作っているとのこと。

開発者が気をつけるべき点は、
・ 知らないモジュールを組み込まないこと
・ 独自にパーミッションを定義するときは名前に気をつけること
だそうだ。

○ MONAC: モバイルP2Pとクラウドを融合するメッセージングシステム (寺西 裕一 / 大阪大学)

MONAC: Messaging over Opportunistic Network And Clouds
P2Pを使って、ネットワークがちゃんと使えない環境でも、通信を成立させる話。

すれ違った端末にメッセージを転送しておいて、とりあえず溜めておいてもらい、
誰かインターネットに繋がる端末がいたら、まとめてUPしてもらう方式。
Epidemic Routing と呼ぶらしい。

これを実装して、実験中とのこと。

3.11の時にもしこれがあれば、帰宅難民の大行列でネットワークが使えたりしたんじゃないか?とか。

○ いま求められる、Androidのセキュリティ ~Androidセキュリティ部の取り組み~ (丹羽直也 / Androidセキュリティ部)

正式な団体じゃないけど、セキュリティに興味を持つ人が集まってるのがセキュリティ部。
私も一応メーリングリストには入っていて、先日まとめて今までの議論を読んだ。
(つまりまだ参加できるレベルではなかった・・・)

部長の丹羽さんって方が高校2年生ということで、どんな人なのか非常に興味深かった。
他にもそういう人が多かったのか、立ち見が何十人もいるくらいの超満員だった。

設立して半年で、まだ活動も徐々に始まってきた感じ。
丹羽さんから経緯の説明があって、あとは違う方2名の話だった。

最初の1名は、MLでも全然出てなかった自分が作ったアプリかなんかの紹介で、
もう1名のほうがMLでも議論されていた Android に AntiVirusソフトは必要か?という話。

基本的には root さえ奪われなければ、インストール時にパーミッションを検証することが大事なので、
そこさえできていればいいんじゃないか?という話だったかな。


というわけで、Android の内部の話と、セキュリティの話だけ聞いてた日。

セキュリティの研究も、Android だからって特殊な事があるわけでもなさそう。
ってことは逆に、今更ちょっと手を出しづらいのかな?と思ってしまった。

でも、今年の目標はその辺を理解して何かすることなので、もっと知識を深めたい。

今も研究職だったら、絶対 Android やってるんだろうなって思う。
モバイルで、組み込み系で、セキュリティで、楽しそう。

だから、会社とか無視して、何かを自力でやりたい。

なかなか充実した日だった。


Posted 2011.07.17, 23:13 by mera and filed in Android, 勉強会
2011.07.12

Android アプリ: パーツを作る

ボタンを作ってみます。

定義を書く

  1. res/values/strings に文字列(Value)を定義し、Nameをつけておく
  2. res/layout/main.xml で、IDとNameを結び付ける
    • プログラム上で使うIDをandroid:id=”@+id/ここにID”に指定する
    • 上で定義した文字列のNameをandroid:text=”@string/ここにName”に指定する
  3. コンパイルすると gen/package/R.java ファイルが更新され、上でつけたIDが使えるようになる

プログラムを書く

  1. findViewByIdメソッドなどでR.javaからIDを呼びだす

    Button button = (Button)findViewById(R.id.ここにID);

  2. 動作をつけるために Listener をセットする

    ClickListener clickListener = new ClickListener();
    button.setOnClickListener(clickListener);

  3. Listener の動作をつける
        class ClickListener implements OnClickListener {
        	public void onClick(View view) {
        		Button button = (Button)view;
        		button.setText("ボタンが押されました");
        	}
        }
    

参考:
Japan Android Group: Top / 勉強会 / ボタンをつくってみよう


Posted 2011.07.12, 07:41 by mera and filed in Android
Android アプリ: パーツを作る はコメントを受け付けていません