Google OAuth 로그인은 실패한 스타트업 도메인을 사버리는 경우 보호 불가능

7 hours ago 1

  • Google OAuth의 보안 결함으로 "Sign in with Google" 인증 과정에 심각한 취약점이 있음
    • 실패한 스타트업의 도메인을 구매한 후, 해당 도메인 이메일 계정을 재구성해 SaaS 서비스에 로그인 가능
    • 민감한 데이터가 포함된 서비스 접근 가능:
      • Slack, ChatGPT, Notion, Zoom, HR 시스템(사회보장번호 포함)
    • Google은 초기 보고 시 "의도된 동작"이라며 수정 거부
  • 문제의 근본 원인: Google OAuth는 도메인 소유권 변경을 감지하지 못함
    • 도메인 변경 시, 새 소유자가 이전 직원 계정에 동일한 자격(claims)으로 로그인 가능
  • 사용되는 기본 자격 정보:
    • hd (호스팅 도메인): 도메인 정보 포함 (예: example.com)
    • email: 사용자의 이메일 주소 포함 (예: user@example.com)
  • 서비스 제공자가 이 두 정보에 의존하면 도메인 소유권 변경 시 동일한 계정 접근 허용
  • 문제의 규모
    • 6백만 명의 미국인이 스타트업에서 근무 중
    • 90%의 스타트업이 실패
    • 실패한 스타트업의 50%가 Google Workspaces 사용
  • 100,000개의 실패한 스타트업 도메인이 구매 가능
  • 평균적으로 도메인당 10명의 직원과 10개의 SaaS 서비스 사용 → 1,000만 개 이상의 계정에 민감 데이터 포함 가능성

해결책 제안 및 Google의 대응

  • Google에 제안된 해결책:
    1. 사용자 고유 ID: 시간이 지나도 변경되지 않는 고유 사용자 식별자 추가
    2. 워크스페이스 고유 ID: 도메인과 연결된 고유 워크스페이스 식별자 추가
  • Google의 초기 대응:
    • 2024년 9월 보고 → "수정 불가"로 종료
    • 2024년 12월 Shmoocon 컨퍼런스 발표 후 Google이 다시 문제 재검토
    • $1,337의 버그바운티 지급 및 수정 작업 시작
  • 현재로서는 Google의 수정 없이는 근본적인 문제 해결 불가능
  • 일부 서비스는 도메인 일치 시 모든 사용자 목록 반환하므로 취약성이 더 악화됨
  • 구글 로그인 대신 비밀번호를 사용했다 해도 재설정 가능함
    • 스타트업은 비밀번호 인증 대신 SSO와 2FA 강제 적용
    • 서비스 제공자는 비밀번호 재설정 시 추가 인증 요구(SMS 코드, 신용카드 확인)

결론: Google OAuth 보안의 근본적 문제

  • Google의 OAuth 구현 결함으로 인해 도메인 소유권 변경 시 계정 탈취 가능
  • Google의 수정 작업이 시작되었으나, 아직 근본적 해결책은 미완료
  • 현재로서는 수백만 미국인의 데이터와 계정이 위험에 노출

Read Entire Article