AWS 보안 가이드 ① AWS 계정이 해킹됐는데 AWS 책임이 아니라고요?

① 클라우드 공동 책임 모델 편

AWS 클라우드 기반으로 쇼핑 앱을 운영하는 B사,

어느 날 고객 개인 정보가 해킹되었다는 소식을 듣게 되는데?

이게 무슨 일일까요? 😲 B사 담당자는 황급히 AWS 고객 센터에 문의합니다. AWS 클라우드에 올려뒀던 개인 정보가 무슨 이유로, 어디까지 유출되었는지 확인이 필요했기 때문입니다. 초조한 마음으로 답변을 기다리는 담당자 등 뒤로 식은땀이 흐릅니다.

AWS와 쇼핑 앱 B사가 여러 번 메일을 주고받으며 찾은 원인은 AWS 관리자 접근 권한 설정이었습니다. 누구든 접근 권한만 확보하면 외부에서도 자유롭게 접속할 수 있도록 설정이 되어 있었던 겁니다.

AWS 관리자 접근 권한 설정이 잘못된 경우, 제3자의 열람이나 해커의 개인 정보 악용 등 규모가 큰 보안 사고로 이어질 수 있습니다.

원인을 파악한 B사 담당자는 피해를 최소화하고자 빠르게 관리자 설정을 변경했습니다. 드디어 한숨을 돌리던 찰나, 유출 사고 피해 보상과 관련해 AWS 고객 센터와 얘기를 나누다 다음과 같은 얘기를 듣게 됩니다.

“AWS의 ‘공동 책임 모델’에 따라 계정 관리 소홀로 인한 책임은 고객에게 있습니다.”

AWS 계정이 해킹되었는데 AWS의 책임이 아니라니요? 클라우드 서비스 회사 중 믿을만한 글로벌 대기업이라서 AWS를 사용했는데, AWS에는 기본적인 보안 시스템이 없었던 걸까요? B사 담당자는 혼란에 빠졌습니다 🤔

AWS에서 말한 ‘공동 책임 모델’은 무엇이고 왜 AWS가 아니라 고객이 책임을 져야 하는 것일까요?

공동 책임 모델이란?

공동 책임 모델(Shared Responsibility Model)은 AWS 같은 ‘클라우드 서비스 공급자’와 서비스를 제공 받는 ‘클라우드 사용자’가 IT 인프라에 대한 책임을 공유한다는 의미입니다. 흔히 책임 공유 모델이라 부르기도 합니다.

AWS에서는 공동 책임 모델의 배경을 아래와 같이 설명하고 있습니다.

AWS와 고객은 IT 환경에 대한 통제권을 공유합니다. 따라서 보안은 공동의 책임입니다.

AWS 클라우드의 보안 및 규정 관리와 관련하여 각 당사자의 책임은 서로 다릅니다. 고객의 책임은 사용 중인 서비스에 따라 달라집니다.

그러나, 일반적으로 고객은 특정 보안 및 규정 준수 요구 사항에 부합하는 방식으로 IT 환경을 구축할 책임이 있습니다.

출처: Amazon Web Services: Risk and Compliance

공동 책임 모델에 따르면 AWS가 안전한 클라우드 인프라를 제공하는 대신, AWS로부터 클라우드 서비스를 제공받는 고객도 보안 규정에 맞게 아키텍처를 설계하거나 O/S를 업데이트할 책임이 있습니다.

앞서 예시로 설명해 드렸던 쇼핑 앱 B사의 케이스는 B사가 관리자 계정을 부주의하게 다룬 게 가장 큰 원인이었습니다. 관리자 계정 관리는 AWS의 책임 영역이 아닐뿐더러, B사가 안전한 방식으로 관리하지 않았기 때문에 해당 보안 사고에 대한 책임은 B사에 있다고 보는 것이죠.

고객 입장에서 ‘결론적으로 AWS는 보안 사고에 대해서 100% 책임을 지고 싶지 않을 뿐인 거 아냐? 도대체 고객이 어디까지 책임져야 하는 거람?’ 이런 의문이 생길 수도 있습니다 🙄

그렇다면 클라우드 서비스 공급자들이 왜 공동 책임 모델을 선택하고 있는지, 공동 책임 모델에 따르면 고객은 어느 범위까지 보안을 신경 써야 하는지 자세히 알아보겠습니다.

공동 책임 모델 도입 배경과 클라우드 서비스의 특성

AWS를 비롯한 클라우드 서비스 공급자가 공동 책임 모델을 선택한 이유는 크게 두 가지입니다.

첫 번째는 ‘고객의 정보를 분리해서 보호하기 위함 🔐’입니다. AWS는 고객이 어떤 애플리케이션을 사용하고 있는지, 운영 체제에서 어떤 작업이 발생하고 있는지 정확히 알 수 없습니다.

AWS는 클라우드 인프라 서비스를 제공하는 업체일 뿐, 고객 환경 및 데이터에 접근할 권한이 없기 때문입니다. 고객의 사용자 데이터는 보호되어 있으며 이와 관련한 관리 권한, 보안 설정 책임은 모두 고객이 가지고 있습니다.

두 번째는 ‘고객이 원하는 클라우드 서비스를 선택하고, 특정 부분에만 집중해서 관리할 수 있도록 돕기 위함 🛠’입니다. 고객이 AWS 서비스를 사용하는 이유는 물리적 인프라 구축을 하지 않아도 되는 편리함과 때문입니다. 클라우드 인프라를 안전하게 유지 관리하는 것은 AWS의 역할이고 고객은 비즈니스에 집중하면 되니까요.

다만, 클라우드 서비스 종류에 따라 고객이 관리할 수 있는 영역과 책임져야 하는 보안 범위는 달라집니다. 이는 클라우드 컴퓨팅 서비스 종류별 CSP와 고객의 관리 범위 분배와도 거의 일치합니다.

클라우드 컴퓨팅 서비스 종류별 사용자 관리 범위

IaaS(Infra as a Service)를 사용하는 고객은 어떤 O/S를 사용할지, 애플리케이션은 어떤 걸 올릴지 자유롭게 선택하는 대신 비용 관리, 보안 설정까지 고객이 신경 써야 합니다.

AWS로 예를 들자면 Amazon EC2 같은 서비스의 경우 모든 보안 구성 및 관리 작업을 고객이 수행하도록 요구합니다. 업데이트나 보안 패치와 같은 운영체제 관리, 애플리케이션 소프트웨어 관리, 유틸리티 관리, 방화벽 구성 관리 등 모든 부분이 고객의 책임입니다.

반면, Amazon S3 또는 DynamoDB와 같은 서비스의 경우 AWS에서 운영체제나 플랫폼 부분에 책임이 있습니다. 고객은 데이터 관리, 자산 분류, IAM 활용에 대한 책임이 있죠. 즉, 같은 운영체제라 해도 EC2 서비스에서는 고객 책임이지만, 다른 서비스에서는 AWS의 책임일 수 있습니다.

따라서, 고객은 어떤 클라우드 서비스를 사용하느냐에 따라 책임 영역이 다를 수 있음을 인지하고 원하는 서비스를 선택할 수 있습니다. EC2와 같이 고객 자유도가 높은 서비스를 사용하는 대신 모든 부분을 직접 관리하거나, S3처럼 비교적 자유도가 낮은 서비스를 사용하면서 운영체제 등은 AWS에 맡기고 특정 부분만 관리할 수 있죠.

클라우드의 보안 & 클라우드에서의 보안

AWS에서는 AWS와 고객 각각의 책임 범위를 명확하게 알 수 있도록 클라우드 공동 책임 모델 그림을 제공하고 있습니다. 아래 그림에 따르면 AWS는 ‘클라우드의 보안’을 책임지며, 고객은 ‘클라우드에서의 보안’을 책임집니다.

Shared Responsibility Model (출처: AWS)

‘클라우드의 보안(Security of the Cloud)’은 AWS 클라우드에서 제공하는 클라우드 인프라 자체의 보안을 의미합니다. 대표적으로 AWS의 글로벌 리전, 가용 영역, 엣지 로케이션에서 생기는 보안 문제는 AWS가 관리하고 책임집니다.

‘클라우드에서의 보안(Security In the Cloud)’은 고객이 선택한 클라우드 서비스에 따라 정해지는 영역이며 고객 책임하에 사용되는 서비스의 보안을 의미합니다. 대표적으로 애플리케이션 소프트웨어 보안, 운영 체제 업데이트를 통한 보안, 관리자 계정 관리 등을 고객이 책임집니다.

AWS와 고객의 보안 책임 영역

주체책임 영역상세 내용
AWS클라우드의 보안
(Security of the Cloud)
소프트웨어
– 컴퓨팅, 스토리지, DB, 네트워킹

하드웨어/글로벌 인프라
– 리전, 가용 영역, 엣지 로케이션
고객클라우드에서의 보안
(Security In the Cloud)
– 고객 데이터
– 플랫폼, 애플리케이션, 자격 증명 및 엑세스 관리
– 운영 체제, 네트워크 및 방화벽 구성
– 클라이언트 측 데이터 암호화
– 서버 측 데이터 암호화
– 네트워크 트래픽 보호

이러한 공동 책임 모델은 IT 제어까지도 확장됩니다. AWS와 고객은 IT 환경에 대한 책임뿐만 아니라 IT 제어의 관리, 운영, 검증에 대해 책임을 분담합니다.

AWS는 물리적 인프라와 관련한 책임을 통해 고객이 관리하는 부담을 경감할 수 있고, 고객은 AWS 서비스 사용 내에서 자체적인 제어 구성을 해야 하는 것이죠.

공동 책임 모델이라는 이름 그대로 AWS와 고객이 공동으로 책임을 갖는 영역 또한 존재합니다. AWS와 고객이 관리하는 IT 제어 항목은 아래와 같은 표로 나타낼 수 있습니다.

AWS와 고객이 관리하는 IT 제어 항목

주체제어 항목상세 내용
AWS상속된 제어 항목
(Inherited Controls)
고객이 AWS로부터 전적으로 상속받는 제어 항목
ex. 물리적 및 환경 제어 항목
AWS 및 고객공유된 제어 항목
(Shared Controls)
인프라 계층과 고객 계층에 모두 적용되지만 관점이 완벽하게 구분되는 제어 항목
AWS는 인프라에 대한 요구 사항을 제공하고 고객은 자사의 AWS 서비스 사용 내에서 자체적인 제어 구현을 제공

ex. 패치 관리
– AWS: 인프라와 관련된 결함 수정과 패치에 대한 책임
– 고객: 게스트 OS와 애플리케이션 패치에 대한 책임

ex. 구성 관리
– AWS: 인프라 디바이스의 구성을 유지 관리할 책임
– 고객: 자체 게스트 운영 체제, 데이터베이스 및 애플리케이션의 구성에 대한 책임

ex. 인지 및 교육
– AWS: AWS 직원을 교육할 책임
– 고객: 자사 직원을 교육할 책임
고객고객 특정
(Customer Specific)
고객이 AWS 서비스 내에서 배포하는 애플리케이션에 따라 전적으로 고객의 책임인 제어 항목
ex. 고객이 특정 보안 환경 내에서 데이터를 라우팅하거나 영역을 지정해야 할 수 있는 서비스 및 통신 보호 또는 영역 보안

출처: AWS 공동 책임 모델

이렇듯 클라우드 보안은 어느 한쪽이 전적으로 책임질 수 없으며, 공급자와 사용자 모두의 노력이 합쳐져야 안전한 클라우드 환경을 만들 수 있습니다.

만약 AWS 계정 보안 사고가 발생했다면?

이제까지 클라우드 공동 책임 모델에 대해서 알아보았습니다. ‘AWS가 클라우드에 대한 보안을 책임져 줄 테니 나는 클라우드에서의 보안을 신경써야겠어’라고 생각하게 되셨나요?

하지만 사고는 늘 예기치 않게 찾아오는 법! 계정 보안 사고가 발생할 경우 어떻게 대처하고 AWS의 도움을 받을 수 있을까요? 😥

AWS는 신뢰 및 안전팀(abuse@amazonaws.com)을 통해 고객 지원을 하고 있습니다. 해외 기업인 AWS와의 소통이 걱정되신다면 국내 MSP를 이용하는 것도 한 가지 방법입니다.

현재 가비아는 AWS의 대표 국내 MSP로서 24시간 모니터링과 장애 대응 등 클라우드 매니지드 서비스를 제공하고 있습니다.

MSP란 무엇이고 어떤 서비스를 제공하는지 좀 더 자세히 알고 싶으시다면 [MSP란? 클라우드 도입 전 반드시 알아야 할 사실] 콘텐츠를 확인해 보세요!

만약, AWS 계정 보안 사고가 발생했을 경우 AWS의 MSP인 가비아에서는 다음과 같은 대응을 추천하고 있습니다.

AWS 계정 침해 사고 발생 시 대응 방안

  1. AWS 계정에 무단 활동이 있었는지 확인합니다.
  2. 계정 침해 사고가 의심될 경우, 즉시 AWS에 신고합니다.
  3. 승인되지 않은 활동을 삭제하거나 계정 정보를 변경하여 추가적인 보안 사고를 차단합니다.

더욱 자세한 내용은 가비아에서 제공하는 AWS 매뉴얼을 참고하시기 바랍니다. 침해 사고에서는 발 빠른 대처로 피해를 최대한 줄이는 것이 관건입니다. 물론 대처보다 중요한 것은 예방이겠죠? 😉

다음 편에서는 현재 조직에서 사용하고 있는 AWS 비밀번호가 과연 얼마나 안전할지 살피면서, 계정 탈취를 예방하는 AWS IAM 사용자 암호 정책에 대해서 알아보겠습니다!

가비아 AWS 서비스 상담문의

가비아 AWS 사이트 방문하기

Summary

공동 책임 모델이란?

공동 책임 모델(Shared Responsibility Model)은 AWS 같은 ‘클라우드 서비스 공급자’와 서비스를 제공 받는 ‘클라우드 사용자’가 IT 인프라에 대한 책임을 공유한다는 의미입니다. 흔히 책임 공유 모델이라 부르기도 합니다. 공동 책임 모델에 따르면 AWS가 안전한 클라우드 인프라를 제공하는 대신, AWS로부터 클라우드 서비스를 제공받는 고객도 보안 규정에 맞게 아키텍처를 설계하거나 O/S를 업데이트할 책임이 있습니다.

공동 책임 모델의 예시는 무엇인가요?

AWS로 예를 들자면 Amazon EC2 같은 서비스의 경우 모든 보안 구성 및 관리 작업을 고객이 수행하도록 요구합니다. 업데이트나 보안 패치와 같은 운영체제 관리, 애플리케이션 소프트웨어 관리, 유틸리티 관리, 방화벽 구성 관리 등 모든 부분이 고객의 책임입니다. 반면, Amazon S3 또는 DynamoDB와 같은 서비스의 경우 AWS에서 운영체제나 플랫폼 부분에 책임이 있습니다. 고객은 데이터 관리, 자산 분류, IAM 활용에 대한 책임이 있습니다.

공동 책임 모델에서 AWS의 책임은 무엇인가요?

AWS는 ‘클라우드의 보안’을 책임집니다. ‘클라우드의 보안(Security of the Cloud)’은 AWS 클라우드에서 제공하는 클라우드 인프라 자체의 보안을 의미합니다. 대표적으로 AWS의 글로벌 리전, 가용 영역, 엣지 로케이션에서 생기는 보안 문제는 AWS가 관리하고 책임집니다.

공동 책임 모델에서 고객의 책임은 무엇인가요?

고객은 ‘클라우드에서의 보안’을 책임집니다. ‘클라우드에서의 보안(Security In the Cloud)’은 고객이 선택한 클라우드 서비스에 따라 정해지는 영역이며 고객 책임하에 사용되는 서비스의 보안을 의미합니다. 대표적으로 애플리케이션 소프트웨어 보안, 운영 체제 업데이트를 통한 보안, 관리자 계정 관리 등을 고객이 책임집니다.

AWS 계정 침해 사고 발생 시 어떻게 대응해야 하나요?

만약, AWS 계정 보안 사고가 발생했을 경우 AWS의 대표 MSP인 가비아에서는 다음과 같은 대응을 추천하고 있습니다.
1. AWS 계정에 무단 활동이 있었는지 확인합니다.
2. 계정 침해 사고가 의심될 경우, 즉시 AWS에 신고합니다.
3. 승인되지 않은 활동을 삭제하거나 계정 정보를 변경하여 추가적인 보안 사고를 차단합니다.