KR20160138523A - 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치 - Google Patents

위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치 Download PDF

Info

Publication number
KR20160138523A
KR20160138523A KR1020167030047A KR20167030047A KR20160138523A KR 20160138523 A KR20160138523 A KR 20160138523A KR 1020167030047 A KR1020167030047 A KR 1020167030047A KR 20167030047 A KR20167030047 A KR 20167030047A KR 20160138523 A KR20160138523 A KR 20160138523A
Authority
KR
South Korea
Prior art keywords
file
risk file
risk
information
virtual environment
Prior art date
Application number
KR1020167030047A
Other languages
English (en)
Other versions
KR101974989B1 (ko
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 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드
Publication of KR20160138523A publication Critical patent/KR20160138523A/ko
Application granted granted Critical
Publication of KR101974989B1 publication Critical patent/KR101974989B1/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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 방법을 제공하며, 방법은 위험 파일의 존재를 검출할 때 컴퓨터 장치의 가상 환경에서 위험 파일을 실행하고, 가상 환경은 컴퓨터 장치의 실제 환경에서 적어도 하나의 실제 API와 동일한 적어도 하나의 가상 API를 포함하는 단계; 위험 파일에 대응하는 행위 정보를 획득하기 위해 가상 환경에서 위험 파일의 행위(들)를 감시하는 단계를 포함한다. 본 발명의 해결책에 따르면, 그것은 위험 파일의 파괴 행위를 수동으로 분석할 필요가 없고, 위험 파일의 행위 정보는 가상 환경에서 빠르게 획득될 수 있으며, 그것에 의해 컴퓨터 장치의 실제 시스템을 빠르게 그리고 완전히 복구한다.

Description

위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치{METHOD AND APPARATUS FOR DETERMINING BEHAVIOR INFORMATION CORRESPONDING TO A DANGEROUS FILE}
관련 출원에 대한 상호 참조
본 개시는 "위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치"(Method and Apparatus for Determining Behavior Information Corresponding to a Dangerous File)라는 발명의 명칭으로 2015년 3월 18일에 출원된 중국 특허 출원 제201510119820.7호의 우선권을 주장하며, 그 내용은 본 명세서에 전체적으로 참조로서 통합될 것이다.
기술 분야
본 개시는 컴퓨터 기술의 분야에 관한 것으로서, 특히 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치에 관한 것이다.
종래 기술에서, 위험 파일이 컴퓨터 장치에서 검출될 때, 위험 파일은 항상 단순한 삭제 동작의 대상이 된다. 그러나, 위험 파일이 컴퓨터 장치에서 실행되고 있을 때, 그것은 항상 파괴 행위(들)(예를 들어, 레지스트리 엔트리, 스케줄링된 작업, 실행 가능 파일 등 상에서 실행되는 파괴 행위(들))를 수행한다. 따라서, 위험 파일을 단순히 삭제하는 것은 컴퓨터 장치가 최초 정상 시스템 환경으로 복귀되게 할 수 없다.
아울러, 그러한 파괴 행위(들)는 위험 파일 및 그 실행 프로세스를 분석함으로써만 획득될 수 있으며, 이는 사용자가 상당한 시간 및 에너지를 투입하는 것을 필요로 하고, 처리 기간은 상당히 길고, 효율은 극히 낮으며; 더욱이, 수동 분석은 포괄적이지 않거나 위험 파일의 로직의 일부가 작동되지 않아서, 위험 파일의 모든 파괴 행위는 완전히 획득될 수 없다.
본 개시의 목적은 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치를 제공하는 것이다.
본 개시의 일 양태는 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 방법을 제공하며, 방법은 이하를 포함한다:
위험 파일의 존재를 검출할 때 컴퓨터 장치의 가상 환경에서 위험 파일을 실행하고, 가상 환경은 컴퓨터 장치의 실제 환경에서 적어도 하나의 실제 API와 동일한 적어도 하나의 가상 API를 포함하는 단계;
위험 파일에 대응하는 행위 정보를 획득하기 위해 가상 환경에서 위험 파일의 행위(들)를 감시하는 단계.
본 개시의 다른 양태는 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 장치를 제공하며, 장치는 이하를 포함한다:
위험 파일의 존재를 검출할 때 컴퓨터 장치의 가상 환경에서 위험 파일을 실행하도록 구성되고, 가상 환경은 컴퓨터 장치의 실제 환경에서 적어도 하나의 실제 API와 동일한 적어도 하나의 가상 API를 포함하는 모듈;
위험 파일에 대응하는 행위 정보를 획득하기 위해 가상 환경에서 위험 파일의 행위(들)를 감시하도록 구성되는 모듈.
종래 기술과 비교하면, 본 개시는 이하의 장점을 갖는다: 1) 그것은 컴퓨터 장치의 가상 환경에서 위험 파일을 실행함으로써 위험 파일의 행위 정보를 획득할 수 있다. 프로세스는 수동 분석을 필요로 하지 않고 따라서 행위 정보를 획득하는데 요구되는 시간을 크게 절약하며; 2) 위험 파일의 모든 동작 행위는 가상 API(들)의 가상 실행을 통해 기록될 수 있기 때문에, 컴퓨터 장치에 의해 획득되는 행위 정보는 포괄적이며, 그것에 의해 컴퓨터 장치의 실제 환경이 불완전 행위 정보로 인해 완전히 복구될 수 없는 상황을 회피하고; 3) 가상 환경에서 위험 파일을 실행하는 것은 컴퓨터 장치의 실제 환경에 영향을 미치지 않을 것이고, 컴퓨터 장치 내의 가상 환경의 점유 공간은 극히 작으며; 더욱이, 가상 환경에서 가상 API의 기능을 실제로 수행할 필요가 없으며, 그 대신, 실제 환경에서 가상 API에 대응하는 실제 API를 호출하는 것과 동일한 피드백 결과를 반환하는 것만이 필요하다. 이는 위험 파일이 가상 환경에서 더 빠르게 실행될 수 있게 하며, 그것에 의해 위험 파일의 행위 정보를 빠르게 획득하고; 4) 컴퓨터 장치는 가상 환경에서 획득되는 위험 파일의 행위 정보에 따라 컴퓨터 장치의 실제 환경을 복구할 수 있으며, 그것에 의해 위험 파일 및 위험 파일에 의해 해제되는 다른 위험 파일에 의해 야기되는 실제 환경에 대한 파괴를 빠르게 그리고 완전히 복구한다.
첨부 도면을 참조하여 비제한적 실시예의 이하의 상세한 설명을 판독하는 것을 통해 본 개시의 다른 특징, 목적, 및 장점이 더 명백해질 것이다.
도 1은 본 개시의 일 실시예에 따른 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 방법의 흐름도를 도시한다.
도 2는 본 개시의 다른 실시예에 따른 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 방법의 흐름도를 도시한다.
도 3은 본 개시의 일 실시예에 따른 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 장치의 구조도를 도시한다.
도 4는 본 개시의 다른 실시예에 따른 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 장치의 구조도를 도시한다.
도면 내의 동일 또는 유사한 참조 번호는 동일 또는 유사한 구성요소를 나타낸다.
이하, 본 발명에 대한 추가적인 상세한 설명은 첨부 도면을 참조하여 이루어질 것이다.
도 1은 본 개시의 일 실시예에 따른 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 방법의 흐름도를 도시한다.
본 실시예에 따른 방법은 컴퓨터 장치를 통해 주로 구현되며, 컴퓨터 장치는 네트워크 장치 및 사용자 장비를 포함한다. 네트워크 장치는 단일 네트워크 서버 또는 복수의 네트워크 서버, 또는 클라우드 컴퓨팅에 기초하여 대용량 컴퓨터 또는 네트워크 서버로 구성되는 클라우드를 포함하지만, 이에 제한되지 않으며, 클라우드 컴퓨팅은 한 종류의 분산 컴퓨팅이며, 이는 약하게 결합된 컴퓨터 세트의 그룹으로 구성되는 슈퍼 가상 컴퓨터이고; 네트워크 장치가 위치되는 네트워크는 인터넷, 광역 네트워크, 도시권 통신 네트워크, 근거리 네트워크, 가상 사설 네트워크((Virtual Private Network)(VPN)) 네트워크 등을 포함하지만, 이에 제한되지 않으며; 사용자 장비는 개인용 컴퓨터((Personal Computer)(PC)) 머신, 태블릿, 스마트폰, 개인 휴대 정보 단말기((Personal Digital Assistant)(PDA)), 인터넷 프로토콜 텔레비전((Internet Protocol Television)(IPTV)) 등을 포함하지만, 이에 제한되지 않는다.
컴퓨터 장치는 단지 예시적이고, 다른 기존 또는 장래에 가능하게 개발될 컴퓨터 장치는 본 개시에 적용 가능한 경우 또한 본 개시의 보호 범위 내에 포함되고 여기서 참조로서 통합되어야 한다는 점을 주목해야 한다.
본 실시예에 따른 방법은 단계(S1) 및 단계(S2)를 포함한다.
단계(S1)에서, 컴퓨터 장치는 위험 파일의 존재를 검출할 때 컴퓨터 장치의 가상 환경에서 위험 파일을 실행한다.
위험 파일은 위험한 임의의 파일, 예를 들어 바이러스 파일, 트로이 파일 등을 포함한다.
가상 환경은 컴퓨터 장치의 실제 환경을 가상화하기 위해 사용되며, 가상 환경은 실제 환경에서 적어도 하나의 실제 응용 프로그램 인터페이스((Application Program Interface)(API))와 동일한 적어도 하나의 가상 API를 포함한다. 가상 API는 가상 환경에서 호출될 수 있고 실제 환경에서 가상 API에 대응하는 실제 API를 호출하는 것과 동일한 피드백 결과를 반환할 수 있다. 실제 환경은 컴퓨터 장치에서 실제로 실행하는 시스템 환경, 예를 들어 컴퓨터 장치에서 실제로 실행하는 윈도우즈 운영 체제에 대응하는 시스템 환경을 표시하기 위해 사용된다. 실제 API는 실제 환경 내의 API, 예를 들어 컴퓨터 장치에서 실제로 실행하는 윈도우즈 운영 체제 내의 시스템 API를 표시하기 위해 사용된다.
예를 들어, 컴퓨터 장치의 실제 환경은 이하의 실제 API: DeleteFile를 갖는다. 실제 API는 실제 환경에서 지정된 파일을 삭제하고 삭제 동작의 성공적인 실행을 표시하는 피드백 결과를 반환하기 위해 사용되고; 컴퓨터 장치 내의 가상 환경은 실제 API에 대응하는 가상 API를 가지며, 가상 환경에서 가상 API의 호출은 또한 삭제 동작의 성공적인 실행을 표시하는 피드백 결과를 반환한다.
바람직하게, 가상 환경에서 가상 API를 호출할 때, 가상 API의 기능이 실제로 실행되지 않고 가상 API에 대응하는 실제 API를 호출하는 효과를 가상화하는 것만이 필요하다는 점을 주목해야 한다. 예를 들어, 상기 예에서, DeleteFile에 대응하는 가상 API는 가상 환경에서 호출되고, 가상 API는 가상 환경에서 지정된 파일을 삭제하는 동작을 실행하지 않으며; 그 대신, 그것은 호출될 때, DeleteFile를 호출하는 효과를 가상화하기 위해 삭제 동작의 성공적인 실행을 표시하는 피드백 결과를 직접 반환한다.
바람직하게, 가상 환경은 컴퓨터 장치에 레지스트리 및 환경 변수 등을 구성할 필요가 없어서, 대응 설치 동작은 실행할 필요가 없으며, 즉 그것은 직접 시작되고 실행될 수 있다. 가상 환경은 다양한 시나리오, 예를 들어 컴퓨터 장치가 전력 공급될 때의 자동 시작, 스캐닝 동작이 컴퓨터 장치에서 실행될 때의 자동 시작, 위험 파일의 존재를 검출할 때의 자동 시작으로 시작되거나 사용자 동작 등에 의해 시작될 수 있다는 점을 주목해야 한다. 바람직하게, 가상 환경은 시작될 때마다, 그것의 초기 환경으로 복귀되고; 더 바람직하게, 가상 환경이 시작되고 각각의 위험 파일이 완전히 실행된 후에, 가상 환경은 초기화 동작을 자동으로 실행할 수 있거나, 가상 환경을 초기 환경으로 복귀시키기 위해 사용자 동작에 따라 초기화 동작을 실행할 수 있다는 점을 주목해야 한다.
컴퓨터 장치 내의 가상 환경의 점유 공간은 극히 작을 수 있고(예를 들어, 점유 공간은 약 10M임), 그것의 실행은 컴퓨터 장치의 실제 시스템의 실행에 영향을 미치지 않는다는 점을 더 주목해야 한다. 바람직하게, 점유 공간의 크기는 가상 환경에서 위험 파일의 행위(들)(예를 들어, 위험 파일에 의해 다른 파일을 해제하는 행위)에 따라 변화될 수 있다.
구체적으로, 위험 파일의 존재를 검출할 때, 컴퓨터 장치는 위험 파일을 컴퓨터 장치의 가상 환경에 제공하고 가상 환경에서 위험 파일을 실행한다.
예를 들어, 컴퓨터 장치에서 바이러스 파일의 존재를 검출할 때, 컴퓨터 장치는 바이러스 파일을 컴퓨터 장치의 가상 환경에 제공하고 가상 환경에서 바이러스 파일을 실행한다.
바람직하게, 가상 환경 내의 적어도 하나의 가상 API는 현재 활성 응용(들)을 판독할 수 있는 응용 판독 가상 API를 포함하며, 단계(S1)는 위험 파일이 응용 판독 가상 API를 호출할 때 컴퓨터 장치가 현재 활성 응용 정보를 위험 파일에 제공하는 단계를 더 포함한다.
응용 판독 가상 API는 현재 활성 응용(들)을 판독하는 임의의 가상 API, 예를 들어 실제 시스템에서 CreateToolhelp32Snapshot에 대응하는 가상 API를 포함하며, CreateToolhelp32Snapshot는 실제 시스템에서 모든 현재 활성 프로세스의 정보를 획득하는 것이다.
응용 정보는 현재 활성 응용(들)을 표시하는 임의의 정보, 예를 들어 현재 활성 응용의 응용 명칭, 현재 활성 응용의 프로세스 ID 등을 포함한다.
구체적으로, 가상 환경에서 위험 파일을 실행하는 프로세스 동안, 위험 파일이 응용 판독 가상 API를 호출할 때, 컴퓨터 장치는 현재 활성 응용 정보를 판독 가상 API를 통해 위험 파일로 반환한다.
예를 들어, 가상 환경에서 바이러스 파일(file1)을 실행시키며; file1이 응용 판독 가상 API를 호출할 때, 컴퓨터 장치는 현재 활성 응용 정보를 응용 판독 가상 API를 통해 file1로 반환하며, 응용 정보는 현재 활성 응용이 APP1 및 APP2를 포함하는 것을 표시하기 위해 사용된다.
응용 판독 가상 API는 현재 활성 응용 정보를 획득하기 위해 복수의 방식을 이용할 수 있다는 점을 주목해야 한다.
일 예로서, 응용 판독 가상 API는 사용자에 의해, 가상 환경의 프로세스(들)를 구성함으로써 현재 활성 응용 정보를 획득한다. 예를 들어, 사용자는 가상 환경에서 프로세스 리스트를 구성하고, 응용(APP1 및 APP2)을 프로세스 리스트에 추가하며; 그 다음에 프로세스 리스트에 따라 응용 판독 가상 API에 의해 판독될 수 있는 현재 활성 응용은 APP1 및 APP2를 포함한다.
다른 예로서, 응용 판독 가상 API는 컴퓨터 장치의 실제 환경으로부터 현재 활성 응용 정보를 획득하는 것을 촉발시킨다. 예를 들어, 응용 판독 가상 API는 컴퓨터 장치의 실제 환경에서 응용 판독 가상 API에 대응하는 실제 API를 호출하는 것을 촉발시키고, 실제 API에 반환되는 결과에 따라 현재 활성 응용 정보를 획득한다.
상기 예는 단지 본 발명의 기술적 해결책을 더 잘 예시하기 위한 것이며 본 발명을 제한하기 위한 것이 아니라는 점을 주목해야 한다. 당업자는 위험 파일의 존재를 검출할 때 컴퓨터 장치의 가상 환경에서 위험 파일을 실행하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
단계(S2)에서, 컴퓨터 장치는 위험 파일에 대응하는 행위 정보를 획득하기 위해 가상 환경에서 위험 파일의 행위(들)를 감시한다.
구체적으로, 컴퓨터 장치는 가상 환경에서 위험 파일에 의해 실행되는 행위(들)를 감시하고 기록함으로써 위험 파일에 대응하는 행위 정보를 취득할 수 있다.
바람직하게, 가상 환경에서, 컴퓨터 장치는 위험 파일에 대응하는 행위 정보를 획득하기 위해, 실행 프로세스 동안 위험 파일에 의해 호출되는 가상 API(들)에 기초하여 위험 파일의 행위(들)를 감시한다.
예를 들어, 가상 환경에서, 컴퓨터 장치는 가상 환경이 실행 프로세스 동안 위험 파일에 의해 호출되는 가상 API(들)에 의해 변화되게 하는 위험 파일의 모든 행위를 기록하고, 그러한 행위에 대응하는 행위 정보를 획득한다.
행위 정보는 가상 환경에서 위험 파일의 동작 행위와 관련되는 임의의 정보를 포함한다. 바람직하게, 행위 정보는 이하를 포함하지만, 이에 제한되지 않는다:
1) 파일 동작 행위와 관련되는 정보.
파일 동작 행위는 파일 상에 실행될 수 있는 임의의 동작 행위, 예를 들어 파일의 생성, 갱신 및 삭제 등을 포함한다. 바람직하게, 파일 동작 행위와 관련되는 정보는 파일의 동작 행위 타입(예를 들어, 동작 행위의 생성, 갱신, 및 삭제)을 표시하는 정보, 동작된 파일(들)의 명칭, 동작된 파일의 경로 정보 등을 포함하지만, 이에 제한되지 않는다.
2) 레지스트리 동작 행위와 관련되는 정보.
레지스트리 동작 행위는 레지스트리 상에 실행될 수 있는 임의의 동작 행위, 예를 들어 레지스트리 엔트리의 생성, 설정, 및 삭제 등을 포함한다. 바람직하게, 레지스트리 동작 행위와 관련되는 정보는 동작 행위 타입(예를 들어, 동작 행위의 생성, 설정, 및 삭제)을 표시하는 정보, 동작되는 레지스트리 엔트리, 및 레지스트리 엔트리에 대응하는 값 등을 포함하지만, 이에 제한되지 않는다.
3) 프로세스 동작 행위와 관련되는 정보.
프로세스 동작 행위는 프로세스 상에 실행될 수 있는 임의의 동작 행위, 예를 들어 프로세스의 생성 및 폐쇄, 크로스 프로세스 기록 등을 포함한다. 바람직하게, 프로세스 동작 행위와 관련되는 정보는 스레드의 동작 행위 타입(예를 들어, 프로세스의 생성 및 폐쇄, 크로스 프로세스 기록)을 표시하는 정보, 동작된 프로세스의 식별자 ID, 동작된 프로세스에 대응하는 경로 정보 등을 포함하지만, 이에 제한되지 않는다.
4) 스레드 동작 행위와 관련되는 정보.
스레드 동작 행위는 스레드 상에 실행될 수 있는 임의의 동작 행위, 예를 들어 스레드 인젝션 등을 포함한다. 바람직하게, 스레드 동작 행위와 관련되는 정보는 스레드의 동작 행위 타입, 동작된 스레드의 식별자 ID, 동작된 스레드에 대응하는 특징 값 등을 표시하는 정보를 포함하지만, 이에 제한되지 않고; 특징 값은 스레드의 특징(들)을 표시하기 위해 사용된다. 바람직하게, 특징 값은 스레드의 코드 길이에 대응하는 체크 값이며; 예를 들어, 스레드의 코드 길이는 0x100이고, 특징 값은 코드 길이에 대응하는 순환 중복 체크((Cyclic Redundancy Check)(CRC)) 32 값이다.
행위 정보는 단지 일 예이며, 본 발명에 제한되지 않는다는 점을 주목해야 한다. 당업자는 가상 환경에서 위험 파일의 행위와 관련되는 임의의 정보가 본 명세서에 표현되는 행위 정보의 범위 내에 포함되어야 하는 점을 이해해야 한다.
바람직한 해결책으로서, 본 실시예의 방법은 단계(S4)를 더 포함하고, 단계(S2)는 단계(S21)를 더 포함한다.
단계(S4)에서, 가상 환경에서, 컴퓨터 장치는 위험 파일에 의해 해제되는 적어도 하나의 파일을 획득한다.
예를 들어, 가상 환경에서, 컴퓨터 장치는 실행 프로세스 동안 위험 파일(file2)에 의해 해제되는 이하의 파일을 획득한다: ser2vet.ext, autorun.inf.
단계(S21)에서, 가상 환경에서, 컴퓨터 장치는 위험 파일에 대응하는 행위 정보를 획득하기 위해, 위험 파일 및 위험 파일에 의해 해제되는 적어도 하나의 파일의 행위(들)를 감시한다.
예를 들어, 단계(S4)에서, 컴퓨터 장치는 위험 파일(file2)에 의해 해제되는 이하의 파일을 획득한다: ser2vet.exe, autorun.inf; 단계(S21)에서, 가상 환경에서, 컴퓨터 장치는 3개의 위험 파일의 행위 정보를 획득하기 위해, file2, ser2vet.exe, 및 autorun.inf 각각의 행위를 감시하고 획득된 행위 정보를 위험 파일(file2)에 대응하는 행위 정보로 간주한다.
컴퓨터 장치가 위험 파일에 의해 해제되는 각각의 파일의 행위(들)를 감시하는 방식은 상술한 단계(S2)에서 위험 파일의 행위(들)를 감시하는 방식과 동일 또는 유사하며, 이는 여기서 상세히 열거되지 않는다는 점을 주목해야 한다.
상기 예는 단지 본 발명의 기술적 해결책을 더 잘 예시하기 위한 것이며 본 발명을 제한하기 위한 것이 아니라는 점을 주목해야 한다. 당업자는 위험 파일에 대응하는 행위 정보를 획득하기 위해 가상 환경에서 위험 파일의 행위(들)를 감시하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
바람직한 해결책으로서, 본 실시예의 방법은 단계(S5)를 더 포함한다.
단계(S5)에서, 컴퓨터 장치는 미리 결정된 폐쇄 조건을 충족시킬 때 가상 환경을 폐쇄한다.
미리 결정된 폐쇄 조건은 가상 환경의 폐쇄를 표시하는 임의의 미리 결정된 조건을 포함한다. 바람직하게, 미리 결정된 폐쇄 조건은 이하를 포함하지만, 이에 제한되지 않는다:
1) 위험 파일은 가상 환경에서 프로세스 종료 동작을 수행한다.
프로세스 종료 동작은 위험 파일의 프로세스로부터 종료를 표시하는 임의의 동작을 포함하며; 바람직하게, 프로세스 종료 동작은 위험 파일의 자동 삭제 동작, 가상 환경에서 사용자에 의해 실행되는 위험 파일을 삭제하는 동작 등을 포함하지만, 이에 제한되지 않는다.
2) 가상 환경 내의 위험 파일의 실행 시간은 미리 결정된 시간을 초과한다.
예를 들어, 미리 결정된 시간이 5s인 경우, 가상 환경 내의 위험 파일의 실행 시간이 5s를 초과할 때, 미리 결정된 폐쇄 조건이 충족된다.
미리 결정된 폐쇄 조건은 단지 예시적이며, 본 발명을 제한하는 것이 아니라는 점을 주목해야 한다. 당업자는 가상 환경의 폐쇄를 표시하는 임의의 미리 결정된 조건이 본 발명의 미리 결정된 폐쇄 조건의 범위 내에 포함되어야 하는 점을 이해해야 한다.
상기 예는 단지 본 발명의 기술적 해결책을 더 잘 예시하는 것이며, 본 발명을 제한하는 것이 아니라는 점을 주목해야 한다. 당업자는 미리 결정된 폐쇄 조건을 충족시킬 때 가상 환경을 폐쇄하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
본 실시예의 해결책에 따르면, 그것은 컴퓨터 장치의 가상 환경에서 위험 파일을 실행함으로써 위험 파일의 행위 정보를 획득할 수 있다. 프로세스는 수동 분석을 필요로 하지 않고 따라서 행위 정보를 획득하는데 요구되는 시간을 크게 절약하며; 더욱이, 위험 파일의 모든 동작 행위는 가상 API(들)의 가상 실행을 통해 기록될 수 있기 때문에, 컴퓨터 장치에 의해 획득되는 행위 정보는 포괄적이며, 그것에 의해 컴퓨터 장치의 실제 환경이 불완전 행위 정보로 인해 완전히 복구될 수 없는 경우를 회피한다.
부가적으로, 가상 환경에서 위험 파일을 실행하는 것은 컴퓨터 장치의 실제 환경에 영향을 미치지 않을 것이고; 아울러, 컴퓨터 장치 내의 가상 환경의 점유 공간은 극히 작고; 더욱이, 가상 환경에서, 가상 API의 기능을 실제로 수행할 필요가 없으며; 그 대신, 실제 환경에서 가상 API에 대응하는 실제 API를 호출하는 것과 동일한 피드백 결과를 반환하는 것만이 필요하다. 이는 위험 파일이 가상 환경에서 더 빠르게 실행될 수 있게 하며, 그것에 의해 위험 파일의 행위 정보를 빠르게 획득한다.
도 2는 본 개시의 다른 실시예에 따른 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 방법의 흐름도를 도시한다. 본 실시예의 방법은 컴퓨터 장치를 통해 주로 구현되며; 도 1에 도시된 실시예를 참조한 컴퓨터 장치의 모든 설명은 여기에 참조로서 통합된다.
본 실시예에 따른 방법은 단계(S1), 단계(S2), 및 단계(S3)를 포함하며, 단계(S1) 및 단계(S2)는 도 1을 참조하여 상세히 설명되었으며, 이는 여기서 상세히 열거되지 않는다.
단계(S3)에서, 컴퓨터 장치는 위험 파일에 대응하는 행위 정보에 따라 컴퓨터 장치의 실제 환경을 복구한다.
구체적으로, 컴퓨터 장치는 다수의 시나리오에서 위험 파일에 대응하는 행위 정보에 따라 컴퓨터 장치의 실제 환경을 복구할 수 있다.
예를 들어, 단계(S2) 후에, 컴퓨터 장치는 컴퓨터 장치의 실제 환경을 복구하기 위해 단계(S3)를 직접 수행한다.
다른 예에 대해, 단계(S2) 후에, 사용자에 의한 동작에 따라 위험 파일을 소거하는 것으로 결정될 때, 컴퓨터 장치는 위험 파일을 소거하는 동안 컴퓨터 장치의 실제 환경을 복구하기 위해 단계(S3)를 직접 수행한다.
다른 예에 대해, 위험 파일을 소거한 후에, 사용자에 의한 동작에 따라 실제 환경을 복구하는 요구가 결정될 때, 컴퓨터 장치는 컴퓨터 장치의 실제 환경을 복구하기 위해 단계(S3)를 수행한다.
바람직하게, 단계(S3)에서, 컴퓨터 장치는 컴퓨터 장치의 실제 환경을 복구하고 회복하기 위해 위험 파일에 대응하는 행위 정보에 따라 행위 정보에 의해 표시되는 동작 행위(들)와 반대되는 동작(들)을 직접 수행한다.
예를 들어, 위험 파일의 행위 정보는 파일의 생성을 표시하는 정보, 및 생성된 파일의 경로 정보를 포함한다. 그 다음, 단계(S3)에서, 컴퓨터 장치는 실제 환경을 위험 파일의 실행 전의 상태로 회복하기 위해 행위 정보에 따라 경로 정보에 의해 표시되는 파일 경로 하에 생성된 파일을 삭제한다.
다른 예에 대해, 위험 파일의 행위 정보는 레지스트리 엔트리의 삭제를 표시하는 정보, 및 삭제된 레지스트리 엔트리를 포함한다. 그 다음, 단계(S3)에서, 컴퓨터 장치는 실제 환경을 위험 파일의 실행 전의 상태로 회복하기 위해 행위 정보에 따라 삭제된 레지스트리 엔트리를 회복한다.
단계(S3)의 바람직한 해결책으로서, 단계(S3)는 단계(S31) 및 단계(S32)를 더 포함한다.
단계(S31)에서, 컴퓨터 장치는 위험 파일에 대응하는 행위 정보에 따라 대응 복구 동작 정보를 결정한다.
복구 동작 정보는 복구 동작과 관련되는 임의의 정보를 포함한다. 바람직하게, 복구 동작 정보는 이하를 포함하지만, 이에 제한되지 않는다:
a) 파일 복구 동작과 관련되는 정보.
파일 복구 동작은 파일을 복구하는 임의의 동작, 예를 들어 파일 파라미터의 회복, 파일의 삭제 등을 포함한다. 바람직하게, 파일 복구 동작과 관련되는 정보는 파일의 복구 동작 타입을 표시하는 정보, 동작된 파일의 명칭, 회복된 파일 파라미터, 파일 파라미터의 값 등을 포함하지만, 이에 제한되지 않는다.
바람직하게, 컴퓨터 장치는 그것의 실제 시스템에서, 위험 파일 및 위험 파일에 의해 해제되는 적어도 하나의 파일을 스캐닝하고, 스캐닝의 결과 및 위험 파일의 행위 정보에 기초하여 파일 복구 동작과 관련되는 정보를 결정한다.
b) 레지스트리 복구 동작과 관련되는 정보
레지스트리 복구 동작은 레지스트리를 복구하는 임의의 동작, 예를 들어 레지스트리 엔트리의 복원 또는 삭제 등을 포함한다. 바람직하게, 레지스트리 복구 동작과 관련되는 정보는 레지스트리의 복구 동작 타입을 표시하는 정보, 동작된 레지스트리 엔트리, 및 레지스트리 엔트리에 대응하는 값 등을 포함하지만, 이에 제한되지 않는다.
바람직하게, 레지스트리 복구 동작이 레지스트리 엔트리를 설정하고 있을 때, 컴퓨터 장치는 국부 지식 베이스에 질의함으로써 레지스트리 엔트리에 대응하는 디폴트 값을 획득하고, 디폴트 값을 레지스트리 엔트리에 대응하는 값으로 설정할 수 있다.
c) 프로세스 복구 동작과 관련되는 정보
프로세스 복구 동작은 프로세스를 복구하는 임의의 동작, 예를 들어 프로세스의 폐쇄 및 재시작 등을 포함한다. 바람직하게, 프로세스 복구 동작과 관련되는 정보는 프로세스의 복구 동작 타입을 표시하는 정보, 동작된 프로세스에 대응하는 경로 정보 등을 포함하지만, 이에 제한되지 않는다.
동작된 프로세스가 시스템 파일일 때, 프로세스 복구 동작은 프로세스의 복구 동작 정보를 획득하는 요구 없이 컴퓨터 장치를 재시작하는 것을 통해 직접 완료될 수 있다는 점을 주목해야 한다.
d) 스레드 복구 동작과 관련되는 정보
스레드 복구 동작은 스레드를 복구하는 임의의 동작, 예를 들어 스레드의 중단 등을 포함한다. 바람직하게, 스레드 복구 동작과 관련되는 정보는 스레드의 복구 동작 타입을 표시하는 정보, 및 동작된 스레드에 대응하는 특징 값을 포함하지만, 이제 제한되지 않는다.
복구 동작 정보는 단지 일 예이며, 본 개시를 제한하지 않는다는 점을 주목해야 한다. 당업자는 복구 동작과 관련되는 임의의 정보가 본 개시의 복구 동작 정보의 범위 내에 포함되어야 하는 점을 이해해야 한다.
구체적으로, 단계(S31)에서, 컴퓨터 장치는 위험 파일에 대응하는 행위 정보에 의해 표시되는 동작 행위에 따라 복구 동작 정보에 의해 표시되는 복구 동작(들)을 결정하고, 복구 동작 및 행위 정보에 따라 복구 동작 정보를 더 결정한다.
예를 들어, 행위 정보는 크로스 프로세스 기록을 표시하는 정보 및 동작된 프로세스의 경로 정보를 포함하며; 단계(S31)에서, 컴퓨터 장치는 크로스 프로세스 기록 동작을 표시하는 정보에 따라 복구 동작을 재시작 프로세스로 결정하고, 복구 동작 및 행위 정보에 따라, 복구 동작 정보가 재시작 프로세스를 표시하는 정보 및 재시작된 프로세스의 경로 정보를 포함하는 것으로 결정한다.
다른 예에 대해, 행위 정보는 스레드 인젝션을 표시하는 정보 및 동작된 스레드에 대응하는 특징 값을 포함하며; 단계(S31)에서, 컴퓨터 장치는 스레드 인젝션을 표시하는 정보에 따라 복구 동작을 중단 스레드로 결정하고, 복구 동작 및 행위 정보에 따라 복구 동작 정보가 중단 스레드를 표시하는 정보 및 중단된 스레드에 대응하는 특징 값을 포함하는 것으로 결정한다.
상기 예는 단지 본 발명의 기술적 해결책을 더 잘 예시하기 위한 것이며, 본 발명을 제한하는 것이 아니라는 점을 주목해야 한다. 당업자는 위험 파일에 대응하는 행위 정보에 따라 대응 복구 동작 정보를 결정하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
단계(S32)에서, 컴퓨터 장치는 복구 동작 정보에 따라 컴퓨터 장치의 실제 환경을 복구한다.
예를 들어, 단계(S31)에서 결정되는 복구 동작 정보는 프로세스의 재시작을 표시하는 정보 및 동작된 프로세스에 대응하는 경로 정보를 포함한다. 단계(S32)에서, 컴퓨터 장치는 경로 정보에 기초하여 대응 프로세스를 룩업하고 룩업된 프로세스를 재시작한다.
다른 예에 대해, 단계(S31)에서 결정되는 복구 동작 정보는 프로세스의 중단을 표시하는 정보 및 동작된 프로세스에 대응하는 특징 값을 포함한다. 단계(S32)에서, 컴퓨터 장치는 특징 값에 따라 매칭 스레드를 결정하고 스레드를 중단한다.
상기 예는 단지 본 발명의 기술적 해결책을 더 잘 예시하기 위한 것이며, 본 발명을 제한하는 것이 아니라는 점을 주목해야 한다. 당업자는 복구 동작 정보에 따라 컴퓨터 장치의 실제 환경을 복구하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
바람직하게, 단계(S3) 후에, 컴퓨터 장치를 재시작할 필요가 있는 것으로 판단될 때, 컴퓨터 장치는 사용자에게 컴퓨터 장치의 재시작을 프롬프팅하는 프롬프트 정보를 제공한다.
본 실시예의 해결법에 따르면, 컴퓨터 장치는 가상 환경에서 획득되는 위험 파일의 행위 정보에 따라 컴퓨터 장치의 실제 환경을 복구할 수 있으며, 그것에 의해 위험 파일 및 위험 파일에 의해 해제되는 다른 위험 파일에 의해 야기되는 실제 환경에 대한 파괴를 빠르게 그리고 완전히 복구한다.
도 3은 본 개시의 일 실시예에 따른 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 장치의 구조도를 도시한다. 본 실시예에 따른 위험 파일에 대응하는 행위 정보를 결정하는 장치(이하 "행위 결정 장치"로 지칭됨)는 위험 파일의 존재를 검출할 때 컴퓨터 장치의 가상 환경에서 위험 파일을 실행하도록 구성되며, 가상 환경은 컴퓨터 장치의 실제 환경에서 적어도 하나의 실제 API와 동일한 적어도 하나의 가상 API를 포함하는 모듈(이하 "실행 모듈(1)"로 지칭됨); 위험 파일에 대응하는 행위 정보를 획득하기 위해 가상 환경에서 위험 파일의 행위(들)를 감시하도록 구성되는 모듈(이하 "감시 모듈(2)"로 지칭됨)을 포함한다.
실행 모듈(1)은 위험 파일의 존재를 검출할 때 컴퓨터 장치의 가상 환경에서 위험 파일을 실행한다.
위험 파일은 위험한 임의의 파일, 예를 들어 바이러스 파일, 트로이 파일 등을 포함한다.
가상 환경은 컴퓨터 장치의 실제 환경을 가상화하기 위해 사용되며, 가상 환경은 실제 환경에서 적어도 하나의 실제 API와 동일한 적어도 하나의 가상 API를 포함한다. 가상 API는 가상 환경에서 호출될 수 있고 실제 환경에서 가상 API에 대응하는 실제 API를 호출하는 것과 동일한 피드백 결과를 반환할 수 있다. 실제 환경은 컴퓨터 장치에서 실제로 실행하는 시스템 환경, 예를 들어 컴퓨터 장치에서 실제로 실행하는 윈도우즈 운영 체제에 대응하는 시스템 환경을 표시하기 위해 사용된다. 실제 API는 실제 환경 내의 API, 예를 들어 컴퓨터 장치에서 실제로 실행하는 윈도우즈 운영 체제 내의 시스템 API를 표시하기 위해 사용된다.
예를 들어, 컴퓨터 장치의 실제 환경은 이하의 실제 API: DeleteFile를 갖는다. 실제 API는 실제 환경에서 지정된 파일을 삭제하고 삭제 동작의 성공적인 실행을 표시하는 피드백 결과를 반환하기 위해 사용되고; 컴퓨터 장치 내의 가상 환경은 실제 API에 대응하는 가상 API를 가지며, 가상 환경에서 가상 API의 호출은 또한 삭제 동작의 성공적인 실행을 표시하는 피드백 결과를 반환한다.
바람직하게, 가상 환경에서 가상 API를 호출할 때, 가상 API의 기능은 실제로 실행되지 않고; 가상 API에 대응하는 실제 API를 호출하는 효과를 가상화하는 것만이 필요하다는 점을 주목해야 한다. 예를 들어, 상기 예에서, DeleteFile에 대응하는 가상 API는 가상 환경에서 호출되고, 가상 API는 가상 환경에서 지정된 파일을 삭제하는 동작을 실행하지 않으며; 그 대신, 그것은 호출될 때, DeleteFile를 호출하는 효과를 가상화하기 위해 삭제 동작의 성공적인 실행을 표시하는 피드백 결과를 직접 반환한다.
바람직하게, 가상 환경은 컴퓨터 장치에 레지스트리 및 환경 변수 등을 구성할 필요가 없어 대응 설치 동작은 실행할 필요가 없으며, 즉 그것은 직접 시작되고 실행될 수 있다. 가상 환경은 다양한 시나리오, 예를 들어 컴퓨터 장치가 전력 공급될 때의 자동 시작, 스캐닝 동작이 컴퓨터 장치에서 실행될 때의 자동 시작, 위험 파일의 존재를 검출할 때의 자동 시작으로 시작되거나 사용자 동작 등에 의해 시작될 수 있다는 점을 주목해야 한다. 바람직하게, 가상 환경은 시작될 때마다, 그것의 초기 환경으로 복귀되고; 더 바람직하게, 가상 환경이 시작된 후, 각각의 위험 파일이 완전히 실행된 후에 가상 환경은 초기화 동작을 자동으로 실행할 수 있거나 가상 환경을 초기 환경으로 복귀시키기 위해 사용자 동작에 따라 초기화 동작을 실행할 수 있다는 점을 주목해야 한다
컴퓨터 장치 내의 가상 환경의 점유 공간은 극히 작을 수 있고(예를 들어, 점유 공간은 약 10M임), 그것의 실행은 컴퓨터 장치의 실제 시스템의 실행에 영향을 미치지 않는다는 점을 더 주목해야 한다. 바람직하게, 점유 공간의 크기는 가상 환경에서 위험 파일의 행위(들)(예를 들어, 위험 파일에 의해 다른 파일을 해제하는 행위)에 따라 변화될 수 있다.
구체적으로, 위험 파일의 존재를 검출할 때, 실행 모듈(1)은 위험 파일을 컴퓨터 장치의 가상 환경에 제공하고 가상 환경에서 위험 파일을 실행한다.
예를 들어, 컴퓨터 장치에서 바이러스 파일의 존재를 검출할 때, 실행 모듈(1)은 바이러스 파일을 컴퓨터 장치의 가상 환경에 제공하고 가상 환경에서 바이러스 파일을 실행한다.
바람직하게, 가상 환경 내의 적어도 하나의 가상 API는 현재 활성 응용(들)을 판독할 수 있는 응용 판독 가상 API를 포함하며, 실행 모듈(1)은 위험 파일이 응용 판독 가상 API를 호출할 때 현재 활성 응용 정보를 위험 파일에 제공하도록 구성되는 모듈(이하 도시되지 않은 "제공 모듈"로 지칭됨)을 더 포함한다.
응용 판독 가상 API는 현재 활성 응용(들)을 판독하는 임의의 가상 API, 예를 들어 실제 시스템에서 CreateToolhelp32Snapshot에 대응하는 가상 API를 포함하며, CreateToolhelp32Snapshot는 실제 시스템에서 모든 현재 활성 프로세스의 정보를 획득하는 것이다.
응용 정보는 현재 활성 응용(들)을 표시하는 임의의 정보, 예를 들어 현재 활성 응용의 응용 명칭, 현재 활성 응용의 프로세스 ID 등을 포함한다.
구체적으로, 가상 환경에서 위험 파일을 실행하는 프로세스 동안, 위험 파일이 응용 판독 가상 API를 호출할 때, 제공 모듈은 현재 활성 응용 정보를 판독 가상 API를 통해 위험 파일로 반환한다.
예를 들어, 가상 환경에서 바이러스 파일(file1)을 실행시키며; file1이 응용 판독 가상 API를 호출할 때, 제공 모듈은 현재 활성 응용 정보를 응용 판독 가상 API를 통해 file1로 반환하며, 응용 정보는 현재 활성 응용이 APP1 및 APP2를 포함하는 것을 표시하기 위한 것이다.
응용 판독 가상 API는 현재 활성 응용 정보를 획득하기 위해 복수의 방식을 이용할 수 있다는 점을 주목해야 한다.
일 예로서, 응용 판독 가상 API는 사용자에 의해, 가상 환경의 프로세스(들)를 구성함으로써 현재 활성 응용 정보를 획득한다. 예를 들어, 사용자는 가상 환경에서 프로세스 리스트를 구성하고, 응용(APP1 및 APP2)을 프로세스 리스트에 추가하며; 그 다음에 프로세스 리스트에 따라 응용 판독 가상 API에 의해 판독될 수 있는 현재 활성 응용은 APP1 및 APP2를 포함한다.
다른 예로서, 응용 판독 가상 API는 컴퓨터 장치의 실제 환경으로부터 현재 활성 응용 정보를 획득하는 것을 촉발시킨다. 예를 들어, 응용 판독 가상 API는 컴퓨터 장치의 실제 환경에서 응용 판독 가상 API에 대응하는 실제 API를 호출하는 것을 촉발시키고, 실제 API에 반환되는 결과에 따라 현재 활성 응용 정보를 획득한다.
상기 예는 단지 본 발명의 기술적 해결책을 더 잘 예시하기 위한 것이며, 본 발명을 제한하기 위한 것이 아니라는 점을 주목해야 한다. 당업자는 위험 파일의 존재를 검출할 때 컴퓨터 장치의 가상 환경에서 위험 파일을 실행하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
감시 모듈(2)은 위험 파일에 대응하는 행위 정보를 획득하기 위해 가상 환경에서 위험 파일의 행위(들)를 감시한다.
구체적으로, 감시 모듈(2)은 가상 환경에서 위험 파일에 의해 실행되는 행위(들)를 감시하고 기록함으로써 위험 파일에 대응하는 행위 정보를 획득할 수 있다.
바람직하게, 가상 환경에서, 감시 모듈(2)은 위험 파일에 대응하는 행위 정보를 획득하기 위해, 실행 프로세스 동안 위험 파일에 의해 호출되는 가상 API(들)에 기초하여 위험 파일의 행위(들)를 감시한다.
예를 들어, 가상 환경에서, 감시 모듈(2)은 가상 환경이 실행 프로세스 동안 위험 파일에 의해 호출되는 가상 API(들)에 의해 변화되게 하는 위험 파일의 모든 행위를 기록하고, 그러한 행위에 대응하는 행위 정보를 획득한다.
행위 정보는 가상 환경에서 위험 파일의 동작 행위와 관련되는 임의의 정보를 포함한다. 바람직하게, 행위 정보는 이하를 포함하지만, 이에 제한되지 않는다:
1) 파일 동작 행위와 관련되는 정보.
파일 동작 행위는 파일 상에 실행될 수 있는 임의의 동작 행위, 예를 들어 파일의 생성, 갱신, 및 삭제 등을 포함한다. 바람직하게, 파일 동작 행위와 관련되는 정보는 파일의 동작 행위 타입(예를 들어, 동작 행위의 생성, 갱신, 및 삭제)을 표시하는 정보, 동작된 파일(들)의 명칭, 동작된 파일의 경로 정보 등을 포함하지만, 이에 제한되지 않는다.
2) 레지스트리 동작 행위와 관련되는 정보.
레지스트리 동작 행위는 레지스트리 상에 실행될 수 있는 임의의 동작 행위, 예를 들어 레지스트리 엔트리의 생성, 설정, 및 삭제 등을 포함한다. 바람직하게, 레지스트리 동작 행위와 관련되는 정보는 동작 행위 타입(예를 들어, 동작 행위의 생성, 설정, 및 삭제)을 표시하는 정보, 동작되는 레지스트리 엔트리, 및 레지스트리 엔트리에 대응하는 값 등을 포함하지만, 이에 제한되지 않는다.
3) 프로세스 동작 행위와 관련되는 정보.
프로세스 동작 행위는 프로세스 상에 실행될 수 있는 임의의 동작 행위, 에를 들어 프로세스의 생성 및 폐쇄, 크로스 프로세스 기록 등을 포함한다. 바람직하게, 프로세스 동작 행위와 관련되는 정보는 스레드의 동작 행위 타입(예를 들어, 프로세스의 생성 및 폐쇄, 크로스 프로세스 기록)을 표시하는 정보, 동작된 프로세스의 식별자 ID, 동작된 프로세스의 경로 정보 등을 포함하지만, 이에 제한되지 않는다.
4) 스레드 동작 행위와 관련되는 정보.
스레드 동작 행위는 스레드 상에 실행될 수 있는 임의의 동작 행위, 예를 들어 스레드 인젝션 등을 포함한다. 바람직하게, 스레드 동작 행위와 관련되는 정보는 스레드의 동작 행위 타입, 동작된 스레드의 식별자 ID, 동작된 스레드에 대응하는 특징 값 등을 표시하는 정보를 포함하지만, 이에 제한되지 않으며; 특징 값은 스레드의 특징(들)을 표시하기 위해 사용된다. 바람직하게, 특징 값은 스레드의 코드 길이에 대응하는 체크 값이며; 예를 들어, 스레드의 코드 길이는 0x100이고, 특징 값은 코드 길이에 대응하는 순환 중복 체크((Cyclic Redundancy Check)(CRC)) 32 값이다.
행위 정보는 단지 일 예이며, 본 발명에 제한되지 않는다는 점을 주목해야 한다. 당업자는 가상 환경에서 위험 파일의 행위와 관련되는 임의의 정보가 본 명세서에 표현되는 행위 정보의 범위 내에 포함되어야 하는 점을 이해해야 한다.
바람직한 해결책으로서, 본 실시예의 행위 결정 모듈은 가상 환경에서 위험 파일에 의해 해제되는 적어도 하나의 파일을 획득하도록 구성되는 모듈(이하 도시되지 않은 "획득 모듈"로 지칭됨)을 더 포함하며; 감시 모듈(2)은 위험 파일에 대응하는 행위 정보를 획득하기 위해, 가상 환경에서 위험 파일 및 위험 파일에 의해 해제되는 적어도 하나의 파일의 행위(들)을 감시하도록 구성되는 모듈(이하 도시되지 않은 "서브 감시 모듈"로 지칭됨)을 더 포함한다.
가상 환경에서, 획득 모듈은 위험 파일에 의해 해제되는 적어도 하나의 파일을 획득한다.
예를 들어, 가상 환경에서, 획득 모듈은 실행 프로세스 동안 위험 파일(file2)에 의해 해제되는 이하의 파일을 획득한다: ser2vet.ext, autorun.inf.
가상 환경에서, 서브 감시 모듈은 위험 파일에 대응하는 행위 정보를 획득하기 위해, 위험 파일 및 위험 파일에 의해 해제되는 적어도 하나의 파일의 행위(들)를 감시한다.
예를 들어, 획득 모듈은 위험 파일(file2)에 의해 해제되는 이하의 위험 파일을 획득한다: ser2vet.exe, autorun.inf; 가상 환경에서, 서브 감시 모듈은 3개의 위험 파일의 행위 정보를 획득하기 위해, file2, ser2vet.exe, 및 autorun.inf 각각의 행위를 감시하고 획득된 행위 정보를 위험 파일(file2)에 대응하는 행위 정보로 간주한다.
서브 감시 모듈이 위험 파일에 의해 해제되는 각각의 파일의 행위(들)를 감시하는 방식은 상술한 감시 모듈(2)에서 위험 파일의 행위(들)를 감시하는 방식과 동일 또는 유사하며, 이는 여기서 상세히 열거되지 않는다는 점을 주목해야 한다.
상기 예는 단지 본 발명의 기술적 해결 방법을 더 잘 예시하기 위한 것이며, 본 발명을 제한하는 것이 아니라는 점을 주목해야 한다. 당업자는 위험 파일에 대응하는 행위 정보를 획득하기 위해 가상 환경에서 위험 파일의 행위(들)를 감시하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
바람직한 해결책으로서, 본 실시예의 행위 결정 모듈은 미리 결정된 폐쇄 조건을 충족시킬 때 가상 환경을 폐쇄하도록 구성되는 모듈(이하 도시되지 않은 "폐쇄 모듈"로 지칭됨)을 더 포함한다.
미리 결정된 폐쇄 조건을 충족시킬 때, 폐쇄 모듈은 가상 환경을 폐쇄한다.
미리 결정된 폐쇄 조건은 가상 환경의 폐쇄를 표시하는 임의의 미리 결정된 조건을 포함한다. 바람직하게, 미리 결정된 폐쇄 조건은 이하를 포함하지만, 이에 제한되지 않는다:
1) 위험 파일은 가상 환경에서 프로세스 종료 동작을 수행한다.
프로세스 종료 동작은 위험 파일의 프로세스로부터 종료를 표시하는 임의의 동작을 포함하며; 바람직하게, 프로세스 종료 동작은 위험 파일의 자동 삭제 동작, 가상 환경에서 사용자에 의해 실행되는 위험 파일을 삭제하는 동작 등을 포함하지만, 이에 제한되지 않는다.
2) 가상 환경 내의 위험 파일의 실행 시간은 미리 결정된 시간을 초과한다.
예를 들어, 미리 결정된 시간이 5s인 경우, 가상 환경 내의 위험 파일의 실행 시간이 5s를 초과할 때, 미리 결정된 폐쇄 조건이 충족된다.
미리 결정된 폐쇄 조건은 단지 예시적이며, 본 발명을 제한하는 것이 아니라는 점을 주목해야 한다. 당업자는 가상 환경의 폐쇄를 표시하는 임의의 미리 결정된 조건이 본 발명의 미리 결정된 폐쇄 조건의 범위 내에 포함되어야 하는 점을 이해해야 한다.
상기 예는 단지 본 발명의 기술적 해결책을 더 잘 예시하기 위한 것이며, 본 발명을 제한하는 것이 아니라는 점을 주목해야 한다. 당업자는 미리 결정된 폐쇄 조건을 충족시킬 때 가상 환경을 폐쇄하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
본 실시예의 해결책에 따르면, 그것은 위험 파일의 행위 정보를 획득하기 위해 컴퓨터 장치의 가상 환경에서 위험 파일을 실행함으로써 위험 파일의 행위 정보를 획득할 수 있다. 프로세스는 수동 분석을 필요로 하지 않고 따라서 행위 정보를 획득하는데 요구되는 시간을 크게 절약하며; 더욱이, 위험 파일의 모든 동작 행위는 가상 API(들)의 가상 실행을 통해 기록될 수 있기 때문에, 컴퓨터 장치에 의해 획득되는 행위 정보는 포괄적이며, 그것에 의해 컴퓨터 장치의 실제 환경이 불완전 행위 정보로 인해 완전히 복구될 수 없는 경우를 회피한다.
부가적으로, 가상 환경에서 위험 파일을 실행하는 것은 컴퓨터 장치의 실제 환경에 영향을 미치지 않을 것이고; 아울러, 컴퓨터 장치 내의 가상 환경의 점유 공간은 극히 작고; 더욱이, 가상 환경에서 가상 API의 기능을 실제로 수행할 필요가 없으며; 그 대신, 실제 환경에서 가상 API에 대응하는 실제 API를 호출하는 것과 동일한 피드백 결과를 반환하는 것만이 필요하다. 이것은 위험 파일이 가상 환경에서 더 빠르게 실행될 수 있게 하며, 그것에 의해 위험 파일의 행위 정보를 빠르게 획득한다.
도 4는 본 개시의 일 실시예에 따른 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 장치의 구조도를 도시한다. 본 실시예에 따른 행위 결정 장치는 실행 모듈(1), 감시 모듈(2), 및 위험 파일에 대응하는 행위 정보에 따라 컴퓨터 장치의 실제 환경을 복구하도록 구성되는 모듈(이하 "복구 모듈(3)"으로 지칭됨)을 포함한다. 실행 모듈(1) 및 감시 모듈(2)은 도 3을 참조하여 상세히 설명되었으며, 이는 여기서 상세히 열거되지 않는다.
복구 모듈(3)은 위험 파일에 대응하는 행위 정보에 따라 컴퓨터 장치의 실제 환경을 복구한다.
구체적으로, 복구 모듈(3)은 다수의 시나리오에서 위험 파일에 대응하는 행위 정보에 따라 컴퓨터 장치의 실제 환경을 복구할 수 있다.
예를 들어, 감시 모듈(2)이 동작한 후에, 복구 모듈(3)은 컴퓨터 장치의 실제 환경을 복구하기 위해 직접 동작한다.
다른 예에 대해, 감시 모듈(2)이 동작한 후에, 사용자에 의한 동작에 따라 위험 파일을 소거하는 것으로 결정될 때, 복구 모듈(3)은 위험 파일을 소거하는 동안 컴퓨터 장치의 실제 환경을 복구하기 위해 직접 동작한다.
다른 예에 대해, 위험 파일을 소거한 후에, 사용자에 의한 동작에 따라 실제 환경을 복구하는 요구가 결정될 때, 복구 모듈(3)은 컴퓨터 장치의 실제 환경을 복구하기 위해 동작한다.
바람직하게, 복구 모듈(3)은 컴퓨터 장치의 실제 환경을 복구하고 회복하기 위해 위험 파일에 대응하는 행위 정보에 따라 행위 정보에 의해 표시되는 동작 행위(들)와 반대로 동작(들)을 직접 수행한다.
예를 들어, 위험 파일의 행위 정보는 파일의 생성을 표시하는 정보, 및 생성된 파일의 경로 정보를 포함한다. 그 다음, 복구 모듈(3)은 실제 환경을 위험 파일의 실행 전의 상태로 회복하기 위해 행위 정보에 따라 경로 정보에 의해 표시되는 파일 정보 하에 생성된 파일을 삭제한다.
다른 예에 대해, 위험 파일의 행위 정보는 레지스트리 엔트리의 삭제를 표시하는 정보, 및 삭제된 레지스트리 엔트리를 포함한다. 그 다음, 복구 모듈(3)은 실제 환경을 위험 파일의 실행 전의 상태로 회복하기 위해 행위 정보에 따라 삭제된 레지스트리 엔트리를 회복한다.
복구 모듈(3)의 바람직한 해결책으로서, 복구 모듈(3)은 위험 파일에 대응하는 행위 정보에 따라 대응 복구 동작 정보를 결정하도록 구성되는 모듈(이하 도시되지 않은 "결정 모듈"로 지칭됨), 및 복구 동작 정보에 따라 컴퓨터 장치의 실제 환경을 복구하도록 구성되는 모듈(이하 도시되지 않은 "서브 복구 모듈"로 지칭됨)을 더 포함한다.
결정 모듈은 위험 파일에 대응하는 행위 정보에 따라 대응 복구 동작 정보를 결정한다.
복구 동작 정보는 복구 동작과 관련되는 임의의 정보를 포함한다. 바람직하게, 복구 동작 정보는 이하를 포함하지만, 이에 제한되지 않는다:
a) 파일 복구 동작과 관련되는 정보.
파일 복구 동작은 파일을 복구하는 임의의 동작, 예를 들어 파일 파라미터의 회복, 파일의 삭제 등을 포함한다. 바람직하게, 파일 복구 동작과 관련되는 정보는 파일의 복구 동작 타입을 표시하는 정보, 동작된 파일의 명칭, 회복된 파일 파라미터, 파일 파라미터의 값 등을 포함하지만, 이에 제한되지 않는다.
바람직하게, 결정 모듈은 컴퓨터 장치의 실제 시스템에서, 위험 파일 및 위험 파일에 의해 해제되는 적어도 하나의 파일을 스캐닝하고, 스캐닝의 결과 및 위험 파일의 행위 정보에 기초하여 파일 복구 동작과 관련되는 정보를 결정한다.
b) 레지스트리 복구 동작과 관련되는 정보
레지스트리 복구 동작은 레지스트리를 복구하는 임의의 동작, 예를 들어 레지스트리 엔트리의 복원 또는 삭제 등을 포함한다. 바람직하게, 레지스트리 복구 동작과 관련되는 정보는 레지스트리의 복구 동작 타입을 표시하는 정보, 동작된 레지스트리 엔트리, 및 레지스트리 엔트리에 대응하는 값 등을 포함하지만, 이에 제한되지 않는다.
바람직하게, 레지스트리 복구 동작이 레지스트리 엔트리를 설정하고 있을 때, 결정 모듈은 국부 지식 베이스에 질의함으로써 레지스트리 엔트리에 대응하는 디폴트 값을 획득하고, 디폴트 값을 레지스트리 엔트리에 대응하는 값으로 설정할 수 있다.
c) 프로세스 복구 동작과 관련되는 정보
프로세스 복구 동작은 프로세스를 복구하는 임의의 동작, 예를 들어 프로세스의 폐쇄 및 재시작 등을 포함한다. 바람직하게, 프로세스 복구 동작과 관련되는 정보는 프로세스의 복구 동작 타입을 표시하는 정보, 동작된 프로세스에 대응하는 경로 정보 등을 포함하지만, 이에 제한되지 않는다.
동작된 프로세스가 시스템 파일일 때, 프로세스 복구 동작은 프로세스의 복구 동작 정보를 획득하는 요구 없이, 컴퓨터 장치를 재시작하는 것을 통해 직접 완료될 수 있다는 점을 주목해야 한다.
d) 스레드 복구 동작과 관련되는 정보
스레드 복구 동작은 스레드를 복구하는 임의의 동작, 예를 들어 스레드를 중단하는 것 등을 포함한다. 바람직하게, 스레드 복구 동작과 관련되는 정보는 스레드의 복구 동작 타입을 표시하는 정보, 및 동작된 스레드에 대응하는 특징 값을 포함하지만, 이에 제한되지 않는다.
복구 동작 정보는 단지 일 예이며, 본 개시를 제한하지 않는다는 점을 주목해야 한다. 당업자는 복구 동작에 관한 임의의 정보가 본 개시의 복구 동작 정보의 범위 내에 포함되어야 하는 점을 이해해야 한다.
구체적으로, 결정 모듈은 위험 파일에 대응하는 행위 정보에 의해 표시되는 동작 행위에 따라 복구 동작 정보에 의해 표시되는 복구 동작을 결정하고, 복구 동작 및 행위 정보에 따라 복구 동작 정보를 더 결정한다.
예를 들어, 행위 정보는 크로스 프로세스 기록을 표시하는 정보 및 동작된 프로세스의 경로 정보를 포함하며; 결정 모듈은 크로스 프로세스 기록 동작을 표시하는 정보에 따라 복구 동작을 재시작 프로세스로 결정하고, 복구 동작 및 행위 정보에 따라, 복구 동작 정보가 재시작 프로세스를 표시하는 정보 및 재시작된 프로세스의 경로 정보를 포함하는 것으로 결정한다.
다른 예에 대해, 행위 정보는 스레드 인젝션을 표시하는 정보 및 동작된 스레드에 대응하는 특징 값을 포함하며; 결정 모듈은 스레드 인젝션을 표시하는 정보에 따라 복구 동작을 중단 스레드로 결정하고, 복구 동작 및 행위 정보에 따라, 복구 동작 정보가 중단 스레드를 표시하는 정보 및 중단된 스레드에 대응하는 특징 값을 포함하는 것으로 결정한다.
상기 예는 단지 본 발명의 기술적 해결책을 더 잘 예시하기 위한 것이며, 본 발명을 제한하는 것이 아니라는 점을 주목해야 한다. 당업자는 위험 파일에 대응하는 행위 정보에 따라 대응 복구 동작 정보를 결정하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
서브 복구 모듈은 복구 동작 정보에 따라 컴퓨터 장치의 실제 환경을 복구한다.
예를 들어, 결정 모듈에 의해 결정되는 복구 동작 정보는 프로세스의 재시작을 표시하는 정보 및 동작된 프로세스에 대응하는 경로 정보를 포함한다. 서브 복구 모듈은 경로 정보에 기초하여 대응 프로세스를 룩업하고 룩업된 프로세스를 재시작한다.
다른 예에 대해, 결정 모듈에 의해 결정되는 복구 동작 정보는 프로세스를 중단하는 것을 표시하는 정보 및 동작된 프로세스에 대응하는 특징 값을 포함한다. 서브 복구 모듈은 특징 값에 따라 매칭 스레드를 결정하고 스레드를 중단한다.
상기 예는 단지 본 발명의 기술적 해결책을 더 잘 예시하기 위한 것이며, 본 발명을 제한하는 것이 아니라는 점을 주목해야 한다. 당업자는 복구 동작 정보에 따라 컴퓨터 장치의 실제 환경을 복구하는 임의의 구현 방식이 본 발명의 범위 내에 포함되어야 하는 점을 이해해야 한다.
바람직하게, 복구 모듈(3)이 동작한 후에, 컴퓨터 장치를 재시작할 필요가 있는 것으로 판단될 때, 컴퓨터 장치는 사용자에게 컴퓨터 장치의 재시작을 프롬프팅하는 프롬프트 정보를 제공한다.
본 실시예의 해결책에 따르면, 컴퓨터 장치는 가상 환경에서 획득되는 바와 같이 위험 파일의 행위 정보에 따라 컴퓨터 장치의 실제 환경을 복구할 수 있으며, 그것에 의해 위험 파일 및 위험 파일에 의해 해제되는 다른 위험 파일에 의해 야기되는 실제 환경에 대한 파괴를 빠르게 그리고 완전히 복구한다.
본 발명은 소프트웨어 및/또는 소프트웨어 및 하드웨어의 조합에서 구현될 수 있다는 점을 주목해야 한다. 예를 들어, 본 발명 내의 각각의 모듈은 주문형 집적 회로((Application Specific Integrated Circuit)(ASIC)) 또는 임의의 다른 유사한 하드웨어 장치에 의해 구현될 수 있다. 일 실시예에서, 본 발명의 소프트웨어 프로그램은 상술한 바와 같이 단계 또는 기능을 구현하도록 프로세서를 통해 실행될 수 있다. 마찬가지로, 본 발명의 소프트웨어 프로그램(관련 데이터 구조를 포함함)은 컴퓨터 판독 가능 기록 매체, 예를 들어 랜덤 액세스 메모리((random access memory)(RAM)) 메모리, 자기 또는 광 드라이버 또는 플로피 디스크, 및 유사한 장치에 저장될 수 있다. 게다가, 본 발명의 일부 단계 또는 기능은 하드웨어, 예를 들어 다양한 단계 또는 기능을 실행하기 위해 프로세서와 협력하는 회로에 의해 구현될 수 있다.
본 개시는 상기 예시적 실시예의 상세로 제한되지 않고, 본 개시는 본 개시의 사상 또는 기본 특징으로부터 벗어나지 않으면서 다른 형태로 구현될 수 있다는 점이 당업자에게 명백하다. 따라서, 어떠한 방식으로도, 실시예는 예시적인 것으로 간주되고 제한적인 것으로 간주되지 않아야 하고; 본 개시의 범위는 상기 설명 대신 첨부된 청구항에 의해 제한된다. 따라서, 청구항의 균등 요소의 의미 및 범위에 들어가도록 의도되는 모든 변형은 본 개시 내에서 포괄되어야 한다. 청구항 내의 참조 부호는 관련된 청구항을 제한하는 것으로 간주되지 않아야 한다. 아울러, 용어 "포함한다/포함하는/구비한다/구비하는"은 다른 유닛 또는 단계를 배제하지 않고 단수는 복수를 배제하지 않는다는 점이 명백하다. 장치 청구항에 명시되는 복수의 유닛 또는 수단은 또한 소프트웨어 또는 하드웨어를 통해 단일 유닛 또는 수단에 의해 구현될 수 있다. 제 1 및 제 2와 같은 용어는 명칭을 표시하기 위해 사용되지만 임의의 특정 순서를 표시하지는 않는다.

Claims (21)

  1. 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 방법으로서,
    상기 위험 파일의 존재를 검출할 때 상기 컴퓨터 장치의 가상 환경에서 상기 위험 파일을 실행하고, 상기 가상 환경은 상기 컴퓨터 장치의 실제 환경에서 적어도 하나의 실제 API와 동일한 적어도 하나의 가상 API를 포함하는 단계;
    상기 위험 파일에 대응하는 상기 행위 정보를 획득하기 위해 상기 가상 환경에서 상기 위험 파일의 행위(들)를 감시하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 적어도 하나의 가상 API는 현재 활성 응용(들)을 판독할 수 있는 응용 판독 가상 API를 포함하며, 상기 가상 환경에서 위험 파일을 실행하는 단계는,
    상기 위험 파일이 상기 응용 판독 가상 API를 호출할 때 현재 활성 응용 정보를 상기 위험 파일에 제공하는 단계를 포함하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 가상 환경에서 상기 실행 위험 파일에 의해 해제되는 적어도 하나의 파일을 획득하는 단계를 더 포함하며;
    상기 위험 파일에 대응하는 상기 행위 정보를 획득하기 위해 상기 가상 환경에서 상기 위험 파일의 행위(들)를 감시하는 단계는,
    상기 위험 파일에 대응하는 상기 행위 정보를 획득하기 위해 상기 가상 환경에서 상기 위험 파일 및 상기 적어도 하나의 파일의 행위(들)를 감시하는 단계를 포함하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 행위 정보는,
    - 파일 동작 행위와 관련되는 정보;
    - 레지스트리 동작 행위와 관련되는 정보;
    - 프로세스 동작 행위와 관련되는 정보;
    - 스레드 동작 행위와 관련되는 정보 중 적어도 하나를 포함하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 위험 파일에 대응하는 상기 행위 정보에 따라 상기 컴퓨터 장치의 실제 환경을 복구하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서, 상기 위험 파일에 대응하는 상기 행위 정보에 따라 상기 컴퓨터 장치의 실제 환경을 복구하는 단계는,
    상기 위험 파일에 대응하는 상기 행위 정보에 따라 대응 복구 동작 정보를 결정하는 단계;
    상기 복구 동작 정보에 따라 상기 컴퓨터 장치의 실제 환경을 복구하는 단계를 포함하는 방법.
  7. 제6항에 있어서, 상기 복구 동작 정보는,
    - 파일 복구 동작과 관련되는 정보;
    - 레지스트리 복구 동작과 관련되는 정보;
    - 프로세스 복구 동작과 관련되는 정보;
    - 스레드 복구 동작과 관련되는 정보 중 적어도 하나를 포함하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    미리 결정된 폐쇄 조건을 충족시킬 때 상기 가상 환경을 폐쇄하는 단계를 더 포함하는 방법.
  9. 제8항에 있어서, 상기 미리 결정된 폐쇄 조건은,
    - 상기 위험 파일이 상기 가상 환경에서 프로세스 종료 동작을 수행하는 것;
    - 상기 가상 환경 내의 위험 파일의 실행 시간이 미리 결정된 시간을 초과하는 것 중 적어도 하나를 포함하는 방법.
  10. 컴퓨터 장치에서 위험 파일에 대응하는 행위 정보를 결정하는 장치로서,
    상기 위험 파일의 존재를 검출할 때 상기 컴퓨터 장치의 가상 환경에서 상기 위험 파일을 실행하도록 구성되며, 상기 가상 환경은 상기 컴퓨터 장치의 실제 환경에서 적어도 하나의 실제 API와 동일한 적어도 하나의 가상 API를 포함하는 모듈;
    상기 위험 파일에 대응하는 행위 정보를 획득하기 위해 상기 가상 환경에서 상기 위험 파일의 행위(들)를 감시하도록 구성되는 모듈을 포함하는 장치.
  11. 제10항에 있어서, 상기 적어도 하나의 가상 API는 현재 활성 응용(들)을 판독할 수 있는 응용 판독 가상 API를 포함하고, 상기 가상 환경에서 상기 위험 파일을 실행하도록 구성되는 모듈은,
    상기 위험 파일이 상기 응용 판독 가상 API를 호출할 때 현재 활성 응용 정보를 상기 위험 파일에 제공하도록 구성되는 모듈을 포함하는 장치.
  12. 제10항 또는 제11항에 있어서,
    상기 가상 환경에서 상기 실행 위험 파일에 의해 해제되는 적어도 하나의 파일을 획득하도록 구성되는 모듈을 더 포함하며;
    상기 위험 파일에 대응하는 행위 정보를 획득하기 위해 상기 가상 환경에서 상기 위험 파일의 행위(들)를 감시하도록 구성되는 모듈은,
    상기 위험 파일에 대응하는 상기 행위 정보를 획득하기 위해 상기 가상 환경에서 상기 위험 파일 및 상기 적어도 하나의 파일의 행위(들)를 감시하도록 구성되는 모듈을 포함하는 장치.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서, 상기 행위 정보는,
    - 파일 동작 행위와 관련되는 정보;
    - 레지스트리 동작 행위와 관련되는 정보;
    - 프로세스 동작 행위와 관련되는 정보;
    - 스레드 동작 행위와 관련되는 정보 중 적어도 하나를 포함하는 장치.
  14. 제10항 내지 제13항 중 어느 한 항에 있어서,
    상기 위험 파일에 대응하는 상기 행위 정보에 따라 상기 컴퓨터 장치의 실제 환경을 복구하도록 구성되는 모듈을 더 포함하는 장치.
  15. 제14항에 있어서, 상기 위험 파일에 대응하는 상기 행위 정보에 따라 상기 컴퓨터 장치의 실제 환경을 복구하도록 구성되는 모듈은,
    상기 위험 파일에 대응하는 상기 행위 정보에 따라 대응 복구 동작 정보를 결정하도록 구성되는 모듈;
    상기 복구 동작 정보에 따라 상기 컴퓨터 장치의 실제 환경을 복구하도록 구성되는 모듈을 포함하는 장치.
  16. 제15항에 있어서, 상기 복구 동작 정보는,
    - 파일 복구 동작과 관련되는 정보;
    - 레지스트리 복구 동작과 관련되는 정보;
    - 프로세스 복구 동작과 관련되는 정보;
    - 스레드 복구 동작과 관련되는 정보 중 적어도 하나를 포함하는 장치.
  17. 제10항 내지 제16항 중 어느 한 항에 있어서,
    미리 결정된 폐쇄 조건을 충족시킬 때 상기 가상 환경을 폐쇄하도록 구성되는 모듈을 더 포함하는 장치.
  18. 제17항에 있어서, 상기 미리 결정된 폐쇄 조건은,
    - 상기 위험 파일이 상기 가상 환경에서 프로세스 종료 동작을 수행하는 것;
    - 상기 가상 환경 내의 위험 파일의 실행 시간이 미리 결정된 시간을 초과하는 것 중 적어도 하나를 포함하는 방법.
  19. 컴퓨터 코드를 포함하는 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 코드가 실행될 때, 제1항 내지 제9항 중 어느 한 항에 따른 방법이 수행되는 컴퓨터 판독 가능 매체.
  20. 컴퓨터 프로그램 제품이 실행될 때, 제1항 내지 제9항 중 어느 한 항에 따른 방법이 수행되는 컴퓨터 프로그램 제품.
  21. 메모리 및 프로세서를 포함하는 컴퓨터 장치로서, 상기 메모리는 컴퓨터 코드를 저장하는 반면에, 상기 프로세서는 상기 컴퓨터 코드를 실행하는 것을 통해 제1항 내지 제9항 중 어느 한 항에 따른 방법을 수행하도록 구성되는 컴퓨터 장치.
KR1020167030047A 2015-03-18 2015-06-25 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치 KR101974989B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510119820.7A CN104766006B (zh) 2015-03-18 2015-03-18 一种确定危险文件所对应的行为信息的方法和装置
CN201510119820.7 2015-03-18
PCT/CN2015/082409 WO2016145749A1 (zh) 2015-03-18 2015-06-25 一种确定危险文件所对应的行为信息的方法和装置

Publications (2)

Publication Number Publication Date
KR20160138523A true KR20160138523A (ko) 2016-12-05
KR101974989B1 KR101974989B1 (ko) 2019-05-07

Family

ID=53647828

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167030047A KR101974989B1 (ko) 2015-03-18 2015-06-25 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치

Country Status (6)

Country Link
US (1) US10915624B2 (ko)
EP (1) EP3113060B1 (ko)
JP (1) JP2017520820A (ko)
KR (1) KR101974989B1 (ko)
CN (1) CN104766006B (ko)
WO (1) WO2016145749A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019009601A1 (ko) * 2017-07-04 2019-01-10 주식회사 수산아이앤티 웹 소스를 보호하기 위한 장치 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106921608B (zh) * 2015-12-24 2019-11-22 华为技术有限公司 一种检测终端安全状况方法、装置及系统
CN110020933B (zh) * 2019-04-10 2020-06-23 南方电网数字电网研究院有限公司 应用于财务业务系统的自动退出方法、装置和计算机设备
US11336690B1 (en) * 2019-11-15 2022-05-17 National Technology & Engineering Solutions Of Sandia, Llc Threat emulation framework
JP7489197B2 (ja) * 2020-01-31 2024-05-23 株式会社Nttデータ クラウド監視・修復方法、クラウド監視・修復システム及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342106A (ja) * 2001-04-29 2002-11-29 Beijing Rising Technology Corp Ltd 既知や未知のコンピュータウィルスの検索・駆除方法
CN101350049A (zh) * 2007-07-16 2009-01-21 珠海金山软件股份有限公司 鉴定病毒文件的方法、装置及网络设备
KR20090067569A (ko) * 2007-12-21 2009-06-25 (주) 세인트 시큐리티 가상화 기법을 이용한 윈도우 커널 보호 시스템
KR20110087826A (ko) * 2010-01-27 2011-08-03 한남대학교 산학협력단 가상머신을 이용한 악성소프트웨어 탐지 방법

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6192512B1 (en) * 1998-09-24 2001-02-20 International Business Machines Corporation Interpreter with virtualized interface
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
CN1356631A (zh) * 2001-12-03 2002-07-03 上海市计算机病毒防范服务中心 分布式病毒监测体系结构
US8171553B2 (en) * 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US7779472B1 (en) * 2005-10-11 2010-08-17 Trend Micro, Inc. Application behavior based malware detection
JP2007334536A (ja) * 2006-06-14 2007-12-27 Securebrain Corp マルウェアの挙動解析システム
EP1933248A1 (de) * 2006-12-12 2008-06-18 secunet Security Networks Aktiengesellschaft Verfahren zur sicheren Datenverarbeitung auf einem Computersystem
US8307443B2 (en) * 2007-09-28 2012-11-06 Microsoft Corporation Securing anti-virus software with virtualization
US7797748B2 (en) * 2007-12-12 2010-09-14 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
JP4705961B2 (ja) * 2008-01-25 2011-06-22 Sky株式会社 ウィルス被害範囲予測システム
JP4755658B2 (ja) * 2008-01-30 2011-08-24 日本電信電話株式会社 解析システム、解析方法および解析プログラム
US8312547B1 (en) * 2008-03-31 2012-11-13 Symantec Corporation Anti-malware scanning in a portable application virtualized environment
JP2009037651A (ja) * 2008-11-17 2009-02-19 Fujitsu Ltd セキュリティ管理システム
US8528075B2 (en) * 2008-11-30 2013-09-03 Red Hat Israel, Ltd. Accelerating the execution of anti-virus programs in a virtual machine environment
JP5274227B2 (ja) * 2008-12-10 2013-08-28 株式会社ラック ウェブページ検査装置、コンピュータシステム、ウェブページ検査方法、及びプログラム
US8407787B1 (en) * 2009-01-22 2013-03-26 Trend Micro Incorporated Computer apparatus and method for non-intrusive inspection of program behavior
JP5440973B2 (ja) * 2009-02-23 2014-03-12 独立行政法人情報通信研究機構 コンピュータ検査システム、コンピュータ検査方法
JP5225942B2 (ja) * 2009-07-01 2013-07-03 日本電信電話株式会社 解析システム、解析方法、及び解析プログラム
US8479286B2 (en) * 2009-12-15 2013-07-02 Mcafee, Inc. Systems and methods for behavioral sandboxing
TWI407328B (zh) * 2010-09-15 2013-09-01 Chunghwa Telecom Co Ltd 網路病毒防護方法及系統
US8555385B1 (en) * 2011-03-14 2013-10-08 Symantec Corporation Techniques for behavior based malware analysis
US20120254993A1 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
US9298910B2 (en) * 2011-06-08 2016-03-29 Mcafee, Inc. System and method for virtual partition monitoring
RU2514141C1 (ru) * 2012-09-28 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" Способ эмуляции вызовов системных функций для обхода средств противодействия эмуляции
KR101429131B1 (ko) * 2013-06-12 2014-08-11 소프트캠프(주) 시스템 보호를 위한 파일 보안용 관리장치와 관리방법
US9591003B2 (en) 2013-08-28 2017-03-07 Amazon Technologies, Inc. Dynamic application security verification
RU2580030C2 (ru) * 2014-04-18 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети
US9973531B1 (en) * 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9471283B2 (en) * 2014-06-11 2016-10-18 Ca, Inc. Generating virtualized application programming interface (API) implementation from narrative API documentation
US9917855B1 (en) * 2016-03-03 2018-03-13 Trend Micro Incorporated Mixed analysys-based virtual machine sandbox

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342106A (ja) * 2001-04-29 2002-11-29 Beijing Rising Technology Corp Ltd 既知や未知のコンピュータウィルスの検索・駆除方法
CN101350049A (zh) * 2007-07-16 2009-01-21 珠海金山软件股份有限公司 鉴定病毒文件的方法、装置及网络设备
KR20090067569A (ko) * 2007-12-21 2009-06-25 (주) 세인트 시큐리티 가상화 기법을 이용한 윈도우 커널 보호 시스템
KR20110087826A (ko) * 2010-01-27 2011-08-03 한남대학교 산학협력단 가상머신을 이용한 악성소프트웨어 탐지 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019009601A1 (ko) * 2017-07-04 2019-01-10 주식회사 수산아이앤티 웹 소스를 보호하기 위한 장치 및 방법

Also Published As

Publication number Publication date
JP2017520820A (ja) 2017-07-27
EP3113060B1 (en) 2021-01-13
EP3113060A4 (en) 2017-11-08
CN104766006A (zh) 2015-07-08
CN104766006B (zh) 2019-03-12
US20170124321A1 (en) 2017-05-04
EP3113060A1 (en) 2017-01-04
US10915624B2 (en) 2021-02-09
WO2016145749A1 (zh) 2016-09-22
KR101974989B1 (ko) 2019-05-07

Similar Documents

Publication Publication Date Title
US10977370B2 (en) Method of remediating operations performed by a program and system thereof
US10972488B2 (en) Method and system for modeling all operations and executions of an attack and malicious process entry
KR101974989B1 (ko) 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치
US10462160B2 (en) Method and system for identifying uncorrelated suspicious events during an attack
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
KR101647487B1 (ko) 패치파일 분석시스템과 분석방법
EP3362937B1 (en) Method of remediating a program and system thereof by undoing operations
US20200159913A1 (en) Malware Detection Method and Malware Detection Apparatus
US20190147163A1 (en) Inferential exploit attempt detection
US9330260B1 (en) Detecting auto-start malware by checking its aggressive load point behaviors
US20160156645A1 (en) Method and apparatus for detecting macro viruses
JP2017033561A (ja) ブートフェーズにおける早期ロードを通じた完全性保証
CN111625834A (zh) Docker镜像文件漏洞检测系统及检测方法
KR101500512B1 (ko) 데이터 프로세싱 시스템 보안 장치와 보안방법
US10880316B2 (en) Method and system for determining initial execution of an attack
CN111177716B (zh) 一种内存中可执行文件获取方法、装置、设备及存储介质
RU2583711C2 (ru) Способ отложенного устранения вредоносного кода
CN110750805B (zh) 应用程序访问控制方法、装置、电子设备及可读存储介质
CN108304699B (zh) 一种对安全软件进行保护的方法及装置
CN111221628A (zh) 虚拟化平台上对虚拟机文件的安全检测方法及装置
CN111949362A (zh) 一种基于虚拟化技术的主机信息采集方法
KR101138746B1 (ko) 실행 파일을 이용한 악성 코드 차단 장치 및 방법
US20240111867A1 (en) Cyber recovery forensics kit - experimentation automation
US20220382636A1 (en) Security inspections
JP6687844B2 (ja) マルウエア解析装置、マルウエア解析方法及びマルウエア解析プログラム

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)