読者です 読者をやめる 読者になる 読者になる

ハッキング| IoT

8月に北京で開催された 2015 HackPWN カンファランスで、IoT デバイスのハッキング・コンテスト、デモンストレーションが行われました。

そこで「スマート・豆乳メーカー」に遠隔制御可能な脆弱性が存在することが発表 され、遠隔から操作するデモがありました

f:id:alienware:20151002135616j:plain

 

該当するスマート・豆乳メーカーは<九陽DJ08B-D667SG>という型番のもので、スマートフォンなどモバイル・デバイスに専用アプリをインストールすることにより、リモートで操作できることが売りです。

f:id:alienware:20151002135252p:plain

 

仕組みとしてはクラウド経由でスマートフォンと豆乳メーカー(無線LAN接続機能内蔵)が接続され、ユーザが操作するスマートフォンの操作コマンドが送信されるようになってます。

 

※サイト myhackxx より転載引用  ----------------- ここから

f:id:alienware:20151002140954p:plain

 

0x01 事前分析

今回の脆弱性はスマートフォンとクラウド間のトラフィック・ハイジャックにより実現されたと見れる。

 

0x02 脆弱性発掘

まずスマートフォン上で電源投入コマンドを発行し、Wireshark でスマートフォンから送出されたパケットに対し、トラフィック・キャプチャを行ったところ、パケット中身は平文で送信されているものだと分かった。また、同じコマンドパケットをリピートし再送信したとこ ろ、豆乳メーカーは同じレスポンスを返し電源が再度入ったので、豆乳メーカにはパケット・リピート受信防止機能もついていないことが分かった。

f:id:alienware:20151002141618p:plain

比較による分析を行うため、同モデルの豆乳メーカーをもう一台用意し、双方の電源投入コマンドをキャプチャしたところ、それぞれのパケット(16進数)は次の通り:

 

[1]
bb00000100078bdcbfc30e4d47822cd7086159df8a0037010001eea00030078bdcbfc30e4d47822cd7086159df8a974d13172a5b4e6e9bf8da0c13a7cae900000000000000000000000000000000
cc00000100000b00000100b0000400020000
cc00000100000700000100b20000
[2]
bb000001001e386b143bcc45738d782eededcf0bcb0027010002ee0000201e386b143bcc45738d782eededcf0bcbb724f10d9b99490a927031b41aac4de100000000000000000000000000000000
cc00000100000b00000100b0000400020000
cc00000100000700000100b20000

 すると一箇所(32ビット)のみ異なることがわかった。

次にスマートフォン上で専用アプリを起動した際に、クラウドサーバに送信されるHTTPリクエストのパケットをキャプチャを行った所、"did" パラメータで同文字列が見つかった。"did"はおそらく DeviceID を指すものであり、これよりデバイス(豆乳メーカー)認証が行われていないことがわかり、 DeviceIDがわかればデバイス(豆乳メーカー)を直接操作できることが分かった。
また、HTTP リクエストを分析することにより、 "did" はセッションキー "sessionkey"より生成されることがわかった。生成のためのリクエストは次の通り:

http://xxx.joyoung.com/ia/appapi/userdev?param={"sessionkey":"bcaaef7a1b554039b741391946xxxxxx","op_action":"query"}


セッションキーはユーザ認証情報でもあり、一度生成された後はずっとユーザに紐付けられた情報として使用される。

セッションキーの生成方法は次の通り:

f:id:alienware:20151002142650p:plain


http://xxx.joyoung.com/ia/appapi/user?param={"op_action":"regTempUser","mob_data":{"mobile_id":"866251020xxxxxx"}}
ここの mobile_id は IMEI 番号であることが分かった。 

f:id:alienware:20151002143250p:plain

 

0x03 脆弱性の応用
IMEI番号でセッションキー ⇒ デバイスIDを取得できれば、直接デバイス(豆乳メーカー)をコントロールできることになる。

デバイス ID一覧を自動生成するスクリプトの一例はこの通り:

f:id:alienware:20151002143423p:plain

 

このように "デバイス ID" を大量に自動生成し、当てていけば稼働中のデバイスに当たるし、 IMEI 番号をすでに知っていれば狙いのデバイスを即に操作できる。

f:id:alienware:20151002143456p:plain

0x04 まとめ
今回の豆乳メーカー機の問題は、多くの既存スマートデバイスに存在する問題でもあり、以下の様な課題がある:
1. 通信データを暗号化せず、重要な情報がクリアテキスト状態で伝送されている
2. デバイスの身分認証が的確に行われていない
3. クラウドプラットフォームに一般的なウェブアプリ脆弱性が存在し、ユーザ情報が抜き取られる可能性がある

4. ハッキングされた家庭内 IoT デバイスがジャンプ台にされ、他の家庭内部スマートデバイスやコンピュータに対し攻撃や侵入を行われる可能性がある

※サイト myhackxx より転載引用  ----------------- ここまで

 

たかが豆乳メーカー、されど豆乳メーカー。。。

習近平総書記は「情報化」と「サイバーセキュリティ」を、国家発展の2つの車輪と喩え、イケイケドンドンで推し進めてます。ですがどうもサイバーセキュリティは国家安全保障に関する部分のみ注力し、社会民生の部分は疎かになっているのではないか感が払拭できません。

また、目先の情報化を急ぐあまり、セキュリティが後回しにされるという通病にならないよう願いたいですね。