Contents
- Introduction: Cloud computing growth
- Cloud Security Risks
- Cloud Security
- Multi-cloud Security
1. Introduction: Cloud computing growth
Cloud Computing 시장은 20%씩 연마다 성장하고 있습니다. 대부분의 Service providers은 PaaS, IaaS와 같은 Cloud service models에 의존하여 public cloud services를 운영하고 있습니다. Cloud Computing은 인프라 기술로 end user뿐만 아니라 기업 입장에서도 스토리지, 컴퓨팅 등에 많이 사용이 되고 있기 때문에 시장 규모는 꾸준히 성장할 것입니다.
Cloud Computing 시장이 커지고 있지만 대다수의 기업은 클라우드에서 데이터를 보호하지 않고 있습니다. 위 기사의 보안 연구에 따르면 조직의 40%가 클라우드 기반 데이터 침해를 경험하였습니다. 하지만 그럼에도 불구하고 여전히 클라우드에 저장하는 민감한 데이터의 절반이 암호화가 되어 있지 않아, 사이버 범죄의 우려가 큽니다. 즉, 실제로 보호가 전혀 이루어지고 있지 않습니다.
과연 클라우드가 perfect한 기술이라고 할 수 있을까요? Security Iseeues만 생각한다면 아직 challenges가 존재합니다. 어떤 Security가 있는지 공부하기 전, Cloud Computing를 간단히 설명하고 넘어가겠습니다.
1.1 Advantages and Disadvantages of Cloud Computing
Cloud Computing의 이점은 Flexiblity(Customization)가 가장 큰 요소입니다. 이 외에도 Reliability (Fault Tolerance), Maintenance, Cost-effective 등이 있습니다.
이와 반대로 단점은 Security, Privacy 가 있습니다.
- Vendor Lock-In: 특정 벤더에 지나치게 의존하게 되는 문제입니다.
- Network-Dependent: Network Bandwidth에 의존적이기 때문에, 네트워크 연결 상태에 따라 속도가 저하되거나 서비스가 중단될 위험이 있습니다.
- Migration:이는 앞서 언급한 Vendor Lock-In의 영향을 받아, Migration cost가 높게 발생하는 것을 의미합니다.
1.2 Cloud Service Model
- Software as a Service (SaaS): Software Application을 사용자가 비용을 지불하고 서비스 형태로 제공받는 모델입니다. 즉, 전체 소프트웨어 스택을 서비스 형태로 제공하는 방식입니다.
- Platform as a Service (PaaS): 컴퓨팅 플랫폼을 서비스 형태로 제공하며, 사용자(개발자)에게 애플리케이션 개발 및 실행 환경을 제공합니다. 사용자는 인프라를 직접 관리하지 않아도 됩니다. (e.g., Google App Engine)
- Infrastructure as a Service (IaaS): SaaS Provider에게 Raw Computing Resource (e.g., VM, Storage, Network...)에 대한 사용료를 받고 Infra를 제공합니다. (e.g., Amazone AWS)
- Function as a Service (FaaS): (Serverless Computing + Container)로 기능 단위 (Fuction-Level)로 비용을 청구하는 모델입니다. (e.g., AWS lambda, Naver Cloud Functions) 사용한 기능만큼만 비용을 청구하기 때문에 비용 절감이라는 큰 이점이 있습니다.
1.3 Cloud Deployment Model
- Public Cloud: On-demand Computing 및 IT 자원에 대한 오픈 마켓으로 상용 서비스 (Amazon AWS, Microsoft Azure..)
- Private Cloud: 사내 클라우드 환경 구축 (e.g., Meta Data Centers)
- Hybrid Cloud: Private Cloud + Public Cloud
- Multi Cloud: 여러 개의 Public Cloud Provider를 연동 / Reliability 향상을 위한 Design Choice
2. Security Risks
클라우드 환경에서 발생 가능한 위협이 여러 가지 있습니다.
- Abuse use of cloud computing
- 악용하여 불법적인 목적으로 사용 (e.g., DDoS, 암호화폐 채굴, 스팸 메일 전송)
- Insecure interfaces & APIs
- 안전하지 않은 API나 잘못 설정된 인증 및 권한 관리
- Malicious insiders
- 내부자가 자신의 권한을 악용해 탈취 또는 손상
- Shared technology issues (책임 공유 모델)
- 하이퍼바이저 취약점을 통해 다른 tenant의 데이터나 리소스 접근
- Data loss or leakage
- 저장하거나 전송 중에 데이터 손실 또는 유출
- Accout or service hijacking
- 사용자 계정 정보가 탈취되어, 공격자가 계정을 무단으로 사용 또는 서비스의 동작을 방해
전통적 시스템 보안은 온프레미스 환경에서 외부 침입자를 막고 사용자가 직접 관리하고 보호하는데 초점이 있습니다. 반면, 클라우드 환경에서는 여러 사용자가 공유하는 공간에서 자신의 데이터를 안전하게 보호하고, 공유 자원으로 인한 추가적인 보안 위협을 고려해야 합니다.
특히 위협들 중 Malicious insiders와 Shared technology issues는 인프라 자원을 공유해서 사용하기 때문에 Cloud-specific하게 발생할 수 있는 위협입니다.
2.1 Threat model of Cloud Computing
클라우드 환경에서 insider와 outsider로 나누어 위협을 분석하고, 각각이 시스템에 미칠 수 있는 영향을 살펴보겠습니다.
- Insider
- Client 측 내부자 / Cloud Provider 측 내부자 / Cloud provider itself (semi-honest or honest-but-curious)
- 내부에서 악의적으로 민감한 데이터 수집, 행동 분석, 정보 유출
- Outsider
- Intruders / Network Attackers --> 네트워크 패킷 snooping, tampering, probing, Launch DoS attack…
- 클라우드 시스템에 직접적으로 접근할 권한은 없지만, 네트워크를 통해 공격
--> target을 공격하기 위해, 어디에 있는지 파악 / 같은 물리적 머신에 공존하는 방법 / 표적에 대한 정보 수집하는 것과 같은 Challenges가 존재합니다.
위협요소:
- 클라우드 제공자의 신뢰 문제 (Honest-but-Curious Cloud) -> 클라우드 제공자 자체가 고객 데이터 열람 및 분석 가능성 존재
- 보안 작업이 성능과 비용에 영향을 줌 -> 추가 보안 조치는 리소스 비용 증가
- 리소스 의존성이 높은 클라이언트의 문제 -> 클라이언트 측에서 Local Training을 하면 많은 자원이 필요
클라우드 보안 위협은 클라우드 서비스의 구조적 특성에서 기인하여 내제적 한계가 존재합니다.
- Loss of control: 클라우드 사용자(Subscriber)는 데이터, 자원뿐만 아니라 보안 정책과 같은 접근 제어도 cloud provider에게 의존해야 하기 때문에 provider는 기밀성(confidentiality), 무결성(integrity), 가용성(availability)를 보장해야 합니다.
- Lack of trust (mechanism): 클라우드 제공자를 전적으로 신뢰할 수 없다는 점에서 사용자에게 불안 요소로 작용됩니다. (공정하게 배분이 되고 있는지, 무결성과 기밀성이 잘 갖춰지고 있는지에 대한 검증 부재 --> zero-trust architecture에 대한 motivation이 됨)
- Multi-tenancy: 여러 사용자가 동일한 물리적 서버(same physical infrastructure)를 공유하는 환경에서 데이터와 리소스가 서로 영향을 받을 위험이 있습니다. (share a pool of resources, isolated)
3. Cloud Security
- 데이터 유출 (스토리지 및 시스템 설정 오류 또는 취약점 활용)
- 데이터 보호 (KMS, Trusted Execution Environment)
- KMS (Key Management Service): 데이터 처리 단계를 제외한 전송 및 보관 과정에서 데이터를 암호화 / 하지만 Heartbleed와 같은 OpenSSL 취약점이 존재
- HSM (Hardware Secutiry Module): 물리적으로 분리된 하드웨어 장비 내에서 키를 안전하게 생성, 관리 및 저장 (E.g., 은행 결제 시스템, PKI 환경에서 Certification Authorities(CAs)..)
- 데이터 보호 (KMS, Trusted Execution Environment)
- 계정 탈취 및 손상 (부실한 계정 관리)
- 권한 관리 (IAM, MFA)
- IAM (Identity and Access Mangement): Confidentiality + Authentication => 누가 어느 자원을 이용하는지 정의하고 IAM 정책 수립을 통해 권한 설정 시 검증을 함
- MFA (Multi-Factor Authentication): OTP (One-Time Password), 추가 기기 등을 추가 인증 실시
- 권한 관리 (IAM, MFA)
- 자원 착취 또는 손상 (클라우드 인프라 취약점 활용)
- 인프라 보호 (하이퍼바이저 보안 기술, 컨테이너 보안 기술)
- 인프라 보안 (신뢰 실행 환경 기술): TCB와 TCB 외부를 구분하여 격리된 실행 환경을 보장 (기밀성 + 무결성)
- 하드웨어를 Root-of-Trust로 활용 (등장 초기에는 TPM을 활용했지만, 현재는 범용 프로세서의 기능으로 포함되어 있음)
- 인프라 보호 (하이퍼바이저 보안 기술, 컨테이너 보안 기술)
3.1 Cloud Service Model & Security
클라우드 서비스 생태계에서는 Client, Service Provider, Cloud Platform Provider가 각각의 Security Demand, Security Property, 그리고 직면할 Threat를 명확히 파악하고, 이에 따른 보안 대책을 수립해야 합니다.
4. Multi-cloud Secutiry
Multi-cloud 환경의 활용이 증가함에 따라 Vendor Lock-In 문제를 해소하기 위해 multi-cloud 적용이 가능해지고 있습니다. 2024년 기준 89%의 enterprise가 적용함으로써 cloud accounting, QoS, and fault tolerance 등 문제를 해결할 수 있습니다. 더 나아가 최근 vendor 간 완전한 상호 운용이 가능한 on-demand 기반의 sky computing이라는 패러다임까지 등장하였습니다.
Multi-cloud를 기반으로 다양한 Deployment model도 있습니다.
- Independent Cloud Deployment: 각각의 클라우드를 독립적으로 운영
- Workload Mobility Supporting Cloud Deployment: workload가 클라우드 플랫폼 간 이동이 가능. 예를 들어, 특정 서비스는 public cloud에서 실행하고, 데이터는 private cloud에서 관리
- Function Segregation Using Heterogeneous VPCs (Virtual Private Cloud): 기능별로 분리하고 통신을 관리. 각 VPC가다른 기능을 분리하여 보안을 강화
하지만 multi-cloud 환경에서의 취약점은 여전히 존재합니다. 그 예시 중 하나가 IAM (Identity and Access Management) 취약성입니다. IAM은 클라우드의 사용자 및 권한 관리를 담당하는 중요한 기능이지만 multi-cloud 환경에서는 다음과 같은 위험을 초래할 수 있습니다.
- 위험 전이 가능성
- 여러 클라우드 플랫폼 간 권한 설정이 잘못되면 하나의 클라우드에서 발생한 문제가 다른 클라우드로 전이될 수 있습니다.
- 예를 들어, Azure에서는 권한 악용인데 AWS에서는 사용자 권한으로 인식하여 다른 클라우드의 데이터까지 접근이 가능할 수 있습니다.
- 모니터링 도구 부족
- 보안 모니터링 도구가 모든 위협을 탐지하지는 못합니다. (AWS Security Hub, Microsoft Security Monitor의 mismatch)
- 보안 강화 전략
- 클라우드 간 권한 설정과 통신 방식을 철저하게 관리하기 위해 VPC간의 VPN 연결과 같은 보안 강화 기술이 필요합니다.
- 예를 들어, Azure와 AWS 사이에 VPC를 생성하고 Site-to-Site VPN을 통해 안전한 통신을 설정합니다.
'Study > Cloud Computing' 카테고리의 다른 글
Monitor and Manage Google Cloud Resources (6) | 2024.09.22 |
---|---|
[Cloud] 쿠버네티스 실습 (0) | 2024.05.13 |
[Cloud] 컨테이너 오케스트레이션과 쿠버네티스 (2) - 실습 (0) | 2024.05.02 |
[Cloud] 컨테이너 오케스트레이션과 쿠버네티스 (1) (0) | 2024.05.02 |
[Cloud] 마이크로서비스 간의 통신 (2) (0) | 2024.03.29 |