38
暗号化が不十分な時: ウェアラブルへの攻撃 - BLE経由モバイル通信 Kavya Racharla Sumanth Naropanth

Kavya racharla ndh-naropanth_fin_jp-final

Embed Size (px)

Citation preview

Page 1: Kavya racharla ndh-naropanth_fin_jp-final

暗号化が不十分な時:!ウェアラブルへの攻撃 - BLE経由モバイル通信 !

Kavya RacharlaSumanth Naropanth

Page 2: Kavya racharla ndh-naropanth_fin_jp-final

どうしてここにいる?

Encryption != Security

•  ウェアラブル セキュリティ •  モバイルとウェラブルがお互いに通信する時にどれだけ滅茶苦茶になるか

•  BT/BLE

Page 3: Kavya racharla ndh-naropanth_fin_jp-final

私たちは何者? •  Sumanth

•  セキュリティリサーチマネージャ & テクニカル リード – インテル社 ニューデバイスグループ •  サンマイクロシステム、パーム

•  Kavya Racharla

•  セキュリティ リサーチャ – インテル社 ニューデバイスグループ •  オラクル、クアルコム

Page 4: Kavya racharla ndh-naropanth_fin_jp-final

•  事実!!

•  弱点!!

•  軽減

アジェンダ

Page 5: Kavya racharla ndh-naropanth_fin_jp-final

•  事実!!

•  弱点!!

•  軽減

Agenda

Page 6: Kavya racharla ndh-naropanth_fin_jp-final

•  IoT -オン/オフスイッチであらゆるデバイスをインターネットに接続

•  コストと低消費電力が重要な考慮事項 •  BT/BLE FTW!

•  コネクテッドワールド —> 大量のデータ —> 多くの懸念 •  最優先のセキュリティ:赤ちゃんの見守り、ウェラブル、無線による車のハッキング!

Why ウェラブル/IoT

Page 7: Kavya racharla ndh-naropanth_fin_jp-final

クラッシックBT と BLE クラッシックBluetooth Bluetooth Low Energy

到達距離 (理論値) 100 m > 100 m 消費電力 1 W 0.01 to 0.5 W

ピーク電流消費 <30 mA <15 mA

データ転送速度 1-3 Mbit/s 1 Mbit/s 無線周波数 2.4 GHz 2.4 GHz

狙い 短距離のデータ伝送用の無線プロトコル

低電力消費 – 定期的に少量のデータを伝送

ユースケース ワイヤレススピーカー、ヘッドセット

ウェアラブルデバイス、 スマートペイシステム

•  Bluetooth 5 が登場! 4倍の到達距離と2倍の速度

Page 8: Kavya racharla ndh-naropanth_fin_jp-final

GAP!デバイスの検知、接続、そして、相互のボンディングを作る方法を定義

SMP ペアリングとキーの配布および他のデバイスを認証するプロトコル 共有された秘密鍵は保存されるので再接続が早くできる

L2CAP BLEの多重化レイヤ

GATT 特性、サービス、そして、あとリブートのタイプと使用について記述

ATT ピアデバイスのデータにアクセスするための簡易なクライアント・サーバ型のステートレスプロトコル

BLE プロトコルスタック

Page 9: Kavya racharla ndh-naropanth_fin_jp-final

Ad Ad

アドバタイジング インターバル

スキャニング 接続 要求

GATT サーバ もしくは ペリフェラル

GATT クライアント もしくは セントラル

Data

Data Data

コネクション インターバル

Data

ブロードキャスター

オブザーバ

動作の詳細

Page 10: Kavya racharla ndh-naropanth_fin_jp-final

Secure Simple Pairing •  Just Works: 非常に限定的・ユーザインターフェース無し •  Numeric Comparison: ボタンとディスプレイの付いたデバイス •  Passkey Entry: 6桁のPINとパス・キー •  Out Of Band: 中間者攻撃に対抗するために他の通信手段を使用

ペアリング アルゴリズム

Page 11: Kavya racharla ndh-naropanth_fin_jp-final

ペアリング リクエスト

機能、配布する鍵の リストと認証の要求内容

ペアリング レスポンス

TK STK Srand

Mrand

STKで暗号化されたリンク上でLTK, IRK, CSRK を配布

LTKで暗号化されたチャンネル上でさらに安全な通信

IRK : ランダムアドレスを用いることによるLEプライバシー! CSRK : 送信データを署名し、送信元を認証! サポートされているアルゴリズム 鍵交換用にECDH 暗号用にAES-CCM

BLE セキュリティ

Page 12: Kavya racharla ndh-naropanth_fin_jp-final

オブジェクトモデル: •  メインオブジェクト

•  CBCentralManager •  CBPeripheral •  CBPeripheralManager •  CBCentral

•  データオブジェクト •  CBService •  CBCharacteristic

•  ヘルパーオブジェクト •  CBUUID

Core Bluetooth - iOS

Page 13: Kavya racharla ndh-naropanth_fin_jp-final

• コアAndroidフレームワーク4.3もしくはAPIレベル18!

• マニフェストで宣言が必要なパーミッション • “BLUETOOTH” パーミッション

• あらゆる接続を行うのに必要 • 接続要求・受付、データ伝送!

• “BLUETOOTH_ADMIN” パーミッション • デバイスの検出を始めるためのアプリケーション • Bluetoothの設定を操作

Android - BLE サポート

Page 14: Kavya racharla ndh-naropanth_fin_jp-final

•  セキュリティはペアリングメカニズムに選択されたフレーバに大きく依存する •  パッシブ攻撃

•  ペアリングセッションを盗聴することで暗号鍵を盗み取ることができる •  Mike Ryan氏の研究:低電力消費が低セキュリティにつながる

•  Just works はアクティブ攻撃に弱い •  中間者攻撃:Just works モード

既知のセキュリティリスク

Page 15: Kavya racharla ndh-naropanth_fin_jp-final

アジェンダ

•  事実!!

•  弱点!!

•  軽減

Page 16: Kavya racharla ndh-naropanth_fin_jp-final

ウェラブル

BT/BLE/ANT+ BT/BLE

バックエンドサービス

HTTPS

Page 17: Kavya racharla ndh-naropanth_fin_jp-final

問題 – 前触れ デバイス コマンド: •  デバイスをリカバリモードにする

•  ファームウェアアップデートを行う

•  デバイス名(BLE)を変更

通知: •  SNSアプリケーション •  電話とテキストメッセージ

情報: •  ユーザの行動データ •  ユーザ・プロファイル更新 •  アプリケーションの動作(起動、選曲)

•  電話・テキストメッセージ・SNSアップデート(時々)

Page 18: Kavya racharla ndh-naropanth_fin_jp-final

デバイス コマンド: •  デバイスをリカバリモードにする

•  ファームウェアアップデートを行う

•  デバイス名(BLE)を変更

通知: •  SNSアプリケーション •  電話とテキストメッセージ

情報: •  ユーザの行動データ •  ユーザ・プロファイル更新 •  アプリケーションの動作(起動、選曲)

•  電話・テキストメッセージ・SNSアップデート(時々)

問題 – 前触れ

攻撃者

Page 19: Kavya racharla ndh-naropanth_fin_jp-final

デバイス コマンド: •  デバイスをリカバリモードにする

•  ファームウェアアップデートを行う

•  デバイス名(BLE)を変更

通知: •  SNSアプリケーション •  電話とテキストメッセージ

情報: •  ユーザの行動データ •  ユーザ・プロファイル更新 •  アプリケーションの動作(起動、選曲)

•  電話・テキストメッセージ・SNSアップデート(時々)

問題

攻撃者

Page 20: Kavya racharla ndh-naropanth_fin_jp-final

根本原因 AndroidとiOSのすべてのアプリは、BTサービスにサブスクライブすれば、正当なアプリと同じBTチャネルまたはBLE特性

でデータを取得できる

•  Android •  android.permission.BLUETOOTH•  android.permission.BLUETOOTH_ADMIN–quote:

•  iOS •  コア Bluetooth (CB) フレームワーク •  セントラル (クライアント・電話) と ペリフェラル (サーバ・ウェアラブル) クラス

Page 21: Kavya racharla ndh-naropanth_fin_jp-final

事例 – ウェラブル エコシステム 1

•  BLEを使用 •  独自のコード •  メッセージとヘッダのフォーマットに関する市場調査が存在 •  マルウェア アプリは既知のBLE特性にサブスクライブし、正規のアプリとデータを同期させる

Page 22: Kavya racharla ndh-naropanth_fin_jp-final

事例 – ウェラブル エコシステム 1

Page 23: Kavya racharla ndh-naropanth_fin_jp-final

事例 – ウェラブル エコシステム 2

•  BT, BLE と WiFi を使用!

•  デバイスは直接クラウドと同期が可能 •  アプリに関連した脅威はより少ない!

•  マルウェア アプリ (GATTのキャラクタりスティック 検索・読出し・書込み) はユーザの情報を一切取得しない

Page 24: Kavya racharla ndh-naropanth_fin_jp-final

事例 – ウェラブル 3 •  似ている、でも、ひとひねりある •  マルウェア アプリは自身ではウェアラブルにコマンドを送ることはできない •  正規のアプリはデバイスに接続を行う

•  マルウェア アプリはウェアラブルにコマンドを送るために正規のアプリの動きをモニターし、セッションを乗っ取る

教訓:部分的なセキュリティは役に立たない •  ハンドシェイクだけでなく全てのメッセージを保護すべき

Page 25: Kavya racharla ndh-naropanth_fin_jp-final

事例 –ウェラブル3

Page 26: Kavya racharla ndh-naropanth_fin_jp-final

マルウェアのPoC(Proof of Concept) ウェアラブル デバイスは心拍数のデータをBLE上で継続的に送信

if ((charaProp | BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) { mNotifyCharacteristic = characteristic; mBluetoothLeService.setCharacteristicNotification( characteristic, true); } return true; }

public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { final byte[] data = characteristic.getValue(); ... if (characterstics.equals("558dfa01-4fa8-4105-9f02-4eaa93e62980")) { int[] dataArray = new int[data.length]; int i = 0; for (byte b : data) dataArray[i++] = b & 0xff; int steps = ((dataArray[5] & 0xff) << 8) | (dataArray[4] & 0xff); int calories = ((dataArray[13] & 0xff) << 8) | (dataArray[12] & 0xff); int heartRate = dataArray[18]; System.out.println("malware: Steps = "+ steps +" , calories = “+ calories +", HearRate = “+heartRate); } }

マルウェア アプリは同じGATTプロファイルをサブスクライブし、生データを取得して有用な個人データに組み立てる

Page 27: Kavya racharla ndh-naropanth_fin_jp-final

•  行動データと運動モード •  心拍数。カロリー、距離、皮膚温度、など •  精密なGPSパターン = ユーザの居場所

•  マルウェア アプリはリカバリ用のファームウェアのイメージが無くてもデバイスをリカバリモードにできる

•  ユーザはデバイスをサービスセンターまで修理に持っていかなくてはならない •  デバイス名の変更は一時的なDoSを引き起こす

“マルウェアが電話に?” 違う! しかし…

機密性

•  マルウェアはデバイス上でコマンドを実行 •  デバイス名を不当なものに変更 •  コマンドについて詳しくはリストを参照

正確性

可用性

社会的な認知 の問題 •  注目される研究の題材 •  Break Once and Reuse Everywhere (攻撃手法が幅広く使われる) リスク

どうして気にしなくてはならない?

Page 28: Kavya racharla ndh-naropanth_fin_jp-final

アジェンダ

•  事実!!

•  弱点!!

•  軽減

Page 29: Kavya racharla ndh-naropanth_fin_jp-final

目的

•  通信は電話の上の正規のアプリケーションとウェラブル デバイスとの間だけに許可!

•  ウェラブルから電話に送信される機微なデータを保護 •  行動データ – 心拍数、カロリー、行動情報 など •  アプリに特有のフィードバックもしくは入力 – 音楽、通知 など!

•  コンパニオン アプリからウェラブルに送信されるすべてのコマンドの正確性を保護

Page 30: Kavya racharla ndh-naropanth_fin_jp-final

思い込みと非客観性

•  最初に使う時には正規のアプリケーションしか存在していない •  電話はrootを取られていないしジェイルブレークもされていない •  以前から存在しているアプリケーション サンドボックスには致命的な脆弱性がある

•  中間者攻撃はBLEペアリングの間に発生する

Page 31: Kavya racharla ndh-naropanth_fin_jp-final

BLE Pairing

軽減策の概要

複数のアプリが データ伝送に BLEリンクを 使用

マルウェアは正規の アプリとして同じ BLEペアリングに アクセスできる

App to Device Pairing

アプリからデバイス へのペアリングは 登録されたアプリ

に限定

BLE Stack

BLE Hardware

BLE スタック

BLE ハードウェア

Page 32: Kavya racharla ndh-naropanth_fin_jp-final

軽減策の案

鍵交換 – アプリケーション特有の鍵 Kp

正確性を保護 — HMAC(Kp, コマンド)

機密性を保護 — E(Kp, データ)

Kp を知らないと書込み・読出しができない

Page 33: Kavya racharla ndh-naropanth_fin_jp-final

軽減策 — 現実

Web ポータルとサービス

サービス A

サービスB

サービスC

複数の信頼できるアプリが複数の信頼できる電話上に存在

クラウドベースのアカウントと鍵の

管理

ウェラブル デバイスは複数のアプリにサービスを提供

し得る

Page 34: Kavya racharla ndh-naropanth_fin_jp-final

軽減にあたっての検討事項

•  #apps と #wearable サービスとの通信のためのマッピング •  暗号化のサポート •  パフォーマンス •  鍵管理

•  ウェラブル •  電話 •  クラウド?

Page 35: Kavya racharla ndh-naropanth_fin_jp-final

デモ – 修正

Page 36: Kavya racharla ndh-naropanth_fin_jp-final

今後必要なこと

•  Android と iOS のセキュリティ強化 •  アプリからデバイスへのセキュリティのサポート

•  BLE仕様としての認証と暗号化のサポート •  上記の両方

Page 37: Kavya racharla ndh-naropanth_fin_jp-final

サマリー

•  攻撃しやすい急所: •  Bluetooth/BLE Spec •  主なスマホプラットフォーム上で採用された仕様

•  中程度のリスク (電話上のマルウェア); 大きな被害 (機微なユーザ情報) •  セキュリティおよび金融サービスに活用されたウェラブルへの大きな被害

•  Apple Watchの自動アンロック •  Pay

•  ネットワーク攻撃からの保護は不十分 •  アプリ開発者とウェラブルのOEM生産者にとっては更なるセキュリティの層を追加するのは荷が重い!アプリ <— —> デバイス 通信

Page 38: Kavya racharla ndh-naropanth_fin_jp-final

ありがとうございました!(そして Q&A)

@kavyaracharla

@snaropanth