2 poin oleh GN⁺ 2025-01-21 | 1 komentar | Bagikan ke WhatsApp
  • Reverse engineering Bambu Connect

  • Ikhtisar Bambu Connect

    • Bambu Connect adalah aplikasi Electron yang pada dasarnya tidak aman karena diimplementasikan dengan cara yang transparansi keamanannya tidak jelas.
    • Panduan ini bertujuan membantu pengguna memiliki lebih banyak hak atas produk yang mereka beli.
  • Proses ekstraksi kunci keamanan

    • Menjelaskan proses sederhana untuk mengekstrak "private key" yang digunakan untuk komunikasi dengan perangkat Bambu.
    • Lebih mudah mengekstrak file Bambu Connect dengan menggunakan file MacOS .dmg.
    • Aplikasi menggunakan asarmor untuk melindungi agar tidak mudah dibaca, dan kunci disimpan di jalur tertentu.
    • Dengan memuat main.node di Ghidra lalu menjalankan Auto-Analyze, Anda dapat mencari fungsi GetKey untuk mengekstrak kunci.
  • Ekstraksi private key dan sertifikat

    • Private key dan sertifikat juga diobfuskasi lebih lanjut, sehingga diperlukan beberapa tahap dekripsi untuk memperjelasnya.
    • Disediakan contoh kode Python untuk mengekstrak informasi rahasia.
  • Referensi

    • Tersedia tautan ke file .dmg untuk versi tertentu Bambu Connect.

1 komentar

 
GN⁺ 2025-01-21
Opini di Hacker News
  • Saya marah dengan taktik umpan lalu ganti Bambu. Saat diskon Black Friday, saya membeli printer karena melihatnya “cukup bisa di-hack dan terbuka”, tetapi sekarang mereka mencoba menguncinya agar saya tidak bisa mencetak dengan printer saya sendiri tanpa software yang disetujui dan rantai DRM
    Informasi tambahan terkait hacking ada di sini: https://hackaday.com/2025/01/19/bambu-connects-authenticatio...

    • Kalau disebut taktik umpan lalu ganti, dari sudut pandang pendukung printer 3D open source, ini sudah bisa diprediksi dari jauh. Sejak awal Bambu sangat jelas punya rencana seperti ini, dan mereka sendiri mengatakan menjalankan “model Apple”. Mereka cukup transparan menunjukkannya, tetapi orang-orang tetap terpikat
    • Saya tidak tahu mengapa orang menganggapnya bisa di-hack atau terbuka. Sejak X1 diluncurkan, firmware-nya sudah tertutup dan kontrolnya juga ketat; itulah kompromi yang diterima orang-orang yang membeli printer ini
      Saya benar-benar penasaran, taktik umpan lalu ganti apa yang dimaksud, dan apa yang dulu secara resmi bisa dilakukan tetapi sekarang tidak bisa
    • Melalui kartu SD, Anda bisa mencetak tanpa software terpisah atau layanan online, sama seperti printer Prusa. Yang dikunci adalah fungsi sisi server/internet, dan memang akan bagus kalau sisi itu juga terbuka, tetapi fungsi pencetakan lokal masih bekerja sepenuhnya tanpa pembatasan
    • Bambu tidak pernah mengiklankan atau secara resmi mendukung bahwa produknya “bisa di-hack” atau “terbuka”. Memutuskan membeli berdasarkan fitur yang tidak didukung maupun diiklankan itu ceroboh; boleh saja marah, tetapi terlihat agak aneh
    • Saya penasaran dari mana persepsi “cukup bisa di-hack dan terbuka” itu muncul. Saya cukup puas dengan printer Bambu, tetapi tidak pernah memahaminya sebagai bisa di-hack, apalagi menganggapnya terbuka
      Sejak awal saya agak tidak puas karena spool filamen RFID tidak cukup terbuka bagi vendor lain
  • Hal yang tidak saya pahami adalah BambuSlicer bersifat open source. Selain itu, karena merupakan fork dari PrusaSlicer, Bambu juga tidak bisa me-relicense sesukanya
    Lisensinya adalah Affero GPL yang sangat ketat terhadap karya turunan, dan jika semua kode, logika, kunci, dan sebagainya yang ditambahkan Bambu dimasukkan ke distribusi biner, maka source code-nya juga harus disertakan. Kalau tidak, itu berarti melanggar hak cipta Prusa dan banyak kontributor
    Pada akhirnya Bambu harus membuka semuanya sebagai open source sehingga tujuannya runtuh; dan karena sudah bocor, kemungkinan besar memang akan begitu, atau mereka harus membuat slicer mereka sendiri tetap melewati program terpisah

    • BambuConnect bukan bagian dari BambuStudio. Itu sengaja dipisahkan agar BambuLab tidak perlu membagikannya atau merilisnya sebagai open source
      Plugin jaringan Bambu yang saat ini diimplementasikan juga bukan bagian dari BambuStudio; klien mengunduhnya saat membuka BambuStudio
  • Awalnya saya sangat menentang Bambu karena tidak ada dukungan jaringan yang layak, yakni dukungan LAN alih-alih cloud. Belakangan mereka menambahkan mode LAN sehingga saya sempat mempertimbangkan untuk benar-benar membelinya, dan untungnya saya terlalu malas sehingga tidak jadi beli
    Bambu, sebenarnya kalian sedang apa? Keamanan? Bahkan HP pun tidak memakai alasan seperti itu

    • Bambu Lab sudah cukup jelas soal hal ini. Printer konsumen mereka bergantung pada layanan cloud, dan untuk orang yang harus atau ingin mencetak di LAN privat, mereka menyediakan X1E
      https://store.bambulab.com/products/x1e
    • HP akan langsung mengunci printer Anda sehingga tidak bisa dipakai kalau Anda tidak membayar tiap bulan
    • Mengingat segmen pengguna nonteknis yang jelas-jelas dibidik Bambu, alasan mereka mempertimbangkan autentikasi bisa dipahami secara teknis
      Namun itu bisa dilakukan dengan mudah tanpa merusak semua integrasi pihak ketiga. Cukup satu toggle di pengaturan untuk beroperasi sepenuhnya secara lokal
  • Kalau Prusa tidak terdistraksi, saya akan membeli Core One. Yang saya maksud di sini adalah model hipotetis dengan kualitas seperti BambuLab dan volume cetak besar
    Sebagai gantinya saya membeli P1S, dan secara teknis mesin itu benar-benar hebat

    • Prusa tidak terdistraksi. Justru mereka menciptakan rodanya, membuat slicer open source yang meski merupakan fork dari slicer asli telah banyak ditingkatkan, dan Bambu lebih mirip pihak yang mengambilnya lalu memproduksi printer lebih murah di China, bukan di UE
      Prusa mengoperasikan 600 printer miliknya sendiri. Itu kelas komersial, dan jika saya menggunakannya untuk desain komersial atau pembuatan prototipe, saya akan memilih Prusa. Salah satu alasannya adalah saya tidak ingin printer yang selalu terhubung ke cloud mengirim desain saya ke luar negeri
  • Ulasan terkait dari Louis Rossmann: https://www.youtube.com/watch?v=aIyaDD8onIE

  • Saya membeli printer Bambu sekitar sebulan lalu dan terus mengikuti isu ini. Begitu menerimanya, saya tidak suka dengan kondisi keamanannya, dan butuh cukup banyak usaha untuk mengisolasinya di IoT VLAN sambil tetap bisa dipakai dari komputer utama
    Jadi kalau hanya dari kesan pertama, perbaikan keamanan tentu saya sambut, tetapi saya juga cemas soal apa yang sebenarnya akan mereka keluarkan
    Saya juga penasaran kunci itu dipakai untuk apa. Saya sering melihat cerita bahwa “kuncinya berhasil didapat”, tetapi belum melihat penjelasan tentang kunci itu dipakai untuk apa dan bagaimana kegunaannya, atau apakah memang berguna sama sekali
    Semoga segera ada kabar yang lebih menarik dan informasi teknis yang solid

    • Sepemahaman saya, untuk mencetak lewat LAN harus diautentikasi ke server internet Bambu, dan itu sama sekali tidak saya inginkan
      Dalam kasus penggunaan saya, ini bahkan tidak akan berfungsi. Printer saya terkunci ke wilayah Tiongkok, sementara saya saat ini tidak berada di Tiongkok, jadi saya tidak bisa mengakses server tersebut. Artinya kalau saya memperbarui firmware, sepertinya saya bahkan tidak akan bisa mencetak lewat LAN di jaringan lokal saya sendiri, dan ini sangat membuat tidak nyaman
      Printernya sendiri bagus, tetapi tidak perlu sampai seperti ini
    • Ini bukan keamanan, melainkan vendor lock-in, atau DRM. Kalau soal keamanan, cukup gunakan protokol berbasis rahasia per pengguna, dan secara mendasar tidak perlu menguncinya ke perangkat lunak khusus Bambu Lab. Bayangkan saja sesuatu seperti nama pengguna/kata sandi
      Yang terlihat sekarang adalah struktur yang mengikat pengguna ke perangkat lunak Bambu Lab. Kalau diminta melindungi rekening bank dengan cara seperti “perbaikan keamanan” ala Bambu Lab, saya pasti tidak akan mengizinkannya
    • Kunci itu dipakai untuk operasi penting, khususnya penandatanganan perintah cetak dan G-code: https://git.devminer.xyz/archive/bambu-connect/src/commit/47..., daftar perintah MQTT yang diketahui: https://github.com/Doridian/OpenBambuAPI/blob/main/mqtt.md
      Firmware dapat memverifikasi operasi ini dan menolak pesan MQTT dari perangkat lunak pihak ketiga yang tidak memiliki tanda tangan atau tanda tangannya salah
      Kekurangan besar pendekatan ini adalah jika kuncinya diekstrak, perangkat lunak pihak ketiga kembali mendapatkan akses penuh
      Tidak ada peningkatan keamanan. Jika printer atau cloud rentan, lapisan obfuscation seperti ini tidak akan mencegah apa pun
      Metode autentikasinya sama seperti sebelumnya: https://git.devminer.xyz/archive/bambu-connect/src/commit/47...
  • Jawaban Bambu: https://blog.bambulab.com/updates-and-third-party-integratio...

    • Terus terang, jawabannya kurang bagus. Sejak awal mereka defensif dengan menyebut berbagai klaim palsu seperti “akan perlu berlangganan”, padahal kekhawatirannya bukan bahwa Bambu pasti akan melakukan itu, melainkan bahwa mereka jadi bisa melakukannya, dan memasukkan infrastruktur Bambu sebagai langkah wajib dalam jalur pencetakan itu sendiri bukan hal yang baik
      Pada poin pertama truth about the update, mereka mengatakan “kami tidak bermaksud membatasi perangkat lunak pihak ketiga; kami membuat Bambu Connect untuk memperkuat keamanan sambil mempertahankan integrasi, dan sedang aktif bekerja sama dengan pengembang seperti Orca Slicer”
      Namun pengembang OrcaSlicer sudah menyatakan di [0] bahwa “Bambu memberi tahu perubahan ini dua hari sebelum pengumuman”
      “Kerja sama” yang dimaksud Bambu tampaknya adalah membantu implementasi pengalihan dari Orca ke perangkat lunak mereka sendiri yang benar-benar memulai pencetakan, dan ini terlihat seperti pembatasan perangkat lunak pihak ketiga
      Pernyataan “ini bukan pembaruan paksa, melainkan uji beta dan pilihan ada di tangan kalian” juga aneh. Bukankah firmware beta ada untuk suatu hari menjadi firmware rilis? Justru penolakan komunitas adalah bukti bahwa jalur beta bekerja sebagaimana mestinya
      Soal Panda Touch juga, Bambu mengatakan mereka menghubungi BTT untuk memperingatkan penyalahgunaan protokol MQTT, tetapi BQ sudah membahasnya di [1]. Ringkasnya, mereka mencoba bekerja sama dengan Bambu tetapi tidak mendapat banyak respons, hanya peringatan bahwa MQTT bisa berhenti berfungsi pada pembaruan mendatang. Secara teknis memang benar mereka menghubungi, tetapi pada praktiknya itu sama saja dengan mengatakan “jangan tingkatkan produk kami”, dan akhirnya Bambu membuat pelanggannya sendiri lebih kesulitan daripada BQ
      Lebih jauh di bawah, mereka juga mengatakan pengalaman menggunakan slicer pihak ketiga seperti Orca Slicer tidak jauh berbeda, dan menunjukkan bahwa Orca bisa dengan mudah membuka aplikasi baru dan aplikasi itu memulai pencetakan. Namun justru itulah bagian yang dikeluhkan komunitas, dan itu juga tidak menyelesaikan masalah seperti tidak adanya dukungan Linux
      Terakhir, mereka menyajikan diagram alur baru, tetapi tidak menjelaskan apa yang dilakukan perangkat lunak baru itu. Tidak terlihat bagaimana, kapan, dan mengapa perangkat lunak baru itu berkomunikasi dengan cloud
      Bagi siapa pun yang sedikit saja memahami keamanan, perubahan ini tidak terlalu masuk akal, dan Bambu juga kurang menjelaskan protokol keamanan yang ingin mereka implementasikan. Menurut saya, bisa jadi mereka menanamkan sertifikat privat di suatu tempat dalam aplikasi Bambu Connect dan mulai menandatangani permintaan ke printer; tetapi jika kunci privatnya sudah dipublikasikan, keamanannya sama sekali tidak meningkat
      [0] https://github.com/SoftFever/OrcaSlicer/issues/8063#issuecom...
      [1] https://old.reddit.com/r/BIGTREETECH/comments/1i5lzzf/latest...
  • Bagian yang mengatakan “jangan coba mengekstraknya tanpa terlebih dahulu memodifikasi app.asar, karena itu akan menghasilkan file main.js terenkripsi dan file umpan 100GB” tampaknya memang bukan zip bomb secara persis, tetapi cukup mendekati, dan benar-benar cara yang menjengkelkan

  • Bambu seharusnya lebih memperhatikan pasokan consumable dan perluasan dukungan pelanggan daripada hal-hal seperti ini. Menyelesaikan satu tiket bisa memakan waktu berminggu-minggu, dan biasanya butuh 8 hari sampai mendapat balasan pertama

    • Agak lucu kalau mereka menganggap sudah siap meluncurkan langganan print farm, padahal stok filamen dasar saja tidak bisa dijaga dan dukungan dasar pun belum berjalan baik. Mereka tumbuh terlalu cepat
    • Saya tidak tahu apa yang tidak bisa diperbaiki. Semua masalah yang saya alami bisa saya temukan video cara mengatasinya di YouTube
  • Tidak mengherankan kalau printer 3D makin berubah menjadi sama tidak bersahabatnya bagi pengguna seperti printer 2D. Seperti biasa belakangan ini, “keamanan” dijadikan alasan

    • Di dunia printer 3D FDM ada begitu banyak software, firmware, dan hardware open source sehingga rasanya tidak akan menjadi seburuk printer biasa. Ini ekosistem yang jauh lebih berpusat pada maker dibanding pencetakan 2D
    • Setidaknya printer 3D bisa dibuat di rumah. Saya pernah membuatnya sendiri beberapa tahun lalu (https://lucasoshiro.github.io/hardware-en/2020-06-14-3d_prin...), dan sekarang pun bisa membuat yang lebih baik
    • Meski 3D printing sudah ada cukup lama, saya benar-benar tidak paham kenapa belum ada modifikasi plotter 2D yang layak, yang bisa memasang satu atau lebih pensil atau pulpen
      Mengejutkan bahwa monopoli tinta mahal belum diserang dengan cara seperti ini, dan saya jelas ingat saat kecil ada kios di toko kelontong yang “mencetak” pesan dan gambar pada kartu kosong dengan pensil warna. Ini sama sekali bukan hal baru
    • Harus diakui, sistem pencetakan pada printer 2D memang mimpi buruk. Misalnya, Windows Secured Core PC menonaktifkan semua driver printer pihak ketiga dan hanya mendukung standar terbuka tanpa driver seperti Mopria
      Menurut orang-orang yang pernah menelitinya, CUPS di macOS dan Linux kemungkinan juga bukan teladan keamanan, dan 3 bulan lalu sempat ada kontroversi eksekusi kode jarak jauh
      Kalau stack pencetakan di sistem operasi saja berantakan, entah horor apa yang tersembunyi di firmware printer yang terhubung jaringan. Katanya mereka memblokir kartrid tinta pihak ketiga atas nama keamanan, tapi memangnya apa yang bisa dilakukan kartrid tinta? Menyebabkan buffer overflow lewat data yang dikirim ke printer? Atau mungkin printernya memang sebodoh itu sehingga kitalah yang terlalu rumit memikirkannya, dan kondisinya bahkan lebih tidak bisa dimaafkan daripada kesan pertama