클라우드 SW 사례 연구 - 보안
클라우드 서비스가 전통적인 소프트웨어 시스템을 대체하면서 가장 크게 이슈화된 것이 보안이다. 전통적인 소프트웨어 시스템은 구현 초기부터 보안에 대한 분석과 설계를 함께 하게 되는데 클라우드는 네트워크 자체가 외부에 오픈되어 있는 경우도 많고 가상화나 공유되는 부분도 많아 보안 문제가 항상 노출되어 있다. 하지만 클라우드 서비스도 소프트웨어 시스템의 일종이기 때문에 기존 보안 기술을 적절히 사용한다면 큰 보안 문제는 나타나지 않을 것으로 보인다. 이번 회에서는 클라우드 서비스의 보안에 대해 살펴보기로 한다.
사례 전 확인 사항
클라우드(Cloud) 보안 개념
클라우드 서비스는 시스템 내부의 자원을 사용하지 않고 외부의 자원을 일부나 전부를 사용하는 경우가 많아 보안에 대한 대비가 반드시 필요하다. 클라우드 보안 문제도 전통적인 소프트웨어 시스템의 보안 문제와 유사한 데이터 유출이나 안정성, 네트워크 문제, 그리고 가용성에 따른 서비스 문제 등이 있다(표1).
<표1> 클라우드 서비스의 보안 위협
출처: 보안공학연구논문지 - 클라우드 보안 위협요소와 기술 동향 분석
클라우드 서비스에서 보안 문제가 더 크게 대두되는 문제는 그림1에서 보는 것처럼 전통적인 소프트웨어 시스템에서는 각 시스템 단위로 보안 문제를 준비하면 되기 때문에 자체적인 보안 가이드에 따라 보안 준비가 가능했지만 클라우드는 외부 네트워크로 연결되어 서비스가 되기 때문에 보안이 외부에 직접적으로 노출되어 있기 때문이다.
<그림1> 전통적인 소프트웨어 시스템과 클라우드 서비스의 비교
출처: 미래창조과학부
클라우드 서비스의 보안은 두가지 관점이 공존한다. 다양한 기업의 정보나 네트워크가 몰려 있기 때문에 보안 사고가 나타나면 여파가 굉장히 크다는 것과 기업이 자체적인 보안보다 체계적인 관리를 하기 때문에 더 안전하다는 관점도 있다. 특히 인프라(IaaS), 플랫폼(PaaS), 그리고 소프트웨어(SaaS)에 따라 보안이 구성되기 때문에 서비스 특성에 따른 맞춤형 보안도 장점 중 하나다. 또 다양한 시스템을 효율적인 구성으로 서비스하는 클라우드는 자원을 빌려 쓰는 개념이다 보니 비용적 측면이나 운영적 측면에서도 매우 효과적이고 보안 사고가 날 경우에도 클라우드 업체와 이용 업체가 책임을 나눌 수 있다는 점에서도 보안 부담이 줄어드는 것도 사실이다.
클라우드 보안 요소
클라우드 보안은 보안 위협 종류와 서비스 방식에 따라 다양한 보안 대처 방법이 필요하기 때문에 이미 몇 년 전부터 보안 위협에 대비하기 위해 클라우드 발전법이 시행되었고 보안 가이드라인이 제정된 상태다. 해외에는 미국의 페드램프(FedRAMP), 싱가포르의 MTCS, 일본의 ASP.SaaS와 같은 클라우드 보안 인증 제도를 운영하고 있다. 우리나라의 경우 한국인터넷진흥원(KISA; Korea Internet & Security Agency)에서 클라우드 서비스를 위한 보안 가이드를 제시하고 있다(표2).
<표2> KISA의 클라우드를 위한 보안 가이드
출처: 한국인터넷진흥원, 보안공학연구논문지 - 클라우드 보안 위협요소와 기술 동향 분석
표2를 살펴보면 전통적인 소프트웨어 시스템은 시스템과 네트워크, 데이터베이스와 같은 스토리지, 그리고 애플리케이션으로 구성되는데 클라우드 서비스는 전통적인 소프트웨어 시스템을 일부 또는 전체를 대체하는 서비스이기 때문에 전통적인 소프트웨어 시스템의 보안 기준과 크게 차이가 나지 않는 것이 특징이다(표3).
<표3> 클라우드 서비스의 보안 기술
출처: 보안공학연구논문지 - 클라우드 보안 위협요소와 기술 동향 분석
클라우드가 보안에 취약한 가장 큰 이유는 방화벽이나 네트워크 연결 등으로 제한할 수 있는 전통적인 소프트웨어 시스템에 비해 원격 접속을 허용해야 하는 속성과 클라우드 사용에 필요한 소프트웨어를 설치해야 하기 때문이다. 그리고 클라우드 서비스 업체는 보안 문제가 발생해도 외부에 공개하지 않고 처리하는 경우도 많기 때문에 보안 이슈에 대한 정보 공유도 아쉬운 것이 사실이다.
이러한 문제를 해결하기 위해서는 기존 소프트웨어 시스템의 보안 가이드나 보안 기술들을 적용해 보안 위협을 확인해야 하고 클라우드 서비스에서 독특하게 사용되는 가상화 기반 환경에 대해 집중적인 보안 위협 확인이 필요하다(그림2).
<그림2> 클라우드 가상화 기반의 보안 취약점
출처: Tech M
사례 연구
AWS(Amazon Web Services)
출처: https://www.slideshare.net/awskorea/intro-of-aws-cloud-usecase-and-strategy-61567540
AWS는 한 대의 독립된 컴퓨터를 제공하는 EC2, 파일 서버를 제공하는 S3, 데이터베이스를 제공하는 RDS 등의 서비스를 제공한다. 이러한 서비스를 조합해서 웹서비스(Web Service)를 만들게 된다(그림3). 빌딩 블록을 조립하듯이 비즈니스 요구사항에 따라 40여 개 이상의 서비스를 조립하여 유연하게 활용이 가능하다.
<그림3> AWS에서 제공하는 서비스
출처: Amazon
AWS는 세가지 방법으로 사용이 가능한데 웹서비스를 이용하는 AMC(AWS Management Console), 명령어 입력 방식인 CLI(Command Line Interface), 프로그래밍 언어 단위로 개발 API를 제공하는 SDK(Software Development Kit)가 있다. 명령어에 익숙하지 않다면 AMC를 우선적으로 사용하면 된다.
탄력적인 웹 트래픽 관리를 위한 AWS 사용은 그림4와 같이 구성할 수 있는데 로드밸런싱이나 오토스케일링을 통해 서버 부하 문제를 줄일 수 있고 확장성이 용이하다. 이러한 구성을 통해 웹사이트 리뉴얼이 용이하고 트래픽에 따라 최적의 성능이 발휘될 수 있어 AWS 구성에 따른 비용 절감 효과가 뛰어나다고 소개하고 있다.
<그림4> 웹 프래픽 관리를 위한 AWS 구성 예
출처: Amazon
그림5는 최근에 많이 적용되고 있는 빅데이터 관련 구성이다. 빅데이터 분석을 위해 수집과 저장, 분석 모듈에 필요한 AWS 컴포넌트를 사용하고 있다. 빅데이터 분석을 위해 자체적인 모듈이 사용된 경우 그림5에서 해당 모듈을 추가 적용해서 사용하면 된다.
<그림5> 빅데이터 분석을 위한 AWS 구성 예
출처: Amazon
그림6은 그림5의 빅데이터 분석을 위한 AWS 구성을 게임 빅데이터 분석에 적용한 예다. 게임 로그 데이터를 EC2와 S3를 거쳐 하둡(Hadoop)으로 구성된 EMR에서 분석하고 수분 내에 데이터 분석이 완료되도록 구성되어 있다.
<그림6> AWS의 빅데이터 분석을 게임 빅데이터 분석에 적용한 예
출처: Amazon
아마존에서는 기존 소프트웨어 시스템에서 클라우드로 전환하여 서비스하는 형태가 아닌 클라우드에서 신규 서비스를 직접 개발하는 전략을 수립하도록 권장하고 있는데 빠르고 저렴한 비용으로 개발과 배포가 가능하도록 서비스를 구성하고 있다. 이러한 서비스 제공은 다른 클라우드 서비스 업체에서도 제공하는 형태지만 특정 서비스 형태 뿐만 아니라 전체적인 클라우드 서비스를 한 곳에서 모두 제공한다는 점에서 장점이 있다.
또 아마존에서는 기존 소프트웨어 시스템에서 전환하거나 신규 서비스를 제공하더라도 유용한 기능만 우선 적용하도록 권장하고 있는데 자체적으로 구성해도 큰 무리가 없는 시스템까지 모두 클라우드로 전환할 필요는 없다는 이유 때문이다. 클라우드 서비스는 서비스 단위의 모듈 형태로 제공되기 때문에 전체 서비스를 도입할 필요는 없어 기존 인프라나 자체적으로 구성이 가능한 서비스는 그대로 두고 클라우드와 역할을 분리하여 구성하는 것이 좋다(그림7).
<그림7> 하이브리드 클라우드 서비스의 예
출처: Amazon
기대 효과와 결론
클라우드 보안의 경우 기존 서비스와 크게 차이를 보이지 않기 때문에 가급적 기존 보안 가이드나 보안 기술을 이용해 보안 구성을 하는 것이 일차적인 목표다. 이렇게 구성된 보안 기준에 클라우드를 적용해서 나타나는 보안 요소에 대해서는 적용하는 클라우드 서비스 업체가 자세히 상의하는 것이 가장 현명한 방법이다. 클라우드는 기존에 만들어진 형태에 새롭게 만드는 것이 아니고 내가 가진 서비스와 조립을 하는 형태이기 때문이다. 조립에서 나타날 수 있는 보안 요소에 대해 철저히 확인한다면 클라우드 적용으로 인해 발생할 수 있는 보안 문제를 줄일 수 있을 것이다.
Keyword: software engineering, cloud service, paas, saas, iaas, amazon web service, cloud software architecture, cloud security