Google Software Updateというソフトウェアが私のMacに知らない間にインストールされ、必要以上に頻繁にデータをgoogleに送信していることを数日前まで知りませんでした。Google Software Updateはマルウェアではありませんが、マルウェアのような挙動をします。
Google Keystone(Googleのソフトウェアアップデートのコードネーム)は、この記事を公開してから「変異」しています、下記の「2019年7月のアップデート」を必ずお読みください。
Googleソフトウェア・アップデートとは何ですか?
数日前、私のcronジョブが動作しない原因(はっきり言って、この記事で説明したこととは何の関係もない)を探ろうとしたとき、MacBook Proのsystem.logに
GoogleSoftwareUpdateAgentという
バックグラウンドデーモンが生成した大量の冗長なログを発見しました。私のMacにあるGoogleのソフトウェアは、Chromeブラウザだけです。
インターネットで検索してみると、この話題に関連する検索結果が全ページに渡り、2009年にさかのぼるWired.comの記事「Why Google’s software update tool is evil」などがあることが分かりました
Google Software Update (a.k.a. Google Update on some of Google websites) は、要求されたソフトウェアをインストールし、バックグラウンドで常に最新の状態で動作させるためのプログラムであり、あなたのコンピュータに知らないうちにインストールされています。
Google Software Updateは、Google Chrome、Earth、その他様々なGoogle製品のソフトウェアパッチ(バックグラウンド更新とオンデマンド更新チェックの両方)を、私が知る限り少なくともMacとWindows(そしておそらくLinuxプラットフォームでも)においてサポートするために使用されています。
Googleによると、「より透明性を高め、他のアプリケーションでも利用できるようにするため、Google Updateの技術はオープンソースになっています」(「Google Chrome Privacy Whitepaper」から引用)。このことから、Googleのgithubで、Omahaというプロジェクトコード名で公開されていることがわかります。
Omahaのgithubページによると、OmahaはGoogle Updateのオープンソース版である。つまり、GoogleはOmahaの特別バージョンを使っているだけでなく、他の人がこの技術を採用することを望んでいるのだ。これには違和感を覚えた。どんなソフトウェアでも、Omahaを使って、私の明示的な許可なしに私のMacにソフトウェアの一部を安全にインストールし、私の使用パターンに関する情報を送信することができると想像してみてください。
一部の善人にとっては、これはシームレスなアップデートを提供するツールであり、良いユーザーエクスペリエンスになるかもしれない。しかし、悪者にとっては、これはマルウェアやスパイウェアに偽装される可能性のあるオープンソースのソフトウェアなのです。
Googleソフトウェアアップデートは何をしている?
Google Chrome Privacy Whitepaperによると、Google Software Updateは、Google Chrome(または他のGoogle Apps)のバージョン、リリースチャネル、コンピュータのハードウェア情報などの情報を送信します。また、使用頻度やアクティブなプロファイルの数など、Googleの情報も送信されます。
公平に見て、記載されている情報はすべて無害のようですが、私が理解できないのは、なぜGoogleはそれをマルウェアのように動作させるのでしょうか?もし私が、そのようなソフトウェアがあると言ったら、あなたはどう思うでしょう。
- は、お客様の許可を明確に求めることなく、またそれを拒否する選択肢を与えることなく、お客様のコンピュータにインストールされます。
- が、あなたの知らないところで、頻繁にGoogleにデータを送信しています。
- 設定メニューで設定することはできません。
- アンインストールツールはございません。
- で、削除すると勝手に再インストールされます。
これまで収集した情報を総合すると、Googleが自動ソフトウェアインストーラーをマルウェアのようにならないように変更し、ユーザーが設定をコントロールできるようになるまで、多くのGoogle Chromeユーザーが自動ソフトウェアインストーラーを削除したいと思うのは理にかなっていると思います。しかし、2009年までの履歴から判断すると、私はそのことにあまり期待をしていない。
Googleソフトウェア・アップデートを無効にする方法
この問題は、2009年のGoogle Earthまでさかのぼることができる既知の問題であるため、これを無効にしたりアンインストールする方法に関するチュートリアルやスタックオーバーフローのディスカッションが数多く存在します。Mac OSとGoogle Software Updateの両方が長年にわたって進化しているため、方法は変化しています。ここでは、Mac OS El Capitan (10.11.6) と MacOS High Sierra (10.13.2) の Mac Mini と MacBook Pro で動作する私の方法を紹介します。
Googleソフトウェアアップデートの間隔を変更するには?
Google Software Updateのデフォルト設定を確認するには、Macのコマンドラインコマンドdefaults
(Mac OSがプリファレンスパネルを管理するために使用するコマンド)が便利です。
デフォルトは com.google.Keystone.Agent.plist を読み込みます。
Terminal.appを使ったことがない人は、LaunchPad/Other/TerminalまたはFinder/Applications/Utilities/Terminalから見つけることができます。
インストールされているGoogleアプリやインストール期間に応じて、このような表示になります。
{ ActivesInfo = { "com.google.Chrome" = { LastActiveDate = "2017-12-06 14:28:43 +0000"; LastActivePingDate = "2017-12-08 08:00:01 +0000"; LastRollCallPingDate = "2018-01-08 08:00:00 +0000"; "ping_freshness" = "185764A0-9BC7-4A8D-AEDC-xxxxxxxx"; }; "com.google.Keystone" = { LastActiveDate = "2018-01-19 06:50:23 +0000"; LastActivePingDate = "2018-01-08 08:00:00 +0000"; LastRollCallPingDate = "2018-01-08 08:00:00 +0000"; "ping_freshness" = "75D4020E-0E22-4BBA-9749-xxxxxxxx"; }; ReportingAttributes = { }; checkInterval = 18000; "firstRun-1.2.2.554" = "2015-12-20 07:08:17 +0000"; "firstRun-1.2.3.738" = "2015-12-20 07:09:12 +0000"; "firstRun-1.2.4.919" = "2016-03-07 01:38:45 +0000"; "firstRun-1.2.5.1190" = "2016-07-16 08:31:35 +0000"; "firstRun-1.2.6.1370" = "2016-09-24 02:32:46 +0000"; "firstRun-1.2.7.43" = "2017-02-16 07:45:43 +0000"; "firstRun-1.2.8.57" = "2017-05-16 03:13:00 +0000"; "firstRun-1.2.7" = "2017-03-24 03:14:00 +0000"; "firstRun-1.8.82" = "2017-08-17 01:28:13 +0000"; "firstRun-user-1.2.9.98" = "2017-11-08 10:56:30 +0000"; "lastCheck-1.2.3.738" = "2016-02-28 10:08:31 +0000"; "lastCheck-1.2.4.919" = "2016-07-06 06:24:37 +0000"; "lastCheck-1.2.2.5.1190" = "2016-08-27 10:22:35 +0000"; "lastCheck-1.2.6.1370" = "2017-01-14 09:12:26 +0000"; "lastCheck-1.2.7.43" = "2017-04-07 09:56:14 +0000"; "lastCheck-1.2.8.57" = "2017-07-25 06:51:51 +0000"; "lastCheck-1.2.8.82" = "2017-10-08 03:44:58 +0000"; "lastCheck-user-1.2.9.98" = "2018-01-09 07:51:29 +0000"; lastCheckStartDate = "2018-01-19 06:50:23 +0000"; lastServerCheckDate = "2017-11-08 10:56:04 +0000"; } 。
checkInterval = 18000;
という設定があることに注目してください。これは、Googleがデフォルトで5時間ごと(3600 x 5 = 18000秒)に更新を確認することを意味します。
これは、OS X El Capitan (10.11.6) を搭載し、Google Chrome 63.0.3239.132 をインストールした Mac Mini での設定に基づくものです。しかし、MacOS High Sierra (10.13.2) と同じバージョンのChromeを搭載した私のMacBook Proでは、1時間ごとにGoogleにアップデートを送信しているようです。
24時間なら24×3600=86400、7日なら24×3600×7=604800と、より長い時間間隔に設定することができる。値を0に変更すると、基本的にGoogleへのデータ送信は行われなくなります。値を変更するには、ターミナルで以下のコマンドを実行します。
デフォルトの書き込み com.google.Keystone.Agent checkInterval 604800
ほとんどのユーザーにはこれで十分です。しかし、あなたが私の懸念を共有し、このマルウェアのような動作を嫌い、Google Software Updateを完全に削除したい場合は、次のステップに進みます。
Google Software Updateをアンインストールする方法
Google Software Updateは、~/Library/Google/
ディレクトリに隠されているため、Macのグラフィックユーザーインターフェイス(GUI)からは見えません。
sudo rm -R ~/Library/Google/GoogleSoftwareUpdate/ です。
これでGoogle Software Updateは削除されますが、再度Google Chrome(または他のGoogle Apps)を起動すると同時に勝手に招待してGoogle Software Updateを再インストールしてしまいます、これってマルウェアやウイルスのような挙動にならないのでしょうか?
GoogleアプリがGoogle Software Updateを再インストールしないように、同じ名前のダミーファイルを作成しますが、ファイルの所有者は現在使用しているユーザー名ではなく、root
ユーザーに割り当てます。また、新しく作成したファイルのアクセス権限は444とし、誰にも書き込み権限を与えないようにします。そのためには、以下のターミナルコマンドを実行します。
sudo touch ~/Library/Google/GoogleSoftwareUpdate sudo chmod 444 ~/Library/Google/GoogleSoftwareUpdate
最後に、Google Software Updateに関連するファイルをすべて削除して、ハウスクリーニングを行います。これはオプションですが、私はハードディスクにゴーストファイルが残っているのは好きではありません。
sudo rm ~/Library/LaunchAgents/com.google.keystone.agent.plist sudo rm -R ~/Library/Caches/com.google.Keystone* sudo rm ~/Library/Preferences/com.google.Keystone.Agent.plist
これでGoogle Chromeを起動し、URLとしてchrome://helpと
入力すると、Chromeは更新に失敗しましたというメッセージで文句を言ってきます。それはそれでいいのですが、定期的にこれをチェックして、最新の状態にしておくこともお勧めします。
まとめ
この対処法でGoogle Software Updateが勝手にインストールされることはなくなりましたが、今後、例えば「すべてのユーザー」向けにインストールされる(つまり、ユーザープロファイルのディレクトリ~/Library/
にインストールするのではなく、システム全体の/Library/
にインストールする)可能性があり、状況は変化しそうな予感がします。
また、今後のMacOSのアップデートで設定が崩れる可能性もあります。
2016年4月27日に全EU加盟国で採択された一般データ保護規則(GDPR)は、2018年5月25日までに施行されます、Googleも注意してソフトウェアの挙動に慎重になるべきですが、私はEU(と米国)の外、アメリカ人がよくROW(Rest of the World)と呼んで一括りにする部分に残しています、Googleが各地域の規制に基づいて異なるプライバシー慣行を実施するか、GDPRによってソフトウェアアップデートを変更するかは分かりません。
Googleが創業時のモットーである「Don’t be evil」を守ることを期待するのは甘いでしょうが、早急に「正しいことをする」ことを期待します。
安全なサーフィンを!
追記
2018年1月以降、Chromeの挙動を発見して以来、Chromeの使用を停止していますが、Web開発用にMacにChromeのインストール(バージョン63.0.3239.132)を残しています。
最近、Chromeブラウザの最新機能の1つをテストする必要があったので、Chromeがブラウザを最新バージョン75.0.3770.100にアップデートできるように一時的に設定を外し、Chromeのアップデート後にのみ設定を戻したんだ。しかし、その後、Chromeは私のブロックについて文句を言うために「更新に失敗しました」と表示されなくなったことに気づきました。
最後の言葉」で、Keystoneはいつか「すべてのユーザー」向けにインストールする(つまり、個々のユーザーディレクトリ~/Library/
にインストールするのではなく、システム全体の/Library/
にインストールする)ように「変異」するかもしれないと予言したとおりです。
1年以上前のバージョン63.0.3239.132から今回の最新バージョン75.0.3770.100までの間のどこかでGoogleがいつ変更したのかはわかりませんが、現在はまさにこのような挙動になっているのでしょう。
ユーザーレベルの~/Library/Google/
で Keystone のセルフインストールをブロックすると、グローバルレベルの/Library/Google/
に自動的にセルフインストールされるので、Keystone のセルフインストール動作を止めたい場合は、「Google Software Update のアンインストール方法」で説明したことに加えて、/Library/Google
ディレクトリで Keystone をブロックする処理を繰り返す必要があります。