원문 캡처 · danb.me
원문 캡처 · danb.me

Prusa가 프린터 펌웨어 7.0.0과 8.0.0을 배포했지만, 공개된 소스 코드는 여전히 6.9.2 버전까지다. 오픈소스 라이선스를 오래 살펴봤다는 글쓴이는 소스 공개가 9일 이상 늦어져 GPLv3 조건을 위반했다고 주장한다. 다만 글쓴이는 법률 전문가가 아니라고 밝히며, Prusa는 보안 개선 사항이 역설계되는 것을 막기 위해 일정량의 업데이트가 이뤄질 때까지 공개를 기다리고 있다고 설명했다.

GPLv3와 Prusa의 설명

펌웨어 소스는 GPLv3 라이선스로 공개돼 있다. 글쓴이는 라이선스 6절에 따라 실행 파일 형태로 배포할 경우 대응하는 소스 코드에도 동등하게 접근할 수 있도록 해야 한다고 해석한다. 온라인 배포에 해당하는 조항은 소스가 실행 파일과 다른 서버에 있어도 되지만, 소스에 접근할 수 있는 안내를 제공하고 요구사항을 충족하는 동안 소스를 이용할 수 있게 해야 한다고 규정한다. 새 펌웨어가 설치된 기기를 물리적으로 배포하는 경우에는 요건이 조금 달라질 수 있다고 덧붙였다.

Prusa 팀원은 레딧에서 업데이트에 보안 개선 사항이 포함돼 있어, 소스 코드를 공개하기 전에 사용자가 먼저 업데이트할 기회를 주고 싶다고 설명했다. 수정된 취약점이 역설계돼 악용될 가능성을 줄이려는 예방 조치라는 설명이다.

Prusa 측은 소스를 깃허브에 공개해야 하며 공개할 것이라고도 밝혔다. 다만 공개까지 일정한 기간을 둘 수 있다고 알고 있고, 취약점이 역설계되는 것을 막기 위해 충분한 다운로드와 업데이트가 이뤄지기를 기다리고 있다고 했다. 글쓴이가 그 기간의 근거가 어디에 명시돼 있는지 물었지만 답변을 받지 못했다고 전했다. 저장소에 질문을 남긴 기여자에게도 Prusa의 공식 답변은 없었다고 한다.

보안 사유와 사용자 영향

글쓴이는 보안을 이유로 라이선스 의무를 어기는 것이 정당한지에 대해 의견이 갈릴 수 있다고 전제하면서도, 이를 허용하면 기업이 경쟁 제한을 위해 보안을 구실로 라이선스 요건을 피하는 선례가 될 수 있다고 우려한다. 또 공격자는 펌웨어를 역설계해 수정된 문제를 파악할 수 있는 반면, 사용자는 소스가 없어 위험을 이해하거나 소스 보안을 개선하기 어렵다고 주장한다. 프루사 포럼의 일부 사용자가 Claude를 이용해 펌웨어를 역컴파일하고 변경 내용을 파악하려 했다는 사례도 들었다.

글쓴이가 열거한 사용자의 불이익은 다음과 같다.

  • 기기에서 실행되는 코드가 무엇인지 쉽게 확인할 수 없다.
  • 소스에서 직접 펌웨어를 빌드해 소스와 실제 펌웨어가 일치하는지 확인하기 어렵다.
  • 수정 사항이나 해결책을 적용하거나, 커뮤니티 차원에서 새 펌웨어의 버그에 대응하기 어렵다.
  • 수정된 펌웨어를 쓰는 사용자는 변경 사항을 새 버전에 적용하기 어려워, Prusa가 언급한 보안 수정 사항을 이용하지 못할 수 있다.

글쓴이는 Prusa가 오픈소스에 대한 존중을 내세워 제품의 높은 가격을 정당화해 왔지만, 이번 소스 공개 지연은 그 이미지와 맞지 않는다고 비판한다. 또 회사의 오픈소스 안내 페이지에 담긴 주장 중 일부가 오픈소스 정의와 오픈소스 하드웨어 정의에 비춰 오해를 부를 수 있다고 말한다. 현재 펌웨어는 공개되지 않았고, CAD 조립물에 적용된 ‘Open Community License’도 권리 제한 때문에 오픈소스 정의를 충족하지 않는다는 주장이다. 이 라이선스에 대한 커뮤니티 의견도 이어지고 있다고 덧붙였다.

다른 기업도 비슷한 일을 한다는 반론에 글쓴이는 그런 사례가 드물지 않다고 인정하면서도, Prusa는 오픈소스를 존중하는 프린터 제조사라는 평판을 마케팅과 높은 가격의 근거로 활용해 왔다고 지적한다. Prusa가 이번 일로 책임을 피하면 업계 전반의 기준이 낮아질 수 있다는 것이 글쓴이의 우려다.