Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2020-14292 — CVE-2020-14292 の詳細 | Kitploit
ツール/GitHubGitHub/alwentiu/cve-2020-14292
AndroidセキュリティBluetoothセキュリティ脆弱性分析ワイヤレスセキュリティモバイルセキュリティプライバシー
GitHubalwentiu/cve-2020-14292

CVE-2020-14292

CVE-2020-14292 の詳細

リポジトリを見る
236年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2020-14292: COVIDSafeアプリにおけるBluetoothトランスポートの問題

著者: Alwen Tiu, オーストラリア国立大学

最終更新: 2020-09-08

概要

Android版COVIDSafeアプリ(バージョン1.0.21まで)において、GATT接続におけるBluetoothトランスポートオプションの安全でない使用により、攻撃者がアプリを騙してBluetooth BR/EDRトランスポート経由で接続を確立させることが可能です。これにより、ユーザーのスマートフォンの公開Bluetoothアドレスが許可なく漏洩し、スマートフォンにおけるBluetoothアドレスランダム化保護が回避されます。この問題はCVE-2020-14292として追跡されています。

技術的説明

問題の原因は、startWork 関数にあります。この関数では、connectGatt を使用してGATT接続を行っていますが、トランスポートオプションが指定されていません。

root@kitploit:~
fun startWork(
    context: Context,
    gattCallback: StreetPassWorker.StreetPassGattCallback
) {
    gatt = device.connectGatt(context, false, gattCallback)
    if (gatt == null) {
       CentralLog.e(TAG, "Unable to connect to ${device.address}")
    }
}

これにより、AndroidはBluetooth接続の開始時にトランスポートにTRANSPORT_AUTOオプションを使用します。Androidの実装では、接続先のペリフェラルがデュアルモードデバイス(BR/EDRとLEの両方をサポート)の場合、デフォルトでBR/EDRにフォールバックするようです。これは、AndroidのGATTクライアント実装に起因する可能性があります(例: このコード 、関連コードスニペットを以下に示します)。

root@kitploit:~
 // Determine transport
  if (transport_p != BT_TRANSPORT_AUTO) {
    transport = transport_p;
  } else {
    switch (device_type) {
      case BT_DEVICE_TYPE_BREDR:
        transport = BT_TRANSPORT_BR_EDR;
        break;

      case BT_DEVICE_TYPE_BLE:
        transport = BT_TRANSPORT_LE;
        break;

      case BT_DEVICE_TYPE_DUMO:
        if (transport_p == BT_TRANSPORT_LE)
          transport = BT_TRANSPORT_LE;
        else
          transport = BT_TRANSPORT_BR_EDR;
        break;
    }

BR/EDRではMACアドレスランダム化がサポートされていないため、セントラルはペリフェラルに対して自身の識別アドレスを公開します。

攻撃を実行するには、攻撃者はデュアルモードデバイス(BR/EDR + LE)上で公開アドレスを使用してGATTサーバーをアドバタイズします(この部分が重要です。そうしないとダウングレードが発生せず、AndroidセントラルはLEトランスポートを使用します)。これにより、COVIDSafeアプリはLEトランスポートではなくBR/EDRトランスポートを使用してペリフェラルに接続し、結果としてスマートフォンの公開アドレスが漏洩します。これはテストされたすべてのスマートフォンとAndroidバージョンで機能します。

Android 6以降では、修正は簡単です。トランスポートオプションを明示的に指定するだけです。

root@kitploit:~
  gatt = device.connectGatt(context, false, gattCallback, BluetoothDevice.TRANSPORT_LE)

ただし、Android 5.1(APIレベル22)では、そのメソッドがAPIで公開されていないため機能しません。実際には存在しますが、隠蔽されています。そのため、Android 5.1では、リフレクションを使用してその隠蔽メソッドを呼び出す修正が可能です。これらの修正はCOVIDSafe (Android) v1.0.48 で実装されています。

しかし、Android 5.1の修正は100%機能しない可能性があります。私のテストでは、識別アドレスの漏洩が依然として発生していました。これは実行時のリフレクション手法の失敗が原因である可能性があり、さらなる調査が必要です。

セキュリティおよびプライバシーへの影響

スマートフォンの識別アドレスを入手することで、攻撃者はBluetoothがオンになっており、攻撃者のBluetooth範囲内にある場合にそのスマートフォンを追跡できます。一部のBluetooth関連の脆弱性(例:CVE-2020-0022)は、さらなる攻撃を仕掛けるために識別アドレスの知識に依存しているため、この攻撃を他の攻撃と連鎖させる可能性があります。攻撃者が識別アドレスを保持することの結果の一部については、このドキュメント を参照してください。

推奨事項

COVIDSafeアプリのAndroidバージョンのユーザーは、アプリをアップデートすることを強く推奨します。Android 5を実行しているユーザーは、Bluetooth機能が不要な状況ではBluetoothをオフにすることを推奨します。

開示スケジュール

この問題は、2020年6月2日にオーストラリア政府デジタルトランスフォーメーション庁に最初に報告されました。最初の修正は2020年6月22日にリリースされ、Android 6以上に対応しました。これはAndroid 6以上で機能することが確認されています。しかし、この問題は依然としてAndroid 5.1に影響を及ぼしていました。2回目の修正は2020年7月30日にリリースされ、Android 5.1の残りの問題に対処しました。

謝辞

この問題を独立して確認し、関連するさまざまな議論を提供してくれたJim Mussaredに感謝します。

ツールをダウンロード