KR102023746B1 - 악성코드 탐지 방법 및 장치 - Google Patents

악성코드 탐지 방법 및 장치 Download PDF

Info

Publication number
KR102023746B1
KR102023746B1 KR1020190034261A KR20190034261A KR102023746B1 KR 102023746 B1 KR102023746 B1 KR 102023746B1 KR 1020190034261 A KR1020190034261 A KR 1020190034261A KR 20190034261 A KR20190034261 A KR 20190034261A KR 102023746 B1 KR102023746 B1 KR 102023746B1
Authority
KR
South Korea
Prior art keywords
system information
inquiry
malware detection
score
items
Prior art date
Application number
KR1020190034261A
Other languages
English (en)
Inventor
전수원
조석래
최용호
Original Assignee
넷마블 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 넷마블 주식회사 filed Critical 넷마블 주식회사
Priority to KR1020190034261A priority Critical patent/KR102023746B1/ko
Application granted granted Critical
Publication of KR102023746B1 publication Critical patent/KR102023746B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

악성코드 탐지 방법 및 장치가 개시된다. 악성코드 탐지 방법은 프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하는 단계, 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회하는 단계, 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 기초하여 프로세스에 대한 스코어를 결정하는 단계, 스코어가 미리 정해진 조건을 만족시키는 경우, 조회한 시스템 정보를 변조하는 단계 및 변조된 시스템 정보를 프로세스에 전송하는 단계를 포함한다.

Description

악성코드 탐지 방법 및 장치{METHOD AND APPARATUS FOR DETECTING MALICIOUS CODES}
아래 실시예들은 악성코드 탐지 기술에 관한 것이다.
최근 악성코드가 시스템에 침투하여 시스템을 감염시키는 방법이 계속해서 더 교묘해지고 있고, 악성코드에 감염된 시스템의 치료 방법도 까다로워지고 있다. 또한, 계속해서 새로운 악성코드가 배포되고 있어 새로운 악성코드가 배포되는 속도를 백신이 개발되는 속도가 따라가지 못하는 경우도 허다하다. 악성코드의 배포자들은 새로운 백신의 특징과 허점을 파악해, 새로운 백신을 피해갈 수 있는 악성코드를 빠르게 배포하고 있어, 새로운 악성코드의 특징을 예측하여 미리 백신을 개발하는 것에는 분명한 한계가 있다.
게다가 악성코드는 가상 환경에서는 실행되지 않는 안티VM(Virtual Machine) 기술을 갖추고 있어, 실제 시스템은 악성코드에 감염이 되지 않은 상태에서, 가상 환경에서만 악성코드를 실행시켜 악성코드의 특징을 분석하는 방법도 실현이 불가능하다. 따라서, 악성코드와 관련된 한계를 보완할 수 있는 연구가 필요한 실정이다.
일 실시예에 따른 악성코드 탐지 방법은, 프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하는 단계; 상기 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회하는 단계; 상기 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 기초하여 상기 프로세스에 대한 스코어를 결정하는 단계; 상기 스코어가 미리 정해진 조건을 만족시키는 경우, 상기 조회한 시스템 정보를 변조하는 단계; 및 상기 변조된 시스템 정보를 상기 프로세스에 전송하는 단계를 포함할 수 있다.
상기 스코어를 결정하는 단계는, 상기 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도를 결정하는 단계를 포함할 수 있다.
상기 유사도를 결정하는 단계는, 상기 조회 요청된 시스템 정보 항목들과 상기 기준 시스템 정보 항목들 간에 서로 동일한 항목의 개수 또는 비율에 기초하여 상기 유사도를 결정하는 단계를 포함할 수 있다.
상기 기준 시스템 정보 항목들은, 하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함할 수 있다.
상기 변조된 시스템 정보를 전송하는 단계는, 상기 스코어가 미리 정해진 임계 값 이상인 경우, 상기 프로세스에 변조된 시스템 정보를 전송하는 것으로 결정하는 단계를 포함할 수 있다.
상기 시스템 정보를 변조하는 단계는, 상기 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조하는 단계를 포함할 수 있다.
상기 시스템 정보를 변조하는 단계는, 하드디스크 정보, SCSI(Small Computer System Interface) 포트, 파일 경로, 프로세스 이름, IDT(Interrupt Descriptor Table), CPU(Central Processing Unit), 네트워크 정보 및 VGA(Video Graphics Array) 정보 중 적어도 하나에 대한 정보를 변조하는 단계를 포함할 수 있다.
일 실시예에 따른 악성코드 탐지 방법은 상기 스코어가 상기 미리 정해진 조건을 만족시키지 않는 경우, 상기 프로세스에 상기 조회한 시스템 정보를 전송하는 단계를 더 포함할 수 있다.
일 실시예에 따른 악성코드 탐지 방법은, 프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하는 단계; 상기 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회하는 단계; 상기 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류가 미리 설정된 조건을 만족시키는 경우, 상기 조회한 시스템 정보를 변조하는 단계; 상기 프로세스에 상기 변조된 시스템 정보를 전송하는 단계; 및 상기 변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지된 경우, 상기 프로세스를 악성코드인 것으로 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 악성코드 탐지 방법은 상기 변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지되지 않은 경우, 상기 프로세스를 악성코드가 아닌 정상적인 프로세스인 것으로 결정하는 단계를 더 포함할 수 있다.
상기 조회 요청된 시스템 정보 항목들의 종류가 미리 설정된 조건을 만족시키는 경우는, 상기 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도를 결정하여, 상기 유사도가 미리 설정된 조건을 만족시키는 경우를 의미할 수 있다.
상기 기준 시스템 정보 항목들은, 하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함할 수 있다.
상기 조회한 시스템 정보를 변조하는 단계는, 상기 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조하는 단계를 포함할 수 있다.
일 실시예에 따른 악성코드 실행 방지 방법을 수행하는 악성코드 탐지 장치는, 메모리 및 프로세서를 포함하고, 상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들을 저장하고, 상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는, 프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하고, 상기 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회하고, 상기 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 기초하여 상기 프로세스에 대한 스코어를 결정하고, 상기 스코어가 미리 정해진 조건을 만족시키는 경우, 상기 조회한 시스템 정보를 변조하고, 상기 변조된 시스템 정보를 상기 프로세스에 전송할 수 있다.
상기 프로세서는, 상기 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도를 결정할 수 있다.
상기 프로세서는, 상기 조회 요청된 시스템 정보 항목들과 상기 기준 시스템 정보 항목들 간에 서로 동일한 항목의 개수 또는 비율에 기초하여 상기 유사도를 결정할 수 있다.
상기 기준 시스템 정보 항목들은, 하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함할 수 있다.
상기 프로세서는, 상기 스코어가 미리 정해진 임계 값 이상인 경우, 상기 프로세스에 변조된 시스템 정보를 전송하는 것으로 결정할 수 있다.
상기 프로세서는, 상기 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조할 수 있다.
상기 프로세서는, 하드디스크 정보, SCSI(Small Computer System Interface) 포트, 파일 경로, 프로세스 이름, IDT(Interrupt Descriptor Table), CPU(Central Processing Unit), 네트워크 정보 및 VGA(Video Graphics Array) 정보 중 적어도 하나에 대한 정보를 변조할 수 있다.
상기 프로세서는, 상기 스코어가 상기 미리 정해진 조건을 만족시키지 않는 경우, 상기 프로세스에 상기 조회한 시스템 정보를 전송할 수 있다.
일 실시예에 따른 악성코드 탐지 방법을 수행하는 악성코드 탐지 장치는, 메모리 및 프로세서를 포함하고, 상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들을 저장하고, 상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는, 프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하고, 상기 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회하고, 상기 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류가 미리 설정된 조건을 만족시키는 경우, 상기 조회한 시스템 정보를 변조하고, 상기 프로세스에 상기 변조된 시스템 정보를 전송하고, 상기 변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지된 경우, 상기 프로세스를 악성코드인 것으로 결정할 수 있다.
상기 프로세서는, 상기 변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지되지 않은 경우, 상기 프로세스를 악성코드가 아닌 정상적인 프로세스인 것으로 결정할 수 있다.
상기 조회 요청된 시스템 정보 항목들의 종류가 미리 설정된 조건을 만족시키는 경우는, 상기 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도를 결정하여, 상기 유사도가 미리 설정된 조건을 만족시키는 경우를 의미할 수 있다.
상기 기준 시스템 정보 항목들은, 하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함할 수 있다.
상기 프로세서는, 상기 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조할 수 있다.
일 실시예에 따르면, 악성코드가 가상 환경에서는 실행을 중지하는 특징을 통해 악성코드가 시스템에서 실행되는 것을 방지할 수 있다.
일 실시예에 따르면, 악성코드에 대한 시그니처 및 치료법이 개발되기 전에 악성코드가 시스템에서 실행되지 못하도록 방지할 수 있다.
일 실시예에 따르면, 백신에서 탐지하지 못하는 악성코드에 대한 시그니처가 확보되기까지 필요한 시간을 확보할 수 있다.
일 실시예에 따르면, 시스템에 침투한 악성코드를 탐지하고, 동시에 악성코드의 실행은 방지하여, 악성코드에 대한 치료 방법이 개발될 때까지 시간을 확보할 수 있다.
도 1은 일 실시예에 따른 악성코드 탐지 시스템의 개요를 도시한 도면이다.
도 2는 일 실시예에 따른 악성코드 실행 방지 방법의 동작을 설명하는 흐름도이다.
도 3은 일 실시예에 따른 악성 코드 탐지 방법의 동작을 설명하는 흐름도이다.
도 4는 일 실시예에 따른 윈도우 기반의 시스템을 가상 환경으로 변조하는 방법을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 리눅스 기반의 시스템을 가상 환경으로 변조하는 방법을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 시스템 정보의 변조를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 악성코드 탐지 장치의 구성을 도시한 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 악성코드 탐지 시스템의 개요를 도시한 도면이다.
도 1을 참조하면, 악성코드 탐지 장치(130)는 시스템(120)에 시스템 정보의 조회를 요청한 프로세스(110)가 악성코드인지 여부를 추정할 수 있다. 여기서, 시스템(120)은 예를 들어 컴퓨터 운영 체제 시스템일 수 있다. 추정 결과에 따라, 프로세스(110)가 악성코드인 것으로 판단된 경우, 악성코드 탐지 장치(130)는 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조함으로써 악성코드의 실행을 방지할 수 있다.
악성코드는, 예를 들어 악성코드 분석가나 분석 장치에 노출되지 않기 위하여, 가상 환경에서 실행되는 것을 보류하는 기능을 갖출 수 있다. 이러한 기능을 안티 VM(virtual machine) 기능이라고 할 수 있다. 악성코드 탐지 장치(130)는 악성코드가 갖춘 안티 VM 기능을 역이용하여, 악성코드로 의심을 받는 프로세스(110)가 요청한 시스템 정보를 가상 환경으로 변조하고, 변조된 시스템 정보를 수신한 프로세스(110)가 실행을 중지하면 악성코드로 판단할 수 있다.
일 실시예에서, 프로세스(110)는 시스템(120)에 시스템 정보의 조회 요청 데이터를 전송할 수 있다. 시스템(120)은 프로세스(110)로부터 수신한 시스템 정보의 조회 요청 데이터에 응답하여 시스템 정보를 조회할 수 있고, 조회한 결과를 프로세스(110)에 전송할 수 있다. 여기서 시스템(120)은 윈도우, 리눅스 및 IOS 등을 기반으로 하는 시스템을 의미할 수 있다. 악성코드 탐지 장치(130)는 시스템(120)이 프로세스(110)로부터 수신한 시스템 정보 조회 요청 데이터에 기초하여 프로세스(110)가 악성코드인지 여부를 판단할 수 있다. 악성코드 탐지 장치(130)는 프로세스(110)가 악성코드인지 여부를 판단한 결과에 기초하여, 프로세스(110)가 악성코드로 판단된 경우에는, 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조할 수 있다. 반면에 프로세스(110)가 악성코드가 아닌 것으로 판단된 경우에는 시스템 정보를 변조하지 않을 수 있다. 변조되는 시스템 정보는 물리 서버와 가상 서버로 구분될 수 있는 데이터로 제한될 수 있다.
다른 실시예에서 악성코드 탐지 장치(130)는 시스템(120)을 통해 악성코드인 것으로 의심되는 프로세스(110)에 변조된 시스템 정보를 전송할 수 있고, 변조된 시스템 정보를 수신한 프로세스(110)가 실행을 중지할 경우, 프로세스(110)가 악성코드인 것으로 판단할 수 있다. 반면에, 프로세스(110)가 정상적으로 실행할 경우에는, 악성코드 탐지 장치(130)는 프로세스(110)가 악성코드가 아닌 것으로 판단할 수 있다.
실시예에 따라, 악성코드 탐지 장치(130)는 시스템(120)에 내부에 포함되어 동작할 수 있고, 또는 시스템(120) 내부에 포함되지 않고 외부에서 동작할 수 있다. 악성코드 탐지 장치(130)는 악성코드를 탐지하는 기능을 수행할 수 있고, 탐지된 악성코드의 실행을 방지하는 기능도 수행하여 악성코드 실행 방지 장치로서 기능할 수도 있다.
도 2는 일 실시예에 따른 악성코드 실행 방지 방법의 동작을 설명하는 흐름도이다. 일 실시예에서, 악성코드 실행 방지 방법은 본 명세서에서 설명되는 악성코드 탐지 장치에 의해 수행될 수 있다.
도 2를 참조하면 단계(210)에서, 악성코드 탐지 장치는 프로세스로부터 시스템 정보의 조회 요청 데이터를 수신할 수 있다. 여기서, 프로세스는 악성코드 탐지 장치가 악성코드인지 여부를 판단하는 대상이 될 수 있다. 또한, 프로세스는 시스템 정보의 조회 요청 데이터를 통해 시스템에 시스템 정보의 조회를 요청할 수 있다. 프로세스가 조회를 요청할 수 있는 시스템 정보는 예를 들어, 하드 디스크, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나와 관련된 정보가 될 수 있다.
단계(220)에서, 시스템은 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회할 수 있고, 단계(230)에서 악성코드 탐지 장치는 프로세스로부터 수신한 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 기초하여 프로세스에 대한 스코어를 결정할 수 있다. 여기서 프로세스에 대한 스코어는 프로세스가 악성코드인지 여부를 판단하기 위한 스코어로서, 프로세스가 조회 요청을 해온 시스템 정보 항목들의 종류와, 일반적인 악성코드가 시스템에 조회를 요청하는 시스템 정보 항목들의 종류 간의 유사도를 의미할 수 있다.
프로세스에 대한 스코어가 높으면 악성코드로 판단될 가능성이 높고, 프로세스에 대한 스코어가 낮으면 악성코드로 판단될 가능성이 낮아질 수 있다. 일반적인 악성코드가 시스템에 조회를 요청하는 시스템 정보 항목들을 기준 시스템 정보 항목들이라고도 할 수 있다. 즉, 프로세스에 대한 스코어를 결정하는 것은 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도를 결정하는 것이라고도 할 수 있다.
일 실시예에서, 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도는 프로세스로부터 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간에 서로 동일한 항목의 개수 또는 비율에 기초하여 결정될 수 있다. 여기서, 기준 시스템 정보 항목들은, 하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함할 수 있다.
단계(240)에서 악성코드 탐지 장치는 프로세스에 대응되는 스코어가 미리 정해진 기준을 만족시키는 지 여부를 판단할 수 있다. 일 실시예에서, 스코어가 미리 정해진 임계 값 이상인 경우, 악성코드 탐지 장치는 프로세스에 변조된 시스템 정보를 전송하는 것으로 결정할 수 있다. 반면에, 스코어가 미리 정해진 임계 값 미만인 경우, 악성코드 탐지 장치는 프로세스에 변조되지 않은 조회한 시스템 정보를 전송하는 것으로 결정할 수 있다.
일 실시예에서, 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간에 동일한 시스템 정보 항목이 절반 이상일 경우, 악성코드 탐지 장치는 프로세스에 대한 스코어가 미리 정해진 임계 값 이상인 것으로 판단될 수 있다. 스코어가 미리 정해진 임계 값 이상인 경우, 악성코드 탐지 장치는 스코어가 미리 정해진 조건을 만족시킨다고 판단할 수 있다. 반면에, 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간에 동일한 시스템 정보 항목이 절반 미만일 경우, 악성코드 탐지 장치는 프로세스에 대한 스코어가 미리 정해진 조건을 만족시키지 않는다고 판단할 수 있다.
단계(250)에서 스코어가 미리 정해진 조건을 만족시키는 경우, 악성코드 탐지 장치는 시스템에서 조회한 시스템 정보를 변조할 수 있다. 일 실시예에서 악성코드 탐지 장치는, 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조할 수 있다. 악성코드 탐지 장치는 프로세스로부터 수신한 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 대응하는 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조할 수 있다. 악성코드 탐지 장치는 하드디스크 정보, SCSI(Small Computer System Interface) 포트, 파일 경로, 프로세스 이름, IDT(Interrupt Descriptor Table), CPU(Central Processing Unit), 네트워크 정보 및 VGA(Video Graphics Array) 정보 중 적어도 하나에 대한 정보를 변조할 수 있다.
악성코드 탐지 장치는 프로세스로부터 수신한 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 대응하는 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조한 악성코드 실행 방지 시스템은 단계(260)에서 시스템을 통해 변조된 시스템 정보를 프로세스에 전송할 수 있다.
스코어가 미리 정해진 조건을 만족시키지 않는 경우, 단계(270)에서 시스템은 프로세스에 조회한 시스템 정보를 전송할 수 있다. 여기서 전송되는 시스템 정보는 변조되지 않은 시스템 정보가 될 수 있다.
도 3은 일 실시예에 따른 악성 코드 탐지 방법의 동작을 설명하는 흐름도이다. 일 실시예에서, 악성코드 실행 방지 방법은 본 명세서에서 설명되는 악성코드 탐지 장치에 의해 수행될 수 있다.
도 3을 참조하면 단계(310)에서, 악성코드 탐지 장치는 프로세스로부터 시스템 정보의 조회 요청 데이터를 수신할 수 있다. 여기서, 시스템 정보의 조회 요청 데이터는 프로세스가 조회하고자 하는 시스템 정보 항목들의 종류를 포함할 수 있다. 단계(320)에서 시스템은 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회할 수 있다.
일 실시예에서 악성코드 탐지 장치는 프로세스가 조회하고자 하는 시스템 정보 항목들의 종류에 기초하여 프로세스에 가상 환경을 나타내는 시스템 정보로 변조된 시스템 정보를 전송할지 여부를 결정할 수 있다.
조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류가 미리 설정된 조건을 만족시키는 경우, 악성코드 탐지 장치는 단계(330)에서 조회한 시스템 정보를 변조할 수 있다. 여기서, 조회 요청된 시스템 정보 항목들의 종류가 미리 설정된 조건을 만족시키는 경우는, 악성코드 탐지 장치가 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도를 결정하고, 결정된 유사도가 미리 설정된 조건을 만족시키는 경우를 의미할 수 있다.
조회 요청된 시스템 정보 항목들의 종류가 미리 설정된 조건을 만족시킨다는 것은 프로세스가 조회 요청을 해온 시스템 정보 항목들의 종류와, 일반적인 악성코드가 시스템에 조회를 요청하는 시스템 정보 항목들의 종류(또는 기준 시스템 정보 항목들의 종류) 간에 동일한 종류가 절반 이상이라는 것을 의미할 수 있다. 기준 시스템 정보 항목들은, 하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함할 수 있다.
조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류가 미리 설정된 조건을 만족시키는 경우, 악성코드 탐지 장치는 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조할 수 있다.
예를 들어, 기준 시스템 정보 항목들의 종류에 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드가 포함되어 있을 수 있다. 이때, 프로세스가 조회를 요청해온 시스템 정보 항목들의 종류에는 프로세스, BIOS, 네트워크 및 비디오카드가 포함되어 있다면, 기준 시스템 정보 항목들과 프로세스로부터 조회 요청된 시스템 정보 항목들의 종류 간의 유사도는 0.8이 될 수 있다. 이 경우, 절반에 대응되는 유사도인 0.5보다 유사도가 높게 나왔기 때문에 악성코드 탐지 장치는 이 프로세스를 악성코드라고 판단할 수 있다.
단계(340)에서 악성코드 탐지 장치는 프로세스에 변조된 시스템 정보를 전송할 수 있고, 변조된 시스템 정보를 수신한 프로세스가 실행이 중단되는지 여부를 감지할 수 있다. 악성코드 탐지 장치는 악성코드가 가상 환경에서는 실행을 중지하는 특징을 이용하여, 가상 환경을 나타내는 시스템 정보로 변조된 시스템 정보를 수신한 프로세스가 실행을 중지하면, 프로세스가 악성코드인 것으로 판단할 수 있다. 반면에, 가상 환경을 나타내는 시스템 정보로 변조된 시스템 정보를 수신한 프로세스가 실행된다면, 악성코드 탐지 장치는 프로세스가 악성코드가 아닌, 정상적인 프로세스인 것으로 판단할 수 있다.
변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지된 경우, 단계(350)에서 악성코드 탐지 장치는 프로세스를 악성코드인 것으로 결정할 수 있다. 반면에, 변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지되지 않은 경우, 단계(360)에서 악성코드 탐지 장치는 프로세스를 악성코드가 아닌 정상적인 프로세스인 것으로 결정할 수 있다.
도 4는 일 실시예에 따른 윈도우 기반의 시스템을 가상 환경으로 변조하는 방법을 설명하기 위한 도면이다.
일반적으로 악성코드가 시스템에 조회를 요청하는 시스템 정보 항목들의 종류가 기준 시스템 정보 항목들의 종류로서 존재할 수 있다. 시스템은 기준 시스템 정보 항목들과 프로세스로부터 조회 요청된 시스템 정보 항목들의 종류 간의 유사도에 기초하여 프로세스가 악성코드인지 여부를 판단할 수 있다.
프로세스가 악성코드인 것으로 판단된 경우, 악성코드 탐지 장치는 시스템 정보를 변조할 수 있고, 시스템은 변조된 시스템 정보를 프로세스에 전송할 수 있다.
도 4를 참조하면, 일 실시예에서 악성코드(410)는 윈도우 기반의 시스템에 시스템 정보에 대한 조회를 요청하는 시스템 정보 조회 요청 데이터를 전송할 수 있다. 시스템 정보 조회 요청 데이터에는 조회 요청된 시스템 정보 항목들의 종류(420)가 포함될 수 있다. 조회 요청된 시스템 정보 항목들의 종류(420)는 하드 디스크 정보(HDD 디스크 정보), SCI(Serial communication interface) 포트 확인 정보, 파일 경로, 프로세스 이름, IDT(Interrupt descriptor table), CPU(Central processing unit), 네트워크 정보 및 VGA(Video graphics array) 정보 중 적어도 하나를 포함할 수 있다. 시스템은 조회 요청된 시스템 정보 항목들의 종류(420)에 대응되는 시스템 정보를 조회하기 위하여 악성코드 탐지 장치는 시스템 정보를 조회할 수 있는 정보(430)를 찾아볼 수 있다. 시스템 정보를 조회할 수 있는 정보(430)에는 레지스트리, 파일/디렉토리, PSAPI(Process status application programming interface), IDTR 레지스터(Interrupt descriptor table register), CPU API(Application programming interface) 및 네트워크 API를 찾아볼 수 있다. 예를 들어, 시스템은 하드 디스크 정보(HDD 디스크 정보), SCI(Serial communication interface) 포트 확인 정보 및 VGA 정보는 레지스트리에서, 파일 경로는 파일/디렉토리에서, 프로세스 이름은 Process Status API에서, IDT는 IDTR 레지스터에서, CPU는 CPU API에서, 그리고 네트워크 정보는 네트워크 API에서 조회할 수 있다.
악성코드 탐지 장치는 윈도우 기반의 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조하기 위하여, SSDT(System Service Descriptor Table)(450)에 대하여 SSDT 후킹(440)을 수행할 수 있다. 윈도우를 기반으로 하는 시스템은 레지스트리나 윈도우 API를 통해 종보를 요청하고 응답을 수신하는 구조로 시스템 정보를 수집할 수 있는데 시스템은 악성코드(410)가 요청한 시스템 정보에 대한 응답을 후킹하여 시스템 정보를 변조할 수 있다. SSDT 후킹(440)을 통해 변조된 시스템 정보는 시스템의 커널(460)로 전송되어 악성코드(410)에 전송될 수 있다.
도 5는 일 실시예에 따른 리눅스 기반의 시스템을 가상 환경으로 변조하는 방법을 설명하기 위한 도면이다.
도 5를 참조하면 일 실시예에서, 악성코드(510)는 리눅스 기반의 시스템에 시스템 정보에 대한 조회를 요청하는 시스템 정보 조회 요청 데이터를 전송할 수 있다. 시스템 정보 조회 요청 데이터에는 조회 요청된 시스템 정보 항목들의 종류(520)가 포함될 수 있다. 조회 요청된 시스템 정보 항목들의 종류(520)는 하드 디스크 정보(HDD 디스크 정보), SCI(Serial communication interface) 포트 확인 정보, 파일 경로, 프로세스 이름, IDT(Interrupt descriptor table), CPU(Central processing unit), 네트워크 정보 및 VGA(Video graphics array) 정보 중 적어도 하나를 포함할 수 있다. 시스템은 조회 요청된 시스템 정보 항목들의 종류(520)에 대응되는 시스템 정보를 조회하기 위하여 악성코드 탐지 장치는 시스템 정보를 조회할 수 있는 명령어(530) 찾아볼 수 있다. 시스템 정보를 조회할 수 있는 명령어(530)에 기초하면, 시스템은 하드 디스크 정보(HDD 디스크 정보)는 /proc/ide, SCI(Serial communication interface) 포트 확인 정보는 /proc/scsi, 파일 경로는 /usr/bin, 프로세스 이름은 /proc/pid, IDT는 /proc/interrupts, CPU는 /proc/cpuinfo, 네트워크 정보는 /proc/net, 그리고 VGA 정보는 /proc/device를 통해 조회할 수 있다.
악성코드 탐지 장치는 리눅스 기반의 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조하기 위하여, PROC(550)에 대하여 PROC 후킹(540)을 수행할 수 있다. 여기서 PROC(550)는 리눅스 기반의 시스템에서 /proc명령어를 통해 접근할 수 있는 파일 시스템을 의미할 수 있다. 리눅스를 기반으로 하는 시스템은 악성코드(510)가 조회를 요청한 시스템 정보에 대한 응답을 후킹하여 시스템 정보를 변조할 수 있다. PROC 후킹(540)을 통해 변조된 시스템 정보는 시스템의 커널(560)로 전송되어 악성코드(510)에 전송될 수 있다.
도 6은 일 실시예에 따른 시스템 정보의 변조를 설명하기 위한 도면이다.
도 6을 참조하면, 시스템은 시스템 정보를 순차적으로 조회할 수 있다.
일 실시예에서, 프로세스가 조회를 요청해온 시스템 정보 항목들의 종류에 하드디스크 정보, SCSI 포트 정보, 파일 경로, 프로세스, IDT, CPU, 네트워크 및 VGA이 포함되어 있을 경우, 시스템은 단계(610)에서는 하드디스크 정보를 조회할 수 있고, 단계(620)에서는 SCSI 포트 정보를 조회할 수 있고, 단계(630)에서 파일 경로를 조회할 수 있다. 또한, 단계(640)에서 프로세스와 관련된 정보를 조회할 수 있고, 단계(650)에서 IDT 와 관련된 정보를 조회할 수 있고, 단계(660)에서는 CPU 와 관련된 정보를 조회할 수 있고, 단계(670)에서는 네트워크 정보를 조회할 수 있고, 단계(680)에서는 VGA 정보를 조회할 수 있다.
단계(610, 620, 630, 640, 650, 660, 670 및 680)에서 조회하는 시스템 정보의 종류들은 물리 서버와 가상 서버로 구분될 수 있기 때문에, 시스템 정보의 조회를 요청해온 프로세스가 악성코드로 판단될 경우에는, 악성코드 탐지 장치가 단계(610, 620, 630, 640, 650, 660, 670 및 680)에서 조회된 시스템 정보들을 가상 환경을 나타내도록 변조할 수 있다.
다른 실시예에서 프로세스가 조회를 요청해온 시스템 정보 항목들의 종류에 SCSI 포트 정보, 프로세스, IDT, CPU, 네트워크 및 VGA이 포함되어 있을 경우, 시스템은 단계(620)에서는 SCSI 포트 정보를 조회할 수 있고, 단계(640)에서 프로세스와 관련된 정보를 조회할 수 있다. 또한, 단계(650)에서 IDT 와 관련된 정보를 조회할 수 있고, 단계(660)에서는 CPU 와 관련된 정보를 조회할 수 있고, 단계(670)에서는 네트워크 정보를 조회할 수 있고, 단계(680)에서는 VGA 정보를 조회할 수 있다. 프로세스가 조회를 요청해온 시스템 정보 항목들의 종류에 하드디스크 정보와 파일 경로는 포함되어 있지 않기 때문에, 단계(610)과 단계(630)는 수행되지 않을 수 있다.
도 7은 일 실시예에 따른 악성코드 탐지 장치의 구성을 도시한 도면이다.
도 7을 참조하면, 악성코드 탐지 장치(700)는 통신 인터페이스(710), 프로세서(720), 메모리(730)를 포함할 수 있다. 실시예에 따라, 악성코드 탐지 장치(700)는 데이터베이스(740)를 더 포함할 수도 있다.
메모리(730)는 프로세서(720)에 연결되고, 프로세서(720)에 의해 실행가능한 인스트럭션들, 프로세서(720)가 연산할 데이터 또는 프로세서(720)에 의해 처리된 데이터를 저장할 수 있다. 메모리(730)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.
통신 인터페이스(710)는 외부 장치(예를 들어, 시스템)와 통신하기 위한 인터페이스를 제공한다. 통신 인터페이스(710)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.
데이터베이스(740)는 악성코드 탐지 장치(700)가 동작하는데 필요한 데이터를 저장할 수 있다. 예를 들어, 데이터베이스(740)는 프로세스가 악성코드인지 여부를 판단하기 위한 기준이 되는 악성코드가 조회를 요청한 시스템 정보 항목들과 관련된 정보를 저장할 수 있다.
프로세서(720)는 악성코드 탐지 장치(700) 내에서 실행하기 위한 기능 및 인스트럭션들을 실행하고, 악성코드 탐지 장치(700)의 전체적인 동작을 제어한다. 프로세서(720)는 도 2 및 도 3에서 설명된 악성코드 탐지 장치(700)의 동작과 관련된 하나 이상의 동작을 수행할 수 있다.
예를 들어, 프로세서(720)는 프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하고, 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회할 수 있다. 또한, 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 기초하여 프로세스에 대한 스코어를 결정하고, 스코어가 미리 정해진 조건을 만족시키는 경우, 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조하여 변조된 시스템 정보를 상기 프로세스에 전송할 수 있다. 여기서, 프로세스에 대한 스코어는 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도를 의미할 수 있다. 스코어가 미리 정해진 조건을 만족시키지 않는 경우, 프로세서(720)는 프로세스에 프로세스가 조회한 시스템 정보를 전송할 수 있다. 실시예에 따라서 프로세서(720)는, 변조된 시스템 정보의 전송 이후에 프로세스의 실행 중단이 감지된 경우, 프로세스를 악성코드인 것으로 결정할 수도 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
110: 프로세스 120: 시스템
130, 700: 악성코드 탐지 장치
710: 통신 인터페이스 720: 프로세서
730: 메모리 740: 데이터베이스

Claims (27)

  1. 악성코드 탐지 방법에 있어서,
    프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하는 단계;
    상기 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회하는 단계;
    상기 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 기초하여 상기 프로세스에 대한 스코어를 결정하는 단계;
    상기 스코어가 미리 정해진 조건을 만족시키는 경우, 상기 조회한 시스템 정보를 변조하는 단계; 및
    상기 변조된 시스템 정보를 상기 프로세스에 전송하는 단계를 포함하고,
    상기 스코어를 결정하는 단계는,
    상기 조회 요청된 시스템 정보 항목들과 상기 기준 시스템 정보 항목들 간의 유사도를 의미하는 상기 스코어를 결정하는 단계를 포함하고,
    상기 시스템 정보를 변조하는 단계는,
    상기 스코어가 미리 정해진 임계 값 이상인 경우, 상기 시스템 정보의 조회를 요청한 상기 프로세스가 악성코드인 것으로 추정하고, 상기 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조하는 단계를 포함하는,
    악성코드 탐지 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 스코어를 결정하는 단계는,
    상기 조회 요청된 시스템 정보 항목들과 상기 기준 시스템 정보 항목들 간에 서로 동일한 항목의 개수 또는 비율에 기초하여 상기 유사도를 결정하는 단계
    를 포함하는,
    악성코드 탐지 방법.
  4. 제1항에 있어서,
    상기 기준 시스템 정보 항목들은,
    하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함하는,
    악성코드 탐지 방법.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 시스템 정보를 변조하는 단계는,
    하드디스크 정보, SCSI(Small Computer System Interface) 포트, 파일 경로, 프로세스 이름, IDT(Interrupt Descriptor Table), CPU(Central Processing Unit), 네트워크 정보 및 VGA(Video Graphics Array) 정보 중 적어도 하나에 대한 정보를 변조하는 단계
    를 포함하는,
    악성코드 탐지 방법.
  8. 제1항에 있어서,
    상기 스코어가 상기 미리 정해진 조건을 만족시키지 않는 경우, 상기 프로세스에 상기 조회한 시스템 정보를 전송하는 단계
    를 더 포함하는,
    악성코드 탐지 방법,
  9. 악성코드 탐지 방법에 있어서,
    프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하는 단계;
    상기 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회하는 단계;
    상기 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 기초하여 결정된 스코어가 미리 설정된 조건을 만족시키는 경우, 상기 조회한 시스템 정보를 변조하는 단계;
    상기 프로세스에 상기 변조된 시스템 정보를 전송하는 단계; 및
    상기 변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지된 경우, 상기 프로세스를 악성코드인 것으로 결정하는 단계를 포함하고,
    상기 시스템 정보를 변조하는 단계는,
    상기 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도를 의미하는 스코어를 결정하는 단계; 및
    상기 유사도가 미리 정해진 임계 값 이상인 경우, 상기 시스템 정보의 조회를 요청한 상기 프로세스가 악성코드인 것으로 추정하고, 상기 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조하는 단계
    를 포함하는,
    악성코드 탐지 방법.
  10. 제9항에 있어서,
    상기 변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지되지 않은 경우, 상기 프로세스를 악성코드가 아닌 정상적인 프로세스인 것으로 결정하는 단계
    를 더 포함하는,
    악성코드 탐지 방법.
  11. 삭제
  12. 제9항에 있어서,
    상기 기준 시스템 정보 항목들은,
    하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함하는,
    악성코드 탐지 방법.
  13. 삭제
  14. 제1항, 제3항, 제4항, 7항 내지 제10항 및 제12항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록매체.
  15. 악성코드 실행 방지 방법을 수행하는 악성코드 탐지 장치에 있어서,
    메모리 및 프로세서를 포함하고,
    상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들(instructions)을 저장하고,
    상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
    프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하고,
    상기 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회하고,
    상기 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 기초하여 상기 프로세스에 대한 스코어를 결정하고,
    상기 스코어가 미리 정해진 조건을 만족시키는 경우, 상기 조회한 시스템 정보를 변조하고,
    상기 변조된 시스템 정보를 상기 프로세스에 전송하고,
    상기 프로세서는,
    상기 조회 요청된 시스템 정보 항목들과 상기 기준 시스템 정보 항목들 간의 유사도를 의미하는 상기 스코어를 결정하고,
    상기 스코어가 미리 정해진 임계 값 이상인 경우, 상기 시스템 정보의 조회를 요청한 상기 프로세스가 악성코드인 것으로 추정하고, 상기 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조하는,
    악성코드 탐지 장치.
  16. 삭제
  17. 제15항에 있어서,
    상기 프로세서는,
    상기 조회 요청된 시스템 정보 항목들과 상기 기준 시스템 정보 항목들 간에 서로 동일한 항목의 개수 또는 비율에 기초하여 상기 유사도를 결정하는,
    악성코드 탐지 장치.
  18. 제15항에 있어서,
    상기 기준 시스템 정보 항목들은,
    하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함하는,
    악성코드 탐지 장치.
  19. 삭제
  20. 삭제
  21. 제15항에 있어서,
    상기 프로세서는,
    하드디스크 정보, SCSI(Small Computer System Interface) 포트, 파일 경로, 프로세스 이름, IDT(Interrupt Descriptor Table), CPU(Central Processing Unit), 네트워크 정보 및 VGA(Video Graphics Array) 정보 중 적어도 하나에 대한 정보를 변조하는,
    악성코드 탐지 장치.
  22. 제15항에 있어서,
    상기 프로세서는,
    상기 스코어가 상기 미리 정해진 조건을 만족시키지 않는 경우, 상기 프로세스에 상기 조회한 시스템 정보를 전송하는,
    악성코드 탐지 장치.
  23. 악성코드 탐지 방법을 수행하는 악성코드 탐지 장치에 있어서,
    메모리 및 프로세서를 포함하고,
    상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들(instructions)을 저장하고,
    상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
    프로세스로부터 시스템 정보의 조회 요청 데이터를 수신하고,
    상기 조회 요청 데이터의 수신에 응답하여 시스템 정보를 조회하고,
    상기 조회 요청 데이터에 의해 조회 요청된 시스템 정보 항목들의 종류에 기초하여 결정된 스코어가 미리 설정된 조건을 만족시키는 경우, 상기 조회한 시스템 정보를 변조하고,
    상기 프로세스에 상기 변조된 시스템 정보를 전송하고,
    상기 변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지된 경우, 상기 프로세스를 악성코드인 것으로 결정하고,
    상기 프로세서는,
    상기 조회 요청된 시스템 정보 항목들과 기준 시스템 정보 항목들 간의 유사도를 의미하는 스코어를 결정하고,
    상기 유사도가 미리 정해진 임계 값 이상인 경우, 상기 시스템 정보의 조회를 요청한 상기 프로세스가 악성코드인 것으로 추정하고, 상기 조회한 시스템 정보를 가상 환경을 나타내는 시스템 정보로 변조하는,
    악성코드 탐지 장치.
  24. 제23항에 있어서,
    상기 프로세서는,
    상기 변조된 시스템 정보의 전송 이후에 상기 프로세스의 실행 중단이 감지되지 않은 경우, 상기 프로세스를 악성코드가 아닌 정상적인 프로세스인 것으로 결정하는,
    악성코드 탐지 장치.
  25. 삭제
  26. 제23항에 있어서,
    상기 기준 시스템 정보 항목들은,
    하드 디스크 정보, 파일 경로, 프로세스, BIOS, 네트워크 및 비디오카드 중 적어도 하나에 대한 항목을 포함하는,
    악성코드 탐지 장치.
  27. 삭제
KR1020190034261A 2019-03-26 2019-03-26 악성코드 탐지 방법 및 장치 KR102023746B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190034261A KR102023746B1 (ko) 2019-03-26 2019-03-26 악성코드 탐지 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190034261A KR102023746B1 (ko) 2019-03-26 2019-03-26 악성코드 탐지 방법 및 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190112811A Division KR20200114993A (ko) 2019-09-11 2019-09-11 악성코드 탐지 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102023746B1 true KR102023746B1 (ko) 2019-09-20

Family

ID=68067480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190034261A KR102023746B1 (ko) 2019-03-26 2019-03-26 악성코드 탐지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102023746B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115544504A (zh) * 2022-09-23 2022-12-30 国网山西省电力公司 一种检测恶意代码的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110119918A (ko) * 2010-04-28 2011-11-03 한국전자통신연구원 정상 프로세스에 위장 삽입된 악성코드 탐지 장치, 시스템 및 방법
KR101086203B1 (ko) * 2011-07-15 2011-11-23 에스지에이 주식회사 악성 프로세스의 행위를 판단하여 사전에 차단하는 악성프로세스 사전차단 시스템 및 방법
KR20160065852A (ko) * 2013-10-04 2016-06-09 비트데펜더 아이피알 매니지먼트 엘티디 멀웨어 탐지를 위한 복합 스코어링
WO2018130903A1 (en) * 2017-01-11 2018-07-19 Morphisec Information Security Ltd. Protecting computing devices from a malicious process by exposing false information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110119918A (ko) * 2010-04-28 2011-11-03 한국전자통신연구원 정상 프로세스에 위장 삽입된 악성코드 탐지 장치, 시스템 및 방법
KR101086203B1 (ko) * 2011-07-15 2011-11-23 에스지에이 주식회사 악성 프로세스의 행위를 판단하여 사전에 차단하는 악성프로세스 사전차단 시스템 및 방법
KR20160065852A (ko) * 2013-10-04 2016-06-09 비트데펜더 아이피알 매니지먼트 엘티디 멀웨어 탐지를 위한 복합 스코어링
WO2018130903A1 (en) * 2017-01-11 2018-07-19 Morphisec Information Security Ltd. Protecting computing devices from a malicious process by exposing false information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115544504A (zh) * 2022-09-23 2022-12-30 国网山西省电力公司 一种检测恶意代码的方法和装置
CN115544504B (zh) * 2022-09-23 2023-12-29 国网山西省电力公司 一种检测恶意代码的方法和装置

Similar Documents

Publication Publication Date Title
AU2018311120B2 (en) Secure storage device
US9824217B2 (en) Runtime detection of self-replicating malware
JP6842367B2 (ja) ファイル中の悪意のあるコードの検出システム及び方法
US9336390B2 (en) Selective assessment of maliciousness of software code executed in the address space of a trusted process
US9094451B2 (en) System and method for reducing load on an operating system when executing antivirus operations
US20210286877A1 (en) Cloud-based method to increase integrity of a next generation antivirus (ngav) security solution in a virtualized computing environment
US9639693B2 (en) Techniques for detecting a security vulnerability
US9317691B2 (en) Pre-boot software verification
US9465636B2 (en) Controlling virtual machine in cloud computing system
US10027704B2 (en) Malicious program finding and killing device, method and server based on cloud security
US8990946B1 (en) System and methods of distributing antivirus checking tasks among virtual machines in a virtual network
JP2018041438A5 (ko)
EP2975548A1 (en) Customized extension of malware remediation capabilities of thin clients in virtual environments
US10902126B2 (en) Verification of a boot loader program at a control unit to be provided to a host system to load an operating system
US11520886B2 (en) Advanced ransomware detection
US11170077B2 (en) Validating the integrity of application data using secure hardware enclaves
JP2014071796A (ja) マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びプログラム
JP6096389B2 (ja) 検知装置、検知方法及び検知プログラム
US9202053B1 (en) MBR infection detection using emulation
KR102023746B1 (ko) 악성코드 탐지 방법 및 장치
US11263065B2 (en) Method for identifying at least one function of an operating system kernel
KR102382889B1 (ko) 프로세스 정보를 사용하여 웹쉘을 탐지하는 방법 및 시스템
KR20200114993A (ko) 악성코드 탐지 방법 및 장치
EP2881883B1 (en) System and method for reducing load on an operating system when executing antivirus operations
US10339313B2 (en) System and method for bypassing a malware infected driver

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant