Endpoint Protection

 View Only

가상 시스템, 악성 코드에 안전한가? 

Aug 12, 2014 11:58 AM

VMserver_concept.png

보안 분야에서는 오래 전부터 가상 시스템(VM)을 사용해 왔습니다. 매번 프로덕션 시스템을 재설치할 필요 없이 가상 시스템에서 악성 코드를 실행하고 분석할 수 있다는 이점 때문에 연구 목적으로 특히 활용도가 높습니다. BlackHat 관련 블로그에서 살펴본 대로, 이러한 테스트는 수작업으로 또는 자동화된 시스템에서 실행할 수 있는데, 각 방법에는 저마다의 장단점이 있습니다. 모든 산출물은 기록되며 결론적으로 해당 애플리케이션을 차단하거나 허용하게 됩니다. 비슷한 이유로 샌드박스 기술과 가상화 기술이 여러 네트워크 보안 솔루션의 공통된 구성 요소로 자리잡게 되었습니다. 그 목적은 악성 코드 샘플을 실행하고 동작을 분석하여 지금까지 알려지지 않았던 악성 코드를 찾아내는 것입니다.

하지만 가상 시스템의 영역은 훨씬 광범위합니다. 많은 고객이 프로덕션 환경을 가상 시스템으로 마이그레이션했으며, 여러 서버에서 가상 시스템을 실행하여 실제 고객 데이터를 기반으로 매일 업무를 처리하고 있습니다.

이러한 추세에 맞춰 고객 상담 시 한 가지 의문점이 공통적으로 제기되곤 합니다. “악성 코드가 가상 시스템에서 실행되면 이를 탐지하고 동작을 중단할까요?"

일부 고객은 아마 그럴 것으로 기대하면서 가상 시스템에서 실행하면 악성 코드로부터 안전하다고 믿고 싶어 합니다. 안타깝게도 이것은 잘못된 생각입니다.

일부 악성 코드 개발자는 자신이 만든 악성 코드가 가상 시스템에서 실행되는지 여부를 탐지하고자 합니다. 가상 환경에서 프로그램이 실행 중인지 여부를 탐지하는 데 사용되는 방법은 아래와 같이 매우 간단합니다.

  • 가상 네트워크 어댑터의 MAC 주소를 확인하여 벤더를 알아냅니다.
  • 가상 시스템에 고유한 특정 레지스트리 키를 확인합니다.
  • VMware 툴과 같은 헬퍼 툴이 설치되어 있는지 확인합니다.
  • 특정 프로세스 및 서비스 이름을 찾습니다.
  • 통신 포트 및 동작을 살펴봅니다.
  • 특수한 어셈블러 코드를 실행하고 그 결과를 비교합니다.
  • 서술어 테이블과 같은 시스템 구조의 위치를 확인합니다.

악성 코드는 자동화된 가상 시스템 분석 시스템에서 실행될 때 한 가지 매우 유리한 점이 있습니다. 분석 시스템은 적절한 타임프레임 내에서 결정을 내려야 하는데, 만약 샘플이 최초 5분 동안 악성 활동(예: 대기 루프 건너뛰기)을 수행하지 않을 경우 시스템에서 이를 안전한 것으로 판단할 가능성이 높습니다. 가상 시스템 탐지에 사용되는 또 다른 수법은 악성 코드의 상호 작용에 주목하는 것입니다. 이를테면 악성 코드가 시스템이 두 번 재부팅될 때까지 기다린 다음 악성 활동을 개시하거나, 사용자가 마우스 버튼을 일정 횟수만큼 누른 후에야 페이로드를 활성화할 수도 있습니다. 자동화된 가상 시스템에서는 이러한 수법에 대처하기가 더 어렵습니다.

가상 시스템에서 실행될 때도 종료되지 않고 가짜 데이터를 보내는 악성 코드도 드물지만 발견된 적이 있습니다. 이러한 "교란 전술(Red herrings)"에서는 존재하지 않는 C&C 서버로 ping을 보내거나 무작위 레지스트리 키를 찾아보기도 합니다. 이러한 동작은 연구 팀을 혼란스럽게 하거나 자동화 프로세스에서 해당 악성 코드를 정상 애플리케이션으로 판정하도록 유도하기 위한 속임수입니다.

대부분의 악성 코드 샘플은 가상 시스템 탐지 기능이 내장된 런타임 패커를 사용합니다. 따라서 대개는 샘플 자체가 아니라 이러한 패커(packer) 또는 크립터(crypter)가 탐지 기능을 수행합니다. 악성 코드 개발자들은 애플리케이션이 가상 시스템에서의 실행 여부를 탐지하면 미심쩍은 것으로 취급된다는 것을 깨닫고 몇 년 전부터 더 이상 이러한 기능을 사용하지 않습니다.

악성 코드 개발자들은 최대한 많은 시스템을 감염시키는 것이 목표인데, 악성 코드가 가상 시스템에서 실행되지 않으면 감염 가능한 시스템 수가 한정됩니다. 때문에 현재 대부분의 악성 코드 샘플이 가상 시스템에서 정상적으로 실행되고 사이버 범죄자가 원하는 경우 기능 추가까지 가능하다는 사실은 그리 놀랍지 않습니다.

tecrypter_2_LOB.png
그림 1. 패커 툴의 가상 시스템 탐지 옵션

시만텍은 예측이 아닌 실제 데이터를 토대로 앞의 질문에 답변하기 위해 2012년부터 고객들이 제출한 20만 건의 자료를 물리적 시스템과 VMware 시스템에서 각각 실행한 후 그 결과를 비교했습니다. 그런 다음 기록을 남기기 전에 문제를 일으켰거나 "정체 불명의 교란" 흔적을 남겨 놓은 샘플은 가급적 걸러 냈습니다. 지난 2년 동안 VMware를 탐지하는 악성 코드의 비율이 18% 대에 머물렀는데, 2014년 초에는 일시적으로 급증하여 28%에 이르기도 했습니다. 평균적으로 악성 코드 샘플 5개 중 1개는 가상 시스템을 탐지하고 실행을 중단하는 것입니다.

Detect_Virtual_Machines_2.png

그림 2. VMware를 탐지하는 악성 코드 샘플(월별)

가상 시스템에서 실행 중인지 여부를 탐지하는 악성 코드는 분명 존재하지만, 그다지 많지는 않습니다. 가상화 시스템도 여느 시스템과 마찬가지로 보안 위협으로부터 안전하기 위해서는 올바른 보호 대책이 필요합니다.

시만텍 엔지니어들은 악성 코드 개발자가 자동화된 분석을 피하기 위해 새롭게 구사하는 기법을 예의 주시하고 있습니다. 평판 기반 탐지와 같은 다양한 사전 예방적 탐지 방법을 복합적으로 활용하면 보안을 보장할 수 있습니다.

가상 시스템 관련 보안 위협에 대한 자세한 내용은 시만텍 백서, 가상 환경에 대한 보안 위협(Threats to Virtual Environments)을 참조하십시오.

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Related Entries and Links

No Related Resource entered.