[5]
第三者はスマホ対応金庫システム を解錠できない
[考察] いきなり「第三者が金庫 を解錠できない」ことを説明する のは難しいので、まずは攻撃者視 点に切り替えてみる。
[方針] 攻撃者視点に切り替える
。
¬ [9]
第三者はスマホ対応金庫システム を解錠できる
[考察] ユーザーだけが利用を許 可されている「金庫を解錠する」 という「機能」がある。
[方針] 攻撃者が「機能」を利用 する手段は「IFを操作する方法」 と「構成要素を操作する方法」の 2つの手段がある。
∨
[13]
第三者はスマホ対応金庫システム を解錠できる/IFを操作して
[考察] この金庫には「解錠する
」IFとして「物理鍵で解錠する」 方法と「スマホで解錠する」方法 の2つが用意されている。
[方針] 複数の手段がある場合は
、個々の手段に分解する。
∨
[51]
第三者はスマホ対応金庫システム を解錠できる/構成要素を操作し て
[考察] 解錠メカニズムは物理鍵 で解錠する仕組みとスマホで解錠 する仕組みの2つがある。
[方針] 複数の手段がある場合は
、個々の手段に分解する。 [項目] 物理鍵の解錠メカニズム
、スマホの解錠メカニズム
∨
[17]
第三者はスマホ対応金庫システム を解錠できる/IFを操作して/物 理鍵で
[考察] 物理鍵で金庫を開けるた めに必要になることは、物理鍵が 手に入ること、金庫のそばに行く ことができることの2つ。
[方針] 攻撃成立する条件でAND分 解する。
∧
[43]
第三者はスマホ対応金庫システム を解錠できる/IFを操作して/ス マホで
[考察] スマホで金庫を開けるた めに必要になることは、スマホア プリが手に入ること、金庫のそば に行くことができることの2つ。 [方針] 攻撃成立する条件でAND分 解する。
[脆弱性] スマホアプリの認証が ないのが問題。
∧
[21] 第三者は物理鍵を入手できる
[考察] もし物理鍵が同じ機種で 共通の鍵であった場合、第三者が 同機種の金庫を購入してしまえば
、ユーザーの金庫を物理鍵で開け てしまうことができる。
[確認] 物理鍵は金庫1台ごとに異 なる固有の鍵なのか?それとも同 じ機種の金庫はまったく同じ物理 鍵なのか?
[回答] 物理鍵は金庫1台ごとに異 なる固有の鍵である。
[考察] それでは、物理鍵のライ フサイクルを追いかけて、第三者 がユーザーの金庫の物理鍵を入手 できる隙がないかを確認する。 [考察] 物理鍵は工場で金庫と一 緒に梱包され、ユーザー宅で開梱 されるまで物理鍵は安全にユーザ ーまで届けられる
[方針] 物理鍵の存在する場所ご とにノード分解する
[項目] 工場、配送、店舗、ユー ザー宅
∨
[110]
第三者は金庫のそばに行くことが できる
TRUE
[30]
第三者は物理鍵を入手できる/工 場で
FALSE
[34]
第三者は物理鍵を入手できる/配 送中に
FALSE [37]
第三者は物理鍵を入手できる/店 舗で
FALSE
[40]
第三者は物理鍵を入手できる/ユ ーザー宅で
FALSE
[根拠] 工場は金庫メーカーの自 社工場であり、第三者は立ち入り できないように建物の入退室管理 が実施されている。
[根拠] 工場から店舗までの配送 は金庫メーカーの自社トラックに より、第三者が配送中の金庫に手 を触れることがないように注意し て配送されている。
[根拠] もし店舗で第三者が物理 鍵を手に入れようとすると梱包を 開けなければならず、梱包に開け た痕跡が残ってしまうので、その 金庫は実際に販売されることはな い。
[根拠] ユーザーは物理鍵を他人 に盗まれることがないように安全 に管理することが前提。
[根拠] そもそも金庫というもの は、物理的に触れることができる 攻撃者から内容物を守るためのも のであるので、第三者が金庫に触 れることができることは前提であ る。
[48]
第三者はスマホアプリを入手でき る
TRUE
[根拠] スマホアプリはGoogle Pl ayで配布されているので、誰でも アプリを入手することができる
[56]
第三者はスマホ対応金庫システム を解錠できる/構成要素を操作し て/物理鍵の解錠メカニズム
FALSE [59]
第三者はスマホ対応金庫システム を解錠できる/構成要素を操作し て/スマホの解錠メカニズム
[考察] スマホ連携機能の構成図 を作成して、各要素をどのように 悪用すれば金庫を解錠できるか考 える。
∨
[根拠] 物理鍵の解錠メカニズム は物理鍵がなければ解錠できない ように作られていて、この仕組み の安全性は信頼し得る十分な実績 がある。
[62]
第三者は解錠メカの【電動解錠】 機能を実行できる
[考察] 電動解錠機能を直接実行 させることができれば、金庫を解 錠できる。
FALSE
[66]
第三者はマイコンから解錠メカを 制御できる
[考察] マイコンから何らかの方 法で電力線へ電力を供給できれば
、解錠メカが動作して金庫を解錠 できる。
[方針] マイコン攻撃の分解パタ ーン
[項目] 要求処理API、JTAGデバッ グ、ファーム書換
∨
[95]
第三者は【解錠要求】パケットを 送信できる
[考察] 正常な【解錠要求】パケ ット、つまりマイコン側で受理さ れる【解錠要求】パケットを第三 者が作成し送信できるかという問 題。
[考察] Ver.20160615の設計によ れば、解錠要求=シリアル番号(2 bytes)+02H(1byte)という構成で ある。
[脆弱性] 【解錠要求】パケット にMACがなく、第三者が【解錠要 求】パケットを容易に生成できて しまう。
TRUE
[102]
第三者は専用アプリの【遠隔解錠
】機能を実行できる
FALSE
[根拠] 電動解錠機能を直接実行 するには、電力線に電力を供給す る必要があるが、第三者が物理的 に金庫内部の電力線を触ることは できない。
[71]
第三者がマイコンの要求処理API を利用して、電力線へ電力供給で きる
[方針] API攻撃の分解パターン [項目] APIの悪用、APIのコード 脆弱性、OS/BSWのコード脆弱性
∨
[85]
第三者がマイコンのJTAGデバッグ 機能を利用して、電力線へ電力供 給できる
FALSE [88]
第三者がマイコンのファーム書換 機能を利用して、電力線へ電力供 給できる
[考察] マイコンはArduinoであり USBケーブル経由でファーム書き 換えが可能である。第三者がUSB ケーブルにアクセスできるのであ れば、第三者はマイコンのファー ムを書き換えて、電力線へ電力供 給するプログラムを書き込むこと が可能である。
[確認] 金庫はUSBケーブルで電源 供給されているが、このUSBケー ブルからファーム書き換えができ ないような細工はされているか? [回答] 単に普通のマイクロUSBケ ーブルがArduinoのUSBポートに接 続されているだけ。
[脆弱性] USB電源ケーブルからマ イコンのファーム書換をされてし まう。
TRUE
[75]
第三者がAPIを使って、電力線へ 電力供給できる
[考察] APIの「解錠要求」で電力 線へ電力供給でき、金庫を解錠で きる。
[考察] APIの「解錠要求」を呼び 出すには、【解錠要求】パケット をBLEで送信できればよい。
= [79]
第三者がAPIのコード脆弱性を使 って、電力線へ電力供給できる
[考察] マイコンのAPIのプログラ ムに任意コード実行などのコード 脆弱性があると、第三者が電力線 へ電力供給できる。
¬
[82]
第三者がOS/BSWのコード脆弱性を 使って、電力線へ電力供給できる
[考察] マイコンのOS/BSWのプロ グラムに任意コード実行などのコ ード脆弱性があると、第三者が電 力線へ電力供給できる。
¬
[根拠] たとえマイコンのBLE受信 処理において正しいシリアル番号 でなければ受理しないような実装 がなされていたとしても、シリア ル番号は16ビット空間しかないの で容易に全空間を試せてしまう。 [根拠] 解錠要求にはMACのような 送信側を信頼できる仕組みがない ので、容易に第三者が正常な【解 錠要求】パケットを生成できてし まう。
[117]
マイコンのAPIプログラムにコー ド脆弱性はない
[方針] コード脆弱性がないこと の確認の分解パターン
[項目] 目視によるソースコード レビュー/ソースコード静的解析 ツール/Fuzzingテストまたはラ ンダム入力テスト/人手による疑 似攻撃検査
∧
[121]
マイコンのAPIプログラムは脆弱 性は見つかっていない/目視によ るソースコードレビューにより
TRUE
[124]
マイコンのAPIプログラムは脆弱 性は見つかっていない/ソースコ ード静的解析ツールにより
TRUE
[127]
マイコンのAPIプログラムは脆弱 性は見つかっていない/Fuzzing テストまたはランダム入力テスト により
TRUE [130]
マイコンのAPIプログラムは脆弱 性は見つかっていない/人手によ る疑似攻撃検査により
TRUE
[根拠] 2016/9/1 片岡、松並の2 名によりAPIパース処理部分の目 視によるコードレビューを実施。 全パラメタは値域チェックが成さ れており、またパラメタ使用部分 についても問題を生じないことを 確認済み。
[根拠] 2016/8/22 コード解析ツ ールによる警告は0件であること を確認済み。
[根拠] 2016/8/23 APIに対するFu zzingテストを実施。クラッシュ や応答しなくなるような不具合は 見つからなかった。
[根拠] 2016/9/2 セキュリティ専 門ベンダーによるAPI攻撃検査を 実施。問題は一つも見つからなか った。
[133]
マイコンのOS/BSWにコード脆弱性 はない
[方針] コード脆弱性がないこと を確認するアクティビティを実施 し、その結果を根拠とする。
= [136]
マイコンのOS/BSWは脆弱性の見つ かっていないバージョンのものを 使用している
TRUE
[根拠] 2016/6時点で既知脆弱性 のないOSを使用していることを確 認済み。
[根拠] JTAGピンはマイコンに存 在するが、第三者は金庫内部にア クセスできないため、マイコンの JTAGピンにアクセスすることもで きない。
[根拠] 第三者がUSB電源ケーブル からマイコンのファーム書換でき るため
[根拠] 専用アプリの【遠隔解錠
】機能はアプリのUIから起動され るものであって、直接この機能を 第三者が実行することはできない
。
[根拠] 本当は・・・スマホアプ リの脆弱性があればアプリ間連携 で遠隔解錠機能をマルウェアに悪 用される可能性もあるし・・・ス マホ本体の遠隔支援機能(リモー トアシスタンス的な)があればそ れが悪用されて・・・などあるが
、今回の例はスマホアプリ側の脅 威分析は割愛。