Pwnd Blaster: スピーカーに一切触れずに、スピーカー経由でPCをハックする
(blog.nns.ee)- Creative Sound Blaster Katana V2X は、Bluetoothの到達範囲およそ15m以内にいる攻撃者が、ペアリングや物理的接触なしにCTPコマンドとファームウェア更新を実行し、監視装置やリモートRubber Duckyのようなものへ変えられる可能性がある
- USB上の CTP は静的キーに基づく challenge-response 認証を要求するが、Bluetooth経路ではGATT characteristic経由で同じCTPコマンドを認証なしに受け付け、情報読み取りや設定変更を許してしまう
- ファームウェアコンテナは
FBOOT、FMAIN、CHK2で構成され、署名検証なしで SHA-256チェックサムであるCHK2さえ一致すれば、改変済みファームウェアを受け入れる - PoCではBLEで約10分かけてカスタムファームウェアをアップロードしたあと、再起動したスピーカーがUSB HIDキーボード のように
echo pwnedを入力して実行するようにした - Creative は SingCERT を通じた連絡の後、「サイバーセキュリティ上のリスクを示していない」として脆弱性とは見なさず、最新ファームウェアも脆弱なままで、CTP-over-Bluetooth を遮断する非公式パッチだけが提供されている
脆弱性の要点
- Katana V2X はUSBでPCに接続されるサウンドバーであり、CreativeアプリはCTPでDSP、LED設定、出力ソースなどの構成を変更する
- USBでCTPコマンドを書き込むには、まず challenge-response 認証を通過する必要があり、キーはCreative Appに含まれるバイナリから導出できる静的な値だった
- ファームウェア更新もCTP上で実行され、初期のファームウェアイメージはWiresharkでUSBトラフィックをキャプチャして抽出した
- Bluetooth Low Energyでは、ペアリングなしでもデバイスに接続してGATT characteristicを読み書きできる場合があり、ペアリングは暗号化を成立させるが、接続そのものに常に必要というわけではない
- Katana V2Xのファームウェア内では内部CTPハンドラがUSBだけでなくBluetoothにも接続されており、ノートPCから
5a 09 01 02を characteristic9e9daaec-3a10-4fe8-b69f-7397aff77886に書き込むと、characteristic9e9daaeb-3a10-4fe8-b69f-7397aff77886から完全なファームウェアバージョン文字列を読み出せた
ファームウェア検証とOTA攻撃チェーン
- ファームウェアコンテナには、リカバリモードに関係する
FBOOT、通常起動時に実行されるメインファームウェアFMAIN、コンテナ全体に対するSHA-256チェックサムCHK2が含まれる FBOOTとFMAINは/home/jieyi/mcuos2.5/kernel/freertos-8.2.3/という文字列が示すとおりFreeRTOSベースのコードで、FMAINはFBOOTより約6.5倍大きい- デバイスは
CHK2さえ正しければ改変済みファームウェアを受け入れ、WELCOME文字列をPATCHEDに置き換えたファームウェアを書き込むと、起動時にセグメントディスプレイへPATCHEDと表示された - 同じファームウェア更新手順をBLEで再実装したPythonスクリプトにより、ペアリングや認証なしでカスタムファームウェアをアップロードでき、BLEの速度のため完了まで約10分かかった
- スピーカーにはマイクがあり、カスタムファームウェアが会話を盗聴してBluetoothで受信者へ送る、秘匿的な監視装置として動作し得る理論上の可能性がある
USBキーボード注入方式
- Katana V2X は通常構成でPCにUSB接続された信頼済みデバイスとして動作する
- デバイスはもともと完全なキーボードではないが、音量や再生/一時停止などのメディア制御用HID Consumer Controlデバイスとして構成されている
- ファームウェアのUSB report descriptorに2つ目の report descriptor 項目を追加することで、デバイスをキーボードとしても認識させられた
- ファームウェア内にはすでにHIDデータを送るルーチンがあり、押下するキーと離すキーのデータを渡して呼び出す形でキー入力を送信できた
- 実行フローを複雑に迂回する代わりに、通常使用中にはほとんど何もしないように見えた
diagnosticFreeRTOSタスクを上書きし、カスタムコードを起動時に実行させた - そのタスクは約20秒間USBサブシステムの準備完了を待ち、その後およそ20ms間隔で
echo pwnedを入力してEnterを押し、終了する - 最終パッチは、USB report 83バイト、キー入力インジェクタ用ARM/Thumbアセンブリ102バイト、送信する各キーストロークあたり2バイトで構成されていた
- 実際の攻撃では
powershell.exeのようなプログラムを開き、悪意あるワンライナー命令を貼り付けることができ、さらに攻撃者が通常モードとリカバリモードのファームウェア更新ルーチンを無効化すれば、悪性ファームウェアの除去や今後のパッチ適用が不可能になるおそれがある - スピーカーのBluetoothは省電力モードでも常時有効で、無効化する方法は見当たらない
緩和策と公開までの経緯
- Creativeには公開されたセキュリティ連絡先がなく、一般的な問い合わせ手段もWebサイトのサポートフォーム以外には見つけにくかった
- サポートフォーム経由で2回連絡を試みた後、SingCERTが仲介者として加わった
- CreativeはSingCERTにほぼ2か月後に返信し、「サイバーセキュリティ上のリスクを示さないため、脆弱性とは見なさない」と回答した
- Creative提供のパッチは存在せず、最新ファームウェアも脆弱なままである
- 非公式の緩和策はファームウェア内で CTP-over-Bluetooth を遮断するが、この変更によってCreativeモバイルアプリは動作しなくなる可能性が高い
- v2x-patcher はCreativeサーバーから公式ファームウェアをダウンロードし、メモリ上でパッチを当てたうえでUSB接続されたKatana V2Xへアップロードする
- すべてのテストとリバースエンジニアリングはファームウェアバージョン
1.3.230619.1820で実施された
リバースエンジニアリングの詳細
FMAIN.binは単一イメージではなく、scatter-loaded 構造になっており、異なるファイルオフセットが異なるアドレスへロードされる- Ghidraの自動解析には正しいベースアドレスとメモリマップが必要で、推定後にデバイスのメモリ読み出しで検証したレイアウトを適用すると、有効な解析結果が得られた
- 文字列ポインタは直接ロードされず、
movwとmovtの組でロードされており、同じレジスタにロードされる組を探して有効メモリを指す場合にDATA参照を作るスクリプトによって、約1.3万件の参照が生成された - ファームウェアを毎回再フラッシュせずにテストするため、CTP opcode
0x54の echo ハンドラを上書きし、読み取り・書き込み・実行コマンドを処理するようにした - 最終的なカスタムハンドラは96バイトで、元のハンドラサイズである約106バイト内に収まっていた
- 複数のキー入力を
mem-execでUSB処理タスクのコンテキスト内から実行すると、vTaskDelayの遅延が蓄積し、タスクごとのwatchdogのためデバイスが再起動した - キー入力コードをUSBタスクから直接呼び出すのではなく、
diagnosticサービスタスクへ注入すると、watchdogの問題は解消した
1件のコメント
Hacker Newsの反応
記事をちゃんと読んでいないか、そもそも読んでいないコメントが見えて笑う。これは実質的に、Bluetooth機器基板版の公開S3バケットみたいなものだと思う。
それでも作業自体は本当に見事。USB接続された機器を攻撃経路に変えるのはもっと難しいと思っていたが、キーボードを装ってローカル端末を開き、悪意あるコマンドを実行する程度で可能だというのはかなり面白い。管理者権限の端末ではないので被害はある程度限定されるだろうが、WindowsではユーザーがUACプロンプトをそのまま通してしまうことが多いので、かなり多くのPCで完全なアクセスを得られそうだ
SingCERTのメールによると、メーカーは「これはサイバーセキュリティ上のリスクを生まないため、脆弱性とは見なさない」と述べたらしい。ペアリングもなく、他人のコンピュータにUSB接続された機器に無線で任意のファームウェアを書き込めるのが、セキュリティ脆弱性ではないという話だ
ほかの周辺機器メーカーにも、見たところセキュリティチームなしで運営されているところがどれほど多いのか気になってくる。こうした脆弱性は、まだ見つかっていないだけでもっと多いのだろう。うちの弟は以前、深夜2時に近所の子どもたちがBluetoothスピーカーに接続して、おならの音を最大音量で繰り返し再生したせいで起こされたことがあるが、それは悪意あるBluetooth利用の氷山の一角にすぎない
定義上、影響が低いか可能性が低いためにリスクが低い脆弱性は常に存在する。CVEにはスコアがあるが、実際のリスクや、緩和前後でそのリスクを受容するかどうかはユースケースが決める。「リスクなし => 脆弱性なし」は設計上誤った推論で、「脆弱性なし => リスクなし」くらいしか同意できない
ただし、再フラッシュ用のインターフェースがBluetoothで開いているのは妙だ。私の知る限り、スピーカーとペアリングするには物理的アクセスが必要だ。
修正: 私が間違っていた。これはペアリングなしで動作するBTLEエンドポイントだ。だとしたらとんでもない脆弱性だ。独自ソフトウェアを実行できる能力は奪わない形でパッチされることを願う
文章がよく書けていて理解しやすく、ざっと読む価値がある。
要するに、Creative Sound Blaster Katana V2Xサウンドバーについて、Bluetooth経由で任意のファームウェア再書き込みを行える方法が見つかっており、実質的な認証やユーザー操作は不要。
このサウンドバーはUSBでホストコンピュータに直接接続されるため、ファームウェアにディスクリプタを追加してキーボードとして認識させることができた。その後はPCにキーストロークを送るのは簡単だった。サウンドバーにはマイクもあるので、攻撃者が盗聴装置に変えることもできる。
CreativeとSingCERTに報告したが、メーカーは2か月後になってようやく「サイバーセキュリティ上のリスクを生まないため、脆弱性とは見なさない」と回答した。
著者は欠陥のある転送プロトコルを無効化するファームウェアパッチャーを公開している。公式Bluetoothアプリの機能まで壊してしまう可能性のある、やや荒っぽい方法だが、メーカーの協力なしでできる最善策に見える
老舗メーカーですら、まず機器を作り、ソフトウェアは後付けのように扱うことがかなり多い。セキュリティはもちろん、パッチ、アップデート、変化するエコシステムといったソフトウェアのライフサイクルにもほとんど注意を払わない。
さらに、機器ブランドがソフトウェアを小さな外注開発会社に任せ、その会社が倒産したり消えたり事業を畳んだりして、メーカー自身がソースコードすら持っていないケースも見たことがある。そうなると、機器を動かすソフトウェアをそれ以上改善したり修正したりする能力もなく、その後はミドルウェア、UI、応急的な接続レイヤーが何層にも積み重なっていく
実際には「小さな外注開発者」ではなく、サプライチェーンハッカーのような人物がファームウェアを書いた機器も少なくない気がする
どうしてそんなに小さく考えるのか。スピーカー自体を攻撃者として使うことだってできる。
LLMを使うどんなスクリプトキディでも、サプライチェーンを通じて広がるワームを作れるだろう。工場の現場でスピーカーをその場でハックして、Rickrollの曲のようなものを流させることもできるはずだ。
そのときもCreativeが「サイバーセキュリティ上のリスクを生まない」と主張するのか気になる。
ついでにセキュリティホールを塞ぐ際に、正常なファームウェアフラッシュ機能まで無効化してしまえば、メーカーが修理のためにスピーカーを脱獄しなければならなくなるので加点対象だ
メーカーが脆弱性と見なさなかったために、著者がサードパーティ製パッチを公開しなければならなかったというのは、良い話には見えない
被害者になるにはこの機器を持っていなければならず、攻撃者がその事実を知っていて、しかも近距離にいる必要がある。Fight Clubのセリフを思い出せばいい。
A = 現場に設置されているスピーカーの数
B = ハックされ得る割合
C = 平均的な示談金額
決定: リコールや修理をしないコストがリコール費用を上回るなら、リコールを始める。最大のコストは、人々が今後スピーカーを買わなくなる場合だが、そうなる気はしない
Mossad のような組織を任されているなら、予算のかなりの部分を使って市販のあらゆる Bluetooth 機器を買い集め、手の空いているイスラエルのコンピュータサイエンス卒業生たちにこうした脆弱性を探させ、簡単に展開できるツール群にするだろう。
たとえば、イラン政府のオフィスに近づける工作員が携帯電話を持って建物内を歩き回り、できるだけ多くのコンピュータを掌握できるようにしたいはずだ。考えてみると、たぶん実際にそうしていると見るべきだろう
事実上、かなり制度化されたコンピュータ工学修士課程に近く、信号情報の組織なのでこうしたことを学ぶ。2〜3年の服務が終わると学資ローンもなく、政府はスタートアップのシード資金を多く提供し、TLV のエコシステムは小さな Bay Area のように回っている。
親と同居することも社会的により受け入れられているため、20代のかなりの割合が借金なしで月々の支出も低く、軍務で強い技術力を身につけ、起業の中心地にいて資本へのアクセスも良い。その結果、特にサイバーセキュリティ分野でユニコーンが多く生まれている(https://www.techaviv.com/unicorns)。
アメリカと比べると、4年制学部に専念し、多額の借金を抱え、家賃を払い、シード資金探しに苦労しなければならない。「壊れたシステムの残りかすをちょっと活用すればいい」という発想は、そもそも成功したシステムを持つという視点を見落としている
これが標準的な慣行でないなら、かなり驚くと思う。ただ、思ったより生産性が低くて労力に見合わない可能性はある。それでも今回の事例を見るとかなり成果が出そうでもあり、私たちの知らない情報機関の他の手法とも比較してみる必要がありそうだ
マーケティングが簡単か、バグ探しが簡単か :-)
私はファームウェアを書いていて、とくに Bluetooth 対応機器のファームウェア を扱っているのだが、会社がこのウェブサイトをブロックしている
技術を愛する人は、家中のすべてのコンピュータに接続され、Miles Davis が再生されると淹れたてのコーヒーを入れてくれる超スマートなコーヒーメーカーまで制御する超スマートスピーカーを買う。
技術を理解している人は、トースターの横に斧を置く
適当に作られたチャンネルがこれを扱った動画を、4営業日くらい後に私の YouTube のトップ画面に出してくるのがもう楽しみだ