CSA(Cloud Security Alliance)의 최신 보고서에 따르면 클라우드 컴퓨팅과 관련된 가장 큰 위험은 설정(configuration)과 인증(Authentication)에 관련된 문제다. 이전 보고서에서 시스템 취약성(vulnerabilities)과 멀웨어(malware)를 지적했던 것에 비하면 새로운 방향전환이라 할 만하다.
기업은 서버를 포함한 디지털 자산과 애플리케이션 그리고 모든 종류의 데이터들을 클라우드로 지속적으로 옮기고 있다. 클라우드는 운영성, 확장성, 접근및 관리 등에 있어서 많은 이점을 가지고 있다. 대부분의 경우에는 클라우드 시스템을 신뢰하고 호스팅하기에 충분하며 사용자는 이 이점을 누릴 수 있다. 그러나 다른 모든 기술과 마찬가지로 클라우드의 사용에도 위험이 있다. 이 문서는 인증과 설정관련 문제로 시작하는 11개의 중요 위협과 이들 위협에 대한 대응 방안을 담고 있다. 대응은 AWS를 기준으로 한다.
암호화 기술 구현 : AWS의 EBS, S3, SQS, SNS, Kinesis, Redshift, MQ 등 데이터를 다루는 주요 서비스들은 기본적으로 암호화 기능을 제공한다. 암호화는 default encryption과 SSE(Server side encryption)두 가지 타입이 있다. Default encryption은 암호화 설정을 체크하는 하면 활성화되며, 저장이 되는 시점에 암호화되고 읽는 시점에 복호화된다. SSE는 애플리케이션 혹은 서비스가 데이터를 암호화해서 쓰고 읽는 방식(AWS 서비스에 따라서 사용 할 수 있는 암호화 옵션에 차이가 있을 수 있다.)이다. 예를 들어 S3버킷에 SSE를 적용했다면 S3 객체를 업로드하거나 다운로드 할때 kms:Decrypt권한이 하다. 따라서 특정 애플리케이션(kms:Decrypt IAM 권한을 가진)만이 데이터를 읽고 쓸 수 있다.
중요 데이터에 대한 접근관리 : IAM을 이용해서 리소스별로(데이터베이스, 스토리지) 접근권한을 설정할 수 있다.
IAM Role을 이용 특정 애플리케이션, Lambda, 인스턴스, 컨테이너에서만 접근 할 수 있도록 한다.
AWS Access Key를 이용 데이터베이스 인증토큰을 생성해서 접근 하도록 한다. 데이터베이스에 대한 권한을 가진 사용자가 Access key를 관리하고 요청이 있을 때 인증토큰을 발급하면 될 것이다. 인증토큰은 15분간 유효하므로 안전하게 사용 할 수 있다. 아이디/패스워드, 사용자 자격 증명을 저장 할 필요가 없다.
보안 감사 : CloudTrail로 IAM의 생성, 삭제, 사용에 대한 로그를 모니터링 할 수 있다.
정보보호 가버넌스 : 업무계획을 수립할 때, 정보보호 활동도 함께 수행한다. 서비스가 다루는 정보들 중, 중요 정보와 비 중요 정보들을 가려내고 어떤 보호 조치를 취해야 할지를 결정한다. 개인정보, 신용정보, 의료정보, 위치정보 등이 중요 정보들이 될 것이다. 모든 중요 정보를 하나의 동일한 (높은)레벨로 관리를 하는 건 보안조직의 입장이다. 하지만 데이터는 사용 가능해야 하므로, 중요 정보도 몇 단계로 나눠서 적절한 수준으로 관리를 해야 한다. 즉 보안은 가용성, 기밀성, 무결성을 강조할 것이고, 서비스 및 개발 조직은 사용성을 강조 할 것이다. 균형을 맞춰야 한다.
클라우드 설정은 매우 복잡할 수 있으며, 동적으로 변경될 수 있다. 보통 사람의 손으로 수동으로 설정을 변경하는 과정에서 문제가 발생한다. 따라서 회사는 클라우드의 설정을 자동으로 적용 할 수 있는 시스템, 그리고 잘못된 구성을 지속적으로 스캔하고 실시간으로 문제를 해결 할 수 있는 방법/툴을 찾아서 도입해야 한다.
데이터 암호화 : 잘못된 설정으로 데이터가 누출되더라도 피해를 최소화 할 수 있다. 모든 중요데이터를 암호화 하자.
IaC : VPC, Routing Table, Internet Gateway, Security Group을 모두 코드화 한다. 코드화를 하면 사람의 실수를 줄일 수 있으며, 자동화 할 수 있다. 코드이므로 CICD 과정과 통합 할 수 있다. CloudFormation, Terraform 등을 사용 할 수 있다.
Incident Management System: 자원변경을 모니터링하고 변경내용을 관리 할 수 있는 시스템이 필요하다. Opsgenie를 이용한 인프라 이벤트 관리 시스템을 참고하자.
DevSecOps 활동을 한다. 보안을 민첩한 DevOps 사이클에 통합한다. 프로젝트 설계/분석 단계에서 보안이 참여하도록 한다. 개발/배포 단계에서는 CICD 프로세스에 보안정책이 시행되도록 한다. CICD에서는 빌드외에 유닛테스트, 통합테스트, 문서화를 자동화 할 건데, 소프트웨어 취약점 분석, 설정변경 리뷰 등을 통합한다. CICD 사이클과 함께 점진적으로 보안수준이 높아지도록 할 수 있다.
DevOps에 "모니터링/관제/사고관리/운영" 시스템이 포함될 거다. 이 시스템에 보안도 넣는다. 보안담당자와 운영자는 보안 활동을 위해서 필요한 절차/툴을 개발해야 한다. 보안 설정의 코드화 클라우드 인프라, 클라우드 자원 등에서 발생하는 보안 로그들의 수집/분석/이벤트 관리 할 수 있도록 한다.
Cloud Native에 맞는 보안 정책을 수립해야 한다. 온-프레미스 환경에서의 보안 정책을 클라우드 환경에 lift and shift 했다가는 DevOps 가 무너질 것이다. 공동 책임 모델을 개발하자. 공동책임모델은 (약간씩 이름이 다르긴 하지만) AWS, Azure, GCP 등에서 베스트 프랙티스를 찾을 수 있으니 참고해서 개발 할 수 있다.
어차피 어카운트 털리면 문제가 되는건 온-프레미스라고 다를 건 없다고 할 수 있겠는데, "자원의 컨트롤이 매우 쉽다는" 클라우드의 특성으로 빠르게 문제가 확산될 수 있는 차이가 있다. 예를 들어 온프레미스 환경이라고 하면, 서버 어카운트 하나 털었다고 해서 전체 서버의 권한을 획득하는 건 불가능에 가깝다. 하지만 AWS 루트 어카운트 털리면, 그걸로 끝이다. 모든 자원의 권한이 다 넘어 간다. 권한을 제한한 어카운트라고 마찬가지다, 온-프레미스와는 달리, 그 제한된 권한을 전적으로 (그것도 아주 쉽게) 행사 할 수 있기 때문에 훨씬 위험하다.
서비스 중단, 브랜드 가치 저하, 법적 책임 노출, 민감한 개인정보 유출로 이어질 수 있다.
컴퓨터 시스템, 네트워크, 모바일 장치, 백업 장치를 올바르게 구성하고 모니터링 하기 위한 보안 활동이 필요하다. 회사의 규모와 데이터에 맞는 보안팀을 구성한다. 직접 보안팀을 꾸릴 수 있는 환경이 아니라고 하더라도 매니지드 보안 서비스를 이용하고, 어느 정도의 경험과 권한을 가진 자가 보안환경을 컨트롤 하도록 한다.
회사 모바일 장비, 데스크탑 장치를 보호하기 위한 장치를 마련하고 직원들의 장치가 취약점에 노출되지 않도록 교육하고 모니터링 한다. 여력이 없다면 매니지드 솔류션을 이용한다.
클라우드와 온-프레미스에 있는 서버들을 정기적으로 감사한다. 보안설정을 코드화 하면 더 좋을 것이다.
최소권한 원칙을 적용한다. 귀찮다고 권한을 남발하지 않는다.
모든 자원에 대한 접근을 모니터링 한다. Audit Log를 남기는 것 만으로도 위협을 완화할 수 있다.
API(Application Programming Interfaces)와 UI(User Interface)는 외부에 직접적으로 노출되는 인터넷과의 경계에 위치한다. 모두가 자유롭게 접근 할 수 있기 때문에, 인증 및 액세스 제어, 암호화, 모니터링등 우발적이거나 악의적인 보안침해 시도를 방지하기 위한 설계가 필요하다.
API의 수명주기를 CICD에 통합한다. 코드와 함께 API 문서(swagger등으로 관리)를 함께 배포한다. 이 문서를 이용해서 협업개발자, 품질관리자, 보안담당자들이 API를 리뷰하고 테스트 하면서, API 리스크를 사전에 검토해볼 수 있다.
Amazon API Gateway와 통합하자. Amazon API Gateway는 IAM(엑세스제어), 모니터링(CloudWatch), WAF(Web Application Firewall), 엑세스 키 관리, CICD와의 통합, 초당 표준 속도 제한, 초당 버스트 속도 제한, L7에서의 위조요청, L3에서의 Floods 공격등 기본적인 보안장치들을 제공한다.
보안인식부족. 회사의 서비스와 서비스에서 다루는 정보에 대한 이해 없이 서비스를 사용하는 경우 그들의 정보를 제어 할 수 없다. 직원은 실수로 클라우드 서비스를 잘못 설정해서 사용 할 수 있는데, 이는 서비스와 데이터에 악영향을 미칠 수 있다. 실수가 아닌 고의로 설정을 악용 할 수 있다. 쾌적한 개발 환경을 만들기 위해서 고의로 보안정책을 무시하는 경우다. 회사에 피해를 주기 위한 목적은 아니지만 결과적으로 피해를 줄 수 있는 행위가 될 수 있다.
클라우드 가시성을 확보하기 위한 노력을 해야 한다. 일반적으로 사람과 프로세스, 정책, 기술과 관련된 포괄적인 솔류션을 만드는 것으로 시작한다.
클라우드 거버넌스, 사용 정책 및 시행에 대한 전사적 교육을 의무화 한다.
승인되지 않은 클라우드 서비스의 경우 클라우드 보안 설계자 또는 타사 위험 관리 부서에 검토하고 승인하는 과정을 거친다.
CASB(Cloud Access Security Broker) 또는 SDG(Software Defined Gateway)와 같은 솔류션에 투자하여 아웃 바운드 활동을 분석하고 클라우드 사용, 위험 사용자를 발견하고 이상을 식별 할 수 있도록 한다. CASB는 2013년 가트너가 정의한 기술로 클라우드 이용에 있어서 안전을 담보해주는 중개자 기능을 제공하는 새로운 보안 레이어를 의미한다. Visibility, Compliance, Data Security, Threat Protection 영역을 다루는 솔루션이다.
WAF에 투자하여 클라우드 서비스에 대한 모든 인바운드 연결을 분석하여 의심스러운 경향, 맬웨어, DDoS 위험을 확인한다.
모든 엔터프라이즈 클라우드 애플리케이션(기업 자원 계획, 기업 자원 관리 , 공급망 관리)를 모니터링하고 제어하도록 설계된 솔류션을 선택해서 의심스러운 행동을 완화한다.
제로 트러스트 모델을 구현한다. 제로 트러스트 모델은 네트워크의 안밖의 누구도 신뢰 할 수 없다고 가정한다. 즉, 조직의 내/외부를 막론하고 적절한 인증 절차 없이는 그 누구도 신뢰해서는 안되며, 시스템에 접속하고자 하는 자는 권한을 부여하기 전 신원확인 절차를 거쳐야한다.
DevSecOps 활동을 수행한다. 개발, 배포, 운영의 과정에 보안이 참여함으로써 가시성을 확보 할 수 있다. 전통적으로 보안은 개발과 이해 상충 관계로 설정했다. 개발과 보안이 따로노는 형국인데, 이런 환경에서 만들어진 오래된 보안 프랙티스는 DevOps 이니셔티브를 무용지물로 만들 수 있다. 보안을 DevOps 프레임워크에 통합하는 것으로 조직의 보안수준을 점진적으로 개선해 나갈 수 있다.
Contents
1. Data Breaches
1.1. 사업에 미치는 영향
1.2. 주요 권장 사항
1.3. 방안
2. 잘못된 설정과 제어
2.1. 사업에 미치는 영향
2.2. 주요 권장 사항
2.3. 방안
3. 클라우드 보안 아키텍처 및 전략 부족
3.1. 사업에 미치는 영향
3.2. 주요 권장 사항
3.3. 방안
4. 충분하지 않은 아이덴티티, 자격 증명, 액세스 키 관리
4.1. 사업에 미치는 영향
4.2. 주요 권장 사항
4.3. 방안
5. Account hijacking
5.1. 사업에 미치는 영향
5.2. 주요 권장 사항
5.3. 방안
6. 내부자 위협
6.1. 사업에 미치는 영향
6.2. 주요 권장 사항
6.3. 방안
7. 안전하지 않는 인터페이스와 API
7.1. 사업에 미치는 영향
7.2. 주요 권장 사항
7.3. 방안
8. Weak control Plane
8.1. 비지니스 영향
8.2. 주요 권장 사항
8.3. 방안
9. Metastructure and applistructure failures
9.1. 사업에 미치는 영향
9.2. 주요 권장 사항
9.3. 방안
10. 클라우드 자원 사용에 대한 제한적인 가시성
10.1. 사업에 미치는 영향
10.2. 주요 권장 사항
10.3. 방안
11. Abuse and nefarious use of cloud services
11.1. 주요 권장 사항
11.2. 방안
12. 정리
13. 참고
1. Data Breaches
1.1. 사업에 미치는 영향
1.2. 주요 권장 사항
1.3. 방안
2. 잘못된 설정과 제어
2.1. 사업에 미치는 영향
2.2. 주요 권장 사항
2.3. 방안
3. 클라우드 보안 아키텍처 및 전략 부족
3.1. 사업에 미치는 영향
3.2. 주요 권장 사항
3.3. 방안
4. 충분하지 않은 아이덴티티, 자격 증명, 액세스 키 관리
4.1. 사업에 미치는 영향
4.2. 주요 권장 사항
4.3. 방안
5. Account hijacking
5.1. 사업에 미치는 영향
5.2. 주요 권장 사항
5.3. 방안
6. 내부자 위협
6.1. 사업에 미치는 영향
6.2. 주요 권장 사항
6.3. 방안
7. 안전하지 않는 인터페이스와 API
7.1. 사업에 미치는 영향
7.2. 주요 권장 사항
7.3. 방안
8. Weak control Plane
8.1. 비지니스 영향
8.2. 주요 권장 사항
8.3. 방안
9. Metastructure and applistructure failures
9.1. 사업에 미치는 영향
9.2. 주요 권장 사항
9.3. 방안
10. 클라우드 자원 사용에 대한 제한적인 가시성
10.1. 사업에 미치는 영향
10.2. 주요 권장 사항
10.3. 방안
11. Abuse and nefarious use of cloud services
11.1. 주요 권장 사항
11.2. 방안
12. 정리
13. 참고
Recent Posts
Archive Posts
Tags