2012-08-14
Lifehackerで紹介されていたChrome拡張機能「TabMemFree」は要注意
結論
「TabMemFree」は開きっぱなしのタブのタイトルとfaviconのURLを作者サーバに送っている(本来不要)。
気になった経緯
Lifehackerで「TabMemFree」が紹介されていました。はてなブックマークの新着か人気エントリにも上がっていたはず。
使っていないタブの読み込みを停止してメモリー使用量を削減してくれる「TabMemFree」
開いたままのChromeタブは、相当な量のRAMを使用します。タブを使っていない時にもRAM使用量は多いままです。「TabMemFree」は、一定時間が過ぎるとタブの読み込みを停止し、使っていないタブが使用しているRAMを解放してくれます。
使っていて、なぜかtabmemfree.appspot.comへのアクセスが発生していることに気が付きました。
Chromeウェブストアの説明では
=== Updates ===
Tab title and icon saved via url hash to preserve user privacy
https://chrome.google.com/webstore/detail/tabmemfree/pdanbocphccpmidkhloklnlfplehiikb/details
としか書いてなくって、よくわかりません。
誰か調べた人いるかと思って探すと、日本語の情報では2ちゃんねるで
Google Chrome 48 プロセス目
615 :名無しさん@お腹いっぱい。:2012/06/30(土) 22:05:33.92 ID:VWVdH6G50
TabMemFreeがttps://tabmemfree.appspot.com/のサーバにキャッシュを待避させるようになった件について、
セキュリティ面で不安が残るというような意見が出てるんだけど、
実際のところどうなの?
ある種のトラッキングクッキーみたいなもんでそう害があるわけではなさそうだけど
という書き込みぐらいしか見つからなかったのでどういう挙動をしているのか調べてみました。
調べた結果
確認したバージョン、更新日は以下のものです。
バージョン: 0.1.3.2 更新日: 2012年7月7日
開きっぱなしのタブはOptionで設定された時間(デフォルトでは15分)アクティブにされないと、裏でhttps://tabmemfree.appspot.com/blank.htmlに遷移する。
その際、タイトル、faviconのURLを以下のようにURLにくっつけてtabmemfree.appspot.comに渡している。
https://tabmemfree.appspot.com/blank.html#title=tabmemfree%20-%20Google%20%E6%A4%9C%E7%B4%A2&icon=https%3A%2F%2Fwww.google.co.jp%2Ffavicon.ico
その後、裏でこのように遷移したタブを開こうとすると、history.back()が叩かれ、元のページにしれっと戻る。
メモリ節約のからくりは、元の重いページから裏で軽いtabmemfree.appspot.com/blank.htmlに移動してる、ということ。それだけ。
なぜタイトルとfaviconを送っているのか
faviconのURLを送っているのは、アクティブでないタブに表示されているfaviconを変えないため。
タイトルを送っているのは、マウスでなぞったときに、元のタイトルを出すため。
UIを考えると必要最低限の情報。ただ、それってアクセス先を外部のtabmemfree.appspot.com/blank.htmlにしなくてもローカルの拡張機能内で実装できますね。それも工夫がいるとかいうレベルではなく、拡張機能のディレクトリにblank.html入れてソースの参照先数ヶ所書き換えるだけ。
不必要なことしてるのとChromeウェブストアでこの説明がないのはちょっとevilだと思いました。
危険性
TポイントツールバーのようにURLまんまたれ流しではなくて、こっちは15分開いてないタブのタイトルがたれ流されるのですが、まあどいういうタブ開きっぱなしにしてるのかは作者にまる分かりです。あと用途等の説明がないので取られた情報がどう使われるか分からない。appspotの管理コンソールでアクセスログを開いてタイトルを眺めてニヨニヨされてるだけならいいのですが。
(8/16追記)こういうことに気をつけるとしたら?
TabMemFreeのChromeウェブストアの拡張機能のページの「詳細」タブには以下のように書いてあります。
この拡張機能は下記にアクセスする場合があります:
・tabmemfree.appspot.com にあるデータ
・タブとブラウジング アクティビティ
一方、同等の機能を持つTab Memory Purgeは外部データにアクセスするパーミッションを付けてないので以下のようになっています。
この拡張機能は下記にアクセスする場合があります:
・タブとブラウジング アクティビティ
「メモリを節約するのに外部アクセスは要らないのでは?」ということに気付ければ、今回のケースはこのパーミッション欄で判別可能でした。
しかし、一般的に、パーミッションの記載をもって、入れようとしている拡張機能が外部にセンシティブなデータを送っているか否かを判断することはかなり難しいです。多くの拡張機能では、パーミッションが「この拡張機能は下記にアクセスする場合があります:(すべてのウェブサイト/example.com)にあるデータ」となっていることが多く、確かにその必要性があるものも多いからです。本当はこのパーミッションの付け方が、入ってくるデータに対するものと拡張機能側でアクセスする先とに分かれていればまだ判断が付くのですが、現状そうなっていないので判断基準にできるケースはあまりありません。
入れた拡張機能のソースを追えば挙動は分かりますが、面倒なのでおすすめできません。
現状では、拡張機能名に「危険性」「セキュリティ」などの言葉を加えて検索してみるぐらいしかないと思います。