[Digital Forensic] 클라우드 보안과 디지털 포렌식

 

클라우드 보안


(1) 클라우드 서비스

  • 일반적으로 사용하는 전기, 수도, 공공서비스 등의 자원을 사용하는 것과 같음

  • 이는 미국의 존 맥카시가 제안한 개념

  • 네트워크로 연결된 컴퓨팅 환경에서 여러 컴퓨터 자원들을 현실에사 사용하는 전기, 수도 등의 자원처럼 사용하는 것

 

대부분의 사람들은 클라우드에 대해 얼핏 들어 클라우드 서비스와 클라우드 컴퓨티에 대해 혼동을 하곤 한다.

 

1) 클라우드 컴퓨팅

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

2) 클라우드 서비스

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

클라우드 서비스의 설명을 듣다 보면 우리가 일반적으로 사용하는 웹하드가 생각날 수 있다.

 

얼핏 보면 웹하드와 비슷한 점이 많지만, 웹하드와의 큰 차이는 분명히 존재한다.

 

클라우드 서비스 중 스토리지 제공 서비스와 웹하드를 혼동할 수 있는데 웹하드와 스토리지 서비의 차이는 다음 표와 같다.

 

 

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

  웹하드 스토리지 제공 서비스
자원의 폐기 사용자 서비스 제공자
파일 보관 상태 단순 저장 여러 가지 단말기와의 동기화
파일 가공 주체 사용자 PC 서비스 제공 서버

 

위 차이점 말고도 몇 가지가 더 있지만, 큰 차이점을 바로 위 차이점들이다.


1-1. 클라우드 서비스 모델

 

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

 

1) IaaS(Infrastructure as a Service)

  • 해당 모델은 사용자에게 서버, 스토리지 등의 하드웨어 자원 만을 제공하는 서비스

  • 스토리지 제공 서비스 형태

  • 우리가 잘 알고 있는 N드라이브나 i Cloud가 이 모델에 속함

 

2) PaaS(Platform as a Service)

  • 해당 모델은 사용자에게 서버, 스토리지 등의 하드웨어 자원 뿐만이 아니라 응용 소프트웨어 개발에 필요한 여러 플랫폼도 같이 제공

  • 해당 모델은 응용 프로그램 개발 환경 제공 서비스 형태

  • 구글의 App Engine이 대표적인 예

 

3) SaaS(Software as a Service)

  • 해당 모델은 IaaS, PaaS를 포함한 것에 응용 소프트웨어를 제공하는 모델

  • 제공되는 소프트웨어는 당연히 사용자가 원하는 소프트웨어

  • 대표적으로 구글 Docs가 있음

 

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

 

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

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

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


1-2. 클라우드 서비스 구조

 

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

 

클라우드 컴퓨팅 환경은 [그림 2]의 클라우드 서버들이 모여 있는 하나의 환경을 지칭하는 것이다.

 

여러 개의 클라우드 서버가 연결되어 클라우드 컴퓨팅 환경을 구성할 때에는 하이퍼 바이저가 서버마다 존재하는 것이 아니라 여러 서버들의 하드웨어 자원들을 통합적으로 관리하는 위치에 존재하게 된다.

 

그 후 그 위에 Host/Guest OS가 설치 되고 그 윗 단에 응용 프로그램이 존재하게 되는 것이다.

 

 

클라우드 컴퓨팅 환경은 그 환경으로 인해 다음과 같은 특징을 가지게 된다.

  • 정보 위탁 특징 : 사용자 정보가 클라우드 서버에 위치하게 됨

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

  • 단말 다양성 : 다양한 단말로부터 접속이 가능함


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

 

위 3가지 특징으로 인해 보안 위협이 발생하게 되는데, 여러 기관이나 단체에서 클라우드 위협에 대해 정리해 놓은 문건들이 존재한다.

 

 

다음 내용은 핵심적인 위협에 대한 내용이다.

 

1) 가상화 기반의 취약점

  • 이전부터 가상화 기술은 IT 업계에서 계속 사용해 왔었음

  • 이러한 역사가 말을 해주듯 가상화에 대한 취약점 또한 어느 정도 발표가 되어 있는 것이 현실

  • 가상화 기술에 취약점이 발견되었고 공격을 당한다면 공격자는 특정 Guest OS에서 Host OS로 넘어갈 수 있을 것이고, Host OS에서 동일 하드웨어 자원을 사용하는 다른 Guest OS를 침범할 수 있을 것

  • 이러한 경우 동일 하드웨어 자원을 사용하는 다른 사용자들은 모두 침해를 받는 위협에 놓이게 됨

 

2) 정보 위탁의 위험

  • 정보 위탁 특징에서도 봤듯이 정보가 모두 클라우드 서버에 위치하게 됨

  • 이는 서비스 제공자에게 정보를 모두 주는 형국을 뜻함

  • 서비스를 제공하는 측의 내부자가 정보를 유출할 수도 있고, 악의적인 사용자가 서비스 제공자 측을 공격해 클라우드 서비스의 정보를 탈취해 갈 수도 있음

 

3) 동일한 물리적 자원 공유의 위험

  • 논리적으로 자원을 독립적으로 사용한다고는 하지만 하드웨어 자원은 그렇지가 못함

  • 따라서 하드웨어 자원에 문제가 생기면 해당 하드웨어 자원을 사용하는 여러 서비스 사용자들의 서비스 가용성을 보장하지 못 함

 

4) 다양한 단말기를 이용한 정보 유출

  • 요즘은 스마트폰, 태블릿 PC 등이 보급화 되어 언제 어디서든지 클라우드 서비스가 제공하는 서비스를 이용할 수 있음

  • 하지만 휴대성이 큰 만큼 분실성 또한 휴대성 못지 않게 큼

  • 만약 휴대용 단말기를 분실할 경우 악의적인 사용자가 해당 단말기를 습득하여 클라우드 서비스에 접속하여 정보를 유출할 수 있게 됨

  • 또 이러한 다양한 단말기들은 대부분 무선 통신

  • MITM(Man In The Middle), 스니핑(Sniffing), 도청 등의 공격을 받아 사용자도 모르게 정보가 유출될 수 있음

 

5) 법 관련 문제

  • 국외의 클라우드 서버를 사용할 시 어떻게 법을 적용해야 하는지 난감해 짐

  • 클라우드 컴퓨팅 환경에서 사용자의 가상 환경은 동적으로 배치되기 때문에 보안 법규 적용 검토를 위한 감사 중적 문제가 발생할 수 있음

  • 또 아직까지는 클라우드 서비스를 위한 보안 감사 항목과 제도가 존재하지 않음

 

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

 

여러 클라우드 보안을 위한 솔루션이 나왔다고는 하지만 아직까지 그 보안 위협이 완전히 사라진 것은 아니다.

 

모든 보안에서 제일 중요한 것은 바로 사람이다.

 

결국 클라우드도 서비스를 제공하는 제공자나 서비스를 이용하는 사용자가 제일 중요한 것이다.


(3) 디지털 포렌식 관점에서의 클라우드

 

보안 위협이 있다면 당연히 디지털 포렌식 측면도 생각해야 한다.

 

보안 사고가 발생하였다면 침해대응부터 포렌식까지 꼭 필요하기 때문이다.

 

그런데 클라우드 포렌식은 지금까지의 포렌식과는 그 형태가 다르다.

 

일반 디지털 포렌식은 증거를 수집하는 물리적인 위치나 논리적인 위치가 그다지 많지 않았다.

 

하지만 클라우드 포렌식에서는 증거를 얻는 그 위치가 물리적 / 논리적으로 다양하며, 또 사건 발생 시 클라우드 환경으로부터 포렌식에 필요한 데이터를 얻기가 어렵다.

 

즉, 기존의 덤프 파일처럼 bit-by-bit 형식으로 데이터를 얻을 수 없다.

 

다만 클라우드 서비스 제공자 측에서 제공하는 기능들 중 스냅샷 기능을 이용해 어느 정도의 데이터는 얻을 수 있다.

 

 

만약 국내 업체의 클라우드 서버가 침해를 당하였는데 침해 당한 클라우드 서버의 관할권이 다른 나라에 있다면 어떻게 해야 할까?

 

또 클라우드 환경의 로그와 클라이언트 환경의 로그를 서로 비교하였더니 시간이 일치하지 않는다면, 과연 이 데이터는 증거로 인정 받을 수 있을까?

 

이렇듯 위치가 다양함에 따라 따져봐야 할 점이 많아지면서 증거를 위한 데이터 수집과 증거로서의 인증 능력이 까다로워진다.

 

 

현재로서의 최선의 방법은 클라우드 환경에서 제공하는 스냅샷 기능을 이용한 데이터 수집과 클라우드 서비스를 사용한 클라이언트 시스템의 분석이다.

 

특히 클라이언트 분석 시 클라우드는 대부분 브라우저로 이용하기 때문에 브라우저를 중심으로 분석을 수행해야 한다.

 

 

다음 내용은 클라우드 서비스 모델에 따른 포렌식 특징이다.

 

1) IaaS

  • 다른 서비스들에 비해 가장 많은 데이터를 얻을 수 있는 서비스 모델

  • 서비스 사용자가 임대 받은 가상 머신의 보안을 담당하기 때문에 포렌식 준비와 수행을 할 수가 있음

  • 또 스냅샷 기능을 이용해 메모리를 포함한 여러 데이터를 얻을 수 있다는 장점도 존재

  • 또 해당 모델의 VMM(Virtual Machine Monitor)의 정보를 포렌식에 활용 할 수도 있음

  • VMM은 가상머신 자원에 대한 모든 접근 권한을 가지고 있는데 고객 측면에서는 보안 위협으로 다가올 수 있지만 포렌식 관점에서는 아주 유용한 기능

  • 비활성 / 활성 분석이 가능한 서비스 모델로 가장 일반적인 포렌식과 비슷한 분석을 할 수 있는 서비스 모델

 

2) PaaS

  • 해당 서비스 모델은 사용자가 환경을 제어하는 권한을 가지지 못함

  • 그러나 사용자가 개발한 프로그램이 시스템에 종속적인 데이터베이스나 스토리지와 상호 연동이 가능하도록 하는 권한은 사용자가 가지고 있음

  • 그러므로 해당 시스템에서 제공되는 개발 플랫폼의 API를 이용해 시스템의 로그나 정보를 얻을 수 있음

 

3) SaaS

  • 해당 서비스 모델은 다른 서비스 모델들에 비해 데이터가 가장 적게 수집되는 서비스 모델

  • 해당 서비스 모델이 분석 대상이라면 해당 서비스 모델 분석보다는 이 서비스 모델을 사용한 클라이언트 시스템을 분석하는 것이 가장 효율적

아무리 스냅샷 기능이 좋아도, 기대 이상으로 포렌식 관점의 데이터를 수집한다 하여도 분석에 있어 그 데이터는 충분하지는 못할 수 있다.

 

포렌식을 위해서 클라우드의 환경을 고칠 수도 없으며, 이러한 이유로 가장 좋은 클라우드 포렌식 발전 방향은 클라이언트 시스템 분석이다.

 

해당 클라이언트가 클라우드 서비스를 사용함으로써 클라이언트 시스템에 어떠한 데이터가 남는지 알아내고 분석하는 것이 현재로서는 현실적인 발전 방향이다.

 

또 법적인 문제도 여러 가지 면으로 해결되어야 할 것이다.


# Reference

 

http://www.yes24.com/Product/Goods/8511539

+ Recent posts