KR20100055314A - 모니터 장치, 모니터링 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램 산출물 - Google Patents

모니터 장치, 모니터링 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램 산출물 Download PDF

Info

Publication number
KR20100055314A
KR20100055314A KR1020090038538A KR20090038538A KR20100055314A KR 20100055314 A KR20100055314 A KR 20100055314A KR 1020090038538 A KR1020090038538 A KR 1020090038538A KR 20090038538 A KR20090038538 A KR 20090038538A KR 20100055314 A KR20100055314 A KR 20100055314A
Authority
KR
South Korea
Prior art keywords
instruction
address
system call
entry point
hardware
Prior art date
Application number
KR1020090038538A
Other languages
English (en)
Other versions
KR101051722B1 (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 KR20100055314A publication Critical patent/KR20100055314A/ko
Application granted granted Critical
Publication of KR101051722B1 publication Critical patent/KR101051722B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

모니터 장치, 모니터 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램 산출물이 개시된다. 상기 하드웨어는 중앙 처리 유닛(CPU: Central Processing Unit)) 및 저장 모듈(storage module)을 포함한다. 상기 모니터 장치는 검색 모듈(retrieval module) 및 분석 모듈(analysis module)을 포함한다. 상기 검색 모듈은 프로세스가 실행되기 전에 상기 저장 모듈로부터 상기 프로세스의 상기 엔트리 포인트 정보를 검색하며, 상기 프로세스는 적어도 하나의 명령을 포함한다. 상기 분석 모듈은 상기 엔트리 포인트 정보에 따라 상기 CPU로부터 상기 프로세스에 상응하는 어드레스를 검색한다. 상기 CPU가 적어도 하나의 명령을 실행할 때, 상기 저장 모듈은 상기 어드레스에 따른 상기 적어도 하나의 명령을 저장한다.

Description

모니터 장치, 모니터링 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램 산출물{MONITOR DEVICE, MONITORING METHOD AND COMPUTER PROGRAM PRODUCT THEREOF FOR HARDWARE}
본 발명은 모니터 장치, 모니터 방법 및 하드웨어용 컴퓨터 프로그램 산출물 에 관한 것으로서, 특히, 하드웨어 및 하드웨어 상에서 실행되는 소프트웨어를 악의적인 프로세스들(processes)로부터 보호할 수 있는 모니터 장치, 모니터 방법 및 그에 관한 컴퓨터 프로그램 산출물과 컴퓨터 프로그램을 기록한 기록매체에 관한 것이다.
정보 기술(IT:Information Technology)의 발달과 함께, 컴퓨터 및 네트워크들은 일상 생활에서 없어서는 안 되는 것이 되었다. 예를 들어, 컴퓨터는 다양한 데이터를 처리하는데, 다른 종류의 정보를 검색하는데, 온라인 쇼핑에, 및 데이터를 교환하는데 사용되어 왔다. 더구나, 전자-신용(e-credit) 카드에 의한 결제, 인터넷을 통한 쇼핑 및 웹 ATM 서비스와 같은 네트워크 서비스들 역시 자주 사용된다.
그러나, 사용자들은 보다 더 컴퓨터 및 인터넷에 의존하기 때문에, 멀웨 어(malware)가 사용자의 컴퓨터를 침입할 기회가 더 높다. 예를 들어, USB 모바일 디스크, 적외선 또는 블루투스 연결, 멀웨어는 인터넷을 통하여 컴퓨터 내에 저장된 중요한 정보를 훔치거나 파괴할 수 있다. 또는 심지어 사용자 컴퓨터 시스템을 제어함으로써 사용자 컴퓨터의 권한을 제한할 수 있다. 또한, 멀웨어는 상기 컴퓨터에 설치된 그의 광고들 또는 스팸 소프트웨어(spam software)로 인하여 성가신 존재일 뿐 아니라, 인터넷 자원들을 낭비한다. 그러므로, 컴퓨터 및 네트워크의 보안은 가장 중요한 토픽이다.
상술한 바와 같이 다양한 방법으로 멀웨어에 의하여 컴퓨터가 교란되는 것을 막기 위하여 통상의 방법은 멀웨어가 사용자의 컴퓨터에 접근하거나 교란하지 못하도록 안티바이러스 프로그램을 제공한다. 멀웨어 분석 툴에 의해 멀웨어 특징들을 구축하고 이러한 특징들에 따라 안티바이러스 프로그램은 멀웨어를 감지하고 멀웨어로부터의 교란을 방지할 수 있다. 더욱 상세하게는, CWSandbox (멀웨어 분석 툴)은 멀웨어의 다른 타입들을 분석하여 해당 멀웨어 특징들을 구축한 다음, Kaspersky(안티바이러스 프로그램)은 멀웨어 특징들에 따라 멀웨어를 감지하고 멀웨어로부터의 교란을 방지할 수 있다.
그러나, 안티바이러스 프로그램들 및 멀웨어 분석 툴들은 컴퓨터의 운영 시스템(OS)에 설치되어 멀웨어와 같은 방식으로 동작한다. 즉, 운영 시스템을 통하여 동작한다. 더욱 상세하게는 안티바이러스 프로그램 또는 멀웨어 분석 툴은 멀웨어와 같은 환경에서(즉 동일한 운영 시스템을 통하여) 동작한다. 바꾸어 말하면, 멀웨어가 안티바이러스 프로그램 또는 멀웨어 분석 툴이 작동하고 있는 환경에 있는 것을 감지하면, 멀웨어는 안티바이러스 프로그램 또는 멀웨어 분석 툴의 동작을 더욱 교란할 수 있다. 또는 멀웨어는 다른 노말 프로그램의 명령(어)을 실행하여 안티바이러스 프로그램 또는 멀웨어 분석 툴이 틀린 정보를 수집하도록 잘못 이끌 수 있다. 그러므로, 안티프로그램의 능력은 멀웨어와 동일한 운영 시스템을 사용함으로 인하여 상당히 제한될 수 있다.
따라서, 범람하는 멀웨어와 함께, 운영 시스템에서 동작하지 않고 멀웨어에 의하여 감지될 수 없는 모니터링 방법을 제공하는 것이 중요하다.
따라서, 본 발명이 해결하고자 하는 기술적 과제는 하드웨어용 모니터 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 모니터 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 마이크로프로세서가 상기 모니터 방법을 수행하도록 하기 위한 프로그램을 저장한 컴퓨터 프로그램 기록매체를 제공하는 것이다.
상기 하드웨어는 중앙 처리 유닛(CPU: Central Processing Unit)) 및 저장 모듈(storage module)을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따르면, 상기 모니터 장치는 검색 모듈(retrieval module) 및 분석 모듈(analysis module)을 포함한다. 상기 검색 모듈은 프로세스가 실행되기 전에 상기 저장 모듈로부터 상기 프로세스의 상기 엔트리 포인트 정보를 검색한다. 상기 프로세스는 적어도 하나의 명령을 포함한다. 상기 분석 모듈은 상기 엔트리 포인트 정보에 따라 상기 CPU로부터 상기 프로세스에 상응하는 어드레스를 검색한다. 상기 어드레스는 상기 적어도 하나의 명령을 저장하는 메모리 블록에 상응한다.
상기 CPU가 상기 적어도 하나의 명령을 실행할 때, 상기 저장 모듈은 상기 어드레스에 따라 상기 프로세스의 적어도 하나의 명령을 기록한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따르면, 상기 모니터 방법은 다음 단계들: (1) 프로세스가 실행되기 전에 상기 프로세스의 엔트리 포인트 정보를 추출하는 단계-상기 프로세스는 적어도 하나의 명령을 포함함-; (2) 상기 엔트리 포인트 정보에 따라 상기 프로세스에 상응하는 어드레스를 추출하는 단계-상기 어드레스는 상기 적어도 하나의 명령이 저장된 메모리 블록에 상응함-; (3)상기 프로세스의 상기 적어도 하나의 명령을 실행하는 단계; 및 (4) 상기 어드레스에 따라 상기 프로세스의 상기 적어도 하나의 명령을 기록하는 단계;를 구비한다.
상기 하드웨어는 상기 엔트리 포인트 정보를 추출하고 상기 어드레스에 따라 상기 프로세스의 상기 적어도 하나의 명령을 기록한다.
상기 또 다른 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따르면,마이크로프로세서가 상기 모니터 방법을 수행하도록 하기 위한 프로그램을 저장한 컴퓨터 프로그램 기록매체가 제공된다.
요약하면, 본 발명에 개시된 상기 모니터 장치, 상기 모니터 방법 및 상기 하드웨어용 컴퓨터 프로그램 산출물은 상기 하드웨어에서 실행되는 모든 프로세스들을 모니터할 수 있다. 상기 하드웨어에 대하여, 상기 컴퓨터가 상기 프로세스의 명령들을 실행할 때, 상기 명령들은 각각의 상응하는 어드레스에 따라 기록되고, 분석될 것이다. 이러한 방법으로, 본 발명은 상기 운영 시스템으로부터의 도움없이 상기 명령(들)에 상응하는 상기 어드레스에 따라 멀웨어를 감지할 수 있다.
따라서, 본 발명의 실시예에 따른 모니터 장치, 모니터 방법 및 상기 방법을 수행하기 위한 컴퓨터로 읽을 수 있는 매체에 의하면 종래 기술의 단점이 극복될 수 있다.
또한, 상기 방법을 통하여 상기 멀웨어를 검출함으로써, 본 발명은 또한 상기 컴퓨터의 중대한 섹션들(예를 들어, 메모리 섹션)을 보호하여, 상기 멀웨어에 의하여 야기된 교란에 의해 상기 중대한 섹션들에서 실행되는 프로세스들의 예기치 않은 결과들(예컨대, 인증 프로세스를 건너뛰는 것, 컨트롤 하이재킹(control highjacking) 등)을 방지할 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하여 첨부 도면 및 도면에 기재된 내용을 참조하여야만 한다. 이하, 첨부 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
본 발명은 모니터 장치, 모니터 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램을 제공한다. 본 발명의 장점은 상기 모니터 장치는 악의적인 프로세스에 의해 검출되지 않는 반면, 보다 상위 레벨 프로그램 언어 정보가 상기 하드웨어에서 또한 분석될 수 있다는 것이다. "프로그램"은 로드될 때 실행될 수 있는 파일로 정의될 수 있고, "프로세스"는 실행될 프로그램으로 정의될 수 있다. 그러나, 단순화를 위하여, 본 발명에서 실행 예정인 프로그램은 또한 프로세스로 불리워진다. 다음의 실시예들은 설명의 목적으로만 제공되며, 본 발명을 제한하는 것은 아니다. 다음의 실시예들 및 첨부된 도면에서 본 발명에 관련되지 않은 구성요소들은 생략된다.
도 1에 도시된 바와 같이, 본 발명의 제1 실시예는 하드웨어(11)를 위한 모니터 장치(13)이다. 하드웨어(11)는 CPU(111) 및 메모리(113)를 포함한다. 사용자는 운영 시스템(15)을 통하여 상기 하드웨어(11)의 구성요소들을 제어한다. 상기 운영 시스템(15)은 예를 들어 윈도우즈(Windows) 운영 시스템, 매킨토시(macintosh) 운영 시스템, 리눅스(Linux) 운영 시스템 또는 유닉스(Unix) 운영 시스템과 같은 다양한 상업적으로 이용 가능한 운영 시스템의 하나일 수 있다. 제1 실시예에서 상기 운영 시스템(15)은 윈도우즈 운영 시스템이다. 상기 하드웨어(11)는 개인용 컴퓨터(PC) 또는 애플 매킨토시(MAC)일 수 있다. 제1 실시예에서 상기 하드웨어(11)는 PC이다. 본 발명에서 상기 운영 시스템(15) 및 상기 하드웨어(11)의 타입은 제한되지 않고 이 분야에서 통상의 지식을 가진 자들은 다른 타입의 운영 시스템, 하드웨어 및 그들의 결합으로 본 발명을 실시할 수 있음을 이해하여야 한다. 따라서, 이에 대한 설명은 여기서는 더 이상 기술되지 않을 것이다.
상기 모니터 장치(13)는 검색 모듈(retrieval module, 131), 분석 모듈(analysis module, 133), 결정 모듈(determination module, 137) 및 인터셉션 모듈(interception module, 139)를 구비한다. 프로세스(150)를 실행하려고 준비될 때 상기 운영 시스템(15)은 상기 프로세스(150)에 어드레스(예컨대, CR3 값(110))를 할당하고 상기 CPU(111)의 레지스터에 상기 어드레스를 기록한다. 이에 따라, 상기 운영 시스템(15) 및 상기 하드웨어(11)는 CR3 값(110)에 따라 상기 프로세스에 상응하는 명령들 또는 시스템 콜을 실행할 수 있다. 상기 프로세스(150)는 상기 어드레스에 할당되므로, 상기 운영 시스템(15)는 예컨대, 플래그, 신호 또는 메모리 어드레스와 같은 엔트리 포인트 정보(112)를 발생하여 상기 프로세스(150)가 실행될 것임을 나타낸다.
상기 모니터 장치(13)의 상기 검색 모듈(13)이 상기 엔트리 포인트 정보(112)를 검색한 후에 상기 분석 모듈(133)은 상기 엔트리 포인트 정보(112)에 따라 상기 CPU(111)로부터 실행될 상기 프로세스(150)에 상응하는 상기 CR3 값(110)을 검색한다. 상기 프로세스(150)는 예컨대, 파일 기록, 문서 편집 등과 같은 특정 태스크를 달성하기 위하여 복수의 명령들(예를 들어, 명령들(150a, 150b, 및 150c))을 포함한다.
이러한 모든 명령들(150a, 150b, 및 150c)은 상기 프로세스(150)와 동일한 CR3 값을 가진다. 상기 프로세스(150)의 상기 명령들(150a, 150b, 및 150c)은 상기 하드웨어(11)의 상기 메모리(113)에 저장된다. 상기 특정 태스크는 상기 프로세스(150)의 상기 명령들(150a, 150b, 및 150c) 뿐만 아니라 상기 운영 시스템(15)에 저장된 다양한 시스템 콜들을 통하여 달성될 수 있다.
본 실시예에서, 상기 프로세스(150)는 휴대용 실행(PE:portable executable) 파일이다. 상기 PE 파일은 상기 운영 시스템(15)의 표준 PE 포맷, 예컨대, 실행(exe) 파일 또는 상기 매킨토시 운영 시스템이나 이와 유사한 운영 시스템의 동적 링크 라이브러리(DLL) 파일 포맷일 수 있다.
상기 시스템 콜(152)는 Win32 시스템 콜(Win32 system call) 또는 네이티브 시스템 콜(Win32 system call)일 수 있다. 유사하게, 상기 시스템 콜(152)은 또한 상기 프로세스(150)와 동일한 CR3 값(110)을 가질 수 있다. 상기 프로세스(150)의 구성은 현존하는 기술 문서들 및 자신의 지식에 기초하여 이 분야에서 통상의 지식을 가진 자에 의하여 쉽게 이해될 것이다. 따라서, 이에 대해서는 여기서는 더 이상 기술되지 않을 것이다.
상기 프로세스(150)의 실행이 시작되면, 상기 CPU(111)는 처리를 위하여 상기 메모리(113)로부터 상기 명령들(150a, 150b, 및 150c)을 검색할 것이다. 상기 명령들(150a, 150b, 및 150c)은 상기 프로세스(150)와 동일한 CR3 값(110)를 가진다. 따라서, 상기 명령들(150a, 150b, 및 150c)이 처리될 때 상기 모니터 장치(13)는 그것의 상기 CR3 값(110)에 따라 상기 하드웨어(11)의 상기 메모리(113)에 상기 명령들을 기록한다. 한편, 상기 CPU(111)가 처리를 위하여 상기 운영 시스템(150)으로부터 상기 프로세스에 상응하는 상기 시스템 콜(152)를 검색할 때, 상기 모니터 장치(13)는 그것의 상기 CR3 값(110)에 따라 상기 하드웨어(11)의 상기 메모리(113)에 상기 시스템 콜(152)을 기록한다.
상기 프로세스(150)의 실행이 진행 중이거나 완료되면, 상기 모니터 장치(13)의 상기 결정 모듈(137)은 상기 메모리(113)로부터 상기 프로세스(150)에 의해 실행된 상기 시스템 콜(152) 뿐만 아니라 모든 명령들(150a, 150b, 및 150c)을 검색하고, 상기 프로세스(150)가 악의적인 프로세스인지 아닌지를 판별하기 위하여 상기 시스템 콜(152) 뿐만 아니라 모든 명령들(150a, 150b, 및 150c)을 악의적인 프로세스 행동 모델(미도시)와 비교한다.
진행 중이거나 완료된 상기 프로세스(150)가 상기 악의적인 프로세스 행동 모델과 매치되기 때문에 악의적인 프로세스인 것으로 결정되면, 상기 모니터 장치(13)의 상기 인터셉션 모듈(139)은 악의적인 프로세스로 식별된 상기 프로세스(150)를 종료하기 위하여 상기 CPU(111)로 종료 신호(130)를 보낼 것이다. 보다 상세하게는, 상기 프로세스(150)의 명령들 중 하나(예를 들어, 명령(150b)) 또는 그에 관한 상기 시스템 콜(152)이 상기 CPU(111)에서 상기 하드웨어(11)의 중대한 섹션(115)에 접근하면, 상기 인터셉션 모듈(139)은 악의적인 프로세스로 식별된 상기 프로세스(150)를 종료하기 위하여 상기 CPU(111)로 종료 신호(130)를 보낼 것이다. 그리하여 상기 프로세스(150)가 상기 하드위어(11)의 중대한 섹션(115)에 접근하는 것을 방지한다.
본 실시예는 상기 프로세스(150)의 행동 모델을 끌어내기 위하여 상기 프로세스(150)가 실행되는 동안 상기 CPU(111)에 의해 처리된 상기 명령들 및 시스템을 기록하고 수집하기 위하여 상기 모니터 장치(13)를 주로 사용한다.
상기 모니터 장치(13)는 나중에 상기 프로세스(150)의 상기 행동 모델을 악의적인 프로세스 행동 모델과 비교한다. 상기 프로세스(150)의 상기 행동 모델이 상기 악의적인 행동 모델과 유사하면, 상기 프로세스(150)는 악의적인 프로세스일 가능성이 높다. 이에 응답하여, 상기 모니터 장치(13)는 악의적인 프로세스로 식별된 상기 프로세스(150)를 가로채어 상기 하드웨어의 구성요소들에 저장된 상기 데이터를 보호할 것이다.
본 발명은 상기 하드웨어(11)의 상기 중대한 섹션(115)의 범위에 대한 제한이 없으며, 상기 중대한 섹션(115)은 실행 순서와 관련된 프로그램 카운터(PC), 가상 어드레스 코드 변환과 관련된 변환 룩어사이드 버퍼(TLB: translation lookaside buffer), 또는 수정되거나 교란되는 동안 상기 하드웨어(11)의 비정상적인 동작을 야기할 수 있는 상기 하드웨어의 다른 섹션들일 수 있다. 상기 하드웨어(11)의 상기 중대한 섹션(115)은 이 분야에서 통상의 지식을 가진 자에 의해 정의될 수 있고, 따라서 이에 대해서는 여기서 더 이상 기술되지 않을 것이다.
도 2는 본 발명의 제2 실시예인 모니터 방법이다. 상기 모니터링 방법은 모니터 장치에 적용된다. 모니터 장치는 상기 제1 실시예에 기술된 모니터 장치일 수 있다. 더욱 상세하게는, 상기 제2 실시예의 상기 모니터 방법은 컴퓨터 프로그램 산출물에 의하여 구현될 수 있다. 상기 컴퓨터 프로그램 산출물이 마이크로프로세서에 로드되고 그의 복수의 코드들이 실행될 때, 상기 제2 실시예의 상기 모니터 방법은 달성될 수 있다. 이 컴퓨터 프로그램 산출물은 유형의 머신이 읽을 수 있는 매체-예컨대, 읽기 전용 메모리(ROM), 플래시 메모리, 플로피 디스크, 하드 디스크, 컴팩트 디스크, 모바일 디스크, 마그네틱 테이프, 네트워크에 접근 가능한 데이터베이스 또는 동일한 기능을 가지고 이 분야에서 통상의 지식을 가진 자에게 잘 알려진 다른 저장 매체-에 저장될 수 있다.
상기 제2 실시예의 모니터 방법은 다음 단계들을 포함할 수 있다. 먼저 301 단계에서는, 프로세스가 실행되기 전에 적어도 하나의 명령을 포함하는 상기 프로세스의 상기 엔트리 포인트 정보가 검색된다. 다음으로, 303 단계에서 상기 프로세 스에 어드레스가 할당된다. 다음으로, 305 단계에서 상기 엔트리 포인트 정보에 따라 상기 프로세스에 상응하는 어드레스가 검색된다. 307 단계에서 상기 프로세스에 상응하는 상기 적어도 하나의 명령이 실행되고, 309 단계에서 상기 어드레스에 따라 상기 프로세스에 해당하는 상기 적어도 하나의 명령이 기록된다.
311 단계에서 상기 프로세스에 상응하는 적어도 하나의 시스템 콜이 실행된다. 다음으로, 313 단계에서 상기 프로세스에 상응하는 상기 적어도 하나의 시스템 콜이 상기 어드레스에 따라 기록된다. 315 단계에서 상기 적어도 하나의 명령 및 상기 기록된 시스템 콜에 따라 상기 프로세스가 악의적인 프로세스인지 결정된다.
상기 프로세스가 악의적인 프로세스라면, 317 단계에서 상기 프로세스에 응답이 이루어진다. 그렇지 않다면, 즉, 상기 프로세스가 악의적인 프로세스가 아니라면, 어떤 다른 프로세스가 악의적인 프로세스인지 결정하기 위하여 301 내지 315 단계들이 반복된다.
요약하면, 본 발명은 하드웨어에서 상기 CPU에 의해 실행되는 프로세스의 명령들을 직접적으로 모니터한다. 상기 하드웨어에 대하여, 상기 사용자는 상기 프로세스의 명령 또는 시스템 콜을 실행할 때, 상기 명령 및 상기 시스템 콜은 그에 해당하는 어드레스에 따라 기록되고, 분석될 것이다. 이러한 방법으로, 본 발명은 상기 운영 시스템으로부터의 도움없이 상기 명령(들)에 상응하는 상기 어드레스에 따라 멀웨어를 검출할 수 있다. 이로써 종래 기술의 단점을 극복할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스 템에 의하여 읽혀질 수 있는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인 (functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 제1 실시 예에 따른 개략적인 블록도이다.
도 2는 본 발명의 제2 실시 예에 따른 흐름도이다.

Claims (18)

  1. 프로세스가 실행되기 전에 상기 프로세스의 엔트리 포인트 정보를 검색하는 단계-상기 프로세스는 적어도 하나의 명령을 포함함-;
    상기 엔트리 포인트 정보에 따라 상기 프로세스에 상응하는 어드레스를 검색하는 단계-상기 어드레스는 상기 적어도 하나의 명령이 저장된 메모리 블록에 상응함-;
    상기 프로세스의 상기 적어도 하나의 명령을 실행하는 단계; 및
    상기 어드레스에 따라 상기 프로세스의 상기 적어도 하나의 명령을 기록하는 단계를 구비하며,
    하드웨어는 상기 엔트리 포인트 정보를 검색하고 상기 어드레스에 따라 상기 프로세스의 상기 적어도 하나의 명령을 기록하는 모니터 방법.
  2. 제1항에 있어서, 상기 모니터 방법은
    상기 프로세스에 상기 어드레스를 할당하는 단계를 더 구비하는 모니터 방법.
  3. 제1항에 있어서, 상기 엔트리 포인트 정보는
    프로세서 플래그인 모니터 방법.
  4. 제1항에 있어서, 상기 모니터 방법은
    상기 프로세스에 상응하는 적어도 하나의 시스템 콜을 실행하는 단계; 및
    상기 어드레스에 따라 상기 적어도 하나의 시스템 콜을 기록하는 단계를 더 구비하는 모니터 방법.
  5. 제4항에 있어서, 상기 적어도 하나의 시스템 콜은
    win32 시스템 콜 및 네이티브 시스템 콜 중의 하나인 모니터 방법.
  6. 제1항에 있어서, 상기 모니터 방법은
    상기 기록된 프로세스의 상기 적어도 하나의 명령에 따라 상기 프로세스가 악의적인 프로세스인지를 결정하는 단계; 및
    상기 프로세스에 응답을 하는 단계를 더 구비하는 모니터 방법.
  7. 마이크로프로세서가 모니터 방법을 수행하도록 하기 위한 프로그램을 저장한 컴퓨터 프로그램 기록매체에 있어서, 상기 프로그램은
    프로세스가 수행되기 전에 상기 마이크로 프로세서가 상기 프로세스의 엔트리 포인트 정보를 검색하도록 하는 제1 명령-상기 프로세스는 적어도 하나의 명령을 포함함-;
    상기 엔트리 포인트 명령에 따라 상기 마이크로 프로세서가 상기 프로세스에 상응하는 어드레스를 검색하도록 하는 제2 명령-상기 어드레스는 상기 적어도 하나 의 명령이 저장되는 메모리 블록에 상응함-;
    상기 마이크로프로세서가 상기 프로세스의 상기 적어도 하나의 명령을 실행하도록 하는 제3 명령; 및
    상기 마이크로프로세서가 상기 어드레스에 따라 상기 프로세스의 상기 적어도 하나의 명령을 기록하도록 하는 제4 명령을 포함하는 컴퓨터 프로그램 기록 매체.
  8. 제7항에 있어서, 상기 프로그램은
    상기 마이크로프로세서가 상기 어드레스를 상기 프로세스에 할당하도록 하는 제5 명령을 더 포함하는 컴퓨터 프로그램 기록 매체.
  9. 제7항에 있어서, 상기 엔트리 포인트 정보는
    프로세서 플래그인 컴퓨터 프로그램 기록 매체.
  10. 제7항에 있어서, 상기 프로그램은
    상기 마이크로프로세스가 상기 프로세스에 상응하는 적어도 하나의 시스템 콜을 실행하도록 하는 제5 명령; 및
    상기 마이크로프로세스를가 상기 어드레스에 따라 상기 적어도 하나의 시스템 콜을 기록하도록 하는 제6 명령을 더 포함하는 컴퓨터 프로그램 기록 매체.
  11. 제10항에 있어서, 상기 적어도 하나의 시스템 콜은
    win32 시스템 콜 및 네이티브 시스템 콜 중의 하나인 컴퓨터 프로그램 기록 매체.
  12. 제7항에 있어서, 상기 프로그램은
    상기 마이크로프로세스가 상기 기록된 프로세스의 상기 적어도 하나의 명령에 따라 상기 프로세스가 악의적인 프로세스인지 결정하도록 하는 제5 명령; 및
    상기 마이크로프로세스가 상기 프로세스에 응답하도록 하는 제6 명령을 더 포함하는 컴퓨터 프로그램 기록 매체.
  13. 중앙 처리 유닛(CPU), 저장 모듈 및 중대한 섹션을 포함하는 하드웨어를 위한 모니터 장치에 있어서,
    프로세스가 실행되기 전에 상기 저장 모듈로부터 상기 프로세스의 엔트리 포인트 정보를 검색하는 검색 모듈-상기 프로세스는 적어도 하나의 명령을 포함함-; 및
    상기 엔트리 포인트 정보에 따라 상기 CPU로부터 상기 프로세스에 상응하는 어드레스를 검색하는 분석 모듈-상기 어드레스는 상기 적어도 하나의 명령이 저장된 메모리 블록에 상응함-을 구비하며,
    상기 하드웨어의 상기 저장 모듈은 상기 CPU가 상기 프로세스의 상기 적어도 하나의 명령을 실행할 때 상기 어드레스에 따라 상기 프로세스의 상기 적어도 하나 의 명령을 기록하는 모니터 장치.
  14. 제 13 항에 있어서, 운영 시스템은 상기 프로세스에 상기 어드레스를 할당하는 모니터 장치.
  15. 제 13 항에 있어서, 상기 상기 엔트리 포인트 정보는
    프로세서 플래그인 모니터 장치.
  16. 제 13 항에 있어서, 상기 하드웨어의 상기 저장 모듈은
    상기 CPU가 상기 프로세스에 상응하는 적어도 하나의 시스템 콜을 실행할 때 상기 어드레스에 따라 상기 적어도 하나의 시스템 콜을 기록하는 모니터 장치.
  17. 제 16 항에 있어서, 상기 적어도 하나의 시스템 콜은
    win32 시스템 콜 및 네이티브 시스템 콜 중의 하나인 모니터 장치.
  18. 제 13 항에 있어서, 상기 모니터 장치는
    상기 하드웨어의 상기 저장 모듈에 의하여 기록된 상기 프로세스의 상기 적어도 하나의 명령에 따라 상기 프로세스가 악의적인 프로세스인지를 결정하는 결정 모듈; 및
    상기 프로세스에 응답하는 인터셉션 모듈을 더 구비하는 모니터 장치.
KR1020090038538A 2008-11-17 2009-04-30 모니터 장치, 모니터링 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램 산출물 KR101051722B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW097144331 2008-11-17
TW097144331A TWI401582B (zh) 2008-11-17 2008-11-17 用於一硬體之監控裝置、監控方法及其電腦程式產品

Publications (2)

Publication Number Publication Date
KR20100055314A true KR20100055314A (ko) 2010-05-26
KR101051722B1 KR101051722B1 (ko) 2011-07-25

Family

ID=40750201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090038538A KR101051722B1 (ko) 2008-11-17 2009-04-30 모니터 장치, 모니터링 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램 산출물

Country Status (4)

Country Link
US (1) US20100125909A1 (ko)
KR (1) KR101051722B1 (ko)
GB (1) GB2465240B8 (ko)
TW (1) TWI401582B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130143492A (ko) * 2012-06-21 2013-12-31 제이에스알 가부시끼가이샤 액정 배향제, 액정 배향막, 위상차 필름, 위상차 필름의 제조 방법, 액정 표시 소자 및 중합체

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
US8863283B2 (en) 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
US8966624B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for securing an input/output path of an application against malware with a below-operating system security agent
US20120254994A1 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for microcode based anti-malware security
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US8966629B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US9032525B2 (en) 2011-03-29 2015-05-12 Mcafee, Inc. System and method for below-operating system trapping of driver filter attachment
US8959638B2 (en) 2011-03-29 2015-02-17 Mcafee, Inc. System and method for below-operating system trapping and securing of interdriver communication
CN102289616A (zh) * 2011-06-30 2011-12-21 北京邮电大学 移动智能终端中***资源恶意侵占的防范方法和***
KR101305249B1 (ko) 2012-07-12 2013-09-06 씨제이씨지브이 주식회사 다면 상영 시스템
EP2996034B1 (en) 2014-09-11 2018-08-15 Nxp B.V. Execution flow protection in microcontrollers
US9773110B2 (en) 2014-09-26 2017-09-26 Intel Corporation Cluster anomaly detection using function interposition
US9967267B2 (en) * 2016-04-15 2018-05-08 Sophos Limited Forensic analysis of computing activity
US9928366B2 (en) 2016-04-15 2018-03-27 Sophos Limited Endpoint malware detection using an event graph
EP4049156A4 (en) * 2019-10-25 2023-07-19 Hewlett-Packard Development Company, L.P. IDENTIFICATION OF MALWARE

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US7657419B2 (en) * 2001-06-19 2010-02-02 International Business Machines Corporation Analytical virtual machine
TWI252976B (en) * 2004-12-27 2006-04-11 Ind Tech Res Inst Detecting method and architecture thereof for malicious codes
US8516583B2 (en) * 2005-03-31 2013-08-20 Microsoft Corporation Aggregating the knowledge base of computer systems to proactively protect a computer from malware
US7349931B2 (en) * 2005-04-14 2008-03-25 Webroot Software, Inc. System and method for scanning obfuscated files for pestware
US7603712B2 (en) * 2005-04-21 2009-10-13 Microsoft Corporation Protecting a computer that provides a Web service from malware
US20070074289A1 (en) * 2005-09-28 2007-03-29 Phil Maddaloni Client side exploit tracking
US20070094496A1 (en) * 2005-10-25 2007-04-26 Michael Burtscher System and method for kernel-level pestware management
CN100437614C (zh) * 2005-11-16 2008-11-26 白杰 未知病毒程序的识别及清除方法
US20080034350A1 (en) * 2006-04-05 2008-02-07 Conti Gregory R System and Method for Checking the Integrity of Computer Program Code
US7814549B2 (en) * 2006-08-03 2010-10-12 Symantec Corporation Direct process access
US20080141376A1 (en) * 2006-10-24 2008-06-12 Pc Tools Technology Pty Ltd. Determining maliciousness of software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130143492A (ko) * 2012-06-21 2013-12-31 제이에스알 가부시끼가이샤 액정 배향제, 액정 배향막, 위상차 필름, 위상차 필름의 제조 방법, 액정 표시 소자 및 중합체

Also Published As

Publication number Publication date
GB2465240B (en) 2011-04-13
US20100125909A1 (en) 2010-05-20
TWI401582B (zh) 2013-07-11
GB0905966D0 (en) 2009-05-20
GB2465240A (en) 2010-05-19
KR101051722B1 (ko) 2011-07-25
GB2465240B8 (en) 2011-06-29
TW201020845A (en) 2010-06-01

Similar Documents

Publication Publication Date Title
KR101051722B1 (ko) 모니터 장치, 모니터링 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램 산출물
US11188650B2 (en) Detection of malware using feature hashing
US11416612B2 (en) Protecting against malware code injections in trusted processes
US10235520B2 (en) System and method for analyzing patch file
RU2589862C1 (ru) Способ обнаружения вредоносного кода в оперативной памяти
JP5265061B1 (ja) 悪意のあるファイル検査装置及び方法
US20190034632A1 (en) Method and system for static behavior-predictive malware detection
US8943592B1 (en) Methods of detection of software exploitation
US10121004B2 (en) Apparatus and method for monitoring virtual machine based on hypervisor
US9804948B2 (en) System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing
US10929537B2 (en) Systems and methods of protecting data from malware processes
KR101816751B1 (ko) 하이퍼바이저 기반의 가상머신 모니터링 장치 및 방법
Han et al. Malware classification methods using API sequence characteristics
JP6734481B2 (ja) コールスタック取得装置、コールスタック取得方法、および、コールスタック取得プログラム
US9202053B1 (en) MBR infection detection using emulation
US10678917B1 (en) Systems and methods for evaluating unfamiliar executables
CN113176926B (zh) 一种基于虚拟机自省技术的api动态监控方法及***
US9208314B1 (en) Systems and methods for distinguishing code of a program obfuscated within a packed program
US8141153B1 (en) Method and apparatus for detecting executable software in an alternate data stream
KR20160133927A (ko) 안드로이드 시스템 기반의 단말에서의 루팅 탐지 장치 및 방법
CN110659478A (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
US20240061931A1 (en) Executable file unpacking system and method for static analysis of malicious code
US10546125B1 (en) Systems and methods for detecting malware using static analysis
JP2006106939A (ja) 侵入検知方法及び侵入検知装置並びにプログラム
RU2592383C1 (ru) Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140708

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150706

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160711

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170711

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180711

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190710

Year of fee payment: 9