보안 제품에서 사용되는 용어를 살펴보는 시리즈를 시작합니다.  세 번째 게시글로 클라우드 진단에 대해서 알아봅니다.




최근 들어 사전 방역 및 빠른 대응을 위해 상당 수의 보안 제품에 추가되고 있는 클라우드 진단 기능에 대해서 살펴보도록 하겠습니다.


1. 클라우드 진단(Cloud Detectoin)이란?

1-1. 클라우드(Cloud)의 정의

클라우드 진단에 대해서 이야기하자면 최근에 이슈화되고 있는 클라우드 컴퓨팅 서비스를 먼저 설명해야할 듯 합니다. Cloud에 대한, 정확하게는 Cloud Computing에 대한 정의를 위키에서는 아래와 같이 정의합니다.

ㆍ클라우드 컴퓨팅(cloud computing)은 인터넷 기반(cloud)의 컴퓨팅(computing) 기술을 의미한다. 인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고 그때 그때 컴퓨터나 휴대폰 등에 불러와서 사용하는 웹에 기반한 소프트웨어 서비스이다.

조금 더 쉽게 설명하면 웹 상에서 다양한 프로그램과 서비스를 사용자가 사용할 수 있도록 구성된 시스템이라고 할 수 있습니다. 클라우드 컴퓨팅 시스템은 네트워크에만 연결되어 있으면 웹브라우저나 기타 다른 클라이언트를 통해 오피스나 다른 써드파티 프로그램을 사용할 수 있습니다. 프로그램이나 서비스 뿐만 아니라 각종 데이터와 미디어 파일들을 저장할 수 있는 저장 공간을 네트워크 내에 마련할 수 있습니다. 이러한 프로그램, 서비스, 저장 공간은 PC와 모바일 등 네트워크에 연결이 가능한 모든 기기에서 자유롭게 접근할 수 있습니다.

출처 : 위키백과


결국 클라우드 컴퓨팅의 핵심은 네트워크를 통해 외부에 위치한 서비스를 마치 로컬에서 사용하는 것처럼 사용한 다는 점이라 할 수 있습니다.

클라우드 진단도 결국 위와 같은 개념에서 출발합니다.


1-2. 클라우드 진단(Cloud Detection)의 정의

클라우드 진단도 클라우드 컴퓨팅의 핵심 개념을 통해 이해하면 쉽습니다.

보안 업체들이 사용하는 클라우드 기술은 보안 업체의 연구, 분석 서버와 다수의 사용자 시스템을 네트워크를 통하여 연결하여 정보를 실시간으로 주고 받게 하는 것이라 할 수 있습니다.

일반적인 클라우드 컴퓨팅과의 차이점은 클라우드 컴퓨팅에서는 외부 서비스가 특정 어플리케이션이나 저장 공간을 의미한다면, 클라우드 진단의 외부 서비스는 악성코드 진단을 위한 엔진과 DB를 의미한다는 점입니다. 

여기서 'DB'는 악성 정보가 담겨 있는 패턴 정보를 의미하고, '엔진'은 이 DB와 실제 파일 또는 파일 정보를 비교하는 모듈을 의미합니다. 쉽게 말해 진단에 필요한 대부분의 기능이 네트워크 상에 위치해 있는 것입니다. 즉 진단 DB와 진단 모듈이 로컬이 아닌 외부에 있다는 점이 클라우드 진단의 가장 큰 특징입니다.

전통적인 로컬 진단과 클라우드 진단은 검사 방식에서도 차이점이 있습니다. 로컬 진단 방식은 진단 엔진이 검사하려는 파일의 특정 부분(특정 코드)를 직접 읽어와서 로컬에 저장된 DB와 비교하여 검사합니다. 하지만 클라우드 진단에서는 검사하려는 파일 자체를 전송받는 것이 아니라, 검사하려는 파일에 대한 '특정 정보(DNA 파일)'를 받아와서 서버에 저장되어 있는 DB와 비교하여 검사를 합니다. 즉 검사하려는 파일을 직접 검사하느냐 그 파일에 대한 DNA 정보를 검사하느냐의 차이입니다.

로컬 진단과 클라우드 진단의 또 다른 차이점은 클라우드 진단은 거의 실시간으로 DB가 갱신된다는 점입니다. 전통적인 로컬 진단에서는 업데이트의 효율성을 위해 일정한 주기를 갖고 업데이트가 이루어집니다. 'DB의 생성'과 'DB 전파'까지 일정한 시간이 필요합니다. 하지만 클라우드 진단의 경우 로컬 시스템에 일일히 DB를 갱신할 필요가 없이 서버에 DB를 추가하기만 하면 되기 때문에 상대적으로 DB 업데이트 주기가 매우 짧습니다. 따라서 전통적인 진단 방식에 비해 클라우드 진단은 즉각적이고 빠른 대응이 가능해집니다.


간단하게 정리해보면 아래와 같습니다.

ㆍ클라우드 진단(Cloud Detection)은 네트워크 상으로 연결된 사용자와 보안 업체 서버간 정보가 실시간으로 공유되어, 이를 통하여 악성코드를 진단하는 것을 의미

클라우드 진단을 위한 일반적인 클라우드 시스템은 3단계로 구성되어 있습니다. 

1차 단계'전송' 단계로 클라우드 진단을 하기 위해 파일 정보를 전송받는 것을 의미합니다. 보안 업체의 클라우드 서버는 수 많은 클라이언트(사용자) PC들에서 검사하려는 파일들의 정보를 전송 받습니다. 여기서 파일 정보는 해쉬값을 비롯한 파일의 고유 정보(※ 안랩의 경우 이를 DNA로 부릅니다.)를 의미합니다. 

2차 단계'분석 및 비교' 단계로 수집된 파일 정보를 서버의 DB와 비교하며, 수집된 파일 샘플을 자동화 분석 시스템을 통하여 분석을 하여 악성 유무를 판단하게됩니다.

마지막 3차 단계'피드백' 단계로 분석값에 따라 해당 파일의 정상/악성 정보를 클라이언트에게 다시 보내어(피드백) 해당 파일을 처리(진단/치료)하게됩니다.

이와 별도로  '샘플 및 진단 정보' 등을 수집하기 위해 클라우드 시스템이 사용되기도 합니다. 이는 클라우드 DB를 작성하기 위한 것으로, 아직 DB가 없는 파일을 분석하기 위해 해당 파일의 정보를 수집하거나,파일 자체를 전송받게 됩니다. 안랩과 같은 일부 업체는 클라우드 DB에 없는 파일이 발견되면 사용자의 허락 하에 파일을 직접 전송받습니다. 이러한 수집된 파일을 자동화 시스템 내에서 분석, 빠른 대응을 시도합니다.


1-3. 클라우드 진단(Cloud Detection)의 분류

일괄적으로 클라우드 진단이라고 표현했지만 업체별로 클라우드 진단을 사용하는 방식이 상당히 다릅니다. 가장 흔한 것이 일반 로컬 진단과 유사한 시그니처 진단이고, 두 번째는 사용자들이 쌓아올린 평판 정보를 이용해서 악성 유무를 판단하게 하는 평판 시스템이 있습니다. 다소 응용된 것이지만 행동 기반 진단에서 일차로 프로세스의 악성 유무를 판단하게하는 기능으로도 동작하는 것을 세 번째 방식으로 볼 수 있습니다. 마지막으로 클라우드 방식을 이용한 실시간 업데이트가 있습니다.

유명 업체별로 클라우드 기술을 어떤 방식으로 이용하는지 아래 표에 간략하게 정리해보았습니다.
(※ 아래와 같이 분류한 것은 이해하기 쉽게 분류한 것으로, 각 구분별로 해당 기능들이 정확하게 구분되는 것은 아닙니다.) 

▶ 시그니처 진단
- 안철수 연구소(ASD), McAfee(Artemis), Panda, TrendMicro(Smart Protection Network)
  Kaspersky(KSN), ESET (Live Grid), COMODO(FLS) 등 대부분의 외국 제품들이 포함

▶ '평판' 시스템에 사용

- Symantec(Insight community), Kaspersky(KSN), COMODO(Threatcast), ZoneAlarm(SGA), AVAST 등

▶ 행동 기반 진단
- F-secure(Deep Guard), AVIRA(ProActiv), COMODO (CAMAS) 등

▶ 기타 (실시간 업데이트)
- Symantec, AVAST 등

(1) 클라우드 시그니처 진단


클라우드를 통한 "시그니처 진단"은 각 클라이언트들에게서 수집된 파일 정보를 서버에서 분석한 후, 악성 파일에 대한 시그니처 DB를 수립, 이를 다시 네트워크를 통해 실시간으로 클라이언트에 전송하여 악성코드를 진단하는 방식입니다. 따라서 시그니처 DB가 서버에 위치함으로 클라이어트 PC에는 따로 DB가 없어도 네트워크에만 연결되어 있다면 악성코드를 진단할 수 있습니다.

이러한 온라인 연결을 기반으로하는 진단 방식은 유명 업체 중에서는 McAfee에서 최초로 Artemis라는 기능 명칭을 통해 시도하였습니다. 이후 판다와 트렌드 마이크로, 국내의 안랩 등 굵직굵직한 업체들이 클라우드 진단 방식을 도입하게 됩니다. 

         맥아피의 아르테미스 동작 구조                             안랩 ASD의 동작 구조

위의 그림에서 표현된 것처럼 맥아피의 아르테미스는 여러 경로로 수집 또는 전송된 샘플에 대한 분석이 완료되지는 않았으나, 악성 의심 파일로 분류될 때(아직 정식 DB 파일이 생성 및 유포 안된 상태), 클라우드 기술을 통해 맥아피 사용자들의 PC에서 해당 파일을 진단/처리하는 시스템입니다. 대부분의 클라우드 시그니처 진단 기능이 포함된 제품들이 위 방법을 사용합니다.

이에 반해 안랩의 ASD는 클라우드 기술을 통해 사용자 시스템에서 직접 파일을 수집하며, 파일이 분석 완료된 후에 서버 DB에 추가되어 사용자 시스템에서 진단할 수 있도록 하는 시스템입니다.

이와 같이 클라우드 기술을 이용하지만 실제 적용되는 바는 업체별로 매우 다양합니다.  


(2) 평판(Reputation) 시스템


클라우드 평판 시스템은 단순한 시그니처 진단과 달리 각 클라이언트에서 특정 파일에 대해서 사용자가 정상 또는 악성 여부를 '판정'한 정보를 수집한 후, 이를 총괄하여 자사의 분석 정보와 함께 사용자에게 다시 피드백합니다. 노턴의 인사이트 기능이 대표적인 것으로 아래의 그림처럼 각종 사용자의 평판 정보가 종합되어 파일의 악성 유무를 판단하게 됩니다.


물론, 시만텍의 경우 자체적인 분석 시스템도 갖고 있어 시그니처 진단과 평판 시스템을 모두 사용한다고 볼 수 있습니다. 이는 카스퍼스키의 KSN도 마찬가지입니다.


(3) 행동 기반 진단


행동 기반 진단은 크게 두 부분으로 나뉩니다. 단순히 행동 기반 엔진의 진단 전에 1차로 파일의 악성 유무를 판단하게 위한 사전 조사 정도로 사용하는 것과 네트워크 상에서 직접 행동 기반 분석을 수행하여 해당 정보를 피드백하는 것으로 구분됩니다.

F-secure(Deep Guard)와 AVIRA(ProActive)가 전자를 대표하는 제품(기능)들이고, COMODO(CAMAS)가 후자를 대표하는 대표 제품(기능)입니다. 사실 COMOD의 CAMAS는 클라우드 진단으로 직접 행동 기반 분석을 행하여 주는 유일무이한 서비스입니다. (※ 자세한 것은 관련글 링크를 참고 바랍니다.)


(4) 기타 (실시간 업데이트)


실시간 업데이트 기능은 클라우드 기술을 이용하되 클라우드 진단과는 크게 상관이 없습니다. 기존의 업데이트가 많은 수의 DB를 한꺼번에 갱신하는 대신 업데이트 주기(3-4시간)가 상당히 길었다면, 실시간 업데이트 기능은 갱신되는 DB의 수는 적지만 업데이트 주기(한 시간 이내)가 매우 짧은 것이 특징입니다. 업데이트 주기가 짧기 때문에 긴급 대응에 매우 유리합니다.


1-4. 클라우드 진단(Cloud Detection)의 장점, 단점

(1) 장점


첫 번째 장점으로 먼저 빠른 대응을 가능하게 한다는 점을 언급할 수 밖에 없을 듯 합니다. 전통적인 안티바이러스의 진단 구조는 DB 업데이트까지 빨라야 2-3시간 정도가 걸렸으나 클라우드 진단은 DB만 생성되면 언제나 진단이 가능하기 때문에 전통적인 방식에 비해 절반 또는 그 이하의 빠른 대응이 가능합니다. 긴급 대응시에도 훨씬 원할하게 DB를 적용시킬 수 있습니다. 대응 속도가 빨라지면 진단율이 상승하는 효과를 얻게 됩니다. 게다가 클라우드 진단 방식도 로컬 진단처럼 휴리스틱 또는 제너릭 진단 기법이 포함되어 사전 방역 진단 효과도 갖습니다. 결과적으로 동일 시간 대비 진단율이 상승합니다. 
(※ 대부분의 업체에서 클라우드 진단을 의심 진단으로 처리하지만, 이는 로컬 진단과의 구분에 영향을 더 많이 받는 것으로 휴리스틱 기법이 내부에 포함된 것인가와는 서로 다른 문제입니다.)

두 번째로는 로컬에 저장되는 DB의 크기 이슈입니다. 무수히 많은 악성코드를 DB화 하다보면 로컬에 저장되는 DB의 크기가 매우 증가하게 되는 것은 자명한 일입니다. DB의 크기가가 커질 수록 안티 바이러스의 엔진에서 샘플과 DB를 비교하는데, 시간이 그만큼 더 걸리고 시스템 퍼포먼스를 더 많이 사용할 수 밖에 없습니다. 그러나 클라우드 진단을 이용하게되면 단순히 파일 정보만 생성하고 이를 서버에 보내기만 하면 되기 때문에 DB 크기가 아무리 커져도 상관이 없습니다. 서버의 처리 능력은 로컬보다 훨씬 뛰어나기 때문입니다. 최근 들어서는 안티 바이러스 자체가 경량화되고 PC 사양이 높아지면서 중요성이 다소 떨어지긴 했습니다. 

세 번째로는 클라우드 진단 방식을 이용하면 오진율을 낮출 수 있다는 점입니다. 주로 평판 시스템이 갖추어진 클라우드 진단 방식에서 나타나는 장점입니다. 클라우드 진단은 파일 정보나 파일 자체를 수집하면서, 악성코드와 함께 정상 파일에 대한 것도 함께 수집합니다. 로컬에서는 DB의 크기 문제로 정상 파일에 대한 DB는 매우 제한적으로 제공되지만 클라우드 방식에서는 크게 문제가 되지 않아 특정 파일의 악성 유무가 빠르게 정해지기 때문에 정상 파일에 대한 진단을 방지할 수 있습니다.습니다. 

물론 이는  업체의 클라우드 진단 방식의 구조에 따라 달라집니다. 오히려 일부 제품의 경우 클라우드 진단 내부에 포함된 의심 진단 기법으로 인해 오진이 증가하게 될 수도 있습니다. 맥아피의 아르테미스같은 경우 초기에 무수히 많은 오진을 발생시켰습니다.


(2) 단점


첫 번째로 클라우드는 네트워크 연결이 반드시 필요합니다. 내부 인트라넷을 사용하거나 다른 네트워크 연결이 불가능한 특정 상황에서는 진단 자체가 불가능해진다는 치명적인 약점이 있습니다. IPS의 문제나 시스템 오류로 인해 네트워크 연결이 불가능할 때 클라우드 진단 기능은 사용이 불가능합니다. 최근에 악성코드가 클라우드 진단을 우회하거나 무력화하기 위해 특정 주소(클라우드 서버)나 특정 문자열의 패킷을 차단하는 사례가 있을 정도로 구조적인 약점을 갖고 있습니다.

두 번째로는 치료 성능의 하락입니다. 이는 사실 클라우드 진단에 사용되는 로컬 엔진의 문제입니다. 이 로컬 엔진은 파일 정보를 수집하여 전송하고 피드백 받아 처리하는 역할을 하는데 아직까지 전통적인 로컬 엔진의 처리 성능보다 뒤 떨어지는 치료 성능을 보여주고 있습니다.  이에 대한 것은 아래 최신 AV-TEST 자료를 참고 바랍니다. 완전한 클라우드 보안 제품인 판다 클라우드와 일반적인 로컬 설치 안티 바이러스 판다 인터넷 시큐리티의 치료율 차이입니다.



세 번째로는 사용자 수에 따라 진단율에 차이가 발생하는 것 입니다. 업체별로 조금 다르긴 하지만 사용자가 많을 수록 클라우드 서버에 집계되는 정보가 많아집니다. 즉, 클라우드 진단은 사용자가 많아야 진단율이 높아집니다. 안랩의 경우 국내에서 무료 제품의 점유율이 높은데, 높은 점유율을 바탕으로 클라우드 진단으로 인하여 진단율이 큰 폭으로 상승했습니다. 반대로 해외 테스트에서 좋은 결과를 보여주지만 국내 사용자가 해외 사용자보다 상대적으로 적은 카스퍼스키의 경우 국내에서의 클라우드 진단이 상대적으로 적습니다. 최근에 리뷰한 ESET이나 AVAST의 경우 국내에서 클라우드 진단은 거의 전무한 실정입니다. 이와 같이 자체적인 분석 시스템의 수준에 상관없이 사용자 수에 따라 진단율이 큰 영향을 받는 다는 점은 단점이라고 볼 수 있습니다.

네 번째로는 파일 수집에 따른 프라이버시 또는 기밀 자료에 대한 유출 문제입니다. 이는 안랩처럼 사용자가 수동으로 전송하는 것이 아닌 자동으로 파일을 전송하는 경우에 크게 문제가 될 수 있습니다. 보안 업체에서 수집된 자료를 분석하는 것 외에 다른 용도로 사용하지는 않겠습니다만, 사용자 특히 기밀 유지가 필요한 기업의 경우 다소 민감할 수 밖에 없는 부분입니다. 사용자 동의를 기본적으로 받고 있기 때문에 법적으로는 큰 문제가 없겠지만, 예민한 부분임에는 틀림이 없습니다.

안랩의 파일 전송에 따른 약관





현재 이슈가 되고 있는 클라우드 진단에 대해서 대략적으로 살펴봤습니다. 실제와 다소 다르고 잘못 설명된 부분도 있을 수 있지만 클라우드 진단에 대해서 이해하는데에는 큰 문제가 없다고 생각합니다.

개인적으로 V3를 제외한 다른 국내 업체에서 언제 클라우드 기술을 도입할지 궁금합니다.



- 이상입니다.
Posted by 물여우

댓글을 달아 주세요

  1. onsum 2012.04.27 23:01 신고  댓글주소  수정/삭제  댓글쓰기

    진단 설명 시리즈는 정말 하나하나가 주옥같습니다
    정리하시느라 수고하셨어요^^

  2. Favicon of http://wezard4u.tistory.com BlogIcon Sakai 2012.04.30 11:38 신고  댓글주소  수정/삭제  댓글쓰기

    정리하신다고 고생하셨습니다.