- xz/liblzma 취약점에 대한 많은 분석이 있겠지만, 대부분 공격의 첫 단계를 건너뛰는 경향이 있음
- 원래 유지보수자가 탈진하고, 공격자만이 도움을 제안함(따라서 공격자는 원래 유지보수자가 쌓아온 신뢰를 물려받음).
- 이메일 스레드 아카이브에서 이 단계 0이 일어나던 시점의 상황을 포착
유지보수자의 탈진과 공격자의 등장
- 유지보수자에게 합리적으로 보이는 요청이 제기됨
-
"XZ for Java가 아직 유지보수 되구 있나요? 일주일전에 질문을 올렸는데 답변이 없네요"
-
- 이 질문은 유지보수자에게 "실패"를 인정하게 만듦
- 실제로는 유지보수자는 아무것도 빚진거 없고 실패하지 않았지만, 그렇게 느낌
- "커뮤니티"를 실망시키는 것은 끔찍한 일이기 때문
- 유지보수자는 자신이 "뒤처져 있다"고 인정하며 도움을 요청하는 듯한 신호를 보냄
- 그러나 그 스레드에서는 도움이 오지 않았고, 대신 xz/liblzma 공격자가 자신에게 도움을 줬다고 소개함
-
Jia Tan(이번 공격자)이 저를 도와줬고... 앞으로 더 큰 역할을 할 수도 있습니다... 제 자원이 너무 제한적이어서 장기적으로 뭔가 바뀌어야 한다는 게 분명합니다.
-
- 유지보수자는 자신의 자원이 한정되어 있어 장기적으로 무언가 변화가 필요하다고 언급함
비협조적인 소비자의 등장
- 비협조적인 소비자가 유지보수자에게 비판적인 발언을 함
-
"새로운 유지 보수자가 있을 때까지는 진전이 없겠네요. ... 현재 관리자는 관심을 잃었거나 더 이상 유지 관리에 신경을 쓰지 않습니다. 이런 리포지토리를 보는 것은 슬픈 일입니다."
-
- 유지보수자는 자신이 관심을 잃지 않았지만, 정신 건강 문제 등으로 인해 관리 능력이 제한되었다고 방어함
- 유지보수자는 또한 이것이 무급 취미 프로젝트라는 점을 상기시킴
요구사항의 증가
- 한 주 후, 비협조적인 소비자가 다시 나타나 유지보수자를 비난함.
-
"당신은 이 메일링 리스트에서 조금씩 썩어가고 있는 수많은 패치를 무시하고 있어요."
-
"정신 건강 문제에 대해서는 유감이지만 자신의 한계를 인식하는 것이 중요해요. 이 프로젝트가 모든 기여자를 위한 취미 프로젝트라는 것은 알지만 커뮤니티는 더 많은 것을 원합니다."
-
- 그 요청자가 제안을 하기도 하지만, 실제로 도움을 주겠다는 제안은 없음
-
"XZ for C에 대한 유지 관리 권한을 넘겨서 XZ for Java에 더 집중할 수 있도록 하는 것은 어떨까요? 아니면 XZ for Java를 다른 사람에게 넘겨서 XZ for C에 집중할 수 있도록 하면 어떨까요? 둘 다 유지하려고 하면 둘 다 잘 유지되지 않을 수 있습니다."
-
- 유지보수자는 새로운 공동 유지보수자를 찾거나 프로젝트를 완전히 넘기는 것이 쉽지 않다고 설명함
오픈 소스 프로젝트의 현실
- 소프트웨어 개발자는 마음대로 끼웠다 뺐다 할 수 있는 톱니바퀴가 아님
- 이메일 스레드는 불만을 토로하는 소비자가 계속 요구를 하면서도 아무런 도움을 제공하지 않는 것으로 끝나고, 공격자만 남게 됨
-
"Jia Tan은 앞으로 프로젝트에서 더 큰 역할을 맡게 될지도 모릅니다. 그는 목록 밖에서 많은 도움을 주고 있으며 사실상 이미 공동 관리자입니다. :-)"
-
- 이 이메일 스레드는 오픈 소스 프로젝트에서의 상호작용을 축소판으로 보여줌
- 소비자들은 유지보수자에게 요구사항을 제시하며, 유지보수자는 스트레스와 탈진으로 다양하게 반응함
- 이러한 방식은 변화가 필요함