‘Геть, Bambu’: Як одне приватне повідомлення може змінити 3D-друк

Bambu мав стати Apple у світі 3D-принтерів, але все змінилося після одного повідомлення.

Bambu Lab створює найкращі та найдоступніші 3D-принтери, але їхня репутація раптово під загрозою. Все почалося, коли Павел Ярчак отримав приватне повідомлення від компанії на Reddit з проханням видалити свій код. Тепер спільнота 3D-друку об’єдналася на підтримку Ярчака, щоб фінансувати боротьбу проти Bambu — і майбутнє 3D-принтерів може бути під загрозою.

Ярчак — розробник, який поділився способом дистанційного керування своїми принтерами Bambu без використання програмного забезпечення Bambu. Але компанія хотіла закрити свою систему, незважаючи на те, що спиралася на відкритий код. Це викликало обурення серед прихильників відкритого коду та YouTube-блогерів.

“Я готовий заплатити $10,000, щоб навчити Bambu уроку,” — заявив захисник прав споживачів Луї Россман, обіцяючи допомогти захистити Ярчака в суді.

“Я більше не куплю 3D-принтер Bambu,” — заявив творець Джефф Гірлінг, додавши, що він також готовий внести свій внесок.

“Геть, Bambu,” — написав GamersNexus, пообіцявши також внести $10,000. (Вони також зупинили раніше неанонсовані плани купити обладнання Bambu на $150,000 для проекту 3D-друку.)

Якщо цього було недостатньо, Россман, Берк та тисячі інших прихильників відкритого коду кидають виклик Bambu, щоб вона вжила юридичних заходів — вони кожен беруться за код, який Bambu намагалася придушити. Станом на понеділок, Software Freedom Conservancy також приєдналася до цього, запустивши проект для реверс-інжинірингу коду Bambu і заявивши, що стане наглядовим органом за Bambu.

“Вони погані актори, і спільнота повинна зробити все можливе,” — говорить Бредлі Кюн, батько ліцензії AGPL.

Але чому всі так злі, що принтери Bambu не працюють ідеально з сторонніми додатками? Чи дійсно дії Bambu такі жахливі, чи вона просто намагається захистити свою екосистему? Я поговорив з Bambu, Ярчаком, юристами та іншими, щоб зрозуміти. Як Bambu, так і Ярчак поділилися копіями своїх приватних комунікацій для цієї статті, кожен прагнучи прояснити, що насправді сталося.

Це історія про те, як все пішло не так, і як це може знову стати правильно.

Що насправді відбувається з Bambu та Павлом Ярчаком?

22 квітня, коли Bambu вперше зв’язалася з Ярчаком у приватному повідомленні на Reddit, її тон здавався ввічливим. Bambu запропонувала попередити Ярчака про майбутні зміни, які можуть завадити його коду працювати. Перше повідомлення закінчується: “ми люб’язно просимо вас розглянути можливість видалення поточного підходу до з’єднання, оскільки він імітує офіційне програмне забезпечення Bambu Lab.”

Ярчак відповів, що готовий видалити свій проект з GitHub і подякував компанії за те, що помітили його роботу. Але він хотів, щоб його “правильно визнали” за можливе виявлення “значного прогалини в безпеці.” Він запропонував подальшу допомогу для виправлення, запитуючи деяке обладнання — зокрема, флагманський принтер H2D.

Але Bambu не була готова винагородити або визнати його за просування способів використання несанкціонованого програмного забезпечення та обладнання, які конкурують з її власними. (Попередній проект Ярчака підтримував дешевший спосіб друку кількома кольорами, ніж купівля AMS Lite за $279 від Bambu, проект, за який він згодом запропонував, щоб Bambu також визнала його.)

Зловісно, Bambu почала говорити з Ярчаком, як мафіозі: “Ми хотіли спочатку поговорити з вами і вирішити це конструктивно. Але ми не можемо дозволити, щоб цей підхід тривав.”

Ярчак обурився. Він публічно висловив деякі підозри, що те, що він зробив, могло перейти межу. Але він також знав, що код Bambu є відкритим під ліцензією AGPL, ліцензією, настільки поблажливою, що Google відмовилася дозволити своїм інженерам використовувати її.

Розробник хотів знати: що, конкретно, він зробив неправильно, якщо код є відкритим?

Але замість пояснень Bambu посилила свою загрозу. Вона повідомила Ярчаку, що вже підготовлено лист про припинення і заборону, і “запросила” його ознайомитися з розділом 1201 Закону про цифрові тисячоліття, натякаючи, що вона може юридично покарати його за порушення цифрових замків.

Але Bambu не подала в суд. Вона не надіслала листа про припинення і заборону. Вона навіть не надіслала DMCA для видалення його файлів з GitHub. Ярчак добровільно видалив свій код. Але на місці цього коду Ярчак залишив запис, що Bambu ставилася до нього як до злочинця.

Ось тоді інтернет накинувся.

Чому спільнота відкритого коду 3D-друку так обурена?

Тому що програмне забезпечення Bambu — це не просто програмне забезпечення Bambu. “Bambu Studio базується на PrusaSlicer від Prusa Research, який походить з Slic3r від Алессандро Ранеллучі та спільноти RepRap,” Bambu вільно визнає на своїх веб-сайтах.

“Базується на” не просто означає, що Bambu взяла натхнення з цих програм. Bambu Studio схоже на PrusaSlicer, оскільки це форк PrusaSlicer. Він побудований на основі того ж коду.

Кожен сучасний 3D-принтер використовує програмне забезпечення, яке називається слайсером, яке “нарізає” 3D-об’єкти на шари, а потім перетворює ці шари на інструкції, які може виконати 3D-принтер. З часом вони стали способом дистанційного керування кожною іншою частиною 3D-принтера.

Майже кожен слайсер побудований на основі слайсерів, які з’явилися раніше, починаючи з 15 років тому, коли Алессандро Ранеллучі вперше випустив Slic3r у світ під ліцензією AGPL. Ця ліцензія гарантує, що ніхто не повинен винаходити колесо знову, якщо вони вносять свої власні покращення. Bambu отримує величезну вигоду від цієї ліцензії, але починає обмежувати користувачів, які насолоджуються тими ж перевагами.

Bambu вільно форкнув PrusaSlicer, і не заперечує, що будь-хто інший може також форкнути Bambu Studio. Але Bambu закрила можливість для форків — включаючи найпопулярніший форк, OrcaSlicer — надсилати друки, дистанційно керувати друкарською головкою, моніторити камеру принтера, змінювати кольори філаменту та багато іншого, поки або якщо їхні розробники не інтегрують новий власницький механізм аутентифікації. (Головний розробник OrcaSlicer відмовився.)

Ярчак створив свій власний форк OrcaSlicer, щоб обійти вимогу Bambu про власність, і саме цей код Bambu хотіла видалити.

Читайте також:  iPhone Fold досяг важливої віхи, що обіцяє своєчасний запуск

У січні Bambu заявила, що її мотивом була безпека. Але багато хто підозрював і комерційний мотив: що Bambu може використовувати своє програмне забезпечення, щоб заблокувати свої принтери для свого філаменту та аксесуарів і почати стягувати плату за підписки, як це роблять сьогоднішні компанії з принтерами на чорнилі. Bambu не заперечила ці можливості, коли ми запитали, і спільнота відкритого коду готується боротися з можливим enshittification з того часу.

Все, що Ярчак спочатку намагався зробити, це запобігти тому, щоб програмне забезпечення Bambu не зламало сумісність з системою багатокольорового друку Biqu BCMU (яка підриває власний аксесуар Bambu за $279), після того, як деякі користувачі помітили, що BCMU перестав працювати після оновлення прошивки Bambu.

Але коли він створив копію OrcaSlicer, використовуючи код з Linux версії Bambu Studio замість Windows або Mac версій, хмарні сервіси Bambu більше не заважали йому дистанційно керувати своїм принтером взагалі. Він випадково знайшов спосіб підібрати замок Bambu, використовуючи власний відкритий код Bambu. Коли Bambu погрожувала йому підкоритися за скасування свого замка, він став ненавмисним мучеником за більшу справу.

“Люди намагаються зробити з мене якогось героя, але я не такий,” — говорить Ярчак.

Ось де все стає дійсно заплутаним.

Багато з цього залежатиме від того, як інтерпретують ліцензію відкритого коду, яку використовує Bambu, як публіка, так і, можливо, суди. Бредлі Кюн, який допоміг внести “A” в AGPL, каже, що це очевидно: Bambu порушила свою ліцензію AGPL.

У блог-пості для Software Freedom Conservancy він вказує на два конкретні порушення. По-перше, сам плагін для мережі Bambu.

Текст AGPL стверджує, що будь-хто, хто копіює програму, повинен ліцензувати вихідний код для всієї програми — включаючи будь-які “відповідні джерела” для інших частин, які потрібні для генерації, встановлення, запуску або модифікації роботи.

Він також має явні приклади того, що має враховуватися як відповідне джерело, включаючи “спільні бібліотеки та динамічно зв’язані підпрограми, які робота спеціально розроблена для вимагати, такі як інтимна комунікація даних або контрольний потік між цими підпрограмами та іншими частинами роботи.”

Вгадайте, з чого складається плагін для мережі Bambu? Спільні бібліотеки та динамічно зв’язані бібліотеки, які автоматично намагаються встановити відкриті частини Bambu, коли ви вперше запускаєте програму, і які, як стверджують Кюн і Ярчак, мають інтимну комунікацію з відкритим кодом Bambu.

Ярчак тепер опублікував 30-пунктовий аналіз на своїй сторінці GitHub, в якому розглядає, наскільки інтимною може бути ця комунікація:

Друге порушення, пише Кюн, полягає в тому, як Bambu нібито тиснула на Ярчака, щоб він видалив свій код з GitHub, неправдиво стверджуючи, що її умови обслуговування переважають його права за ліцензією AGPL.

Але ні Кюн, ні Ярчак не є юристами. У Bambu є юристи, і двоє юристів, які спеціалізуються на відкритих технологіях, кажуть The Verge, що AGPL важко використовувати.

Що кажуть Bambu та юристи?

Bambu відповіла на майже всі запитання, які ми надіслали протягом тижня. Керівник PR Надія Яакубі сказала нам, що компанія не стурбована “відкритим розвитком або законними форками коду.” (Bambu натякає, що форк Ярчака є незаконним.)

Компанія стверджує, що частина її коду “доставляється окремо” і тому не підпадає під ліцензію AGPLv3, де йдеться про “відповідні джерела.” Ось що вона нам сказала:

Ми не погоджуємося з тим, що плагін для мережі належним чином характеризується як частина “відповідного джерела” Bambu Studio для цілей AGPLv3, так що зобов’язання щодо доступності виходу AGPLv3 не будуть активовані. Це окремо доставлений, необов’язковий компонент мережі, який забезпечує додаткову функціональність. Той факт, що програмне забезпечення може завантажити окремий компонент під час виконання, не встановлює, що компонент є частиною покритої роботи або що це вихідний код; робота “спеціально розроблена для вимагати” відповідно до Розділу 1, який визначає обсяг “відповідного джерела.” І, як ви зазначили, AGPL також не дозволяє доступ, що порушує правила та протоколи для зв’язку через мережу.

Кайл Мітчелл, незалежний юрист у сфері технологій, який вивчав AGPL, говорить The Verge, що цілком можливо, що Bambu не повинна ділитися всім, що стосується її відкритого коду, особливо коли йдеться про хмарні сервіси.

“AGPL, через проблему, яку вона була написана для вирішення, і через те, як вона була написана, не говорить чітко, що якщо ви змінюєте програму, яку ви ділитеся, щоб працювати з веб-сервісом або хмарним сервісом, ви повинні ділитися всім цим веб-сервісом і хмарним сервісом також,” — говорить він мені по телефону.

Навіть з плагіном є певний ступінь технічного розділення, каже він — хоча Хізер Мікер, відомий експерт з ліцензування відкритого коду та юрист, говорить, що плагін, принаймні, “загалом є частиною відповідного джерела.”

Мітчелл каже, що заява Bambu The Verge “звертається прямо до невизначеності,” до частин закону, які не є автоматично зрозумілими і які повинні бути уточнені судами — і, на краще чи на гірше, суди ще не висловлювалися на текст AGPL. “Наскільки широке зобов’язання щодо обміну вихідним кодом — дуже мало законів, щоб відповісти на ці питання,” — підтверджує Мікер.

Словами Мітчелла: “Немає остаточних відповідей, які можна знайти, лише позиції, які потрібно зайняти, які є лише прогнозами того, що суди зроблять.”

І — загалом — Мікер каже, що не кожен може значно переслідувати компанію за порушення AGPL.

Software Freedom Conservancy намагається спростувати це в суді, допомагаючи одному покупцеві смарт-телевізора подати в суд на виробника телевізорів Vizio за порушення контракту для випуску свого вихідного коду під GPLv2. Але загалом, Мікер каже, що суб’єкти, які написали код, є тими, хто має право подати позов. Кілька ліцензіарів можуть об’єднатися, залежно від того, скільки коду кожен з них вніс, і це може ускладнитися, якщо деякі ліцензіари додатково продавали своє програмне забезпечення під різними ліцензійними умовами, а не лише AGPL.

Читайте також:  Apple демонструє додатки з використанням Liquid Glass у новій галереї для розробників

Кюн каже, що він “дуже впевнений”, що позов проти Vizio буде успішним, але визнає, що це перший такий випадок, про який він знає в США. Vizio має бути на суді в серпні.

Чи має Bambu рацію щодо безпеки?

Принтери Bambu дистанційно керуються командами MQTT, і після деяких з тих речей, які я бачив, що хакери роблять з незахищеним MQTT нещодавно, я б сказав, що так.

І ліцензія AGPL дозволяє Bambu заперечувати доступ до мережі “коли модифікація сама по собі матеріально і негативно впливає на роботу мережі або порушує правила та протоколи для зв’язку через мережу,” — вільно визнає Кюн. Bambu заявляє, що зазнала такого роду порушень, з мільйонами “аномальних запитів”, включаючи атаки DDoS.

Але чи справедливо стверджувати, що Ярчак ставить під загрозу безпеку Bambu своїм форком? Як він, Кюн, Мітчелл та інші вказують, у Bambu є безліч способів належним чином захистити свою хмару від хакерів і атак DDoS, окрім того, що може бути зламано, використовуючи власний відкритий код Bambu.

Bambu заявила 7 травня і продовжує стверджувати, що Ярчак “видавав себе” за її системи, щоб обманути їх, щоб надати йому “несанкціонований” доступ. Вона поділилася цим як доказ:

Але рівень “видавання” ви бачите — це просто копія Ярчака OrcaSlicer, яка говорить “Я Bambu Studio,” щось також можна знайти в відкритому коді Bambu Studio.

“Якщо інфраструктура Bambu сприймає це як небезпечне, це проблема авторизації та архітектури на стороні сервера, а не доказ того, що я атакував їхню інфраструктуру,” — говорить Ярчак The Verge.

У блозі 7 травня Bambu стверджувала, що нічого не може зробити з людьми, які використовують OrcaSlicer, щоб “видавати себе” за Bambu Studio: “Наші системи не можуть відрізнити трафік, оскільки запити виглядають ідентично.”

Але в своїх початкових комунікаціях з Ярчаком Bambu вже сказала йому, що має намір закрити цю дірку, і він не впевнений, чому вона просто не зробила цього. “[Я]кщо вони дійсно вважали, що це вразливість, вони повинні були виправити або відключити це з їхнього боку, замість того, щоб погрожувати одному розробнику та просити мене видалити репозиторій, залишаючи при цьому основну поведінку доступною,” — відповідає Ярчак.

Bambu повідомила The Verge, що дійсно планує закрити цю дірку, але не говорить, коли:

“Ми працюємо над вдосконаленими заходами аутентифікації. Причина, чому поточний шлях все ще функціонує, полягає в тому, що ми ще не випустили обов’язкове оновлення. Примусити до диструктивного впровадження для вирішення однієї ізольованої проблеми — це не наш стиль. Наші оновлення безпеки будуть впроваджені поступово, у правильний час, з урахуванням досвіду наших користувачів,” — пише Яакубі.

Bambu також повідомила The Verge, що Ярчак “проводив повторні несанкціоновані тестування обхідних шляхів на нашій живій інфраструктурі та залишив журнали активності.” Але якщо є докази, Bambu не ділиться ними з нами.

“Я не атакував їхню інфраструктуру. Я не проводив тестування на проникнення. Я не сканував їхні сервери. Я не намагався знайти приховані кінцеві точки. Я не створював нову систему команд принтера. Я не вводив нові класи команд на стороні принтера,” — говорить Ярчак.

Bambu відмовилася поділитися своїми журналами з The Verge.

Що буде далі?

Юридичні загрози легко робити і дорого захищатися. Нічого ще не подано, тому ми залишаємося в суді громадської думки. Кюн каже, що цей суд — той, який, сподіваємося, змусить Bambu “діяти правильно,” як це сталося, коли спільнота спочатку успішно змусила Bambu відкрити свій форк PrusaSlicer.

Тим часом тисячі прихильників відкритого коду тепер перебувають у протистоянні з Bambu, намагаючись зменшити її контроль над обладнанням, яке вони купили і за яке заплатили, і активно організуючи разом з батьком AGPL. Software Freedom Conservancy сподівається зібрати трохи більше $250,000, щоб найняти більше співробітників для “звільнення 3D-принтерів, які порушують AGPLv3,” а Луї Россман каже, що його група пожертвує $15,000.

“Наше намір з самого початку полягало в тому, щоб зв’язатися і знайти спільний шлях вперед. Ми шкодуємо, що наша комунікація не спрацювала. Це не той результат, якого ми хотіли, і ми прагнемо покращити цю ситуацію,” — говорить Bambu The Verge. Хоча компанія повідомила нам 13 травня, що “триматиме тверду лінію щодо того, як наші хмарні послуги доступні третім сторонам,” ця тверда лінія пом’якшилася на наступний день: “Замість ескалації конфлікту ми зосереджуємося на зміцненні нашої власної інфраструктури та заходів захисту в майбутньому.”

Якщо Bambu хоче розрядити ситуацію, Кюн каже, що рішення просте: “Вони повинні випустити весь код, навіть якщо AGP цього не вимагає, оскільки їхній бізнес полягає в продажу обладнання!” Або Bambu завжди може відмовитися від усього коду AGPL і переписати своє програмне забезпечення з нуля. “Ніхто не вимагає, щоб ви використовували код AGPL,” — говорить він. Ярчак не хоче бачити, як Bambu забирає свою гру і йде додому. “Я не думаю, що ‘повністю закритий’ буде кращим для користувачів. Це просто буде чесніше,” — говорить він.

Важко не підтримувати прихильників відкритого коду, щоб вони перемогли, враховуючи, скільки боргів має кожна компанія 3D-друку перед тими, хто прийшов раніше. Я ще не готовий змінювати принтери, але я зроблю це, якщо найгірші страхи спільноти відкритого коду справдяться.

Цікавий факт

3D-друк активно використовується в багатьох сферах, включаючи медицину, де за допомогою 3D-принтерів виготовляють протези та навіть органи для трансплантації.