하우리 로고 이미지

전체메뉴 열기

Security issues analysis

주의해야 할 보안위협요소에 대한 분석자료 제공

보안이슈 분석

바이러스 게놈 지도를 활용한 변형 바이러스 추론 Part II
등록일 :
2006.03.15
[원고출처 : Monthly 사이버시큐리티 2005.12월호]
최원혁 ㈜하우리 바이러스대응센터장
whchoi@hauri.co.kr


2. 분석의 자동화

가. 노만 : SandBox

SandBox는 실제 어린 아이들이 놀다가 다치는 것을 방지하기 위한 방안으로 모래를 가득채운 상자이다. 노만(Norman)에서 개발한 SandBox 역시 바이러스에 의해 실제 컴퓨터 시스템이 공격 받는 것을 방지하기 위한 가상 공간 에뮬레이터이다.



실제 노만의 SandBox는 일반에게 공개되어 있으며, 간단하게 그림 2와 같이 해당 사이트에 접속해서 바이러스로 의심되는 파일에 대해 분석을 의뢰할 수 있다. 분석을 의뢰할 때에는 그림 3과 같이 분석을 의뢰한 파일에 대한 결과를 받아 볼 E-mail 주소와 의뢰할 파일을 [찾아보기…] 버튼을 통해서 선택하면 된다.



바이러스 분석할 파일을 보내면 얼마 뒤 E-mail 주소로 분석 결과물을 받아볼 수 있다. 그 분석 결과가 바로 그림 4이다.



그림 4를 살펴보면, 자동화 된 분석 결과로 생성되는 파일과 네트워크 접속 로그 및 포트 정보와 기타 이상 증상들을 보고하고 있으며, 이 파일이 알려진 바이러스인지, 알려지지 않은 바이러스인지를 체크하여 그 결과를 알려준다.

물론 이는 일반 사용자들에게 공개된 버전이라 분석 정보가 미약하지만, 실제 내부에서는 개발자 버전이 존재하며 공개된 버전보다 더 상세한 분석 정보를 제공하고 있다고 한다.

나. 시만텍 : Virus Analysis Toolkit
실제 시만텍에서 사용하는 Virus Analysis Toolkit은 일반 사용자들에게 공개된 버전은 존재하지 않는다. 하지만, 시만텍 분석 연구원들이 사용하는 이 툴도 시만텍 분석 연구원인 Peter Szor에 의해서 간단하게 소개되었다.[6]



Virus Analysis Toolkit에서 실행되는 모든 결과는 가상 환경에서 구동되는 것이므로 바이러스로 인한 시스템의 피해는 없다. 하지만, 노만의 SandBox와는 달리 분석 결과가 별도로 제공되는 것이 아니라, 분석가가 에뮬레이션 되는 상황을 통해 결과를 유추하여 바이러스 분석을 하게 된다.

3. 바이러스 명명법

가. 업체마다 각기 다른 바이러스 명명법

바이러스 분석이 종료되면 해당 바이러스가 어떤 바이러스의 변형이었는지 아니면 새롭게 등장한 신종 바이러스인지를 분석하여 바이러스 이름을 결정하게 된다. 실제 바이러스 명명법은 업체 자율에 의해서 명명된다. 그러다보니 동일한 바이러스임에도 불구하고 바이러스 이름이 전혀 다른 형태를 보이기 때문에 일반 사용자들의 경우 혼돈스러울 수 있다. 이런 노력은 이미 C.A.R.O(Computer Anti-Virus Research Organisation)에 의해서 공용화된 바이러스 명명법을 시도하였으나, 효율적이지 못했고 최근 CME(Common Malware Enumeration, http://cme.mitre.org)를 통해 바이러스 이름을 통일화하려는 시도가 있다.

간단한 예를 들어보면 그림 6은 CME 홈페이지에서 캡쳐한 것으로 업체들이 명명한 Sober의 변형에 대해 CME-151로 통일화한 것이다. 두 번째 내용도 동일한데 CME-15는 Zotob 변형에 대한 이름임을 알 수 있다.



하지만, 이 역시도 별로 효율적이지 못하다는 지적이 있어 실제 바이러스 이름의 통일화는 쉽지 않은 문제로 남아 있다. 바이러스 명명법은 과거 바이러스의 이력을 살펴보고 현재 분석중인 바이러스가 어떤 바이러스에 가장 흡사한지를 나타내며, 이렇게 명명된 바이러스는 정확하지는 않지만, 일반 사용자들에게 대략적인 바이러스의 동작을 알려주는데 중요한 역할을 하게 된다. 따라서 바이러스 명명은 과거 바이러스 이력에서 찾아야지 단순히 CME처럼 숫자를 부여하는 것은 일반 사용자들에게 더 혼란만 가중할 뿐이다.

나. 바이러스 명명시 발생 가능한 문제점
그리고 또 다른 문제가 존재하는데, 그것은 현재 분석중인 바이러스가 어떤 바이러스에서 파생되어 왔는지를 빠르게 찾는 방법이다. 만약 현존하는 바이러스를 모두 분석해봤고 그 바이러스의 증상 하나 하나를 모두 기억해내는 분석가라면 현재 분석중인 바이러스가 어디에서 파생되었는지를 알 수 있겠지만, 실제로는 그리 쉬운 일이 아니다.

간단한 예를 들어보겠다. A라는 분석가와 B라는 분석가가 있었는데 최근 A 분석가가 Mytob.A를 분석했었다고 했을 경우, Mytob.B로 추정되는 샘플을 A 분석가가 분석한다면 분명 A 분석가는 Mytob.B라고 명명을 할 것이다. 하지만, B 분석가는 Mytob.B를 분석하더라도 Mytob.A를 분석한 경험이 없기 때문이 B 분석가는 Mytob.B로 분석하지도 않을 것이고, 더군다나 Mytob.A라고도 분석하지 않을 가능성이 존재한다. 전혀 다른 이름의 바이러스로 명명할 수도 있기 때문이다. 즉, 2명의 분석가만 존재하더라도 이런 현상이 발생하는데 앞서 지적처럼 20여명의 분석가가 존재한다면 더 복잡한 상황이 발생할 것은 너무나도 당연한 사실이다.

다. 바이러스 명명의 자동화
결국 바이러스 명명은 과거 바이러스 이력을 참고하여 결정지어지므로 과거 바이러스들에 대해 독특한 분석 내용들을 데이터베이스화 하고 이를 검색할 수 있도록 하여 현재 분석중인 바이러스가 과거 어느 바이러스와 유사한지를 체크하여 바이러스 명명을 하게 된다.

알려진 바이러스 명명의 자동화 방식으로 Kaspersky Lab의 Costin Raiu가 개발한 M.I.R.A[7]와 F-Secure에서 개발한 Virus Genome Map[8]이 있다.

M.I.R.A는 매크로 바이러스에 대해 자동화된 바이러스 명명 프로그램이며, 매크로의 Opcode를 추출하여 이를 적절한 matrix로 재구성한 DB를을 가지고, 현재 바이러스가 과거의 바이러스와의 유사도를 측정하여 유사 바이러스 Top 10을 나열하도록 설계되어 있다. 분석가는 이들 Top 10에서 적당한 바이러스 명을 결정한 후 실제로 바이러스 명에 확장 정보(.A, .B, …)를 추가하여 바이러스 명을 최종 결정하게 된다.

Virus Genome Map은 바이러스의 함수 호출 관계를 나열하여 이를 그래프화 하고, 나열된함수 호출 관계를 DB화 하여 이를 통해 현재 분석중인 바이러스의 함수 호출 관계와 유사한 바이러스를 검색하여 바이러스의 파생 관계를 살펴볼 수 있는 자료로 활용된다.

-- 다음 '바이러스 게놈 지도를 활용한 변형 바이러스 추론 Part III(마지막)' 에서는
'바이러스 게놈 지도'에 관해서 알아보겠습니다.
  • - 본 정보의 저작권은 (주)하우리에 있으므로 허가없이 전체 또는 일부를 사용 시 저작권 침해로 간주될 수 있습니다.
  • - 상업적인 목적이나 단체에서 사용할 경우, 별도로 허가를 받으셔야 합니다. (정보 이용 문의 skim@hauri.co.kr)

Top