본문 바로가기

[+] Security/[-] ETC

클라우드 보안과 디지털 포렌식

요즘은 바야흐로 스마트시대라고 불리우는 시대이다. 제4의 혁명이라는 말이 나올 정도로 스마트기기가 개발/보급화 되면서 사람들의 삶의 방식과 질은 그 수준이 이전과는 많이 달라졌다. 이러한 스마트시대에 주목받는 기술이 있다. 대표적으로 클라우드 서비스와 빅데이터 기술이 주목받는 기술인데, 클라우드는 벌써 많이 보급되어 사용되고 있으며 빅데이터 또한 마찬가지이다. 하지만 일반인들은 아직 그 효과를 피부로 느끼지 못하여 잘 모르는 것 뿐이다. 이미 세계의 선진국들은 클라우드를 국가 발전 기술로 채택하여 그 발전방향을 논의하고 있는 중이며 일부 나라는 벌써 그 작업에 착수했다(미국의 경우 클라우드 컴퓨팅 환경에 대한 보안인증제도(FedRAMP)가 생김) 우리나라 또한 작년(2011년)에 국가적인 차원에서 클라우드 서비스 표준화를 논의하는 회의가 열렸고 현재 막바지에 달한 것으로 알고 있다. 빅데이터도 현재 클라우드 서비스와 같이 주목받는 기술로 그 근간은 분산 컴퓨팅에 있으며 빅데이터로 인해 여러 상황의 예측, 서비스의 질 향상 등 이로운 효과가 많아 국가발전에 중요한 역할을 할 것으로 대부분의 전문가들은 생각하고 있다. 아직까지는 민간에서 빅데이터를 주도 하고 있고 국가에서도 빅데이터를 중요하게 보고는 있지만 아직 도움은 눈에 보일 만큼 주지 못하고 있다.

사람의 삶을 풍요롭게 만드는 것에는 분명 나쁜점도 존재한다. 또 그 나쁜점을 이용하는 사람들도 존재하기 마련이다. 해당 글에서는 먼저 클라우드 서비스의 보안측면과 포렌식 관점에서의 클라우드 서비스는 어떤 것인지 살펴보도록 할 것이다. 일단 클라우드 서비스는 무엇이며 어떻게 서비스 되고 그 형태는 어떠한 것인지 간단하게 살펴보도록 하자.


1. 클라우드 서비스

클라우드 서비스는 우리가 일반적으로 사용하는 전기, 수도, 공공서비스 등의 자원을 사용하는 것과 같다고 생각하면 된다. 이는 미국의 존 맥카시가 제안한 개념으로 네트워크로 연결 된 컴퓨팅 환경에서 여러 컴퓨터 자원들을 현실에서 사용하는 전기, 수도 등의 자원처럼 사용하는 것을 말한다. 

대부분의 사람들은 클라우드에 대해 얼핏 들어 클라우드 서비스와 클라우드 컴퓨팅에 대해 혼동을 하곤 한다. 여기서 흔히들 말하는 클라우드 컴퓨팅과 클라우드 서비스에 대해 정확히 짚고 다음 설명을 하도록 하겠다.


 - 클라우드 컴퓨팅 : 가상화와 분산 기술을 이용해 인터넷을 통해 사용자에게 IT 자원을 빌려주고 그 자원을 사용한 만큼 돈을 지불 받는 컴퓨팅 환경


 - 클라우드 서비스 : 사용자에게 클라우드 컴퓨팅 환경을 제공하는 주문형 IT 서비스


이제 여기서 한가지 의문점이 들 것이다. 클라우드 서비스의 설명을 듣자하니 우리가 일반적으로 사용하는 웹하드가 생각 날 것이다. 얼핏보면 웹하드와 비슷한점이 많다. 하지만 이는 큰 착각이다. 웹하드와의 큰 차이는 분명히 존재한다. 클라우드 서비스 중 스토리지 제공 서비스와 웹하드를 혼동 할 수 있는데 웹하드와 스토리지 서비스의 차이는 다음과 같다.


 

웹하드 

스토리지 제공 서비스 

자원의 폐기 

사용자 

 서비스 제공자

파일 보관 상태

단순 저장 

여러가지 단말기와의 동기화 

파일 가공 주체 

사용자 PC

 서비스 제공 서버 

[표 1 - 클라우드와 기존 서비스의 차이]


위 차이점 말고도 몇가지 더 있지만 생략하도록 하겠다. 큰 차이점은 바로 위 차이점들이기 때문이다.


1.1 클라우드 서비스 모델

클라우드의 서비스 모델에는 크게 3가지가 있다. 간단하게 설명하고 넘어가도록 하겠다. 다음은 3가지 모델을 그림으로 표현 해 본 것이다.


[그림 1 - 클라우드 서비스 모델]


 - IaaS(Infrastructure as a Service) : 해당 모델은 사용자에게 서버, 스토리지등의 하드웨어 자원만을 제공하는 서비스이다. 스토리지 제공 서비스 형태이며 우리가 잘 알고 있는 N드라이브나 아이클라우드가 이 모델에 속한다.


 - PaaS(Platform as a Service) : 해당 모델은 사용자에게 서버, 스토리지등의 하드웨어 자원뿐만이 아니라 응용 소프트웨어 개발에 필요한 여러 플랫폼도 같이 제공한다. 해당 모델은 응용프로그램 개발 환경 제공 서비스 형태이며 구글의 App Engine이 대표적인 예이다.


 - SaaS(Software as a Service) : 해당 모델은 IaaS, PaaS를 포함한 것에 응용 S/W를 제공하는 모델로 제공 되는 소프트웨어는 당연히 사용자가 원하는 소프트웨어이다. 대표적으로 구글 Docs를 예로 들 수 있다.


클라우드 서비스는 모델뿐만이 아닌 사용자가 사용하려는 목적에 따라 서비스 성격을 다음과 같이 나눌 수 있다.


 - Public(공공용) : 해당 성격은 불특정 다수로 서비스를 하는 사용자에게 적합한 서비스 성격이다.


 - Private(사설용) : 해당 성격은 서비스를 제공하고자 하는 사람에게만 제공하려는 사용자에게 적합한 서비스 성격이다.


 - Hybrid(혼합용) : 해당 성격은 Public+Private 성격의 서비스로 공개를 하되 일부 서비스는 공개하고 싶지 않을 때 적합한 서비스 성격이다.



1.2 클라우드 서비스 구조

클라우드 기술을 언론등에서 접한 사람들은 클라우드 기술이 가상화가 기반이라는 것을 알고 있을 것이다. 정확히 클라우드 컴퓨팅에서 사용되는 클라우드 서버가 어떻게 이루어져 있는지 간단히 알아보자.


[그림 2 - 일반 서버와 클라우드 서버의 구조적 차이]


클라우드 컴퓨팅 환경은 [그림 2]의 클라우드 서버들이 모여 있는 하나의 환경을 지칭하는 것이다. 여러개의 클라우드 서버가 연결되어 클라우드 컴퓨팅 환경을 구성 할 때에는 하이퍼 바이저가 서버마다 존재하는 것이 아니라 여러 서버들의 하드웨어 자원들을 통합적으로 관리하는 위치에 존재하게 된다. 그 후 그 위에 Host/Guest OS가 설치 되고 그 윗 단에 응용 프로그램이 존재하게 되는 것이다. 클라우드 컴퓨팅 환경은 그 환경으로 인해 다음과 같은 특징을 가지게 된다.


 - 정보 위탁 특징 : 사용자의 정보가 클라우드 서버에 위치하게 된다. 


 - 자원 공유 특징 : 서로 다른 사용자간에는 자원을 독립적으로 사용하는 것처럼 느껴지지만 물리적 자원은 결국 공유한다.


 - 단말 다양성 : 다양한 단말로부터 접속이 가능하다.



2. 보안측면에서의 클라우드

위 3가지 특징으로 인해 보안 위협이 발생하게 되는데 여러 기관이나 단체에서 클라우드 위협에 대해 정리 해 놓은 문건들이 존재한다. NIST, CSA가 대표적인데 자세한 사항은 해당 문서들을 참고하기 바라고 핵심적인 위협만 해당 글에서 언급하도록 하겠다.


 - 가상화 기반의 취약점 : 이전부터 가상화 기술은 IT 업계에서 계속 사용해 왔었다. 이러한 역사가 말 해주듯 가상화에 대한 취약점 또한 어느정도 발표가 되어 있는것이 현실이다. 가상화 기술에 취약점이 발견되었고 공격을 당한다면 공격자는 특정 Guest OS에서 Host OS로 넘어갈 수 있을 것이고 Host OS에서 동일 하드웨어 자원을 사용하는 다른 Guest OS를 침범 할 수 있을 것이다. 이러한 경우 동일 하드웨어 자원을 사용하는 다른 사용자들은 모두 침해를 받는 위협에 놓이게 된다.


 - 정보 위탁의 위험 : 정보 위탁 특징에서도 봤듯이 정보가 모두 클라우드 서버에 위치하게 된다. 이는 서비스 제공자에게 정보를 모두 주는 형국이다. 서비스를 제공하는 측의 내부자가 정보를 유출 할 수도 있고 악의적인 사용자가 서비스 제공자측을 공격해 클라우드 서비스의 정보를 탈취해 갈수도 있다.


 - 동일한 물리적 자원 공유의 위험 : 논리적으로 자원을 독립적으로 사용한다고는 하지만 하드웨어 자원은 그렇지가 못하다. 그러므로 하드웨어 자원에 문제가 생기면 해당 하드웨어 자원을 사용하는 여러 서비스 사용자들의 서비스 가용성을 보장하지 못한다.


 - 다양한 단말기를 이용한 정보 유출 : 요즘은 스마트폰, 태블릿 PC등이 보급화 되어 언제 어디서든지 클라우드 서비스가 제공하는 서비스를 이용 할 수 있다. 하지만 휴대성이 큰 만큼 분실성 또한 휴대성 못지 않게 크다. 만약 휴대용 단말기를 분실 할 경우 악의적인 사용자가 해당 단말기를 습득하여 클라우드 서비스에 접속하여 정보를 유출 할 수 있게 된다. 또 이러한 다양한 단말기들은 대부분 무선통신이다. MITM(Man In The Middle), 스니핑(Sniffing), 도청 등의 공격을 받아 사용자도 모르게 정보가 유출 될 수도 있다.


 - 법 관련 문제 : 국외의 클라우드 서버를 사용 할 시 어떻게 법을 적용해야 하는지 난감해 지며, 클라우드 컴퓨팅 환경에서 사용자의 가상 환경은 동적으로 배치되기 때문에 보안법규 적용 검토를 위한 감사 증적 문제가 발생 할 수 있다. 또 아직까지는 클라우드 서비스를 위한 보안감사 항목과 제도가 존재하지 않는다.


이러한 위협들을 인지하고 여러 보안업체나 IT 업체들은 클라우드 서비스와 컴퓨팅 환경에 대한 보안 제품을 개발/판매하고 있다.

대표적으로 우리나라의 파수닷컴은 모바일 환경에서 DRM 기능을 지원하는 "파수 모바일 게이트웨이" 솔루션을 개발해 판매하고 있다. 또 색다르게 클라우드를 이용한 보안시스템을 지원하고 있는 업체들도 존재하는데 안랩(구 안철수연구소)에서 ACCESS(AhnLab Cloud Computing E_Security Service)라는 보안서비스 전략을 발표하였다. 이 전략은 클라우드 컴퓨팅 환경을 이용 해 각종 보안 장비로부터 악성코드를 전송 받아 분석하는 플랫폼을 구축 해 실시간 종합 대응 체계를 지원하는 전략이다.

여러 클라우드 보안을 위한 솔루션이 나왔다고는 하지만 아직까지 그 보안 위협이 완전히 사라진 것은 아니다.(모든 보안이 마찬가지이지만) 보안에서 제일 중요한 것은 사람이다. 결국 클라우드도 서비스를 제공하는 제공자나 서비스를 이용하는 사용자가 제일 중요 한 것이다.


3. 디지털 포렌식측면에서의 클라우드

보안위협이 있다면 당연히 디지털 포렌식 측면도 생각을 해야 한다. 보안사고가 발생하였다면 침해대응부터 포렌식까지 꼭 필요하기 때문이다. 그런데 클라우드 포렌식은 지금까지의 포렌식과는 그 형태가 다르다. 일반 디지털 포렌식은 증거를 수집하는 물리적인 위치나 논리적인 위치가 그다지 많지 않았다. 하지만 클라우드 포렌식에서는 증거를 얻는 그 위치가 물리적/논리적으로 다양하다. 또 사건 발생 시 클라우드 환경으로부터 포렌식에 필요한 데이터를 얻기가 어렵다. 즉, 기존의 덤프파일처럼 bit-by-bit 형식으로 데이터를 얻을 수 없다. 다만 클라우드 서비스 제공자 측에서 제공하는 기능들 중 스냅샷 기능을 이용 해 어느정도의 데이터는 얻을 수 있다. 또 앞서 물리적/논리적 위치가 다양하다고 하였었다. 만약 국내 업체의 클라우드 서버가 침해를 당하였는데 침해당한 클라우드 서버의 관할권이 다른 나라에 있다면 어떻게 해야 할까? 또 클라우드 환경의 로그와 클라이언트 환경의 로그를 서로 비교하였더니 시간이 일치하지 않는다면, 과연 이 데이터는 증거로 인정 받을 수 있을까? 이렇듯 위치가 다양함에 따라 따져봐야 할 점이 많아지면서 증거를 위한 데이터 수집과 증거로서의 인증능력이 까다로워진다.

현재로서 최선의 방법은 클라우드 환경에서 제공하는 스냅샷 기능을 이용한 데이터 수집과 클라우드 서비스를 사용한 클라이언트 시스템의 분석이다. 특히 클라이언트 분석 시 클라우드는 대부분 브라우저로 이용하기 때문에 브라우저를 중심으로 분석을 수행해야 한다. 다음은 클라우드 서비스 모델에 따른 포렌식 특징이다.


 - IaaS : 다른 서비스들에 비해 가장 많은 데이터를 얻을 수 있는 서비스 모델이다. 서비스 사용자가 임대받은 가상 머신의 보안을 담당하기 때문에 포렌식 준비와 수행을 할 수가 있다. 또 스냅샷 기능을 이용 해 메모리를 포함한 여러 데이터를 얻을 수 있다는 장점도 존재한다. 또 해당 모델의 VMM(Virtual Machine Monitor)의 정보를 포렌식에 활용 할 수도 있다. VMM은 가상머신 자원에 대한 모든 접근 권한을 가지고 있는데 고객측면에서는 보안위협으로 다가올 수 있지만 포렌식적으로는 아주 유용한 기능이다. 비활성/활성 분석이 가능한 서비스 모델로 가장 일반적인 포렌식과 비슷한 분석을 할 수 있는 서비스 모델이다.


 - PaaS : 해당 서비스 모델은 사용자가 환경을 제어하는 권한을 가지지 못한다. 그러나 사용자가 개발한 프로그램이 시스템에 종속적인 데이터베이스나 스토리지와 상호연동이 가능하도록 하는 권한은 사용자가 가지고 있다. 그러므로 해당 시스템에서 제공되는 개발 플랫폼의 API를 이용 해 시스템의 로그나 정보를 얻을 수 있다.


 - SaaS : 해당 서비스 모델은 다른 서비스 모델들에 비해 데이터가 가장 적게 수집되는 서비스 모델이다. 해당 서비스 모델이 분석 대상이라면 해당 서비스 모델 분석 보다는 이 서비스 모델을 사용한 클라이언트 시스템을 분석하는 것이 가장 좋다.


아무리 스냅샷 기능이 좋든, 기대 이상으로 포렌식적 데이터를 수집한다 하여도 분석에 있어 그 데이터는 충분하지는 못할 수 있다. 포렌식을 위해 클라우드의 환경을 고칠 수도 없다. 이러한 이유로 가장 좋은 클라우트 포렌식 발전방향은 클라이언트 시스템 분석이다. 해당 클라이언트가 클라우드 서비스를 사용 함으로써 클라이언트 시스템에 어떠한 데이터가 남는지 알아내고 분석하는 것, 이게 제일 현재로서는 현실적인 발전 방향이다. 또 법적인 문제도 여러가지 면으로 해결되어야 할 것이다.


'[+] Security > [-] ETC' 카테고리의 다른 글

난 이래서 크롬이 좋다!  (0) 2011.11.14
[TIP] 파이어폭스 사용시 주의사항  (0) 2011.10.08
엄청 쉬운 문제.  (7) 2009.10.27
BackTrack4 대략적인 모습.  (2) 2009.02.19