
BLESuite is a Python package that provides an easier way to test Bluetooth Low Energy (BLE) device
BLESuiteは、Bluetooth Low Energy(BLE)デバイスとの通信をよりユーザーフレンドリーにし、迅速なBLEデバイステストを可能にするPythonパッケージです。 BLESuiteバージョン2は、PyGattlibとBlueZへの依存を排除し、代わりにPyBT(https://github.com/mikeryan/PyBT)の修正版を使用して、独自のBLEスタックを実装・管理します。このバージョンは、通信の信頼性を高め、通信の柔軟性を向上させ、デバイススキャンを改善し、Bluetoothスタックのホスト層でのデバイスファジングを可能にします。 BLESuiteが利用するスタックは、デバイステストを可能にするために、意図的に不正なリクエスト/レスポンスをデバイスに送信できるように設計されています。
機能:
blesuite と ble-replay読者への注意:
Bluetooth Low Energy機能にアクセスするには、それをサポートするBluetoothアダプタが必要です。
BLESuiteの目標は、セキュリティ評価のためにターゲットBLEデバイスとの通信を迅速にスクリプト化する簡素化された方法を提供することです。PyGattlibとBlueZからPyBTへの移行により、BLEスタックをより細かく制御し、ターゲットデバイスのさまざまなBLEスタック層をテストできるようになりました。
さらに、BLESuiteはもはやセントラルロールのみに制限されません。BLESuiteは現在ペリフェラルロールをサポートしており、ユーザーはGATTサーバーを迅速に構成・起動して、セントラルロールのBLEデバイス(またはデュアルロールデバイス)をテストできます。
以下は、BLESuite Pythonパッケージのインストール手順です。
対応オペレーティングシステム:
BLESuiteはDebian 9.3に対して開発およびテストされています。このライブラリは他のLinuxディストリビューションでもサポートされる可能性がありますが、現在のところサポートは保証されていません。
注意: Fedora 28でBLESuiteを使用する最近の試みは、以下の項目をインストールすることで達成されました:
Fedora 28では、着信ATTリクエストの処理を試みる際に、Debian 9.3インストールには存在しないTypeErrorに関連する、再現性のない問題が1件報告されています。
修正の貢献を歓迎します!
必要なソフトウェア
BLESuiteを使用するための要件は以下の通りです:
libbluetooth-dev、libpython-dev、python-sphinxをインストールした後、以下を実行して残りのPython依存関係をインストールします:
pip install -r requirements.txt
docsフォルダから以下を実行します:
make html
その後、docs/_build/htmlに完全なドキュメントとリファレンスガイド一式が利用可能になります。
以下のコマンドを実行して、Pythonパッケージをインストールします:
python setup.py install
BDADDR Python APIをインストールしたくない場合、またはインストールに問題がある場合は、setup.pyの以下の行をコメントアウトして、上記のコマンドを再実行してください:
ext_modules = [c_ext],
現時点では、BLESuiteはLE Legacy JustWorksペアリングのみをサポートしています。Security Managerはほぼ設計されていますが、LESCおよび代替アソシエーションモデルのための残りの暗号プログラミングはまだ実装する必要があります。
ATT署名付き書き込み操作は、現在BLESuiteではサポートされていません。これは一般的に使用される操作ではありませんが、セキュリティモード2をサポートするためには、サポートされるべきです。
BLESuiteは現在、パブリックおよびランダム(スタティック)アドレスのみをサポートしています。ただし、ランダムアドレスにはスタティックまたはプライベートの2つのサブタイプがあります。ランダムプライベートアドレスは、BLESuiteで現在サポートされていない2つのサブタイプにさらに分類できます: 非解決可能プライベートアドレスと解決可能プライベートアドレス(ペアリング中に交換されたIRKを使用して解決)。
そのため、これらのタイプのアドレスをホストアダプタに設定する機能は、現在BLESuiteでは公開されていません。また、交換されたIRKに基づいてピアのランダム解決可能アドレスを解決する機能もまだ実装されていません。
ライブラリが構築されたので、次のステップはこのライブラリを利用するセキュリティ評価ツールを構築することです。
このライブラリに含まれている例の1つが ble-replay で、BLEパケットキャプチャを取り込み、GATTトラフィックをターゲットデバイスにリプレイできます。ble-replay は、リプレイ攻撃に関連するアプリケーション層のセキュリティ上の欠陥を迅速に特定するのに役立ちます。
この種のツールは、パケットキャプチャを手動で分析したり、BLE通信テストケースを手動でスクリプト化したりする時間を削減します。