kavya racharla ndh-naropanth_fin_jp-final
TRANSCRIPT
![Page 1: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/1.jpg)
暗号化が不十分な時:!ウェアラブルへの攻撃 - BLE経由モバイル通信 !
Kavya RacharlaSumanth Naropanth
![Page 2: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/2.jpg)
どうしてここにいる?
Encryption != Security
• ウェアラブル セキュリティ • モバイルとウェラブルがお互いに通信する時にどれだけ滅茶苦茶になるか
• BT/BLE
![Page 3: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/3.jpg)
私たちは何者? • Sumanth
• セキュリティリサーチマネージャ & テクニカル リード – インテル社 ニューデバイスグループ • サンマイクロシステム、パーム
• Kavya Racharla
• セキュリティ リサーチャ – インテル社 ニューデバイスグループ • オラクル、クアルコム
![Page 4: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/4.jpg)
• 事実!!
• 弱点!!
• 軽減
アジェンダ
![Page 5: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/5.jpg)
• 事実!!
• 弱点!!
• 軽減
Agenda
![Page 6: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/6.jpg)
• IoT -オン/オフスイッチであらゆるデバイスをインターネットに接続
• コストと低消費電力が重要な考慮事項 • BT/BLE FTW!
• コネクテッドワールド —> 大量のデータ —> 多くの懸念 • 最優先のセキュリティ:赤ちゃんの見守り、ウェラブル、無線による車のハッキング!
Why ウェラブル/IoT
![Page 7: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/7.jpg)
クラッシック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](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/8.jpg)
GAP!デバイスの検知、接続、そして、相互のボンディングを作る方法を定義
SMP ペアリングとキーの配布および他のデバイスを認証するプロトコル 共有された秘密鍵は保存されるので再接続が早くできる
L2CAP BLEの多重化レイヤ
GATT 特性、サービス、そして、あとリブートのタイプと使用について記述
ATT ピアデバイスのデータにアクセスするための簡易なクライアント・サーバ型のステートレスプロトコル
BLE プロトコルスタック
![Page 9: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/9.jpg)
Ad Ad
アドバタイジング インターバル
スキャニング 接続 要求
GATT サーバ もしくは ペリフェラル
GATT クライアント もしくは セントラル
Data
Data Data
コネクション インターバル
Data
ブロードキャスター
オブザーバ
動作の詳細
![Page 10: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/10.jpg)
Secure Simple Pairing • Just Works: 非常に限定的・ユーザインターフェース無し • Numeric Comparison: ボタンとディスプレイの付いたデバイス • Passkey Entry: 6桁のPINとパス・キー • Out Of Band: 中間者攻撃に対抗するために他の通信手段を使用
ペアリング アルゴリズム
![Page 11: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/11.jpg)
ペアリング リクエスト
機能、配布する鍵の リストと認証の要求内容
ペアリング レスポンス
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](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/12.jpg)
オブジェクトモデル: • メインオブジェクト
• CBCentralManager • CBPeripheral • CBPeripheralManager • CBCentral
• データオブジェクト • CBService • CBCharacteristic
• ヘルパーオブジェクト • CBUUID
Core Bluetooth - iOS
![Page 13: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/13.jpg)
• コアAndroidフレームワーク4.3もしくはAPIレベル18!
• マニフェストで宣言が必要なパーミッション • “BLUETOOTH” パーミッション
• あらゆる接続を行うのに必要 • 接続要求・受付、データ伝送!
• “BLUETOOTH_ADMIN” パーミッション • デバイスの検出を始めるためのアプリケーション • Bluetoothの設定を操作
Android - BLE サポート
![Page 14: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/14.jpg)
• セキュリティはペアリングメカニズムに選択されたフレーバに大きく依存する • パッシブ攻撃
• ペアリングセッションを盗聴することで暗号鍵を盗み取ることができる • Mike Ryan氏の研究:低電力消費が低セキュリティにつながる
• Just works はアクティブ攻撃に弱い • 中間者攻撃:Just works モード
既知のセキュリティリスク
![Page 15: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/15.jpg)
アジェンダ
• 事実!!
• 弱点!!
• 軽減
![Page 16: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/16.jpg)
ウェラブル
BT/BLE/ANT+ BT/BLE
バックエンドサービス
HTTPS
![Page 17: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/17.jpg)
問題 – 前触れ デバイス コマンド: • デバイスをリカバリモードにする
• ファームウェアアップデートを行う
• デバイス名(BLE)を変更
通知: • SNSアプリケーション • 電話とテキストメッセージ
情報: • ユーザの行動データ • ユーザ・プロファイル更新 • アプリケーションの動作(起動、選曲)
• 電話・テキストメッセージ・SNSアップデート(時々)
![Page 18: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/18.jpg)
デバイス コマンド: • デバイスをリカバリモードにする
• ファームウェアアップデートを行う
• デバイス名(BLE)を変更
通知: • SNSアプリケーション • 電話とテキストメッセージ
情報: • ユーザの行動データ • ユーザ・プロファイル更新 • アプリケーションの動作(起動、選曲)
• 電話・テキストメッセージ・SNSアップデート(時々)
問題 – 前触れ
攻撃者
![Page 19: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/19.jpg)
デバイス コマンド: • デバイスをリカバリモードにする
• ファームウェアアップデートを行う
• デバイス名(BLE)を変更
通知: • SNSアプリケーション • 電話とテキストメッセージ
情報: • ユーザの行動データ • ユーザ・プロファイル更新 • アプリケーションの動作(起動、選曲)
• 電話・テキストメッセージ・SNSアップデート(時々)
問題
攻撃者
![Page 20: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/20.jpg)
根本原因 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](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/21.jpg)
事例 – ウェラブル エコシステム 1
• BLEを使用 • 独自のコード • メッセージとヘッダのフォーマットに関する市場調査が存在 • マルウェア アプリは既知のBLE特性にサブスクライブし、正規のアプリとデータを同期させる
![Page 22: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/22.jpg)
事例 – ウェラブル エコシステム 1
![Page 23: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/23.jpg)
事例 – ウェラブル エコシステム 2
• BT, BLE と WiFi を使用!
• デバイスは直接クラウドと同期が可能 • アプリに関連した脅威はより少ない!
• マルウェア アプリ (GATTのキャラクタりスティック 検索・読出し・書込み) はユーザの情報を一切取得しない
![Page 24: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/24.jpg)
事例 – ウェラブル 3 • 似ている、でも、ひとひねりある • マルウェア アプリは自身ではウェアラブルにコマンドを送ることはできない • 正規のアプリはデバイスに接続を行う
• マルウェア アプリはウェアラブルにコマンドを送るために正規のアプリの動きをモニターし、セッションを乗っ取る
教訓:部分的なセキュリティは役に立たない • ハンドシェイクだけでなく全てのメッセージを保護すべき
![Page 25: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/25.jpg)
事例 –ウェラブル3
![Page 26: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/26.jpg)
マルウェアの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](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/27.jpg)
• 行動データと運動モード • 心拍数。カロリー、距離、皮膚温度、など • 精密なGPSパターン = ユーザの居場所
• マルウェア アプリはリカバリ用のファームウェアのイメージが無くてもデバイスをリカバリモードにできる
• ユーザはデバイスをサービスセンターまで修理に持っていかなくてはならない • デバイス名の変更は一時的なDoSを引き起こす
“マルウェアが電話に?” 違う! しかし…
機密性
• マルウェアはデバイス上でコマンドを実行 • デバイス名を不当なものに変更 • コマンドについて詳しくはリストを参照
正確性
可用性
社会的な認知 の問題 • 注目される研究の題材 • Break Once and Reuse Everywhere (攻撃手法が幅広く使われる) リスク
どうして気にしなくてはならない?
![Page 28: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/28.jpg)
アジェンダ
• 事実!!
• 弱点!!
• 軽減
![Page 29: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/29.jpg)
目的
• 通信は電話の上の正規のアプリケーションとウェラブル デバイスとの間だけに許可!
• ウェラブルから電話に送信される機微なデータを保護 • 行動データ – 心拍数、カロリー、行動情報 など • アプリに特有のフィードバックもしくは入力 – 音楽、通知 など!
• コンパニオン アプリからウェラブルに送信されるすべてのコマンドの正確性を保護
![Page 30: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/30.jpg)
思い込みと非客観性
• 最初に使う時には正規のアプリケーションしか存在していない • 電話はrootを取られていないしジェイルブレークもされていない • 以前から存在しているアプリケーション サンドボックスには致命的な脆弱性がある
• 中間者攻撃はBLEペアリングの間に発生する
![Page 31: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/31.jpg)
BLE Pairing
軽減策の概要
複数のアプリが データ伝送に BLEリンクを 使用
マルウェアは正規の アプリとして同じ BLEペアリングに アクセスできる
App to Device Pairing
アプリからデバイス へのペアリングは 登録されたアプリ
に限定
BLE Stack
BLE Hardware
BLE スタック
BLE ハードウェア
![Page 32: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/32.jpg)
軽減策の案
鍵交換 – アプリケーション特有の鍵 Kp
正確性を保護 — HMAC(Kp, コマンド)
機密性を保護 — E(Kp, データ)
Kp を知らないと書込み・読出しができない
![Page 33: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/33.jpg)
軽減策 — 現実
Web ポータルとサービス
サービス A
サービスB
サービスC
複数の信頼できるアプリが複数の信頼できる電話上に存在
クラウドベースのアカウントと鍵の
管理
ウェラブル デバイスは複数のアプリにサービスを提供
し得る
![Page 34: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/34.jpg)
軽減にあたっての検討事項
• #apps と #wearable サービスとの通信のためのマッピング • 暗号化のサポート • パフォーマンス • 鍵管理
• ウェラブル • 電話 • クラウド?
![Page 35: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/35.jpg)
デモ – 修正
![Page 36: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/36.jpg)
今後必要なこと
• Android と iOS のセキュリティ強化 • アプリからデバイスへのセキュリティのサポート
• BLE仕様としての認証と暗号化のサポート • 上記の両方
![Page 37: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/37.jpg)
サマリー
• 攻撃しやすい急所: • Bluetooth/BLE Spec • 主なスマホプラットフォーム上で採用された仕様
• 中程度のリスク (電話上のマルウェア); 大きな被害 (機微なユーザ情報) • セキュリティおよび金融サービスに活用されたウェラブルへの大きな被害
• Apple Watchの自動アンロック • Pay
• ネットワーク攻撃からの保護は不十分 • アプリ開発者とウェラブルのOEM生産者にとっては更なるセキュリティの層を追加するのは荷が重い!アプリ <— —> デバイス 通信
![Page 38: Kavya racharla ndh-naropanth_fin_jp-final](https://reader033.vdocuments.pub/reader033/viewer/2022051521/5a64d4b27f8b9a824a8b4a79/html5/thumbnails/38.jpg)
ありがとうございました!(そして Q&A)
@kavyaracharla
@snaropanth