RubyGems 및 Bundler 접근 권한 변경의 배경
Ruby Central은 오랫동안 RubyGems와 Bundler를 책임져 왔습니다. 최근 몇 달간 공급망 공격 위협이 증가하면서 RubyGems를 포함한 소프트웨어 공급망의 보안 문제가 심각하게 대두되었습니다. Ruby에 의존하는 기업들은 사용자들에게 안전한 소프트웨어를 제공해야 할 정당한 필요성을 느끼고 있으며, 일부 기업은 Ruby Central에 보안 및 안정성 유지를 위해 재정적 지원을 제공하고 있습니다.
핵심 인프라 거버넌스 문제
- 오래된 접근 권한: RubyGems와 Bundler는 Ruby Central이 책임지기 훨씬 이전부터 존재했으며, 일부 기여자들은 더 이상 필요하지 않음에도 불구하고 오랜 기간 최고 수준의 접근 권한을 유지하고 있었습니다.
- 보안 취약점: 활발한 소속이나 합의 없이 핵심 인프라에 최고 수준의 권한을 가진 사람들이 있다는 사실은 공급망 공격에 대한 잠재적 취약점으로 인식되었습니다.
제안된 해결책 및 난관
- 표준화된 합의: 이사회는 다른 유명 오픈 소스 프로젝트와 유사하게, 접근 권한이 필요한 사람들과 커미터 합의(committer agreement)를 맺고, 필요 없는 사람들의 권한을 철회하는 상식적인 해결책을 제안했습니다. 이는 향후 PR 수락 및 재참여 가능성을 열어두는 방식이었습니다.
- 감정적 대화: 그러나 오랜 기간 접근 권한을 가졌던 사람들에게 권한 철회를 통보하는 과정은 매우 감정적이고 어려웠습니다. 일부 유지보수자들은 “권한을 제거하면 다시 추가할 것” 또는 “그들의 권한을 제거하면 그만둘 것”과 같은 반응을 보이며 협력에 난항을 겪었습니다.
이사회 결정 및 불가피성
- 소통의 한계: Ruby Central은 홍보팀이 없는 엔지니어 중심의 조직으로, 이러한 민감한 사안에 대한 공개적이고 효과적인 소통에 한계가 있었습니다.
- 자금 지원 마감 기한: 인프라의 안전성과 안정성을 보장하기 위한 통제 시스템을 마련하지 못하면 RubyGems 운영에 필수적인 자금 지원을 잃게 되는 마감 기한이 임박했습니다.
- 이사회 투표: 협력이 충분히 이루어지지 않는 상황에서, 이사회는 자금 손실을 막기 위해 투표를 진행했습니다. 저는 Marty(Ruby Central 오픈 소스 디렉터)에게 접근 권한을 일시적으로 제거하고 시스템을 잠근 다음, 유지보수자들과 운영자 합의를 체결한 후 필요한 사람들에게 다시 접근 권한을 부여하도록 지시하는 안에 찬성했습니다. 이 결정은 정치적이라기보다는 Ruby Central의 운영을 지속하기 위한 유일한 선택이었다고 생각합니다.