Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kavya racharla ndh-naropanth_fin_jp-final

1,211 views

Published on

PacSec2017

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Kavya racharla ndh-naropanth_fin_jp-final

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

×