Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BLEな()おもちゃを調べてみる

NV
November 23, 2017

 BLEな()おもちゃを調べてみる

@IoTSecJP東京

NV

November 23, 2017
Tweet

More Decks by NV

Other Decks in Technology

Transcript

  1. BLEな()おもちゃを調べてみる
    NV (@nvsofts)

    View Slide

  2. 自己紹介
    名前:NV
    ◦ Twitter: @nvsofts
    個人サークル「えぬえす工房」代表
    ◦ https://www.ns-koubou.com/
    ◦ 冬コミ(C93)出るのでよろしくお願いします
    普段は都内にあるセキュリティ会社でIoTセキュリティなど
    をやっています

    View Slide

  3. 事の発端は・・・
    ある人に

    View Slide

  4. 事の発端は・・・
    ある人に
    「面白いものを買ってきたから調べてみない?」
    と言われたことです

    View Slide

  5. 入手したもの

    View Slide

  6. 入手したもの

    View Slide

  7. 入手したもの

    View Slide

  8. そういえば
    こんなのがありましたね・・・

    View Slide

  9. えーっと・・・
    要するに「大人向けの健康器具」の類です
    親機と子機が付属し、子機は2種類の方法で遠隔操作可
    1. 親機を使用して遠隔操作
    2. Bluetooth LE (BLE)対応のスマートフォンで遠隔操作

    View Slide

  10. えーっと・・・
    要するに「大人向けの健康器具」の類です
    親機と子機が付属し、子機は2種類の方法で遠隔操作可
    1. 親機を使用して遠隔操作
    2. Bluetooth LE (BLE)対応のスマートフォンで遠隔操作
    ↑今回はこれにフォーカス

    View Slide

  11. 調べる前に
    海外で入手したデバイスなので、技適マークはない
    ◦ 屋外で試すのはもちろんNG
    実験時は関係のない人に迷惑をかけないように対策を
    行っています

    View Slide

  12. 子機を調べる
    子機の電源を入れて、nRF Connectでスキャン
    ◦ 「Aogu BLE Device」という名前でアドバタイズしている

    View Slide

  13. 子機を調べる
    サービスはこんな感じ
    ◦ 「Command Ch」という名前のキャラクタリスティックがある

    View Slide

  14. スマホアプリについて
    専用のスマホアプリはiOS、Androidに対応
    ◦ Android版は.apkを配っている
    ◦ iOS版はIn-House配布なので野良アプリ(ダメでしょ・・・)

    View Slide

  15. スマホアプリを調べる
    調べやすいAndroid版をMobSFで静的解析する

    View Slide

  16. 権限が山盛り

    View Slide

  17. 遠隔操作コードを発見
    ’00 XX’という
    バイト列を送るらしい

    View Slide

  18. 子機にコマンドを送ってみる
    試しに、Command Chに’00 01’というバイト列を送信

    View Slide

  19. 子機にコマンドを送ってみる
    試しに、Command Chに’00 01’というバイト列を送信
    動いた!

    View Slide

  20. 子機にコマンドを送ってみる
    試しに、Command Chに’00 01’というバイト列を送信
    動いた!
    しかもペアリングなしで(認証がない!)

    View Slide

  21. 攻撃用デバイスを作る
    ESP32の評価ボードを使用
    プログラムはESP-IDFに付属のサンプルを改造
    周辺にある「Aogu BLE Device」を探して動作させる

    View Slide

  22. スニファで見ると・・・?
    nRF Snifferを使ってESP32~子機間の通信をキャプチャ
    ◦ Write Requestが発行されていることが確認できる
    ◦ ハンドル:0x0012は、Command Chを意味している

    View Slide

  23. まとめ
    BLEで認証なしは危険
    ◦ 利用者にとっては楽かもしれないが、通信を保護する手段は
    一切ない
    ◦ 現在では攻撃用デバイスも容易に作成可能
    似たような事例のニュース記事の言葉を借りると
    「非常に私的なものであるはずなのに、
    第三者によって自在にコントロールされてしまう」
    ということになる

    View Slide

  24. おまけ:親機を調べる
    親機は430MHz帯の無線を使っている
    ◦ 子機は430MHz帯+2.4GHz帯のデュアルバンド機になる
    ◦ 送信周波数は433.87MHz
    ◦ アマチュア無線のバンドとかぶっている
    ◦ 近くの433.50MHzは非常通信周波数
    JARL:アマチュアバンドプラン より
    http://www.jarl.org/Japanese/A_Shiryo/A-3_Band_Plan/A-3-0.htm

    View Slide