10110010011101001011001101101110101018200.devFrom Enterprise.Systems

Google Workspace에서 타사 OAuth 앱을 감사하는 방법

The 8200.dev Team읽는 데 7분

대부분의 IT 관리자에게 자사의 Google Workspace 데이터에 접근 권한을 가진 타사 애플리케이션이 몇 개인지 물어보면, 정확한 숫자가 아니라 추측만 돌아올 것입니다. 이러한 불확실성 자체가 문제입니다. 사용자가 "Google로 로그인"을 클릭하거나 마켓플레이스 부가기능을 설치할 때마다, 해당 사용자는 OAuth 애플리케이션에 조직 데이터에 대한 지속적인 접근 권한 일부를 부여하게 됩니다 — 그리고 이 부여된 권한은 사용자의 관심, 벤더의 유효성, 심지어 관리자의 인지 여부보다도 오래 지속됩니다.

이 글은 이러한 권한 부여를 감사하는 실용적인 방법을 다룹니다: 어디서 찾을지, 어떤 것이 위험한지 어떻게 판단할지, 그리고 어떻게 안전하게 정리할지에 대한 내용입니다.

OAuth 권한 부여란 실제로 무엇인가

사용자가 "Google로" 앱을 승인할 때, 사용자는 비밀번호를 넘겨주는 것이 아닙니다. 사용자는 애플리케이션에게 특정 권한 범위 — *스코프(scope)* — 로 제한된 토큰을 부여하며, 이를 통해 애플리케이션은 사용자(또는 조직)를 대신하여 Google API를 호출할 수 있게 됩니다. 스코프는 "이메일 주소 보기"처럼 좁을 수도 있고, "모든 Google Drive 파일 보기, 편집, 생성, 삭제"처럼 넓을 수도 있습니다.

이러한 권한 부여를 감사할 가치가 있게 만드는 두 가지 특성이 있습니다:

  • 지속성이 있습니다. 토큰은 명시적으로 취소되거나, 앱이 제거되거나, 계정이 비활성화되기 전까지 계속 작동합니다. "1년 전에 그 도구 사용을 중단했다"는 사실만으로는 아무것도 취소되지 않습니다.
  • 사용자가 주도적으로 시작합니다. 접근 권한은 IT 부서가 프로비저닝하는 것이 아니라 "허용"을 클릭한 사람에 의해 부여됩니다. 이것이 바로 섀도우 IT의 교과서적인 정의이며, 이는 곧 여러분의 접근 권한 목록이 기본적으로 불완전하다는 것을 의미합니다.

목록을 찾을 수 있는 위치

확인할 수 있는 관점은 두 가지입니다.

사용자 관점은 각 사용자의 Google 계정 내 *보안 → 타사 앱 및 서비스*(이전 명칭 "내 계정에 접근 권한이 있는 앱")에 있습니다. 이는 한 사용자가 승인한 항목을 보여줍니다. 개별 확인에는 유용하지만 대규모로 활용하기에는 실용적이지 않습니다.

관리자 관점은 Google 관리 콘솔의 *보안 → API 제어 → 앱 접근 제어*(및 그와 함께 있는 연결된 앱 보고 기능)에 있습니다. 이는 조직 전체의 그림을 보여줍니다: 어떤 앱이 연결되어 있는지, 각 앱이 어떤 스코프를 보유하고 있는지, 각 앱을 몇 명의 사용자가 승인했는지 등입니다. 감사를 수행할 때는 바로 이곳에서 작업해야 합니다.

적절한 관리자 권한이 있다면, Admin SDK의 토큰 보고 기능을 통해 동일한 데이터를 프로그래밍 방식으로 열거할 수 있으며, 이를 통해 연 1회 수동으로 진행하는 고된 작업이 아니라 지속적이고 자동화된 검토가 가능해집니다.

위험도를 판단하는 방법

연결된 모든 앱이 문제가 되는 것은 아닙니다. 여유/바쁨 시간을 읽을 수 있는 일정 관리 도구는 위험도가 낮지만, 한 사람이 사용하는 Drive 전체 접근 권한을 가진 메모 앱은 사정이 다릅니다. 다음 몇 가지 기준으로 각 앱을 평가하십시오:

  • 스코프의 범위. Drive 전체 접근, Gmail 읽기/보내기, 관리자 디렉터리 접근은 위험도가 높은 스코프입니다. 모든 파일을 읽고 유출할 수 있는 앱은 얼마나 신뢰할 만하게 보이든 상관없이 최우선 순위입니다.
  • 접근 가능한 데이터의 민감도. Drive 콘텐츠와 메일함 접근은 프로필이나 캘린더 메타데이터보다 우선순위가 높습니다.
  • 사용자 수와 범위. 한 사람만 사용하지만 광범위한 접근 권한을 보유한 앱은 조용하지만 집중된 위험입니다. 회사 전체가 사용하는 앱은 그 파급 범위가 크기 때문에 면밀한 검토가 필요합니다.
  • 게시자 신뢰도. 인증된 게시자와 잘 알려진 벤더는 미인증되거나 익명인 앱보다 안전한 선택입니다. Google의 앱 인증 상태는 유용한 신호이지만, 보증은 아닙니다.
  • 활동 여부. 몇 달 동안 아무도 사용하지 않은 앱은 순전히 손해일 뿐입니다: 위험은 그대로이고 가치는 전혀 없습니다.

이를 종합하는 간단한 방법: 위험도가 높은 스코프를 가지고 있으면서 *동시에* 신뢰도가 낮거나 *혹은* 최근 사용 이력이 없는 앱을 정리 목록 최상단에 올리는 것입니다.

반복 가능한 감사, 단계별로

  1. 목록화. 관리 콘솔(또는 API를 통해)에서 연결된 앱과 그 스코프의 전체 목록을 가져옵니다.
  2. 스코프 분류. 위험한 스코프에 플래그를 지정합니다 — Drive 전체, Gmail 보내기/읽기, 디렉터리, 그리고 모든 관리자 스코프.
  3. 사용 현황 대조. 최근 활동이 없는 앱과 극소수 사용자만 보유한 앱을 식별합니다.
  4. 게시자 확인. 미인증 또는 알려지지 않은 게시자를 확인합니다.
  5. 결정. 각 앱에 대해: 유지, 제한, 또는 취소 중 하나를 선택합니다. 사유를 기록하십시오 — 이 결정 기록이 다음 감사를 더 빠르게 만들어줍니다.
  6. 안전하게 취소. 폐지하기로 결정한 앱의 접근 권한을 제거하고, 제거 중인 도구에 의존하던 소수의 사용자들과 소통합니다.
  7. 가드레일 설정. 정리에서 예방으로 전환하십시오: 마켓플레이스 설치를 관리자 승인 앱으로 제한하고, 고위험 스코프에 대한 접근을 차단하거나 허용 목록을 설정하여 확산이 다시 일어나지 않도록 하십시오.

문제 없이 취소하기

대부분의 정리 작업을 막는 두려움은 "사람들이 필요로 하는 것을 취소하면 어떡하지?"입니다. 이를 완화하는 방법은 다음과 같습니다:

  • 명확한 성과부터 시작하십시오: 미인증 앱이면서 광범위한 스코프를 가지고 있고 최근 사용 이력이 전혀 없는 경우입니다.
  • 사용자 기반이 작은 앱의 경우, 취소하기 전에 미리 알림을 보내십시오. 아무도 이의를 제기하지 않으면 진행하십시오.
  • 무엇을 언제 취소했는지 기록을 유지하여, 문제가 발생했을 때 신속하고 의도적으로 복원할 수 있도록 하십시오.

Google 도구에서의 취소는 즉각적이고 되돌릴 수 있습니다 — 사용자가 진정으로 필요로 하는 앱이라면 언제든 재승인할 수 있으며, 이번에는 여러분이 설정한 가드레일이 적용된 상태로 이루어집니다.

지속적으로 만들기

일회성 감사는 그 순간에는 만족스럽지만 즉시 낡은 것이 되어버립니다. 감사를 마친 바로 다음 날 새로운 앱이 연결됩니다. 지속 가능한 해법은 지속적인 탐지입니다: 연결된 앱과 그 스코프를 자동으로 열거하고, 각각을 평가하며, 새로운 고위험 권한 부여가 나타나거나 휴면 상태인 앱이 광범위한 접근 권한을 보유하고 있을 때 경고하는 것입니다.

이러한 전환 — 주기적인 스프레드시트에서 항상 최신 상태를 유지하는 인벤토리로의 전환 — 은 오늘의 OAuth 노출 상태를 정확히 아는 것과 그저 추측하는 것 사이의 차이를 만듭니다. 이는 또한 아이덴티티, 공유, 구성과 더불어 더 넓은 Google Workspace 보안을 구성하는 핵심 요소 중 하나이기도 합니다.

주의해야 할 스코프들

스코프의 범위가 가장 큰 위험 요소이기 때문에, 실제로 중요한 의미를 지니는 OAuth 스코프를 알아두는 것이 도움이 됩니다. 앱의 권한 목록을 읽을 때 알아두어야 할 몇 가지 패턴은 다음과 같습니다:

  • `drive` (Drive 전체) — 사용자의 *모든* Drive 파일을 읽고, 생성하고, 수정하고, 삭제할 수 있습니다. 이는 앱이 보유할 수 있는 가장 광범위한 데이터 스코프이며, 그래야 하는 것보다 훨씬 더 흔하게 요청됩니다. 많은 앱이 파일 단위의 더 좁은 스코프로 충분함에도 이 스코프를 요청합니다.
  • `gmail.send` / `gmail.modify` / `mail.google.com` — 사용자로서 메일을 보내거나, 메일함을 읽고 수정할 수 있는 권한입니다. 메일함 접근 권한을 가진 앱은 서신을 유출할 수도 있고, 다른 사람들에게 사용자를 사칭할 수도 있습니다.
  • **admin.directory.*** — 사용자와 그룹 디렉터리를 읽거나 관리할 수 있는 권한입니다. 이 권한을 보유한 앱은 한 사용자가 아니라 조직 전체에 접근합니다.
  • `spreadsheets` / `documents` — Sheets와 Docs에 대한 콘텐츠 접근 권한으로, 여기에는 여러분이 가장 보호하고 싶어할 민감한 데이터(재무 정보, 계획서, "임시로" 붙여넣은 자격 증명 등)가 자주 담겨 있습니다.

좁고 읽기 전용인 스코프 — userinfo.email, calendar.readonly, drive.file(앱 자신이 생성한 파일에만 접근) — 은 장려해야 할 대상입니다. 새로운 도구를 평가할 때는 최소한의 권한을 요청하는 버전을 우선하십시오.

감사를 정책으로 전환하기

정리된 감사는 일회성 숙청으로 끝나는 것이 아니라 지속적인 정책으로 이어질 때 훨씬 더 큰 가치를 지닙니다. 다음 세 가지 정책이 대부분의 확산이 다시 자라나는 것을 막아줍니다:

  • 관리자 승인 마켓플레이스 설치. 사용자가 마켓플레이스 앱을 설치하기 전에 관리자 승인을 요구하여, 새로운 연결이 기본값이 아니라 하나의 결정이 되도록 하십시오.
  • 스코프 기반 접근 제어. 고위험 스코프(Drive 전체, Gmail, 디렉터리)를 차단하거나 명시적으로 허용 목록에 등록하십시오. Drive 전체 접근을 원하는 앱은 일정 기준을 통과해야 하며, 이메일 주소만 원하는 앱은 그럴 필요가 없어야 합니다.
  • 정기적인 검토 담당자. 새로운 권한 부여와 고위험 권한 부여를 정기적으로 검토하는 상시 업무를 누군가에게 배정하십시오. 담당자가 없는 검토는 실행되지 않습니다.

이러한 가드레일은 "모든 사용자가 모든 앱에 어떤 접근 권한이든 부여할 수 있다"는 기본값을 "광범위한 접근 권한은 신중하게 검토된 결정이다"로 바꾸어 놓습니다 — 사람들이 진정으로 필요로 하는 정당한 도구를 막지 않으면서 말입니다.

8200.dev는 여러분의 Workspace에 연결된 타사 앱을 발견하고, 스코프, 게시자 신뢰도, 사용 현황을 기준으로 평가하여, 위험한 앱을 먼저 드러냅니다 — 읽기 전용으로, 지속적으로 말입니다. 전체 내용을 확인하려면 저희가 점검하는 항목을 참고하십시오.

지금 당장 여러분의 데이터에 접근할 수 있는 앱이 무엇인지 확인하고 싶으십니까? 무료 보안 감사를 시작하고, 여러분의 Google Workspace 전반에서 연결된 OAuth 애플리케이션의 위험도별 순위가 매겨진 목록을 받아보십시오.

공유X / TwitterLinkedIn

관련 기사