การวิเคราะห์ย้อนกลับของ Bambu Connect
(wiki.rossmanngroup.com)-
วิศวกรรมย้อนกลับของ Bambu Connect
-
ภาพรวมของ Bambu Connect
- Bambu Connect เป็นแอป Electron ที่ถูกพัฒนาในลักษณะที่ความปลอดภัยไม่โปร่งใส จึงไม่ปลอดภัยโดยเนื้อแท้
- คู่มือนี้มีจุดประสงค์เพื่อช่วยให้ผู้ใช้มีสิทธิ์เหนือผลิตภัณฑ์ที่ตนซื้อมาได้มากขึ้น
-
กระบวนการดึงคีย์ความปลอดภัย
- อธิบายขั้นตอนอย่างง่ายในการดึง "private key" ที่ใช้สื่อสารกับอุปกรณ์ Bambu
- การใช้ไฟล์ MacOS
.dmgเพื่อแตกไฟล์ของ Bambu Connect ทำได้ง่ายกว่า - แอปใช้ asarmor เพื่อป้องกันไม่ให้อ่านได้ง่าย และคีย์ถูกเก็บไว้ในพาธเฉพาะ
- สามารถโหลด
main.nodeใน Ghidra แล้วรัน Auto-Analyze จากนั้นค้นหาฟังก์ชันGetKeyเพื่อดึงคีย์ออกมาได้
-
การดึง private key และใบรับรอง
- private key และใบรับรองถูกทำให้อ่านยากเพิ่มเติม และต้องใช้หลายขั้นตอนในการถอดรหัสเพื่อทำให้ชัดเจน
- มีตัวอย่างโค้ด Python สำหรับดึงข้อมูลลับ
-
เอกสารอ้างอิง
- มีลิงก์ไปยังไฟล์
.dmgของ Bambu Connect เวอร์ชันเฉพาะให้ไว้
- มีลิงก์ไปยังไฟล์
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
โกรธกับ กลยุทธ์ล่อให้ซื้อแล้วเปลี่ยนเงื่อนไข ของ Bambu มาก ตอนลดราคา Black Friday ผมซื้อพรินเตอร์เพราะเห็นว่า “แฮ็กได้ในระดับหนึ่งและค่อนข้างเปิด” แต่ตอนนี้กลับพยายามล็อกไม่ให้ผมสั่งพิมพ์ด้วยพรินเตอร์ของตัวเองได้ หากไม่มีซอฟต์แวร์ที่ได้รับอนุมัติและเชน DRM
ข้อมูลเพิ่มเติมเกี่ยวกับการแฮ็กอยู่ที่นี่: https://hackaday.com/2025/01/19/bambu-connects-authenticatio...
อยากรู้จริง ๆ ว่าคิดว่ามีกลยุทธ์ล่อให้ซื้อแล้วเปลี่ยนเงื่อนไขตรงไหน อะไรที่เมื่อก่อนทำได้อย่างเป็นทางการ แต่ตอนนี้ทำไม่ได้แล้ว
ตั้งแต่แรกก็ไม่ค่อยพอใจนิดหน่อยที่ สปูลฟิลาเมนต์ RFID ไม่ได้เปิดให้ผู้ผลิตรายอื่นมากพอ
สิ่งที่ไม่เข้าใจคือ BambuSlicer เป็นโอเพนซอร์ส แถมยังเป็นฟอร์กของ PrusaSlicer ด้วย ดังนั้น Bambu จึงไม่สามารถเปลี่ยนไลเซนส์เองตามใจได้
ไลเซนส์คือ Affero GPL ซึ่งเข้มงวดมากกับงานดัดแปลง และถ้า Bambu ใส่โค้ด ลอจิก คีย์ ฯลฯ ทั้งหมดที่ตนเพิ่มเข้าไปในไบนารีที่แจกจ่าย ก็ต้องแนบซอร์สไปด้วย ไม่เช่นนั้นก็เท่ากับละเมิดลิขสิทธิ์ของ Prusa และผู้มีส่วนร่วมจำนวนมาก
สุดท้าย Bambu ก็ต้องเปิดเผยทั้งหมดนี้เป็นโอเพนซอร์สจนเป้าหมายพังลง และในเมื่อรั่วไปแล้วก็มีโอกาสสูงว่าจะเป็นแบบนั้นอยู่ดี หรือไม่ก็ต้องทำให้แม้แต่สไลเซอร์ของตัวเองต้องผ่านโปรแกรมแยกอีกตัว
ปลั๊กอินเครือข่ายของ Bambu ที่ใช้อยู่ตอนนี้ก็ไม่ใช่ส่วนหนึ่งของ BambuStudio เช่นกัน แต่ไคลเอนต์จะดาวน์โหลดลงมาเมื่อเปิด BambuStudio
ตอนแรกผมต่อต้าน Bambu มาก เพราะไม่มีการรองรับเครือข่ายที่เหมาะสม กล่าวคือ รองรับ LAN แทนที่จะเป็นคลาวด์ ต่อมาพวกเขาเพิ่มโหมด LAN เข้ามา เลยเคยคิดจริงจังว่าจะซื้อ แต่โชคดีที่ขี้เกียจจนไม่ได้ซื้อ
Bambu นี่กำลังทำอะไรกันแน่? อ้างความปลอดภัยเหรอ? แม้แต่ HP ยังไม่ใช้ข้ออ้างแบบนั้นเลย
https://store.bambulab.com/products/x1e
แต่ก็ทำได้ง่าย ๆ โดยไม่ต้องทำให้ การเชื่อมต่อกับระบบของบุคคลที่สาม ทั้งหมดพัง แค่มีสวิตช์ในหน้าตั้งค่าสำหรับทำงานแบบโลคัลเต็มรูปแบบก็พอ
ถ้า Prusa ไม่เสียสมาธิไปทางอื่น ผมคงซื้อ Core One แล้ว ที่พูดถึงคือโมเดลในจินตนาการที่มีคุณภาพแบบเดียวกับ BambuLab และมีปริมาตรการพิมพ์ขนาดใหญ่
แต่ผมซื้อ P1S แทน และในเชิงเทคนิคมันเป็นเครื่องที่ยอดเยี่ยมจริง ๆ
Prusa เองเดินเครื่องพรินเตอร์ 600 เครื่อง เป็นระดับเชิงพาณิชย์ และถ้าจะใช้กับงานออกแบบเชิงพาณิชย์หรือทำต้นแบบ ผมจะเลือก Prusa อีกเหตุผลคือไม่อยากให้พรินเตอร์ที่เชื่อมต่อคลาวด์ตลอดเวลาส่งแบบของผมออกไปต่างประเทศ
คำอธิบายที่เกี่ยวข้องของ Louis Rossmann: https://www.youtube.com/watch?v=aIyaDD8onIE
หลังจากซื้อเครื่องพิมพ์ Bambu เมื่อประมาณหนึ่งเดือนก่อน ก็เฝ้าติดตามประเด็นนี้มาตลอด พอได้รับมาก็ไม่ชอบสภาพความปลอดภัยของมัน และต้องลงแรงพอสมควรเพื่อแยกมันไว้ใน IoT VLAN แต่ยังใช้งานจากคอมพิวเตอร์หลักได้
ดังนั้นถ้าดูจากความประทับใจแรก การปรับปรุงด้านความปลอดภัยเป็นเรื่องน่ายินดี แต่ก็ยังไม่สบายใจว่าจริง ๆ แล้วพวกเขาจะเอาอะไรออกมา
ยังสงสัยด้วยว่ากุญแจถูกใช้ทำอะไร เห็นคนพูดกันเยอะว่า “ได้กุญแจมาแล้ว” แต่ไม่เห็นคำอธิบายว่ากุญแจนั้นใช้ทำอะไร มีประโยชน์อย่างไร หรือแม้แต่มีประโยชน์จริงไหม
หวังว่าเร็ว ๆ นี้จะมีข่าวที่น่าสนใจกว่านี้และข้อมูลทางเทคนิคที่แน่นหนาออกมา
ในกรณีใช้งานของผม มันใช้ไม่ได้เลย เครื่องพิมพ์ของผมถูกล็อกไว้กับภูมิภาคจีน แต่ตอนนี้ผมไม่ได้อยู่จีน จึงเชื่อมต่อกับเซิร์ฟเวอร์นั้นไม่ได้ กล่าวคือถ้าอัปเดตเฟิร์มแวร์ขึ้นไป ผมน่าจะพิมพ์ผ่าน LAN ในเครือข่ายภายในของตัวเองไม่ได้ด้วย และรู้สึกไม่ดีเอามาก ๆ
ตัวเครื่องพิมพ์เองยอดเยี่ยม แต่ไม่จำเป็นต้องทำแบบนี้เลย
สิ่งที่เห็นตอนนี้คือโครงสร้างที่ผูกผู้ใช้ไว้กับซอฟต์แวร์ของ Bambu Lab ถ้ามีคนบอกให้ปกป้องบัญชีธนาคารด้วยวิธีแบบ “แพตช์ความปลอดภัย” ของ Bambu Lab ผมคงไม่มีวันยอม
เฟิร์มแวร์จะตรวจสอบงานเหล่านี้ และสามารถปฏิเสธข้อความ MQTT จากซอฟต์แวร์บุคคลที่สามที่ไม่มีลายเซ็นหรือลายเซ็นไม่ถูกต้องได้
ข้อบกพร่องใหญ่ของแนวทางนี้คือเมื่อดึงกุญแจออกมาได้ ซอฟต์แวร์บุคคลที่สามก็จะกลับมาได้สิทธิ์เข้าถึงทั้งหมดอีกครั้ง
ไม่มีการปรับปรุงความปลอดภัยใด ๆ หากเครื่องพิมพ์หรือคลาวด์มีช่องโหว่ ชั้นการทำให้อ่านยากแบบนี้ก็หยุดอะไรไม่ได้
วิธีการยืนยันตัวตนยังเหมือนเดิม: https://git.devminer.xyz/archive/bambu-connect/src/commit/47...
คำตอบของ Bambu: https://blog.bambulab.com/updates-and-third-party-integratio...
ในหัวข้อแรกของ
truth about the updateพวกเขาบอกว่า “ไม่ได้ตั้งใจจะจำกัดซอฟต์แวร์บุคคลที่สาม แต่สร้าง Bambu Connect เพื่อเพิ่มความปลอดภัยพร้อมรักษาการเชื่อมต่อ และกำลังร่วมมืออย่างจริงจังกับนักพัฒนาอย่าง Orca Slicer”แต่ผู้พัฒนา OrcaSlicer ได้ระบุไว้แล้วใน [0] ว่า “Bambu แจ้งการเปลี่ยนแปลงนี้ก่อนประกาศเพียงสองวัน”
“ความร่วมมือ” ที่ 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 bomb ตรง ๆ แต่ก็ดูใกล้เคียงมาก และเป็นวิธีที่น่ารำคาญจริง ๆ
Bambu ควรใส่ใจกับ การจัดหาวัสดุสิ้นเปลืองและการขยายบริการลูกค้า มากกว่าเรื่องพวกนี้ การแก้ ticket หนึ่งใบใช้เวลาหลายสัปดาห์ และเป็นเรื่องปกติที่ต้องรอ 8 วันกว่าจะได้คำตอบแรก
ไม่น่าแปลกใจที่เครื่องพิมพ์ 3D กำลังกลายเป็นสิ่งที่ เป็นปฏิปักษ์ต่อผู้ใช้ พอ ๆ กับเครื่องพิมพ์ 2D เช่นเคยในยุคนี้ “ความปลอดภัย” คือข้ออ้าง
น่าแปลกใจที่การผูกขาดหมึกราคาแพงไม่ถูกโจมตีด้วยวิธีนี้ และผมจำได้ชัดเจนว่าสมัยเด็ก ๆ มี kiosk ในร้านขายของชำที่ใช้ดินสอสี “พิมพ์” ข้อความและภาพลงบนการ์ดเปล่าให้ นี่ไม่ใช่เรื่องใหม่เลย
คนที่เคยตรวจสอบบอกว่า CUPS ของ macOS และ Linux ก็คงไม่น่าจะเป็นตัวอย่างด้านความปลอดภัย และเมื่อ 3 เดือนก่อนก็มีประเด็นถกเถียงเรื่อง remote code execution ด้วย
ถ้า print stack ของระบบปฏิบัติการยังเละเทะแบบนี้ ก็ไม่รู้ว่าในเฟิร์มแวร์ของเครื่องพิมพ์ที่ต่อเครือข่ายจะมีความสยองอะไรซ่อนอยู่บ้าง อ้างความปลอดภัยเพื่อบล็อกตลับหมึก third-party แต่ตลับหมึกมันจะทำอะไรได้กันแน่? ทำ buffer overflow ด้วยข้อมูลที่ส่งไปให้เครื่องพิมพ์งั้นหรือ? หรือจริง ๆ แล้วเครื่องพิมพ์โง่ถึงขนาดนั้นจนเราเองที่คิดมากไป และมันอาจไม่มีข้อแก้ตัวได้ยิ่งกว่าความประทับใจแรกเสียอีก