賢いIoT機器の買い方

黒林檎です。

 

今日は、「賢いIoT機器の買い方」を紹介していきたいと思います。

脆弱性を有したIoT機器をピンポイントで購入することは、「運」の要素が強いように思えます。

そこで、筆者が機器を購入するときに行うチェック方法の一部を紹介します。

例えば、以下のように複数のIoT機器があり、この中からセキュリティの研究や検証に使えそうな機器を選ぶためのアプローチは大まかに3つあります。

 

(1)OEM製品で既にハックされているIoT機器を選ぶ

(2)公式サイトにファームウェアが配布されており、自明な脆弱性がある

(3)モバイルアプリに自明な脆弱性がある

 

中華系OEM製品はファームウェアが配布されていることが珍しいため、今回は避けます

(1)と(2)になりますが、OEM製品で既にハックされている製品を購入するアプローチは紹介するまでもないため(ハックしたという紹介記事に記載されている機器と同一モデルを購入するだけ)、今回は(3)のモバイルアプリに自明な脆弱性があるパターンを紹介したいと思います。

 

f:id:r00tapple:20180622100750p:plain

(図)amazonで販売されているIoT機器一部(※今回購入した商品は含まれていない)

 

amazonでIoT機器を探したところ、複数の素敵な商品が表示されました。

その素敵な製品名にapk downloadという文字列を付加するとapkファイルをダウンロードできるウェブサイトにアクセスできます。

通常、スマートフォン経由でapkを取得しますが、デコンパイルしたソースコードを見るだけなので、時間短縮(※偽アプリの可能性やマルウェアの可能性を考慮しない)でこういったウェブサイトを使用しています。

もし、偽アプリやマルウェアの懸念をされる方は、VirusTotalhttps://www.virustotal.com/ja/)にダウンロードしたapkを送信し、マルウェアなどの悪意あるファイルなのか事前に判定しても良いでしょう。

上記は筆者のアプローチであり推奨方法ではありません、正規のGoogleのPlayストア経由でダウンロードすることが一番問題が発生しません。

 

それではソースコードを解析していきましょう。

オンライン上でapkをデコンパイルしてくれるサービスがあるので、それを使用しましょう。

Android Apk decompiler(http://www.javadecompilers.com/apk

 

f:id:r00tapple:20180622101451p:plain

(図) Android Apk decompiler経由でデコンパイルしたファイル

 

デコンパイルされたソースコードをちゃんと読むのはしんどいので、以下の3つにポイントを絞り探します。

 

(1)APIサーバーの情報

(2)意味がありそうな製品特有の文字列

(3)資格情報

 

勿論、それ以外にもポイントはあると思いますが、今回の目的は「製品購入アプローチ」なので一般的なモバイルアプリケーション診断の観点などは置いておきます。

調査したところ、APIサーバーの情報がハードコーディングされている箇所を発見しました。

 

f:id:r00tapple:20180620144450p:plain

(図)APIサーバーの情報がハードコーディングされている箇所

 

http通信でやり取りをしているようなので、通信を盗聴したり改変することが簡単そうです。

APIサーバーにアクセスしてみたところ、JSONファイルをレスポンスで返す仕組みになっているようです。

さらに調査をしたところ、下記のような画面をAPIサーバー上に発見しました。

 

f:id:r00tapple:20180622110325p:plain

(図)デバッグ用に機能と思われる機器に命令を発行できそうな画面(※サンプル)

 

おそらく、任意の製品のMacアドレスを入力し各パラメータを正しく入力すると特定の命令を実行するような処理を行ってくれるデバッグ機能だと思われます。

以下のような図を見て想像してみてください。

 

f:id:r00tapple:20180620162130p:plain

(図)脅威想像図

 

上記の想定が正しい場合、製品が接続しているAPIサーバーにバックドアが組み込まれていることになり、攻撃者はIoT機器の電源や各種制御が簡単に行えそうです。

APIサーバー経由でIoT機器を操作する性質上、製品メーカーはユーザーのIoT機器を自由に操作できますが、国内メーカーのIoT機器や信頼性が低いメーカーのIoT機器を購入した場合、脆弱性も問題ですが今回にようなバックドアも重大な問題です。

例えば、IoT機器によっては遠隔操作により火災などに繋がる可能性も考えられます。

一般的な消費者はコストとの兼ね合いでIoT機器を購入すると思いますが、本当にその製品でいいのか、いま一度考え購入すべきです。

 

さて、記事の本題は「賢いIoT機器の買い方」でしたが、IoT製品の脆弱性診断の練習時に、たくさんIoT機器を購入してきてテストしていくからコストが無駄にかかりそうと感じている方も多いと思われます。

しかし、購入前に「精査」すれば脆弱である可能性が高い製品をかなり高い確率で購入することが可能です。

 

・注意

注意点として、APIサーバーなど外部のシステムに対しての不正な攻撃はNGです。

例えば、脆弱性診断ツール(sqlmapやOWASP ZAPなど)をインターネット上に公開されているサーバーに行うのは多くの場合、脆弱性発見の有無に関係なく犯罪行為とされます。

本記事は違法なハッキング行為を助長するためではなく、セキュリティ研究のアプローチの1つとして書かせていただきました。

こういった研究の過程で、脆弱性を発見すれば然るべき機関(IPAやPSIRTなど)に届け出しましょう。

 

f:id:r00tapple:20180622102559j:plain

(図)IPA脆弱性の届け出を行った結果

 

No more サイバー犯罪!

 

  • 告知「ハッカーの学校 IoTハッキングの教科書」

ご存知の方もおられると思いますが、ハッカーの学校 IoTハッキングの教科書が7月19日に出版予定です。

ハッキング実験室と異なり、今回は初めての共著になります。

IoTハッキングに触れる1冊として、書店などで見かけられましたら、お手に取っていただければ幸いです。

 

ハッカーの学校 IoTハッキングの教科書

www.amazon.co.jp

 

ハッカーの学校 IoTハッキングの教科書」公式サイト

ruffnex.net

 

@r00tapple

@r00tapple