名古屋情報セキュリティ勉強会 #2

ずいぶん経ってしまったけど、名古屋情報セキュリティ勉強会 #2に参加してきたので、個人的まとめ。聴きながらメモしたものを起こしたものなので順番とかは入れかわっていると思う。

会場は名古屋大学。大学までは特に問題なく行けたのだけど、建物の中への入りかたがわからずうろうろしてしまった。しかも、au iPhone が圏外 (結局 iPhone の調子が悪かったせいだったが) で困ってしまった。なんとか辿りつけてよかった。

  • 自己紹介タイム

全員順番にまわすのではなくて6人〜8人の小グループでそれぞれ行う形式。時間短縮にもなるし、近くの席の方と知りあえるのはいい感じ。そして、今回は参加者層の厚さを感じさせられた。

AndroidLinuxJava sandbox で構成されている。
アプリのインストール時にユーザにパーミッションの承認が求められ、ユーザが許可したものにアクセスできるようになるが、それぞれのパーミッションの意味合いがわかりにくいこと、開発者が理解しておらず不要なパーミッションを求めるケースがある。これらが情報漏洩につながる原因。また、パーミッションを求めるときにそのパーミッションを必要とする「目的」が記載されていないことも問題。OS がデフォルトで表示するパーミッションの確認だけでなく、アプリ開発者が取得する情報、利用目的、提供範囲などを示し、承認を得るべき。

インターネットへのアクセスや、電話番号の読み取りなどのパーミッションを求めるアプリが急増している。情報収集モジュールの利用が増えていることが一因と思われる。
情報収集モジュールを組み込むと、利用に応じて収入が入仕組み。開発者自身が、情報収集モジュールが何をしているかを理解していないことも問題。

Androidマルウェアは増加しているが、発生数ベースでは PC の 4000分の1。スマートフォンの脅威は、マルウェアよりも情報収集モジュールの誤使用によるもの。

Android ID と起動中のアプリ一覧の取得だけであれば、パーミッション不要。

スマートフォンはパソコンに近く、(フィーチャフォンに比べて)利用できる機能が多い。→悪用されやすい
また、SIMが挿さっており、悪用されたときにリスクが大きい。

しかし、Android では、プログラムが自動的に実行されることはなく、自動実行型のウィルスは存在し得ない。また、メールからの自動実行も不可能で、アプリのインストールには必ずユーザの操作が必要。
キャリアメールからはインストール不可。Gmail からだとインストール画面までいけるが、ユーザがクリックしなければインストールはされない。

情報収集において、何が ID なのかについての明確な基準がない。JIAA の行動ターゲッティングについてのガイドラインが参考になる。

au one マーケットでは、アプリを検証して、問題がなければセキュアマークをつけるという取り組みを行なっている。検証してもらうには 1件 3,150円必要。

Google は最新バージョンにしかパッチを提供していないが、KDDI では独自にパッチ情報をメーカーに提供し、パッチ作成を依頼している。ただし、パッチを作成するのは端末メーカーであり、メーカーによっては対応されないケースもある。Google の対応を待つ、とか。

Android を安全に使うには、安全なマーケットからアプリを入手すること。それ以外の、例えば Web からインストールなどは危険。

アンチウィルスソフトは、アプリケーション領域で動作するため、他のアプリケーションの監視はできない。アンチウィルスソフトを入れても、既にインストールされてしまったマルウェアをどうにかすることはできない。

結論。安全なマーケットを使うのが大事。

モバイル OS 向けのマルウェアは増加傾向。11/4 現在で、4,736個。2011 年上半期だけで 800個も。
種類として一番多いのは SMS trojan と呼ばれるもので、勝手に SMS を送信するとか、届いた SMS を別のところに転送するものとか……。

モバイル OS 向けに提供されているアンチウィルスソフトでは、盗難対策、SPAM 対策、コンテンツフィルタなど、アンチウィルス機能以外にもいろいろな機能を提供している。

Android のアプリはすべてアプリケーション領域で動くもののみ。iOSWindows Phone では API が非公開で、本来の意味でのアンチウィルス作成はできない。URL フィルタとかそういう方向のものになる。

Android のアンチウィルスは一般のアプリケーションであり、他のアプリケーションには干渉できない。→対応に限界がある
Windows のアンチウィルスとは、保護しているものが全く違う。

Android のアンチウィルスでマルウェアを見つけられないわけではないが、仕組み上、見つけられないものがある。インストールしようとする段階でないと検知できない。ダウンロード時の検知は無理。また、電池の問題もあり、常時動かすのは難しい。
一般ユーザの権限で動作しているため、(他のアプリの)許可がなければ他のアプリのデータにはアクセスできない。また、root 権限で動作しているものは駆除できない。そういったものに感染してからアンチウィルスをインストールしても無力。

OS にアンチウィルス用の API を提供してもらうとか、端末ベンダーが最初からアンチウィルスを組み込むようなことをしなければ根本的な対策にはならない。

  • Android アプリの実際 (はるぷさん)

Android には USB デバッグという機能があり、通常はデバッグのための機能だが、アプリの解析にも使える。
設定で有効にすると、USB 接続時にデバッグモードになる。こうなると、SD メモリカードに保存された写真や電話帳のバックアップ、インストールされたアプリなどが抽出できるようになる。
画面キャプチャのために有効にしている人もいるが、大変危険。デバッグするとき以外は無効にしておくこと。

Android アプリは Java ベースなので解析されやすい。ツールを使えば簡単に逆コンパイルできてしまうため、秘匿したい情報はサーバに置くなど、設計時からセキュリティを考慮する必要がある。コードを難読化するツールもあるが、万能ではない。

既存のアプリを改竄してマルウェアを作ることもできる。有料のアプリの海賊版などはそのようなものもあり、危険。

結論。アプリのソースコードを守るのは難しい。秘匿したい情報や処理は端末上に置かないようにする。これは設計段階から取り組まないと難しい。
また、ユーザにアプリの配布場所を周知し、海賊版の被害に遭わないようにしていく必要がある。

  • iOS の審査 (Tworks さん)

Android マーケットには審査がない。キャリアのマーケットには審査がある。

iOS には審査がある。以前はガイドラインなどは公開されていなかったが、現在は 21 項目から成るガイドラインが公開されている。審査により、バグがあるアプリ、悪意をもつアプリを事前に除外できる。また、類似するアプリケーション、無意味なアプリケーションを除外できる。→審査には一定の意義がある

  • 懇親会

まさかここで自己紹介がまわってくるとは!

えーと、The POPFile Core Team のいいむらです。

  • まとめ

Androidマルウェアについて、「あんなことも、こんなこともできてしまう!」というような報道があるが、実際にそのような危険な状態というわけではない。
アプリが自動的にインストールされることはない。
大事なのは、安全なマーケットからアプリを入手すること。Web とか、審査のないマーケットとかから入手するのはとても危険。
Android のアンチウィルスは効果がないわけではないが、感染してからでは意味がない。インストール前の保険としては意味があるが、上記のとおり安全なマーケットを使っていれば大丈夫。
アプリ開発者は情報収集モジュールの動きを理解し、何のために、どんな情報を、どこに対して提供するか、などの情報をユーザに開示し、パーミッションを求めていく必要がある。

今回の勉強会はオフレコ話も多く、質疑応答では意外な展開もあったりして、非常におもしろかった。勉強会の参加者層、ぶ厚すぎる。

最後に、講師の皆様、スタッフの皆様、また参加者の皆様、すばらしい勉強会をありがとうございました。