2021.12.16
【Webマガジン Vol.48- Dec., 2021】Bluetoothの脆弱性と最新Core Spec対応の重要性
FRONTLINEWEBマガジン
はじめに
昨今、イヤホンやカーナビをはじめとして、さまざまな製品がBluetoothで接続できるようになっています。Bluetoothは無線で手軽に機器同士の通信ができる便利な機能です。また、周波数ホッピングによる高速チャネル切り換えやペアリングによる接続認証および通信の暗号化でセキュリティについては考慮されています。
しかし、無線通信であるが故、電波を傍受されること自体は起こりうることですし、人間が策定した仕様である以上、人間によって破られるという可能性もゼロではありません(完璧な絶望というものが存在しないように、完璧なセキュリティというものもまた、存在しないと言えます)。
とはいえ、安心して通信するためには悪意のある第三者が頑張ったぐらいではうんともすんともいわない堅牢性は必要です。
Bluetoothにおいても、これまでにセキュリティの脆弱性に関していくつかのケースが指摘されてきましたが、本記事では以下4つのBluetooth脆弱性の事例をご紹介させていただきます。
事例1. Impersonation in the BR/EDR pin-pairing protocol
事例2. Impersonation in the Passkey entry protocol
事例3. Bluetooth Impersonation Attacks (BIAS)
事例4. Key Negotiation of Bluetooth (KNOB)
そして、それらの事例に対する解析ポイントを記載いたします。
最後に、脆弱性対策としてのBluetooth Core Specificationの最新バージョンへ対応することの重要性をご説明します。
脆弱性とは?
脆弱性について総務省ホームページでは以下のように記載されています。
脆弱性(ぜいじゃくせい)とは、コンピュータのOSやソフトウェアにおいて、プログラムの不具合や設計上のミスが原因となって発生した情報セキュリティ上の欠陥のことを言います。 (中略)脆弱性が残された状態でコンピュータを利用していると、不正アクセスに利用されたり、ウイルスに感染したりする危険性があります。
引用元:https://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/risk/11.html
脆弱性が存在すると、それはまるで急所のように、悪意のある第三者が攻撃をしてくるポイントとなってしまいます。したがって、脆弱性が発見された場合は早急に対応する必要があります。
最近のBLUETOOTH脆弱性事例
事例1:Impersonation in the BR/EDR pin-pairing protocol
この事例はなりすましの事例になります(Impersonationの意味:偽装、なりすまし)。 SIGの報告では「Bluetooth Device Address (BD_ADDR)を詐称した攻撃者が、PINコードを知らなくても、そのBluetooth機器とBR/EDRのPINコードペアリングを完了できる可能性がある」とあります。
この事例の特徴としては、攻撃対象のBluetooth機器のBluetooth Device Address (以降、BDアドレス) を使ってその攻撃対象のBluetooth機器にアクセスを行うことが挙げられます。
事例2:Impersonation in the Passkey entry protocol
こちらもなりすましの事例ですが、パスキーについて指摘している点が特徴となります。SIGの報告では「パスキー認証手順でMITMとして行動する攻撃者が、細工した一連の応答を使用して、ペアリング手順の各ラウンドでペアリング開始者が選択したランダムに生成されたパスキーの各ビットを特定し、いったん特定されると、同じペアリングセッション中にこれらのパスキービットを使用して、応答者との認証されたペアリング手順を成功させることができる可能性がある」とあります。
パスキーはユーザーが入力するものですが、ユーザーは同じ番号の組み合わせを繰り返し使ってしまう傾向があり、その結果としてパスキーが特定されてしまう危険性があるのです。
この事例の対策として、接続元のBluetooth機器が選択したのと同じ公開鍵を接続先のBluetooth機器が提示することの禁止が推奨されています。
事例3:Bluetooth Impersonation Attacks (BIAS)
こちらもなりすましの事例ですが、パスキーについて指摘している点が特徴となります。SIGの報告では「以前に結合された接続先Bluetooth機器のアドレスを偽装する第三者のBluetooth機器がリンクキーを所有していなくても、ペアリング済みのBluetooth機器との認証手順を正常に完了する可能性がある」とあります。
この事例の特徴としては、Secure ConnectionをサポートするBluetooth機器の場合、攻撃者は以前にペアリングされた接続先Bluetooth機器であると主張し、Supported FeaturesによりSecure Connectionはサポートされていないことを通知します。それによって、片方向の認証(相手の認証)で接続ができてしまう点にあります。また、ペリフェラルで認証手順を開始した場合、ロールスイッチをすることで自分の認証を避けることもできてしまいます。
事例4:Key Negotiation of Bluetooth (KNOB)
キーの長さが変更されることで第三者からアクセスされる危険性のある事例です。SIGの報告では「Bluetooth仕様で最小の暗号化キーの長さが義務付けられているわけではないため、一部のベンダーは、BR/EDR接続で使用される暗号化キーの長さを攻撃してくるBluetooth機器によって設定できてしまう可能性がある」とあります。
この事例の特徴としては、LMP_encryption_key_size_reqで暗号化キーの長さのやりとりをした際に接続元Bluetooth機器が設定した長さに対して攻撃するBluetooth機器が1オクテットなど極端に短くすることで第三者がキーの解読が容易となってしまう点にあります。
解析のポイント
Bluetoothプロトコルアナライザを使用することで、Bluetoothの脆弱性に関わる部分を可視化することができます。ここでは、解析するポイントとして、前述の4つのケースを元にご説明します。
①相手のアドレスがおかしくないか確認する(事例1:Impersonation in the BR/EDR pin-pairing protocol)
②接続時の処理におかしいところがないか確認する (事例2:Impersonation in the Passkey entry protocol、事例4:KNOB)
③セキュリティダウングレードに問題がないか確認する (事例3:BIAS)
①相手のアドレスを確認する
Bluetoothに限らず、例えばイーサネットやWi-Fiにおいても機器のアドレスは基本的には固有で各機器が識別できるようになっています。アドレス(住所)が同じだと誰だかわかりませんよね?
その観点でいえば「事例:Impersonation in the BR/EDR pin-pairing protocol」のように自分と同一アドレスの第三者がアクセスしてくるということ自体、すでに悪意のあるなりすまし行為と言えますので、そのような相手は問答無用で対処する必要があります。
②接続時の処理におかしいところがないか確認する
接続時の処理において、公開鍵が使われたり、暗号化キーの長さが設定されたりとさまざまな設定が行われますが、それらの設定内容におかしいところがないか?と確認していくことも脆弱性を解析するポイントになります。
例えば「事例: Impersonation in the Passkey entry protocol」で対策としてローカルBluetooth機器が選択したのと同じ公開鍵を接続先Bluetooth機器が提示することの禁止が推奨されていますが、Passkey Entryでの公開鍵の設定はLMP_encapsulated_headerコマンド以降でやりとりがされています。
また、事例「Key Negotiation of Bluetooth (KNOB)」における暗号化キーの長さを変更しているようなケースも、実際のデータで確認することが可能です。
キーの長さを1バイトにしているといった悪質な行為はもちろんのこと、接続対象の機器と実際に接続した際に、想定したキーの長さで接続しているかどうか等、キーにまつわる設定に問題ないかどうか確認することが必要です。
③セキュリティダウングレードに問題がないか確認する
セキュリティダウングレード(自分が行いたいセキュリティに対して相手が強度の弱いセキュリティ設定を行う)は、セキュリティ情報をやりとりしている箇所で自身がサポートしているセキュリティ設定および相手がサポートしているセキュリティ設定を確認することができます。意図しないセキュリティとなっている場合は自分と相手のどちらに要因があるのか、実際のやりとりをみれば一目瞭然です。
まとめ(バージョンアップの重要性)
Bluetoothの脆弱性対策については、Bluetoothの大元の規格団体であるBluetooth SIGが積極的に情報公開を行っています。
Bluetooth SIG:セキュリティの脆弱性を報告する
https://www.bluetooth.com/ja-jp/learn-about-bluetooth/key-attributes/bluetooth-security/reporting-security/
今回取り上げた脆弱性のケースのうち、 BIASやKNOBについてはBluetooth SIGで既に新しいBluetooth Core Specバージョンで実装の問題への対策を行っています。
現在 Bluetooth v4.2など比較的古いバージョンをお使いの方は、この機会に最新のCore Spec バージョンに対応することをおすすめします。
以下のリンクに最新のBluetooth規格に対応したBluetoothプロトコルアナライザ製品をご紹介させていただいておりますので、是非Bluetoothの脆弱性解析のお役に立てれば幸いです。
Teledyne LeCroy Frontline社 Bluetoothプロトコルアナライザ製品一覧ページ
https://cornestech.co.jp/product
Bluetoothプロトコルアナライザに関するご質問やご要望等ございましたら、ページ下部のWEBマガジンお問い合わせフォームより、お気軽にお問い合わせください。