• 2025년 9월, Rubygems.org의 AWS 루트 계정이 무단 액세스된 사건이 발생함
  • 공개 조사 결과, 사용자 데이터나 운영 환경에는 손상이나 노출 증거가 없음을 확인함
  • 주요 원인은 퇴사자 권한 해지 후에도 AWS 루트 계정 비밀번호를 즉시 변경하지 않은 점과 공유 자격 증명 관리의 미흡 때문임
  • 사건 후 모든 자격 증명과 비밀번호를 회전하고 보안 감사를 강화하며, 외부 감사 및 권한 변경 프로세스를 개선함
  • 기업 윤리, 데이터 프라이버시, 투명한 커뮤니케이션이 반복적으로 강조되며, 커뮤니티 신뢰 회복을 위한 노력을 명확히 밝힘

개요 및 배경

루비 중앙(Ruby Central)은 2025년 9월 Rubygems.org의 AWS 루트 액세스 침해 사건에 대해 공식 사후 분석 보고서를 공개함. 이 문서는 사건 발생 경위, 조사 결과, 잘못 처리된 부분 및 향후 보안 강화를 위한 조치에 대해 투명하게 정리함.

사건은 전 관리자였던 André Arko가 권한 해지 후에도 Rubygems.org 프로덕션 환경 및 모니터링 툴에 접근 가능하다는 사실이 공개 블로그를 통해 밝혀지면서 시작됨. Ruby Central은 곧바로 서비스 무결성과 사용자 데이터 보호에 집중하며, 공개적으로 사과의 입장을 표명함.

사건 대응 타임라인

2025년 9월 30일 주요 흐름

  • 17:23 UTC: André Arko가 본인의 루트 액세스 가능 사실을 이메일로 통지함
  • 17:30 UTC: 외부인의 블로그 포스트를 통해 루트 계정 액세스 및 스크린샷이 대중에 공개됨
  • 17:51 UTC: Ruby Central이 이슈 조사팀을 꾸리고, 전체 서비스와 자격 증명 점검을 시작함
  • 18:20 UTC: 기존 패스워드가 무효화된 사실을 확인함
  • 18:24 UTC: AWS 루트 계정 패스워드 재설정, MFA 인증으로 계정 복구
  • 18:30 UTC: “Credentials Report” 조회를 통해 9월 19일 비인가자가 루트 비밀번호를 변경했음을 확인함
  • 20:45 UTC: 모든 하위 계정 및 레거시 자격 증명 폐지, MFA 재발급, 새로운 자격 증명을 독립 금고에 보관 조치

사건 전개 상세

루비 중앙의 전체 인프라는 AWS 상에서 운영되며, 루트 계정 자격 증명은 3인(현직 2명, 전직 1명)만이 접근 가능한 공유 금고에 저장되어 있었음.

2025년 9월 18일

  • 18:40 UTC: Arko가 프로덕션 접근 및 온콜 서비스 권한 해지 공지를 이메일로 받음
  • Arko가 사용하던 AWS 자격 증명은 삭제됐지만 루트 계정 비밀번호는 회전되지 않음

2025년 9월 19일 공격 시작

  • 04:34~04:39 UTC: 샌프란시스코 IP로 비인가자 루트 로그인, 패스워드 변경, 권한자 그룹/정책 탈퇴, IAM 전수 조사 활동 시행

2025년 9월 28일

  • 05:49 UTC: 도쿄 IP에서 비인가 세션 발생, IAM 인트로스펙션 API로 사용자 메타데이터 점검
  • (Kaigi on Rails 컨퍼런스와 시기 겹침, 동일 인물 추정)

2025년 9월 30일

  • 15:25~15:35 UTC: 로스앤젤레스 IP로 루트 액세스, 사용자 자격증명 획득 명령 실행(블로그에 공유된 스크린샷과 일치)
  • 18:24 UTC: Ruby Central이 루트 컨트롤 복구

사고 영향 및 피해 범위

  • 면밀한 검토 결과 사용자 데이터, 계정, 젬, 서비스 가용성 모두 손상 증거 없음
  • Rubygems.org는 사건 내내 정상 운영되었음
  • PII, 재무 데이터 등 민감 정보 접근/유출 없었음
  • 프로덕션 DB, S3, CI/CD에 변화 없음
  • 다만, 공유 자격 증명 미회전 및 지속적 접근 노출은 중대한 운영 절차상의 결함이었음

사고 해결 과정

  • 모든 루트 및 IAM 자격 증명 폐기 및 새로운 MFA 적용
  • 관련 외부 연동(데이터독, GitHub Actions 등) 토큰 전면 회전
  • AWS CloudTrail, GuardDuty, DataDog를 통해 핵심 변화 실시간 모니터링 강화
  • IAM 권한 구조 재검토 및 불필요 권한 해지
  • 외부 전문가 포함 종합 보안 감사 개시
  • 신규 보안 런북 작성(인사 변동 시 즉각적 패스워드 회전, 분기별 점검, 사고 시 커뮤니케이션 프로세스 포함)

근본 원인 분석

  • 공유 패스워드 관리 외부 복제가 있을 수 있다는 점 미인지
  • 퇴사자 발생 시 AWS 루트 패스워드 및 MFA를 회전하지 않은 점
  • 이 두 가지로 인해 비인가자가 루비젬스 프로덕션 인프라 접근 및 접근권한 다툼 시도 가능성 발생

재발 방지 대책

  • 액세스 해지 절차 및 체크리스트를 공유 금고 관리까지 확장
  • 비연동 자격 증명(특히 공유된 자격 증명)은 인사 변동 즉시 회전
  • 독립 보안 감사 외부 위임
  • 누구에게 어떤 조건에서 프로덕션 권한이 부여되는지 명확한 운영자/기여자 협약 도입

보안 사고로 취급한 이유

  • 핵심 시스템의 단일인물 통제 문제에서 비롯
  • Mr. Arko는 2차 온콜 서비스를 연 $5만의 유료 컨설팅으로 제공하다 예산 구조 변경 후, 온콜 무상 제공과 교환해 프로덕션 HTTP 로그(Pll 포함) 접근 및 수익 창출 기회를 제안
  • 이 제안이 거버넌스·프라이버시·이해충돌 등 본질적 문제를 내포하였고, Ruby Central은 이를 받아들일 수 없다고 판단, 운영자 구조 및 거버넌스 개편을 진행
  • Arko의 PII 포함 시스템 접근 지속 확인이 결정적으로 보안 사고로 분류되는 근거가 됨
  • 현재까지 루비젬스 데이터가 외부로 돌출·보관된 증거 없으며, 공동체 신뢰 회복 및 투명성 제고를 약속

결론

  • 커뮤니티의 지지와 건전한 견제를 감사
  • Ruby Central은 투명한 운영, 책임감, 강도 높은 보안 체계로 Rubygems.org의 안정성과 신뢰를 계속 보장할 것임

Shan Cureton
Executive Director