2 ポイント 投稿者 GN⁺ 2025-01-21 | 1件のコメント | WhatsAppで共有
  • Bambu Connectのリバースエンジニアリング

  • Bambu Connectの概要

    • Bambu ConnectはElectronアプリであり、セキュリティが不透明な形で実装されているため、本質的に安全ではありません。
    • このガイドは、ユーザーが購入した製品に対してより多くの権利を持てるよう支援することを目的としています。
  • セキュリティキー抽出プロセス

    • Bambuデバイスとの通信に使用される「秘密鍵」を抽出する簡単な手順を説明しています。
    • Bambu Connectのファイルを抽出するには、MacOSの.dmgファイルを使うほうが簡単です。
    • アプリはasarmorを使って簡単に読めないよう保護されており、鍵は特定のパスに保存されています。
    • Ghidraを使ってmain.nodeを読み込み、Auto-Analyzeを実行した後、GetKey関数を検索して鍵を抽出できます。
  • 秘密鍵および証明書の抽出

    • 秘密鍵と証明書はさらに難読化されており、これを明らかにするには複数段階の復号が必要です。
    • Pythonを使って機密情報を抽出するサンプルコードが提供されています。
  • 参考資料

    • Bambu Connectの特定バージョンの.dmgファイルへのリンクが提供されています。

1件のコメント

 
GN⁺ 2025-01-21
Hacker Newsのコメント
  • Bambuのおとり商法に腹が立つ。Black Fridayセールのときに「ある程度ハック可能でオープンだ」と見てプリンターを買ったのに、今では承認されたソフトウェアとDRMチェーンなしでは自分のプリンターで印刷できないようにロックしようとしている
    ハッキング関連の追加情報はこちら: https://hackaday.com/2025/01/19/bambu-connects-authenticatio...

    • おとり商法というより、オープンソース3Dプリンターを支持していた立場からすれば、遠くからでも予見できたこと。Bambuは最初からこういう計画がかなり明白で、自ら「Appleモデル」をやると言っていた。かなり透明に示されていたのに、人々が引っかかっただけ
    • なぜハック可能だったりオープンだと思ったのか分からない。X1発売時からファームウェアはクローズドだったし、統制も強かった。それがこのプリンターを買う人たちが受け入れていたトレードオフだった
      どんなおとり商法があったと見ているのか、以前は公式に可能だったのに今はできなくなったことが何なのか、本当に気になる
    • SDカードでは別途ソフトウェアやオンラインサービスなしで印刷でき、Prusaのプリンターと同じ。ロックされたのはサーバー/インターネット側の機能で、そこも開かれている方がいいとは思うが、ローカル印刷機能は今でも完全に制限なく動作する
    • Bambuは「ハック可能」や「オープン」を宣伝したり公式にサポートしたことはない。サポートも宣伝もされていない機能を根拠に購入を決めるのは愚かで、腹を立てること自体は分かるが、少し妙に見える
    • 「ある程度ハック可能でオープンだ」という認識がどこから来たのか気になる。Bambuプリンターにはかなり満足しているが、ハック可能だと理解したことはないし、ましてオープンだと思ったこともない
      最初からRFIDフィラメントスプールが他社に十分開かれていない点には少し不満があった
  • 理解できないのは、BambuSlicerがオープンソースだという点。しかもPrusaSlicerのフォークなので、Bambuが勝手に再ライセンスすることもできない
    ライセンスは派生著作物に非常に厳格なAffero GPLで、Bambuが追加したすべてのコードやロジック、キーなどをバイナリ配布に入れるなら、ソースも含めなければならない。そうでなければPrusaや多くの貢献者の著作権を侵害することになる
    結局Bambuはこれをすべてオープンソースとして公開しなければならず、目的が崩れる。すでに流出しているので、どのみちそうなる可能性が高いか、あるいは自社スライサーでも別プログラムを経由させる必要がある

    • BambuConnectはBambuStudioの一部ではない。BambuLabが共有したりオープンソースとして公開したりしなくて済むよう、意図的に分離されている
      現在実装されているBambuネットワークプラグインもBambuStudioの一部ではなく、BambuStudioを開くとクライアントがダウンロードする
  • 当初はまともなネットワーク、つまりクラウドではないLANサポートがなかったので、Bambuにはかなり反対していた。後からLANモードを追加して、実際に買おうか考えたが、怠けて買わなかったのが幸いだった
    Bambu、一体何をしているんだ? セキュリティだって? HPでさえそんな言い訳はしない

    • Bambu Labはこの点をかなり明確にしてきた。コンシューマー向けプリンターはクラウドサービスに依存し、プライベートLANで印刷する必要がある、またはそうしたい人向けにはX1Eを提供している
      https://store.bambulab.com/products/x1e
    • HPは毎月料金を払わないと、ただプリンターを使えないようにロックしてしまう
    • Bambuが明らかに狙っている非技術ユーザー層を考えると、認証を検討したい理由は技術的には理解できる
      ただし、すべてのサードパーティ連携を壊さずに簡単に実現できる。設定に完全ローカルで動作するトグルを1つ用意すればいい
  • Prusaが脇道にそれていなければ、Core Oneを買っていただろう。ここで言っているのは、BambuLabと同等の品質で大きな造形ボリュームを持つ架空のモデルのこと
    その代わりにP1Sを買ったが、技術的には本当に素晴らしい機械だ

    • Prusaは脇道にそれたわけではない。むしろ車輪を発明し、元のスライサーのフォークではあるが大幅に改良したオープンソーススライサーを作った。Bambuはそれを持っていき、EUではなく中国でより安くプリンターを製造した側に近い
      Prusaは自社で600台のプリンターを運用している。商用グレードであり、商業デザインや試作に使うならPrusaを選ぶだろう。常時クラウド接続されたプリンターが自分の設計を海外に送らないようにしたいという理由もある
  • Louis Rossmannの関連解説: https://www.youtube.com/watch?v=aIyaDD8onIE

  • 1か月ほど前にBambuプリンターを買って以来、この件を追い続けている。受け取ってすぐにセキュリティ状態が気に入らず、IoT VLANに隔離しつつメインPCから使えるようにするのにかなり手間がかかった
    なので第一印象だけで言えばセキュリティ改善は歓迎だが、実際に何を持ち出してくるのか不安でもある
    キーがどこに使われるのかも気になる。「キーを手に入れた」という話はよく見たが、そのキーが何に使われ、どう役に立つのか、あるいは本当に役に立つのかについての説明は見ていない
    近いうちに、もっと興味深い続報としっかりした技術情報が出てくることを願う

    • 私の理解では、LANで印刷するにはBambuのインターネットサーバーで認証しなければならないが、それは絶対に望まない
      私のユースケースではそもそも動作しない。私のプリンターは中国リージョンに固定されているが、今は中国にいないのでそのサーバーに接続できない。つまりファームウェアを上げると、ローカルネットワーク上でLAN印刷すらできなくなりそうで、とても気持ちが悪い
      プリンター自体は素晴らしいが、わざわざこうする必要はない
    • これはセキュリティではなく、ベンダーロックイン、あるいはDRMだ。セキュリティであれば、ユーザーごとの秘密値に基づくプロトコルで十分であり、本質的にBambu Lab専用ソフトウェアに縛る必要はない。ユーザー名/パスワードのようなものを考えればよい
      今見えているのは、ユーザーをBambu Labのソフトウェアに縛り付ける構造だ。銀行口座をBambu Labの「セキュリティ修正」のような方式で保護しろと言われたら、絶対に許容しないだろう
    • キーは重要な操作、特に印刷とG-codeコマンドの署名に使われる: https://git.devminer.xyz/archive/bambu-connect/src/commit/47...、既知のMQTTコマンド一覧: https://github.com/Doridian/OpenBambuAPI/blob/main/mqtt.md
      ファームウェアはこれらの操作を検証し、署名のない、または不正なサードパーティ製ソフトウェアからのMQTTメッセージを拒否できる
      このアプローチの大きな欠陥は、キーを抽出されるとサードパーティ製ソフトウェアが再びフルアクセス権を得ることだ
      セキュリティ改善にはなっていない。プリンターやクラウドに脆弱性があったなら、この種の難読化レイヤーでは何も防げない
      認証方式は以前と同じだ: https://git.devminer.xyz/archive/bambu-connect/src/commit/47...
  • Bambuの回答: https://blog.bambulab.com/updates-and-third-party-integratio...

    • 正直、この回答はあまり良くない。冒頭から防御的に「サブスクリプションが必要になる」といった虚偽の主張を並べているが、懸念はBambuが必ずそうするということではなく、そうできるようになるという点にあり、印刷経路にBambuインフラを必須の段階として挟み込むこと自体が好ましくないということだ
      truth about the updateの最初の項目では、「サードパーティ製ソフトウェアを制限しようとしているのではなく、セキュリティを強化しつつ連携を維持するためにBambu Connectを作り、Orca Slicerのような開発者たちと積極的に協力している」としている
      しかしOrcaSlicerの開発者はすでに[0]で、「Bambuはこの変更を発表の2日前に知らせてきた」と明かしている
      Bambuの言う「協力」は、Orcaから実際の印刷開始を行う自社ソフトウェアへリダイレクトする実装を手伝うことのように見え、これはサードパーティ製ソフトウェアの制限に見える
      「強制アップデートではなくベータテストであり、選択は皆さん次第だ」という言い方も奇妙だ。ベータファームウェアは、いずれリリース版ファームウェアになるためのものではないのか。むしろコミュニティの反発は、ベータトラックが意図どおり機能した証拠だ
      Panda Touchについても、BambuはBTTに連絡してMQTTプロトコルの悪用を警告したとしているが、BQがすでに[1]で触れている。要するに、Bambuと協力しようとしたがほとんど反応がなく、今後のアップデートでMQTTが止まる可能性があるという警告だけを受けた。技術的には連絡したことになるが、実質的には「我々の製品を改善するな」と言ったに等しく、結局BambuはBQよりも自社の顧客を困らせている
      さらに下では、Orca Slicerのようなサードパーティ製スライサーの利用体験に大きな違いはないとし、Orcaが新しいアプリを簡単に開き、そのアプリが印刷を開始できることを示している。だが、それこそがコミュニティが不満を述べていた点であり、Linuxサポートの欠如のような問題も解決していない
      最後に新しいフローダイアグラムを示しているが、新しいソフトウェアが何をするのかは抜け落ちている。その新しいソフトウェアがクラウドとどのように、いつ、なぜ通信するのかが見えない
      セキュリティを少しでも理解している人にとって、この変更はあまり筋が通っておらず、Bambuは実装しようとしているセキュリティプロトコルの説明としても不十分だ。私には、Bambu Connectアプリのどこかに個人証明書を埋め込み、プリンター要求への署名を始めたのではないかと思えるが、秘密鍵がすでに公開されているなら、セキュリティはまったく改善されていない
      [0] https://github.com/SoftFever/OrcaSlicer/issues/8063#issuecom...
      [1] https://old.reddit.com/r/BIGTREETECH/comments/1i5lzzf/latest...
  • 「app.asarを先に修正せずに展開すると、暗号化されたmain.jsファイルと100GBのデコイファイルが生成されるのでやるな」というくだりは、正確にはzip爆弾ではないにせよ、かなりそれに近く、本当に腹立たしいやり方だ

  • Bambuはこんなことより、消耗品の供給とカスタマーサポートの拡充に力を入れるべき。チケット1件を解決するのに何週間もかかり、最初の返信まで8日かかるのが普通だった

    • 基本的なフィラメントの在庫すら維持できず、基本的なサポートもまともにできていないのに、プリントファームのサブスクリプションを出す準備ができていると考えるのは少し滑稽。成長が速すぎた
    • 何が直せないのかわからない。自分が経験した問題は全部YouTubeで解決方法の動画を見つけられた
  • 3Dプリンターが2Dプリンターと同じくらいユーザーに敵対的になっていくのは驚くことではない。最近はいつもそうだが、「セキュリティ」が言い訳になっている

    • FDM 3Dプリンター界隈にはオープンソースのソフトウェア、ファームウェア、ハードウェアがあまりにも多いので、一般的なプリンターほどひどくなることはなさそう。2D印刷よりはるかにメイカー中心のエコシステム
    • 少なくとも3Dプリンターは家で作れる。数年前に自分で作ったし(https://lucasoshiro.github.io/hardware-en/2020-06-14-3d_prin...)、今ならもっと良いものも作れる
    • 3Dプリンティングが登場してかなり経つのに、鉛筆やペンを複数本取り付けられる2Dプロッター改造機がまともに存在しないのは本当に理解できない
      高価なインク独占がこういう形で攻撃されてこなかったのは驚きだし、子どものころ食料品店のキオスクで、色鉛筆で空白のカードにメッセージや画像を「印刷」してくれていたのをはっきり覚えている。まったく新しい話ではない
    • 認めると、2Dプリンターの印刷システムは悪夢だ。たとえばWindows Secured Core PCはすべてのサードパーティ製プリンタードライバーを無効化し、Mopriaのようなドライバーレスのオープン標準だけをサポートしている
      調べた人たちによれば、macOSやLinuxのCUPSもセキュリティの模範と言える可能性は低く、3か月前にはリモートコード実行をめぐる騒動もあった
      OSの印刷スタックがめちゃくちゃなら、ネットワーク接続プリンターのファームウェアにはどんな恐怖が潜んでいるかわからない。セキュリティを名目にサードパーティ製インクカートリッジをブロックするというが、インクカートリッジがいったい何をするというのか? プリンターに送るデータでバッファオーバーフローを起こすのか? それともプリンターが本当にそこまで間抜けで、こちらが考えすぎていただけで、第一印象以上に弁解の余地がないのかもしれない