最新Androidアプリの脆弱性事情と危険アプリの実例
本セッションのスピーカー奥山氏が所属するソニーデジタルネットワークアプリケーションズ(SDNA)は、VAIOのソフト部門が独立してできたソフト専門子会社だ。ソニーグループの中では、比較的早い段階からソフトウェアセキュリティに関わる業務をしている。
セッション冒頭、奥山氏は会場に「Androidアプリは安全という印象を持っている人はいますか?」と問いかけたが、手を挙げた人はほとんどいなかった。実態はどうだろうか。
SDNAは2015年、Androidアプリの脆弱性の実態調査を行い、その結果を「Android アプリ脆弱性調査レポート 2015年12月版」にまとめた。マーケットプレイスで公開されている各カテゴリのダウンロード数上位500以上、かつ1000ダウンロード以上のアプリ、11686件が調査対象だ。
その結果、脆弱性リスクのあるアプリの割合は何と93%に達していた。前回調査が行われた2013年は96%より若干改善されているため、一部の先進的な開発者がセキュリティに取り組み始めたと思われる。
アクセス制御といわれる類の脆弱性のリスクに絞ると、2013年のデータでは88%のアプリにあったが、2015年には59%まで減少し、かなり改善している。それでも、まだ半分以上のアプリにリスクがあるという事実は変わらない。
ではアクセス制御の脆弱性があると、どういう問題があるのか。奥山氏が紹介したのは「勝手にツイートされてしまうTwitterアプリ」だ。同じ端末に悪さをするアプリがあり、このTwitterアプリに「この端末に入っている画像をツイートして」というメッセージを出すと、このアプリは何もチェックせずにそのままツイートしてしまう、ということが実際に起きた。プライベートな情報の流出につながる脆弱性だ。
原因は、画像アップロード用のActivityが、他のアプリからアクセス可能な状態になっていたことにある。そのため、他のアプリからその機能を勝手に利用することができてしまったのである。
通信内容の暗号化・改ざん検知を行うHTTPS通信の利用状況はどうか。インターネット通信機能を持つアプリのうち、2013年は72%から2015年は88%と、約9割のアプリがHTTPS通信を行っているということが分かった。
しかし奥山氏は「安易なHTTPS実装に起因した脆弱性も存在する。実際、暗号通信が解読・改ざんされるリスクの割合が39%から43%に増加している」と警鐘を鳴らす。
HTTPSの実装の不備があった事例として「通信内容を盗み見られてしまうECサイトアプリ」が紹介された。ECサイトアプリという体で作られてはいるものの、実際はWebViewを使い、普通のPCブラウザでアクセスするのと同じような作りだった。そのため通信内容が盗聴可能で、クレジットカード情報やログインID、パスワードが流出してしまった。
その原因は、すべての通信が攻撃者のPC経由になるよう仕向けられたWi-Fiアクセスポイントが仕掛けられていたことにある。ただ、HTTPS通信のリスクに正しく対応していれば、サーバ証明書の検証で正規の通信ではないことが分かり、そこで遮断することができる。ところがHTTPS自身はエラーだと分かって警告しているのだが、このアプリはそのエラーを無視してしまい、通信を継続してしまった。結果的に重要情報を盗まれてしまった。
そのほかの傾向として奥山氏が注目しているのが暗号技術だ。米国政府も日本政府も、電子政府推奨暗号リストを公開している。それより強度が弱い暗号の使用は止めようということだが、現実は62%のアプリが脆弱な暗号技術を利用している。
そのほかにも、Google自身がセキュリティ上の問題から非推奨としているMODE_WORLD_X機能を使っているアプリが2015年時点でも22%残っている。Android開発元からの情報発信をキャッチできていないベンダーが、まだ存在することに注意が必要だ。
以上のように、Androidアプリのセキュリティ対策が未だ不十分な中で、奥山氏が注目しているのはダウンロード数別の脆弱性リスク傾向だ。グラフで見ると、人気(ダウンロード数)が出るにつれて脆弱性リスクが高まっている。それは、人気に合わせて機能が追加された結果と想像できる。
面白いのはその先で、約1000万ダウンロードをしきい値に、そこを越えると減っていく。つまり脆弱性対策をするようになるという傾向がある。「ダウンロードが増えると儲かるようになる。するとセキュリティ対策をそろそろしないと何かあったとき問題だ、という認識になるのでは」と奥山氏は推察する。
2013年にはこのような傾向は無く、どのアプリにも満遍なく脆弱性があった。つまりこの2年で、モバイルアプリのセキュリティ対策も進んできたと思われる。とはいえ、未だ大半のアプリが不十分という事実を認識しなければならない。