본론에서는 RubyGems 생태계에서 발견된 주요 취약점 유형과 대응 과정을 설명합니다.
- RubyGems 취약점: 디렉토리 탐색, 심볼릭 링크 처리 오류, YAML 역직렬화, 터미널 제어 문자 삽입, XSS, 그리고 ReDoS를 포함한 다양한 서비스 거부(DoS) 공격 사례가 있었습니다. 특히, 젬 스펙의 긴 요약이나 음수 길이 파일 처리와 같은 독특한 DoS 벡터도 언급됩니다.
- Bundler 취약점: 소스 의존성 혼동과 셸 인젝션 버그가 주요했습니다.
- RubyGems.org 취약점: 서버 측면에서는 캐시 오염, 접근 제어 우회, MFA 없는 비밀번호 재설정, 다양한 DoS 공격 등이 발생했습니다. 2013년 대규모 YAML 원격 코드 실행(RCE) 사건은 RubyGems.org 인프라를 전면 재구축해야 했던 심각한 사례로, 보안 사고 시 엄격한 증거 검증 및 복구 과정의 중요성을 보여줍니다.
보안 대응 및 개선 노력: Ruby Central은 HackerOne을 통한 책임 있는 공개 프로그램을 운영하며 430건 이상의 보고서를 처리하고 64건의 실제 문제를 해결했습니다. 취약점 보고는 트리아지, 초기 대응, 수정 및 검증, 영향 평가, 공개에 이르는 체계적인 ‘플레이북’에 따라 대응합니다. 또한, 소프트웨어 공급망 보안 강화를 위해 RubyGems.org의 제3자 보안 감사, Sigstore와 같은 젬 서명 프로젝트, 그리고 CI/CD 환경에서 안전한 젬 발행을 돕는 ‘신뢰할 수 있는 발행(Trusted Publishing)’ 기능 도입 등 적극적인 노력을 기울이고 있습니다. 이러한 모든 보안 활동은 AWS, Shopify, OpenSSF 등 다양한 후원사와 커뮤니티의 지원을 통해 이루어지고 있습니다.