▶ 보안 관련 정보 및 팁

클라우드 진단과 휴리스틱 진단 장단점 비교

물여우 2011. 12. 2. 17:02
반응형

최근에 보안 업체의 신기술로 각광 받는 클라우드 진단 기능과 기존의 휴리스틱 진단 기능을 설명하고 서로의 장단점을 비교해 보도록 하겠습니다.

※ 저는 보안 전문가가 아니며 보안과 관련된 전문적이고 기술적인 지식을 지니고
    이 글을 작성하는 것이 아니므로 이 글에 오류가 있을 수 있음을 밝힙니다.



★ 2012.01.01 추가 ★

이 글을 바탕으로 각각 휴리스틱, 행동 기반 진단, 클라우드 진단에 대해서 세부적인 글들을 새롭게 작성하였습니다. 관련글의 링크를 참고 바랍니다.


악성코드에 대항해서 최근의 보안 업체에서는 다양한 방법을 시도하고 있습니다. 클라이언트용 제품을 기준으로 파일 시스템에 대한 보호 기능을 나열해보자며, 기본적으로 사전 방역을 위하여 시그니처 진단 방식에서 발전한 의심 진단(시그니처 휴리스틱 진단) 기능이 존재하고 있으며, HIPS와 Behavior Blocker를 포함하는 행동 기반 진단 기능, 외부 서버를 이용한 클라우드 진단 기능, 그리고 수시 업데이트 등이 핵심적인 대응 방법으로 보입니다. 

이번 글에서는 최근에 다양한 제품들에 추가되는 클라우드 진단 기능과 휴리스틱 진단(정확하게는 시그니처 휴리스틱)의 장단점에 대해서 이야기 해보고자 합니다. 그러나 업체별로 동일한 종류의 기능이라 할지라도 각 기능별로 매우 다양한 모습을 보이고 있고, 관계자가 아닌 이상 세부적인 정보는 얻기 어렵기 때문에, 아주 일반적인 수준에서 살펴보도록 하겠습니다.



1. 클라우드 진단과 휴리스틱 진단에 대한 정의

(2) 시그니처 휴리스틱에 대한 간단한 설명


시그니쳐 휴리스틱 진단(Signature Heuristic Detection) 진단은 "의심"진단으로 의역할 수 있습니다. 즉, 정확하게 분석된 DB 정보를 바탕으로 진단하는 것이 아니라 악성코드로 의심되는 특정한 조건이 존재할 때, 이를 진단하는 기법입니다.

조금 더 세부적으로 이야기해보면 의심 진단(Heuristic Detection)은 내부 진단 방식에 따라 서명 기반 진단(Signature Heuristic) 방식과 행동 기반 진단(Behavioral Heuristic) 방식으로 나뉘고, 진단 영역(또는 민감도)에 따라 "Generic" 진단과 "Heuristic (또는 Suspicious)" 진단으로 나뉩니다. 


① 내부 진단 방식에 따른 분류 

앞서 시그니쳐 휴리스틱을 다루면서 서명 기반 진단과 행동 기반 진단으로 구분된다고 설명한 것에 의아해 하는 분들이 계실겁니다. 그러나 여기서 다루는 것은 모두 시그니쳐, 즉 서명 기반으로 의역되는 기술에 기반합니다. 여기서 행동 기반 진단으로 언급한 것은 HIPS와 같은 행동 기반 진단 기능과는 개념이 많이 다릅니다.


첫 번째 서명 기반 의심 진단(Signature Heuristic Detection)은 악성코드의 내부 코드를 진단하는 것으로 악성코드에 일반적으로 포함되는 패턴 또는 특정 코드를 가지고 진단하는 방식입니다. 간단하게 예를 들면 어떤 파일내에 1번, 2번, 3번...10번 코드가 있다고 가정할 때, 악성코드에서 주로 1번 코드가 발견된다면, 휴리스틱 엔진이나 시그니처 DB에 1번 코드를 추가해서 앞으로 특정 파일이 1번 코드를 포함하고 있을 경우에 진단하는 방식입니다.

내부의 특정 코드를 가지고 진단하는 방식이기 때문에 정상 파일이 악성코드와 유사한 코드를 가진 경우이를 진단하게되는 오진의 위험성이 있습니다. 따라서 악성코드 내부의 특정 코드를 정상 파일의 코드와 얼마나 정확하게 분류/분석하여 반영할 수 있느냐가 이 기능의 핵심이자 업체의 기술력을 보여주는 한 가지 지표입니다.

서명 기반 의심 진단 기능이 뛰어난 대표적인 업체는 NOD32로 유명한 ESET과 AVIRA 등이 있습니다.


두 번째 행동 기반 의심 진단(Behavirol Heuristic Detetion)은 일반적으로 가상 환경에서 파일을 실행 후, 행동을 분석하여 악성코드 여부를 판단하는 방식입니다. 예를 들어 다른 파일 및 레지스트리에 접근/수정, 외부 네트워크와 연결을 시도 및 정보 전달, 특정 파일의 생성 및 다운로드 등의 행위처럼 악성코드가 주로 하는 행위를 할 경우 이를 진단하는 방식입니다. 

행동 기반 의심 진단 기능이 뛰어난 대표적인 업체는 Norman(SandBox)과 Bitdefender(B-HAVE)입니다. 

그렇다면 위에 언급한 "행동 기반 의심 진단 기능"은 HIPS와 Behavioral Blocker같은 '행동 기반 의심 진단' 기능과 차이점이 무엇일까요?  앞서 언급한 두 행동 기반 의심 진단 기능간의 차이는 '파일이 (사용자 또는 기타 이유로) 실제로 실행되었는가?' 에 따라 나타납니다.

기본적으로 노만과 비트디펜더의 행동기반 의심진단은 실시간 감시와 수동 검사에 모두 사용됩니다. 여기서 의미하는 실시간 감시나 수동 검사는 안티바이러스의 일반적인 검사 방식과 방식상 동일합니다. 즉, 사용자가 특정 파일을 실행시키지 않아도 검사 모듈에서 검사가 가능합니다. 이러한 방식의 의심진단은 안티바이러스의 실시간 감시 모듈이나 수동 검사 모듈이 해당 파일을 검사할 때, 자동으로 가상 환경에서 실행시켜 그 행동을 관찰한 후 악성 여부를 판단하게 됩니다. 이에 반해 HIPS류의 행동 기반 진단 방식은 반드시 특정 파일이 실행되어야 작동하게 됩니다. 따라서 HIPS에서는 실제 작동된 파일의 행동이 실제 사용자 시스템에 영향을 주지 않도록 관리/차단하는 것이 핵심적인 기술입니다. 

앞서 밝힌 것처럼 노만과 비트디펜더의 행동기반 진단 방식은 진단 방식상 시그니처 의심 진단 방식과는 다르지만, 사용자가 직접 사용할 때에는 HIPS로 대표되는 행동 기반 진단 기능보다는 시그니처 의심 진단과 동일하게 느낄 수 있기 때문에 시그니처 진단 방식에 임의적으로 포함하였습니다. 대부분의 안티바이러스 테스트에서도 시그니처 진단율을 측정할 때 HIPS와 Behavioral Blocker 진단은 제외하지만 SandBox와 B-HAVE같은 휴리스틱 기능은 활성화시킵니다. 

참고로 HIPS 기능과 달리 노만과 비트디펜더의 행동 기반 진단 방식은 무수히 많은 파일을 빠른 시간안에 검사해야하기 때문에 가상화 공간에서 검사하는 항목이 비교적 단순하게 구성된다고 하는데, 실제로 사용자가 느끼는 퍼포먼스도 시그니처 진단 방식과 큰 차이를 느끼기 어렵습니다.
(*그러나 공교롭게도 노만이나 비트디펜더 제품의 경우 휴리스틱 기능 때문은 아니지만, 타 제품에 비해 다소 무겁다고 평가되는 제품입니다.)

개인적으로 HIPS와 구분하기 위해 행동 기반 시그니처 진단이라고 언급할 때가 많은데, 보안 업계나 연구 단체에서 공식적으로 사용되는 명칭은 아닙니다.

(※ 최근에는 기술의 발전에 따라 두 가지 방식이 동시에 사용되기도 합니다.)


② 진단 영역에 따른 분류

진단 영역에 따른 분류에서 사용되는 개념들은 악성코드에 대한 진단명을 통해 구분이 가능합니다.

"Generic"(포괄적 진단) 진단은 특정 악성코드에서 발견되는 패턴을 이용하여 진단하는 방식입니다. 특정 악성코드에만 존재하는 코드를 이용하여 진단하기 때문에 진단의 범위와 목표가 제한됩니다. 포괄적 진단 방식은 새로운 변종이 유포되었을 경우, DB에 해당 파일이 추가되지 않았더라도 이를 진단할 수 있어, 특정 악성코드의 변종들을 진단하는데 유용합니다. 오진에 대해서도 비교적 안정적입니다. 
(※ 이는 아주 단순화 시켜서 설명한 것으로 보안 업체별로 다양한 개념이 존재합니다. 비트디펜더처럼 자동 분석된 악성코드에게 generic 진단값을 부여할 때도 있으며, 단순히 특정한 종류의 악성코드를 동일한 진단값으로 진단하는 것을 의미하기도 합니다.)

"Heuristic" 진단은 악성코드 전반에서 발견되는 특징을 이용하여 진단을 합니다. 따라서 포괄적 진단에 비해 진단의 범위와 목표가 넓습니다. 포괄적 진단에 비해 악성코드 진단율은 높지만, 정상 파일을 오진할 확률이 더 높습니다.



2. 클라우드 진단과 휴리스틱 진단의 장단점

(1) 클라우드 진단


업체별로 다르지만 클아우드 진단을 사용하는 업체는 기본적으로 사용자 시스템에 존재하는 파일의 고유 정보들을 수집하며, 필요에 따라 파일 자체를 전송받을 수 있습니다. 이 경우 보안 업체에서 직접 악성코드를 수집하지 않고서도 자체 수집보다 더 많은 수의 더 다양한 종류의 정상/악성 파일을 확보할 수 있습니다. 특히, 정상 파일이 원할하게 수집되기 때문에, 이를 기초로 화이트 리스트를 작성함으로써 오진의 가능성을 줄일 수 있습니다.

또한 수집된 악성코드를 사용자 시스템에 시스템에 설치된 안티바이러스 엔진에서 사용할 수 있도록 DB화한 후 DB 파일을 배포할 필요가 없기 때문에 분석과 이를 사용자 시스템에 적용하기 위한 DB 파일 배포간에 시간차를 줄일 수 있습니다.  

그러나 기본적으로 해당 업체의 제품을 설치한 사용자 시스템에서만 샘플을 수집하기 때문에, 샘플 확보에는 제한이 존재합니다. 또한, Generic 또는 Heuristic 진단값을 포함할 때도 있지만, 기본적으로 수집된 파일만 진단하는 방식이기 때문에, DB의 적용이 실시간으로 이루어진다는 것만 다를 뿐, 전통적인 진단 방식과 동일한 진단 방법이라 할 수 있어 "사전 진단"이라 부르기는 다소 어려울 때가 많습니다.  

또한, 맥아피처럼 클라우드 기능을 통해 파일 자체를 수집 하지 않고, 정식 DB 파일 생성/배포 전에 네트워크 연결을 통해 단순히 악성 여부의 정보만을 알려주는 경우, DB 파일의 사전 배포 성격을 가지기 때문에 이를 두고 "사전 진단"의 의미를 부여하기는 어렵다고 봅니다.


클라우드 진단에는 구조적인 문제도 존재합니다. 클라우드 방식의 서비스들이 공통적으로 가진 문제이기도 한데, 사용자 시스템이 아닌 외부 서버에 DB가 저장되기 때문에, 이 서버가 DDOS나 다른 이유로 정상적으로 작동하지 않거나, 사용자가 네트워크에 연결할 수 없을 경우에는 악성코드 진단이 불가능하게 됩니다. 외부 서버와의 연결이 반드시 필요하기 때문에 생긴 문제인데 최근에 유료화 제품을 내어놓은 판다 클라우드 안티바이러스 제품은 Behavior Blocker 기능이 추가되어 시그니처 진단을 보조하지만, 시그니처 진단을 보조하는 수준이기 때문에, 진단이 제한될 수 밖에 없습니다.

마지막으로 파일을 직접 수집하는 경우, 프라이버시 또는 기밀 자료에 대한 유출 문제도 존재하고 있습니다. 보안 업체에서 수집된 자료를 분석하는 것 외에 다른 용도로 사용하는 것은 아니겠습니다만, 사용자 특히 기밀 유지가 필요한 기업의 경우 다소 민감할 수 밖에 없는 부분입니다.


(2) 휴리스틱 진단


휴리스틱 진단은 특정한 코드, 특정한 행위를 진단하는 방식이기 때문에 특정 악성코드가 DB에 포함되어 있지 않아도, 특정 패턴을 함유하고 있다면 진단이 가능합니다. 이런 특성 때문에 휴리스틱 진단은 기본적으로 "사전 진단"을 의미합니다.

그러나 휴리스틱 진단은 특성상 필연적으로 오진의 위험성을 갖고 있기 때문에, 진단의 민감도 조절이 매우 중요합니다. 진단의 민감도란 휴리스틱 진단을 위한 패턴의 영역의 조정 수준양을 의미하는 것으로, 일반적으로 민감도를 높이면, 진단율은 올라가지만 오진율 또한 상승하게되며, 민감도를 낮추면 오진은 줄어들지만, 진단율 역시 함께 감소하게 됩니다. 앞서 언급한 것처럼 민감도를 높이면서도 오진을 줄일 수 있도록 하는 것이 업체가 가진 휴리스틱 기술력의 핵심이기도 합니다.

또한 사전 진단을 의미한다고 해서 휴리스틱 진단이 만능은 아닙니다. 점 치듯이 아무 정보가 없는 상태에서 진단하는 것이 아니라, 시그니처 코드 또는 특정한 행동 패턴 등 진단에 필요한 특정 패턴이 수집, 분석되어 있어야 진단이 가능합니다. 따라서 완전히 새로운 코드로 작성된 악성코드이거나 정상 파일과 유사한 행동을 이용하는 경우 진단이 어렵습니다. 게다가 악성코드 개발자들 또한 휴리스틱 진단을 우회하기 위해 다양한 방법을 시도하고 있으며 실제로 성공하고 있습니다. 이러한 이유로 휴리스틱 진단이 뛰어난 것으로 유명한 ESET이나 AVIRA의 제품들도 신규 악성코드를 100% 진단할 수는 없습니다.



3. 어떤 기능이 더 뛰어날까?

지금까지 클라우드 진단과 휴리스틱 진단에 대해서 살펴봤습니다. 그렇다면 이 두 기능 중 어떤 기능이 더 뛰어나다 할 수 있을까요? 개인적으로 '어떤 기능이 악성코드 진단에 더 좋은 지  매우 관심이 가는 부분이긴 하지만, 아쉽게도 두 기능간에 비교 분석하여 우열을 가려본 테스트는 존재하지 않습니다. 실제 제품에서 두 기능이 다른 기능과 함께 복잡하게 얽혀 구성되어 있는 경우가 많기 때문입니다. 안티 바이러스의 정식 DB 진단을 제외하고서 각 기능별 진단율 테스트를 진행하면 좋겠지만 실제 제품들의 구조상 거의 불가능합니다.

휴리스틱 진단 경우 여러 모로 한계가 보인다고 생각합니다. 무수히 많은 수의 악성코드가 쏟아지는 현 상황에서 현재의 기술로는 오진없는 사전 진단이 불가능하다는게 첫 번째 이유이고, 악성코드 개발자들이 특정 보안 제품을 목표로 정식 및 의심 진단의 우회를 시도하는 경우가 존재한다는 것이 두 번째 이유입니다. 진단 우회 시도는 내부의 코드를 조작해서 보안 제품이 진단하는 기존 코드와 다른 형태의 코드를 작성한다는 의미입니다. 주로 국지적으로 유포되는 악성코드가 해당 지역에서 주로 사용되는 보안 제품의 진단을 우회하기 위해 많이 사용하는데, 물론 이런 특정 지역, 특정 제품만을 우회하는 경향이 강한 국지적 유포 샘플에서만 보이는 현상은 아닙니다. 소위 와일드 리스트 샘플로 불리는 다양한 지역에서 유포되는 악성코드에서도 이러한 시도가 보이고 있습니다. 예로 들면 작년 올해 들어 많은 수의 PC를 감염시켰던 "Conficker" 웜 같은 샘플은 지금은 대다수의 보안 제품에서 지단하고 있지만, 초기 유포 당시에는 휴리스틱 진단을 통해 사전 진단하던 제품들은 거의 없었습니다. 휴리스틱 진단은 진단율 상승의 효과가 분명히 존재하지만, 결과적으로는 제한적인 진단율을 보일 수 밖에 없다는 것을 나타낸다 생각합니다.

따라서 기본적으로 모든 악성코드를 사전에 100% 진단할 수 없다면, 휴리스틱 진단보다는 클라우드 진단에 개인적으로 점수를 더 주고 싶습니다. 기본적으로 수집된 샘플을 기반해서 진단하는 방식이지만 수집과 DB 배포 방식이 전통적인 방식에 비해 매우 효율적이기 때문이며, 이러한 방식 때문에 휴리스틱 진단에 비해 더 안정적이고 효과적으로 다수의 악성코드를 진단할 수 있는 방법이라고 생각하기 때문입니다. 게다가 클라우드 진단은 서비스가 시작된지 얼만 안된 기술이라는 점도 중요합니다. 휴리스틱 진단이 클라우드 진단 기술 내에 포함될 수도 있으며(특정 의심 진단값이 포함된 경우는 이미 존재), 앞으로 더욱더 개선될 여지가 많기 때문입니다.

많은 수의 업체들이 형태는 다르더라도 클라우드 기술을 도입하는 것은 현재 기술로도 효용성이 매우 크고 발전 가능성이 높기 때문에 아닐까 생각됩니다..


그러나 앞서 글 서두에 언급한 것처럼 최근에는 어떤 진단 기능 하나에 의존하는 것이 아니라 다양한 기법의 진단 기술이 함께 사용되고 있습니다. 시그니처 휴리스틱과 함께 행동 기반 진단(HIPS, Behavioral Blocker), 수시 업데이트, 클라우드 진단 등을 포함하고 있습니다. 이러한 파일 시스템 보호 기능 외에도 웹가드 또는 웹브라우저 보호처럼 네트워크단에서 이루어지는 보호 기능 등 정말 다양한 진단 기능이 여러 계층에서 구동 사용자 시스템을 보호하는데 사용되고 있습니다.

이러한 통합형 보호를 보안 업체들이 제공하는 이유는, 사실상 현재의 어떤 특정한 기능만을 가지고는 악성코드에 대한 완벽한 대응이 불가능하기 때문입니다. 따라서 각 기능별로 고유의  간에 우열을 가려보는 것이 큰 의미가 없으며, 다양하게 구성된 기능들이 함께 구동될 때, 사용자 시스템을 얼마나 효율적으로 보호하며 악성코드를 사전에 차단할 수 있을지가 중요한 점이라고 생각합니다.




간단하게 정리한다 했는데, 끝 마무리가 다소 미적지근 한 것 같습니다. 내용 또한 깊이는 없는데, 쓸데없이 길기만 한 것 같아 매우 불만입니다. 개념을 혼동하거나 뭉뚱그려서 설명하는 등 오류도 많은데, 실력 문제로 더 이상은 못쓸 것 같습니다. 이점 참고해서 봐주시기 바랍니다.


★ 2012.01.01 추가 ★

이 글을 바탕으로 각각 휴리스틱, 행동 기반 진단, 클라우드 진단에 대해서 세부적인 글들을 새롭게 작성하였습니다. 관련글의 링크를 참고 바랍니다.




- 이상입니다.

반응형