2014/04/09

【Android】SID,LSID権限とは一体何か調べてみた


もう一ヶ月も前のネタだけれど、MacAfee Blogにて興味深い投稿があった。

中身はとあるアプリがGoogle Playからユーザーによる権限確認を飛ばしてアプリを勝手にインストールできるという内容。

端末内アカウントを取得するための権限を持つアプリ

SID/LSIDの権限へのアクセスをリクエストする
Googleアカウントの「SID」「LSID」という2つの権限をそれぞれAndroidシステムが表示するダイアログ上でユーザーに要求していますが、これらの権限取得によりアプリはユーザーのGoogleアカウント経由でGoogle Playストアを含む種々のGoogleサービスへのアクセスを許可されることになります。
Google Playストアから任意の無料アプリを直接ダウンロードおよびインストールするためのトークンを取得し、実際にアプリの自動インストール処理を開始します。
ユーザーによる許可によって取得したGoogleアカウントの認可トークンと、それを用いて行われるGoogle PlayストアのWebサーバーとの非公式な方法での通信によって実現されています。
MacAfee Blogによると、SID・LSIDへのアクセスを許可すると、”種々のGoogleサービスへのアクセスを許可”することになるそうです。
今回のGoogle Playストアからの非公式ダウンロードはその”種々のGoogleサービスへのアクセスを許可”のうちの1つを利用したのでしょう。実際に悪意のあるアプリにSID・LSIDへのアクセスを許可すると様々な個人情報を抜かれることになりそうです。


気になったのは、SID・LSIDって一体何よ?ということ。以下に想像を交えつつ調べたことをまとめてみました。

1.SID・LSIDへのアクセスを要求するアプリ

パッとこれだけ見つかりました。
ブラウザアプリが2つと、Playストアで購入した有料アプリをリスト表示してくれるアプリです。

ダブルブラウザPlusの説明に拠ると、
※本アプリケーション起動時に、Googleアカウントにアクセスすることを許可頂く「SID」、「LSID」への権限リクエスト画面が表示されます。これにより、プリインストールされているブラウザのBookmarkを本アプリでも引き継いで利用可能にします。
ということなので、やはりSID・LSIDへのアクセスを許可すると、Googleアカウントの様々な情報にアクセスできるようになるようです。

2.Google Developersを漁ってみる

Google Developersで”SID LSID”を検索すると、Googleサービスの各種APIへの認証(ClientLogin)のページがいくつか引っかかりました。


難しいことはわかりませんが、アプリがGoogleアカウント認証に成功するとサーバーから以下のレスポンス(上図だと7.かな?)があるようです。
HTTP/1.0 200 OK
Server: GFE/1.3
Content-Type: text/plain

SID=DQAAAGgA...7Zg8CTN
LSID=DQAAAGsA...lk8BBbG
Auth=DQAAAGgA...dk3fA5N
SIDとLSIDが出てきましたね。さらに、SID・LSIDについては別ページに、
The SID is the session ID valid for the life of the session. The LSID is for APIs not using the Google Data protocol.
という説明があり、
  • SID:セッションID(参照:セッションIDとは - IT用語辞典)
  • LSID:Google Data protocolを使用しないAPIのためのもの
ということがわかります。
この認証ID(SID・LSID)を利用することで、GoogleサービスのAPIを利用して様々なアカウントデータにアクセスできるようになるようです。

3.SID・LSIDへのアクセス許可ってやばくない?

許可するだけで様々なアカウントデータにアクセスできるというのはかなりヤバイと思います。そもそもSID・LSIDって何のことかパッと見わからないですし、まさか許可するとアカウントデータにアクセスし放題とは思わないでしょう。

実は、ClientLoginは既にサービス終了が告知されており、2015年4月20日以降利用できなくなります。

ClientLoginの代わりの認証手段として”Oauth 2.0”が用意されていて、Google Play開発者サービスにより全てのAndroidアプリはOauth 2.0を利用可能になっています。
Oauth認証により、Googleアカウント内のどのデータにアクセス権を与えるか明示されるようになるので、SID・LSIDのように”何の権限を与えているかまったくわからない\(^o^)/”という状況を防ぐことが可能になります。

要求する権限が明示され、許可するか選択できます
iOS and Mac Sign-In Controllers graduate to OAuth 2.0(Official Google Mac Blog)より


ClientLogin終了まで後約1年。
SID・LSIDを狙う悪意のあるアプリの被害がこれ以上出ることが無いよう、他の優良アプリは一刻も早くOauth 2.0に移行してくれるといいなぁと思います。


 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates
Related Posts Plugin for WordPress, Blogger...