콘텐츠로 이동하기
보안 & 아이덴티티

Google Cloud의 로그 기반 보안 알림: Cloud ID의 공격 감지

2020년 10월 20일
Jeanno Cheung

Strategic Cloud Engineer

Josh Davis

Cloud Technical Resident

Google Cloud 사용해 보기

$300의 무료 크레딧과 20개 이상의 항상 무료인 제품으로 Google Cloud 사용을 시작해보세요.

무료 체험

* 본 아티클의 원문은 2020년 8월 7일 Google Cloud 블로그(영문)에 게재되었습니다.

온프레미스 모델에서 클라우드 기반 모델로 전환하면 워크로드 로깅 및 보안과 관련한 새로운 기회가 열립니다.

이 블로그 게시물 시리즈에서는 Google Cloud의 로그에서 보안 위협과 알림을 감지하는 데 사용할 수 있는 클라우드 기반 기술 몇 가지를 살펴봅니다. 최종 목표는 Google Cloud Platform(GCP)에 엔드 투 엔드 로그 기반 보안 알림 파이프라인을 형성하는 것입니다. 우선 관리 콘솔의 Cloud ID 로그에 대한 알림부터 살펴보겠습니다.

Cloud ID

고객은 Google Cloud 배포 전반에서 사용자를 프로비저닝, 관리, 인증하는 데 Cloud ID를 사용합니다. Cloud ID는 조직의 사용자가 Google ID를 획득하는 방식이며 이러한 ID에는 Google Cloud 리소스에 대한 액세스 권한이 부여됩니다.

그렇다면 악의적인 사용자가 Cloud ID에서 관리자 액세스 권한을 얻고 Google 그룹스에 사용자를 추가하기 시작하면 어떻게 될까요? 이러한 그룹 중 하나에 GCP 내부의 액세스 권한이 할당되면 어떻게 될까요? Cloud ID 로그는 이러한 상황을 파악할 수 있게 해주며, 인증 및 승인 기반 공격에 대한 첫 번째 방어선 역할을 합니다.

Cloud ID 로그

Cloud ID 로그는 GCP 환경에 직접적인 영향을 줄 수 있는 이벤트를 추적합니다. 관련 로그에는 다음이 포함됩니다.

  • 관리 감사 로그: Google 관리 콘솔에서 수행된 작업 추적 예를 들어 관리자가 도메인에 사용자를 추가하거나 설정을 변경한 시점을 확인할 수 있습니다.

  • 로그인 감사 로그: 사용자가 도메인에 로그인한 시점 추적

  • 그룹스 감사 로그: Google 그룹스의 그룹 설정 및 그룹 멤버십에 대한 변경사항 추적

  • OAuth 토큰 감사 로그: 타사 애플리케이션 사용 및 데이터 액세스 요청 추적

  • SAML 감사 로그(G Suite/Cloud ID Premium만 해당): 사용자의 SAML 애플리케이션 로그인 성공 및 실패 정보 확인

각 로그 항목에서 핵심 정보는 이벤트 이름과 설명입니다. Cloud ID 로그는 배포에서 발생할 수 있는 미리 정의된 '이벤트'를 다량으로 추적합니다. 예를 들어 로그인 감사 로그는 '로그인 실패' 및 '의심스러운 로그인' 이벤트를 추적합니다. 로그인 실패는 사용자가 로그인에 실패할 때마다 발생합니다. 의심스러운 로그인은 사용자가 평상시와 다른 IP 주소에서 로그인하는 등 의심스러운 상황에서 로그인한 경우에 발생합니다. Cloud ID가 추적하는 이벤트는 상당히 많으며 이러한 이벤트는 관리 콘솔의 보고서 > 감사 로그 섹션에서 살펴볼 수 있습니다.

Cloud ID에 알림 설정

위협을 감지하고 잠재적 악성 활동에 신속하게 대응하기 위해 Cloud ID 로그의 이벤트에 대해 알림을 설정할 수 있습니다. 바람직한 첫 번째 방어선은 관리 콘솔에 알림을 설정하는 것입니다. 알림을 만들 때는 필터를 지정하고 알림이 트리거되었을 때 이메일을 받을 수신자 목록을 설정합니다. 몇 가지 유용한 알림을 살펴보겠습니다.

예시 1: 로그인 이벤트 알림

이 시나리오에서는 사용자 자신도 모르게 Google 사용자 인증 정보가 도용되었으며 악의적인 행위자가 도용한 정보를 이용해 회사 네트워크 외부에서 해당 사용자로 로그인하려고 시도하는 경우를 가정해 보겠습니다. Cloud ID는 이 사용자가 평상시와 다른 IP 주소에서 로그인을 시도하고 있음을 인식하고 의심스러운 로그인 이벤트로 로깅하게 됩니다. 사용자 계정이 도용되었다고 판단될 때 조치를 취할 수 있도록 이 상황에 대한 알림을 만들어 보겠습니다.

관리 콘솔의 보고서 > 감사 로그 섹션에서 알림을 만들려는 로그 유형을 선택합니다. 로그인 감사 로그가 표시되면 로그에 대한 필터를 만들고 이벤트 이름을 '의심스러운 로그인'으로 붙입니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_Could_identity_audit_log.max-1600x1600.jpg

콘솔 오른쪽 상단에 있는 종 모양의 버튼을 눌러 알림을 만들 수 있습니다. 이 알림이 트리거될 때마다 이메일 알림을 보낼 수신자 목록을 지정합니다. 이 예시에서는 의심스러운 로그인이 발생할 경우 'security@example.com'이 이메일 알림을 수신하게 됩니다. 그러면 알림을 받은 사용자가 보안 문제를 완화하는 조치를 취할 수 있습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_create_an_alert.max-1900x1900.jpg

다른 로그인 감사 이벤트에 대한 알림도 동일한 방식으로 만들 수 있습니다. 예를 들어 도용된 사용자 인증 정보가 감지되어 비밀번호 재설정이 필요한 경우 '비밀번호 유출' 이벤트 유형이 로깅되고 정부 지원 해킹 공격자가 사용자 계정 도용을 시도한 것으로 의심될 경우 정부 지원 해킹 공격 이벤트 유형이 로깅됩니다. 이러한 이벤트와 다른 이벤트에 대한 알림은 로그인 관련 보안 위협을 인식하고 적절히 대응하는 데 도움이 될 수 있습니다.

예시 2: 그룹 변경사항 알림

Google Cloud 엔터프라이즈 고객은 우선 사용자를 그룹에 할당한 후 이러한 그룹을 IAM 역할의 구성원으로 나열하여 IAM 권한 관리를 처리하는 것이 좋습니다. 그러면 Cloud ID의 그룹에서 사용자를 삭제하는 간단한 방법으로 Google Cloud 액세스 프로비저닝이 해제됩니다.

그룹에서 사용자를 삭제하면 간단하게 IAM 권한 프로비저닝을 해제할 수 있는 것과 마찬가지로 액세스를 프로비저닝할 때는 사용자를 그룹에 추가하기만 하면 됩니다. 이때 GCP에서 광범위한 액세스 권한을 가진 그룹에 악의적인 사용자가 추가되면 위험한 상황이 발생할 수 있습니다.

설정에 따라 Cloud ID의 그룹에 사용자를 추가할 수 있는 역할이 4개 있을 수 있습니다.

  • 최고 관리자(관리 콘솔을 통해 추가)

  • 그룹 관리자(관리 콘솔을 통해 추가)

  • 그룹 소유자(Google 그룹스를 통해 추가)

  • 그룹 관리자(Google 그룹스를 통해 추가)

Cloud ID 로그를 사용하여 이러한 위험을 완화하는 방법을 한 가지 시나리오를 통해 살펴보겠습니다. 밥은 A 회사의 보안 책임자입니다. Cloud ID 최고 관리자가 밥을 Google 그룹('security-admin@example.com')의 그룹 관리자로 할당했습니다. 즉, 밥은 팀원을 이 그룹에 추가하거나 삭제할 수 있습니다. 이 그룹에는 보안과 관련한 최고 수준의 관리 작업을 수행할 수 있는 GCP의 강력한 역할이 할당되어 있습니다.

악의적인 행위자가 어떤 방식으로든 밥의 사용자 인증 정보에 액세스하고 밥으로 로그인하여 보안 관리 그룹에 사용자를 은밀하게 추가하기 시작했다고 가정하겠습니다. 이제 이러한 모든 악의적인 사용자가 GCP 조직에서 액세스 권한을 보유하게 되었습니다. 정말 큰일입니다.

밥과 같은 시나리오를 피하려면 관리 콘솔에서 그룹 멤버십 수정에 대한 알림을 설정해야 합니다. Google 그룹스의 그룹 관리자 또는 관리 콘솔의 관리자가 수정한 사항이 있을 경우 이러한 알림이 트리거되도록 설정할 수 있습니다.

Google 그룹스에서 수행된 그룹 작업을 감사하려면 관리 콘솔의 보고서 > 감사 로그 > 그룹스 섹션으로 이동합니다. 여기서는 그룹스에서 수행된 작업의 감사 로그를 볼 수 있습니다. 그런 다음 '사용자가 그룹에 추가됨' 이벤트 이름으로 필터링하고 그룹 이름(예: 'security-admin@example.com' 같은 보안에 민감한 그룹)을 지정합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_audit_Group_actions.max-700x700.jpg

그 후에는 이러한 로그가 발생할 때 정적 목록상의 수신자에게 자동으로 이메일이 전송되도록 보고 규칙을 만들 수 있습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_create_group_alert.max-1200x1200.jpg

새로운 보고 규칙의 세부정보는 관리 콘솔의 보안 > 규칙 > 보안 관리 그룹 수정에서 확인할 수 있습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_Security_Admin_Group_Modification.max-1900x1900.jpg

Google 그룹스 외에 다른 방법으로도 그룹에 사용자를 추가할 수 있습니다. 관리자는 관리 콘솔 내에서 이러한 작업을 수행할 수 있으며 이 경우 관리 감사 로그에서 추적됩니다. 그룹스 감사 로그의 이벤트에 따라 트리거되도록 알림을 만든 방법과 동일하게 관리 감사 로그의 그룹스 관련 이벤트를 필터링할 수 있습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/6_Admin_audit_logs.max-1300x1300.jpg

다음 단계

Cloud ID 로그는 보안 알림에 사용할 수 있는 다양한 이벤트를 추적하는 데 도움이 됩니다. 조직에서 이러한 로그를 알고 있으면 자체적인 사용 사례에 적합한 알림을 브레인스토밍할 수 있습니다. 예를 들어 Cloud ID에서 설정을 구성할 때 관리자 감사 로그에 특정 Cloud ID 설정이 변경되었다고 표시되는 경우 알림을 보내도록 하면 설정을 그대로 유지할 수 있습니다.

관리 콘솔에 Cloud ID 로그에 대한 알림을 설정하는 것은 Google Cloud 배포의 안정성을 높이는 좋은 출발점입니다. 하지만 기본 제공되는 관리 콘솔 기능에서 이를 허용하는지 여부가 관건입니다. 이 시리즈의 다음 게시물에서는 Cloud ID 로그를 다른 GCP 로그처럼 분석하고, 내보내고, 저장할 수 있도록 GCP의 Cloud Logging으로 가져오는 방법을 살펴보겠습니다. 그러면 훨씬 더 세밀한 Cloud ID 로그 분석 및 알림이 가능해집니다.

게시 위치