GNU/Linux >> Linux の 問題 >  >> Linux

攻撃者は Bluetooth で何ができ、どのように軽減する必要がありますか?

(注:この回答は 2013 年のものです。それ以来、Bluetooth では多くの変化がありました。特に、BLE の人気の急激な上昇、新しい攻撃、廃止された機能などです。そうは言っても、そのほとんどはまだ適用可能です。)

はじめに

Bluetooth 技術自体の技術的な部分には触れずに、私の知る限り、あなたの質問に答えようと思います。 BYOD ポリシーを作成するためにセキュリティ レポートを作成しなければならなかったときに、次のようなことをたくさん学びました。あなたのことを知っているので、100% 安全なものなどないと説教する必要はないでしょう。

Bluetooth とは何か

  • テクノロジとしての Bluetooth 自体は安全ではありません。実装だけでなく、設計自体にもいくつかの重大な欠陥があります。

  • Bluetooth は近距離の通信方法ではありません。少し離れているからといって、安全であるとは限りません。クラス I Bluetooth デバイスの範囲は最大 100 メートルです。

  • Bluetooth は成熟した通信方法ではありません (セキュリティに関して)。スマートフォンによって、それは本来あるべき姿とはまったく異なるものになりました。電話を周辺機器に接続する方法として作成されました。私のアドバイス:Bluetooth を重大なことに使用しないでください。

現在、Bluetooth はどのように保護されていますか?

  • クレイジーな周波数ホッピング:Bluetooth は AFH (Adaptive Frequency Hopping) と呼ばれるものを使用します。基本的には 2.4 Ghz ISM 帯域で 79 チャネルを使用し、環境を観察して既存の周波数をホッピング リストから除外しながら、1600 ホップ/秒のレートでチャネル間をホッピングし続けます。これにより、干渉や妨害の試みが大幅に減少します。

  • E0 暗号スイート:128 ビット キーのストリーム暗号を使用します。

  • 検出不能:デバイスを「検出可能」に設定しない限り、スキャンの試行に応答せず、48 ビットの BD_ADDR (Bluetooth 対応デバイスを識別するアドレス) は公開されません。

  • ペアリング:デバイスが当事者の同意を得てペアリングされていない限り、通信することはできません。ペアリング要求は、他のデバイスの BD_ADDR を (スキャンまたは以前の知識によって) 知っている場合にのみ行うことができます。

<ブロック引用>

設定した間隔でデバイスを取り外して再ペアリングすることをお勧めします (これにより Bluetooth PIN が変更されると考えられます)

はい。とても良いアイデアです。信頼できるデバイスによって悪用されるリスクを排除しています。通常、デバイスをペアリングするのは些細な理由 (知人にファイルを送信する、どこかで会った人から VCard を取得するなど) であることを考えると、Bluetooth を頻繁に使用すると、「信頼できる」デバイスの膨大なリストが作成される可能性が非常に高くなります。

<ブロック引用>

デバイスまたはコンピュータを「検出可能」にすると、セキュリティにどのような影響がありますか?

デバイスを検出可能にする際の問題は、BD_ADDR を求めている人にアドバタイズしていることです。別のデバイスとペアリングする唯一の方法は、BD_ADDR を知ることです。標的型攻撃では、48 ビットの BD_ADDR をブルート フォースするのに時間がかかります。

通常、BD_ADDR を知ることは大きな問題にはなりませんが、携帯電話やコンピューターの Bluetooth ソフトウェアに脆弱性がある場合は、目立たないようにすることをお勧めします。もう 1 つの問題は、プライバシーへの影響です。見つけられるようにすることで、ペアリングされていない (信頼されていない) 関係者に、あなたが近くにいることを知らせることができます。

<ブロック引用>

Bluetooth 対応デバイスは、システム上でどのようなアクセス権を取得しますか?

通常の場合 (任意のコードの実行を許可する脆弱性はありません)、デバイスでサポートされている Bluetooth プロファイルにすべて依存します。通常、コンピューターはすべてのプロファイルをサポートしていると想定できます。いくつか挙げてみます:

  • BHIDP (Bluetooth ヒューマン インターフェイス デバイス プロファイル) により、マウスとキーボードのイベント発生 (マウスの移動とキーボード キーの送信) にアクセスできます。
  • BIP (Basic Imaging Profile) により、カメラへのアクセスが許可されます。
  • A2DP (Advanced Audio Distribution Profile) は、MIC と音声出力へのアクセスを提供します。
  • OBEX (OBject EXchange) は、通常、心配する必要があるものです。実装によっては、ファイル、電話帳、メッセージなどにアクセスできる場合があります。
<ブロック引用>

有効にできる (または有効にできない) Bluetooth セキュリティ機能はありますか?これらの機能の存在 (または欠如) を監査するにはどうすればよいですか?

Bluetooth V2.1 より前では、プロトコル自体を実装するときに、開発者はセキュリティ モード #1 を使用するオプションを利用できました。これは、セキュリティがまったくないことを意味します。デバイスはペアリングを必要とせずに通信でき、暗号化は使用されません。

Bluetooth V2.1 以降では暗号化が必要です。

ユーザーとして、Bluetooth の使用をより安全にするためにできることがいくつかあります。 (下記参照)

<ブロック引用>

暗号化が有効にできるセキュリティ機能であると仮定すると、それは必須ですか、それともオプションですか?

前の質問と同様に、実装に依存します。通常、PC-PC、スマホ-スマホ、PC-スマホの通信ではデフォルトで暗号化が使われます。 Bluetooth V2.1 以降、暗号化はデフォルトで有効になっています。

<ブロック引用>

悪意のあるデバイスが私のデバイスとペアリングされると、攻撃者は何ができるでしょうか?

基本的に、デバイスがサポートするものは何でも。これを実証するために、Super Bluetooth Hack というアプリケーションを使用するだけで、次のような非常に恐ろしいことがわかります:

<ブロック引用>

- 呼び出し音:着信音、目覚まし時計の再生。
- 通話:番号のダイヤル、通話の終了。
- キー、押されたキー:押されたキーを押して見る
- 連絡先
- SMSを読む
- サイレント モード:オンまたはオフにする
- 電話機能:ネットワーク/電話をオフにする
- アラーム
- 時計:日付と時刻の変更
- ネットワークオペレーターの変更
- Java:Java アプリケーションの開始、削除
- カレンダー
- メモリの状態
- キーロック

では、Bluetooth の何が問題になっているのでしょうか?

  • ペアリングされたデバイスを完全に信頼する: ペアリングされたデバイスは、他のデバイスがサポートするほぼすべてのプロファイルにアクセスできます。これには、OBEX と FTP (ファイル転送プロファイル) が含まれます。

  • プロフィールの自由度が高すぎる: プロファイルは、必要なセキュリティ モードを選択できます。暗号化や認証をまったく必要としない Bluetooth を使用せずに、独自のバージョンの OBEX を実装することもできます。 (Bluetooth V2.1 より前)

  • E0 の弱点: 1999 年以降、E0 の脆弱性が現れ始めました。これまで信じられていた 2 ではなく、2 で E0 をクラックできることが証明されました。年々、研究者はより多くの脆弱性を発見しており、2005 年の Lu、Meier、および Vaudenay による攻撃につながりました。この攻撃は、2 回の操作でキーを復元できる可能性を示しました。

  • ペアリングは大まかに定義されています: デバイスは、すぐにクラックできる 4 桁の PIN など、独自のペアリング方法を実装できます。

最後に、グッド プラクティスのガイドライン:

重要な NSA Bluetooth セキュリティの推奨事項をいくつかリストします (一部を変更し、独自のものを追加しました):

  • 必要な場合にのみ Bluetooth 機能を有効にする
  • 必要な場合にのみ Bluetooth 検出を有効にします。
  • ペアリングされたデバイスを近くに置き、デバイスで何が起こっているかを監視します。
  • 安全な長いパスキーを使用してデバイスをペアリングします。
  • 予期せずプロンプトが表示された場合は、パスキーや PIN を入力しないでください。
  • Bluetooth 対応デバイスを定期的に更新してパッチを当てる
  • ペアリングされたデバイスは、使用後すぐに取り外してください。

更新: 1 時間前、私は Bluetooth V4.0 の仕様に飛び込んでいましたが、驚いたことに、彼らはまだ暗号化に E0 を使用しているようで、ペアリング メカニズムに適切な変更はありませんでした。さらに悪いことに、ユーザーは 2 つのデバイスで 6 桁の番号が表示され、それらが同じかどうかを確認するように求められる番号比較ペアリング メカニズムを推進しています。私の意見では、これはソーシャル エンジニアリング攻撃の大きな扉を開くものです。

<ブロック引用>

ユーザーの操作が必要なペアリング シナリオでは、盗聴者保護により、単純な 6 桁のパスキーが 16 桁の英数字のランダム PIN コードよりも強力になります。

ソース

アップデート 2: この「Just Works」の 6 桁の PIN は確かに問題があるようです。 Mike Ryan は BLE への攻撃を実証し、彼のツールが「パチパチ」音を立てて一時キーをブルート フォース攻撃し、トラフィックを復号化するコードを公開しました。


デバイスのセキュリティはデバイスの種類に限定されます。

<ブロック引用>

Bluetooth のセキュリティ リスクとは? デバイスを保護するために使用する必要のあるテクノロジとベスト プラクティスは?

各デバイスは、一定レベルのサービスを提供します。提供されるサービスは、アクセスおよび悪用に対する制限または制限を作成します。最善の保護策は、Bluetooth をオフにしておくことです (偏執的である場合)。 Symantec のサイトと Dark Reading で興味深い記事がいくつかあります。

<ブロック引用>

悪意のあるデバイスが私のデバイスとペアリングされると、攻撃者は何ができるでしょうか?

起こりうるいくつかのこと:

  • 電話帳、写真、ビデオ、カレンダーを盗んだり、電話をかけることを許可したり、電子メールを送受信したり、約束をしたり、SMS メッセージを送信したりする可能性があります。

  • 携帯電話を悪用した後、爆弾の脅威を含む SMS メッセージを地元の警察署に送信する可能性があります。請求記録は、電話の所有者であり、SMS の実際の送信者であるあなたを確実に指し示します。これは、ターゲット システムの Bluetooth 規格の実装に大きく依存します。ノートン

  • また、通話を聞いたり (ヘッドセットを偽装した場合)、デスクトップ上のマウス カーソルを制御したりする可能性もあります (マウスを偽装した場合)。

日産の販売店で、サービスが終わるのを待って退屈している間、カーステレオをいじって楽しんでいました。デモカーの 1 台のステレオは発見可能だったので、セールスマンが潜在的な購入者に新しい機能を見せているデモ中にペアリングし、彼らは私のデバイスとペアリングしました。 (私たちは両方ともペアでした)。その後、営業スタッフが立ち去った後、私はステレオを「所有」し、ランダムな曲をストリーミングして音量を制御しました.誰かが車から離れると、ステレオの音が大きくなります。誰かが車に向かって歩くと、ステレオが静かになります。これはすべて楽しいことでしたが、電話がかかってきてステレオが自動応答し、カバーを吹き飛ばしそうになりました (電話を無視しました)。

<ブロック引用>

設定した間隔でデバイスを取り外して再ペアリングすることをお勧めします (これは Bluetooth PIN を変更していると考えてください)

システムは簡単に悪用できるため、これを行っても、ターゲット ハードウェアの他のデバイスとの通信制限 (その信頼レベル) に存在する元の脆弱性は取り除かれません。暗い読書

<ブロック引用>

デバイスまたはコンピュータを「検出可能」にすることによるセキュリティへの影響は?

システムを「検出可能」にすることで、誰かがデバイスの名前を一致するように変更して、デバイスになりすますことができます。これは一部のデバイスでは避けられません。

<ブロック引用>

Bluetooth 対応デバイスは、システム上でどのようなアクセスを取得しますか?

これは、システム自体に適用されている制限によって異なります。ソフトウェア開発者が交換を保護するために時間を割かず、誰かがあなたのワイヤレス マウスになりすましたために、すべてのワイヤレス マウスまたはワイヤレス ヘッドセットが同じように動作するとシステムが想定している場合、システムのサービスで許可されているすべてのものにアクセスできる可能性があります。 Windows では、これは完全な制御を意味するようです。

<ブロック引用>

Bluetooth デバイスのアクセス範囲を制御するにはどうすればよいですか? (私の電話が危険にさらされた場合、PC の露出を制限したいと思います)

セキュリティ実装の制限により、Bluetooth システムは独自の方法で危険にさらされる可能性があります。範囲内の誰かが、携帯電話、ヘッドセット、マウス、Bluetooth 対応冷蔵庫などと同じように、「検出可能な」デスクトップまたはラップトップを簡単に侵害する可能性があります。Bluetooth を使用していないときは、ペアリングを解除して無効にします。使用していないときは、ダム デバイスの電源を切ります。

<ブロック引用>

有効にできる (または有効にできない) Bluetooth セキュリティ機能はありますか?これらの機能の存在 (または欠如) を監査するにはどうすればよいですか?

これはデバイスによって異なります。ワイヤレス マウスなどのデバイスには、アクティビティのログがありません。デスクトップは可能性があります。一部の携帯電話は対応していません。

<ブロック引用>

暗号化が有効にできるセキュリティ機能であると仮定すると、それは必須ですか、それともオプションですか? (さらに、Bluetooth 用の SSL ストリップを作成できますか?)

暗号化は、それをサポートするデバイスでのみ処理できます。最初のハンドシェイクで、デバイスに暗号化機能がないことを示した場合、システムはトランザクションの暗号化を試みません。たとえば、ワイヤレス マウスは安全な信号を送信しません。

Mac の Bluetooth の脆弱性が悪用されてトロイの木馬が展開されるWindows の脆弱性

<ブロック引用>

その後、攻撃者はプログラムをインストールする可能性があります。データの表示、変更、または削除。または、完全なユーザー権限を持つ新しいアカウントを作成します。この脆弱性は、Bluetooth 機能を備えたシステムにのみ影響します。

Linux Bluetooth エクスプロイトには、メモリ スタックの操作と読み取りが含まれます。

頑張ってください。


このトピックに関する私の知識は限られているため、この回答は不完全または不正確である可能性がありますが、Bluetooth はさまざまなプロトコル (プロファイルと呼ばれる) を開発できるかなりルーズなスタックであると理解しています。セキュリティの詳細の多くは、ハードウェアにある特定の Bluetooth スタックとプロファイルに依存します。

Bluetooth スタック (ハードウェアのドライバー) にセキュリティ上の欠陥がないと仮定すると、自動ペアリングがオフになっている限り、デバイスを検出可能にしても何の違いもありません。誰かができる最悪のことは、あなたが拒否できるペアリング要求を行うことです.

Bluetooth デバイスがシステムに取得するアクセスのレベルは、Bluetooth スタックとプロファイルがどのように実装および構成されているかによって完全に決定されるため、質問のこの部分に直接答えることは実際には不可能です.

おそらく、Bluetooth を、短距離の無線リンクでさまざまなサービスを提供する小さなサーバーのように考えるのが最適でしょう。提供されるサービスとサービスの実装方法は大きく異なりますが、各タイプのプロファイルに使用されるプロトコルは一貫しています。 (たとえば、ヘッドセット オーディオは、AVRCP (オーディオ/ビデオ リモート コントロール プロトコル) と同様に一般的なプロファイルです)。

ペアリングに関しては、ペアリング プロセス中に、将来使用する共有秘密鍵が開発されます。共有シークレットがどちらのデバイスからも漏洩しない限り、別のデバイスがそのペアになりすますことはできません。また、通信が単なる握手ではなくその鍵で暗号化されている限り、通信自体は安全です.

ウィキペディアによると、2.1 より前の Bluetooth では暗号化はオプションであり、約 1 日以上使用すると簡単に破られる可能性がありましたが、2.1 以降のバージョンの Bluetooth では、サービス検出とより優れた共有キー管理以外で暗号化を要求することでこれを修正しています。


Linux
  1. Makefileとは何ですか?どのように機能しますか?

  2. LinuxでのChownコマンドとは何ですか?その使用方法

  3. cURLコマンドとは何ですか?その使用方法は?

  1. Webサーバーとは何ですか?Webサーバーはどのように機能しますか?

  2. Linux上のFlatpak:それは何であり、それを使ってアプリをインストールする方法

  3. Howto:GitとGithubとは何ですか?どのように使用し、なぜ気にする必要がありますか?

  1. コンテンツキュレーションとは何ですか?どのように行う必要がありますか?

  2. コマンド traceroute に * * * があるとはどういう意味ですか?その状況にどのように対処できますか。

  3. メールとは何ですか? どのようにナビゲートされますか?