KR20110100923A - 악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체 - Google Patents

악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체 Download PDF

Info

Publication number
KR20110100923A
KR20110100923A KR1020100020015A KR20100020015A KR20110100923A KR 20110100923 A KR20110100923 A KR 20110100923A KR 1020100020015 A KR1020100020015 A KR 1020100020015A KR 20100020015 A KR20100020015 A KR 20100020015A KR 20110100923 A KR20110100923 A KR 20110100923A
Authority
KR
South Korea
Prior art keywords
malicious code
process information
operating system
hash value
binary data
Prior art date
Application number
KR1020100020015A
Other languages
English (en)
Other versions
KR101130088B1 (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 주식회사 안철수연구소
Priority to KR1020100020015A priority Critical patent/KR101130088B1/ko
Publication of KR20110100923A publication Critical patent/KR20110100923A/ko
Application granted granted Critical
Publication of KR101130088B1 publication Critical patent/KR101130088B1/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
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • 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/562Static detection
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)

Abstract

본 발명은 휴대용 단말기의 악성 코드를 탐지하는 기법에 관한 것으로, 악성 코드 탐지 요청에 따라 휴대용 단말기의 운영체제 계층으로부터 사용 중인 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하고, 수집된 프로세스 정보와 기 저장된 악성 코드 프로세스 정보를 비교한 후, 악성 코드 여부를 판단하고, 수집된 바이너리 데이터의 해쉬 값과 기 저장된 악성 코드 해쉬 값을 비교하여 악성 코드 여부를 판단함으로써, 제한 기능이 해제된 휴대용 단말기의 악성 코드를 효과적으로 탐지 및 제거할 수 있는 것이다.

Description

악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체{MALWARE DETECTING APPARATUS AND ITS METHOD, RECORDING MEDIUM HAVING COMPUTER PROGRAM RECORDED}
본 발명은 악성 코드 탐지 기법에 관한 것으로, 더욱 상세하게는 휴대용 단말기에 설치되어 휴대용 단말기의 악성 코드를 탐지 및 제거하는데 적합한 악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체에 관한 것이다.
잘 알려진 바와 같이, 휴대용 단말기(예를 들면, 핸드폰, 스마트폰, PDA 등)가 보편화되면서 현대인의 생활을 영위하기 위한 중요한 도구가 되고 있는데, 휴대용 단말기가 발전하고, 휴대용 단말기의 하드웨어 사양이 업그레이드됨에 따라 휴대용 단말기에 예를 들면, 윈도우(Window), 리눅스(Linux), 맥(MAC), 안드로이드(Android) 등의 운영체제(OS : operating system)가 설치되어 다양한 어플리케이션을 구동시킬 수 있다.
예를 들면, 휴대용 단말기에 설치된 운영체제를 기반으로 DMB(digital multimedia broadcasting) 방송을 위한 DMB 모듈, 근거리 무선 통신을 위한 블루투스(Bluetooth) 모듈 등의 하드웨어 모듈이나 멀티미디어 메시지 전송을 위한 MMS(multimedia messaging service) 모듈, 등록된 전화번호를 관리하기 위한 전화번호부 모듈 등의 소프트웨어 모듈과 같은 다양한 어플리케이션 모듈이 설치될 수 있다.
한편, 휴대용 단말기의 하드웨어가 고급화되고, 휴대용 단말기의 어플리케이션의 수가 다양하고 복잡해짐에 따라 바이러스(virus), 웜(worm) 등과 같은 악성 코드가 컴퓨터뿐만 아니라 휴대용 단말기에도 심각한 피해를 발생시킬 수 있는데, 휴대용 단말기도 일반적인 컴퓨터와 같이 운영체제를 기반으로 동작하고, 탑재된 하드웨어 모듈을 구동하기 위한 디바이스 드라이버(device driver)가 설치되기 때문에, 바이러스, 웜 등과 같은 악성 코드에 감염되어 오동작하거나 데이터가 삭제되는 등의 피해를 발생시킬 수 있다.
상술한 바와 같은 상황에서 휴대용 단말기는 무선 네트워크를 통해 서로 연결되기 때문에, 바이러스, 웜 등의 악성 코드가 다른 통신 단말기로 급속히 전파될 수 있는 위험이 있지만, 휴대용 단말기에 대한 악성 코드를 방지하기 위한 안티 바이러스 어플리케이션의 개발은 미흡한 실정이다.
특히, 휴대용 단말기를 제조하는 제조사에서는 악성 코드가 전파되는 것을 미연에 방지하기 위해 각종 제한 기능(예를 들면, 어플리케이션 설치 제한, 어플리케이션 구동 제한 등)을 설정하여 휴대용 단말기를 출시하게 되는데, 실제 사용자들은 이러한 제한 기능을 해제하여 다양한 어플리케이션을 설치 및 사용할 수 있으며, 이러한 휴대용 단말기에서는 악성 코드에 더욱 더 취약한 문제점이 있다.
이에 따라, 본 발명은 제한 기능이 해제된 휴대용 단말기에 설치되어 휴대용 단말기의 파일 시스템 및 어플리케이션에 대한 악성 코드를 탐지 및 제거할 수 있는 악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체를 제공하고자 한다.
본 발명의 일 실시 예에 따르면, 제한 기능이 해제된 휴대용 단말기의 어플리케이션 계층에 설치되며, 악성 코드 탐지를 위한 인터페이스를 제공하는 인터페이스 블록과, 상기 휴대용 단말기의 운영체제 계층에 설치되며, 상기 인터페이스 블록으로부터 상기 악성 코드 탐지가 요청되면, 상기 운영체제 계층에서 사용 중인 프로세스에 대한 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하여 기 저장된 악성 코드 프로세스 정보 및 기 저장된 악성 코드 해쉬 값과 비교한 후에, 상기 프로세스 또는 시스템 파일에 대한 악성 코드를 탐지하는 코어 블록을 포함하는 악성 코드 탐지 장치가 제공된다.
바람직하게는, 상기 코어 블록은, 상기 운영체제 계층에서 사용 중인 상기 프로세스에 대한 상기 프로세스 정보를 수집하여 상기 기 저장된 악성 코드 프로세스 정보와 비교하고, 상기 프로세스에 대한 악성 코드 여부를 검사하는 프로세서 검사부와, 상기 운영체제 계층에서 상기 바이너리 데이터를 수집하여 그에 대응하는 해쉬 값을 생성하고, 상기 생성된 해쉬 값과 상기 기 저장된 악성 코드 해쉬 값을 비교하여 상기 시스템 파일에 대한 악성 코드 여부를 검사하는 파일 시스템 검사부를 포함하는 악성 코드 탐지 장치가 제공된다.
바람직하게는, 상기 프로세서 검사부는, 상기 운영체제 계층에서 사용 중인 상기 프로세스에 대한 상기 프로세스 정보를 수집하여 상기 기 저장된 악성 코드 프로세스 정보와 비교하고, 상기 프로세스에 대한 악성 코드 여부를 검사한 후에, 상기 악성 코드로 판명된 상기 프로세스 정보에 대응하는 해당 어플리케이션을 제거하는 프로세스 정보 수집기와, 각종 악성 코드 프로세스 정보가 저장되는 프로세스 정보 데이터베이스를 포함하는 악성 코드 탐지 장치가 제공된다.
바람직하게는, 상기 파일 시스템 검사부는, 상기 운영체제 계층에서 상기 바이너리 데이터를 수집하여 그에 대응하는 해쉬 값을 생성하고, 상기 생성된 해쉬 값과 상기 기 저장된 악성 코드 해쉬 값을 비교하여 상기 시스템 파일에 대한 악성 코드 여부를 검사한 후에, 상기 악성 코드로 판명된 상기 시스템 파일을 제거하는 검사 엔진과, 각종 악성 코드 시그니쳐에 대응하는 악성 코드 해쉬 값이 저장되는 시그니쳐 데이터베이스를 포함하는 악성 코드 탐지 장치가 제공된다.
바람직하게는, 상기 코어 블록은, 상기 운영 체제 계층과 시스템 콜(system call)을 통해 상기 프로세스 정보 또는 바이너리 데이터를 수집하는 악성 코드 탐지 장치가 제공된다.
본 발명의 다른 실시 예에 따르면, 악성 코드 탐지가 요청되면, 제한 기능이 해제된 휴대용 단말기의 운영체제 계층에서 사용 중인 프로세스에 대한 프로세스 정보를 수집하는 단계와, 상기 수집된 프로세스 정보와 기 저장된 악성 코드 프로세스 정보를 비교하여 상기 프로세스에 대한 악성 코드 여부를 검사하는 단계와, 상기 운영체제 계층에서 시스템 파일의 바이너리 데이터를 수집하는 단계와, 상기 수집된 바이너리 데이터와 기 저장된 악성 코드 해쉬 값을 이용하여 상기 시스템 파일에 대한 상기 악성 코드 여부를 검사하는 단계를 포함하는 악성 코드 탐지 방법이 제공된다.
바람직하게는, 상기 악성 코드 탐지 방법은, 상기 프로세스에 대한 상기 악성 코드 여부를 검사한 후에, 악성 코드가 탐지된 상기 프로세스 정보에 대응하는 어플리케이션을 제거하는 단계를 더 포함하는 악성 코드 탐지 방법이 제공된다.
바람직하게는, 상기 악성 코드 탐지 방법은, 상기 시스템 파일에 대한 상기 악성 코드 여부를 검사한 후에, 상기 악성 코드가 탐지된 상기 시스템 파일을 제거하는 단계를 더 포함하는 악성 코드 탐지 방법이 제공된다.
바람직하게는, 상기 시스템 파일에 대한 상기 악성 코드 여부를 검사하는 단계는, 상기 바이너리 데이터에 대응하는 해쉬 값을 생성하여 상기 기 저장된 악성 코드 해쉬 값과 비교하는 악성 코드 탐지 방법이 제공된다.
바람직하게는, 상기 프로세스 정보 또는 바이너리 데이터는, 상기 운영체제 계층과 시스템 콜(system call)을 통해 수집되는 악성 코드 탐지 방법이 제공된다.
본 발명의 또 다른 실시 예에 따르면, 악성 코드 탐지 방법을 수행하는 컴퓨터 프로그램이 기록된 기록매체가 제공된다.
본 발명은, 악성 코드 탐지 요청에 따라 휴대용 단말기의 운영체제 계층으로부터 사용 중인 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하고, 기 저장된 악성 코드 프로세스 정보 또는 기 저장된 악성 코드 해쉬 값을 비교하여 악성 코드 여부를 판단함으로써, 악성 코드로 판단된 어플리케이션 및 시스템 파일을 효과적으로 탐지 및 제거할 수 있다.
도 1은 본 발명의 일 실시 예에 따라 악성 코드 탐지 장치가 설치되어 악성 코드를 탐지하는 휴대용 단말기의 블록 구성도,
도 2는 본 발명의 일 실시 예에 따라 휴대용 단말기의 파일 시스템 및 프로세스의 악성 코드를 탐지하는 코어 블록의 구성도,
도 3은 본 발명의 다른 실시 예에 따라 제한 기능이 해제된 휴대용 단말기의 악성 코드를 탐지하여 제거하는 과정을 도시한 플로우차트.
본 발명은, 악성 코드 탐지 요청에 따라 휴대용 단말기의 운영체제 계층으로부터 사용 중인 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하고, 수집된 프로세스 정보와 기 저장된 악성 코드 프로세스 정보를 비교한 후, 악성 코드 여부를 판단하고, 수집된 바이너리 데이터의 해쉬 값과 기 저장된 악성 코드 해쉬 값을 비교하여 악성 코드 여부를 판단함으로써, 제한 기능이 해제된 휴대용 단말기의 악성 코드를 탐지 및 제거한다는 것이며, 이러한 기술적 수단을 통해 종래 기술에서의 문제점을 해결할 수 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시 예에 따라 악성 코드 탐지 장치가 설치되어 악성 코드를 탐지하는 휴대용 단말기의 블록 구성도로서, 휴대용 단말기(100)는 운영체제 계층(102), 어플리케이션 계층(104) 등을 포함할 수 있으며, 휴대용 단말기(100)에 설치되는 악성 코드 탐지 장치(200)는 코어 블록(202), 인터페이스 블록(204) 등을 포함할 수 있다. 이하에서는, 휴대용 단말기(100)가 최초 출시될 때 설정된 각종 제한 기능이 해제된 단말기로 하여 설명한다.
도 1을 참조하면, 휴대용 단말기(100)의 운영체제 계층(102)은 예를 들면, 윈도우 모바일, 심비안, 맥, 안드로이드 등의 모바일 운영체제를 포함하는 것으로, 일반적으로 커널 시스템과, 예를 들어 전화, 멀티미디어, 네트워크, 데이터베이스, 웹, 블루투스, WAP, IrDA, 메시지, 보안 등에 대한 시스템 소프트웨어와, 어플리케이션 엔진과, 예를 들어 SMS, MMS, EMS, email 등에 대한 메시징 어플리케이션 엔진 등으로 구성되어 있으며, 악성 코드 탐지 장치(200)의 코어 블록(202)이 설치되고, 악성 코드 탐지 시 코어 블록(202)으로부터의 요청에 따라 커널 시스템에 접근하여 시스템 파일의 바이너리 데이터를 추출한 후, 추출된 바이너리 데이터를 악성 코드 탐지 장치(200)의 코어 블록(202)으로 전달한다.
또한, 휴대용 단말기(100)의 운영체제 계층(102)은 악성 코드 탐지 시 코어 블록(202)으로부터의 요청에 따라 사용 중인 프로세스를 탐지하여 탐지된 프로세스 정보(예를 들면, 프로세스 이름, 어플리케이션 이름 등)를 악성 코드 탐지 장치(200)의 코어 블록(202)으로 전달한다.
그리고, 어플리케이션 계층(104)은 운영체체 계층(102)의 제어에 따라 각종 응용 프로그램이 동작하며, 악성 코드 탐지 장치(200)의 인터페이스 블록(204)이 설치되어 사용자 인터페이스(UI)를 제공하고, 악성 코드 탐지 요청이 입력되면, 해당 탐지 요청을 코어 블록(202)으로 제공한다. 여기에서, 제한 기능이 해제된 휴대용 단말기(100)에서는 일반적인 어플리케이션을 통해 운영 체제 계층(102)에 대한 접근이 차단되지만, 악성 코드 탐지 장치(200)의 인터페이스 블록(204)을 통해 코어 블록(202)으로 악성 코드 탐지를 요청하고, 코어 블록(202)에서 시스템 콜(system call)을 통해 운영체제 계층(102)에 접근할 수 있다.
한편, 악성 코드 탐지 장치(200)의 코어 블록(202)은 인터페이스 블록(204)으로부터 악성 코드 탐지가 요청되면, 시스템 콜을 통해 휴대용 단말기(100)의 운영체제 계층(102)으로 사용 중인 프로세스의 프로세스 정보를 전달하도록 요청하고, 운영체제 계층(102)로부터 전달되는 프로세스 정보를 수집 및 분석한 후, 프로세스 정보를 기 저장된 악성 코드 프로세서 정보와 비교한 후, 악성 코드 여부를 판단하고, 악성 코드로 판명된 해당 프로세스 정보에 대응하는 어플리케이션을 제거한다.
또한, 악성 코드 탐지 장치(200)의 코어 블록(202)은 시스템 콜을 통해 휴대용 단말기(100)의 운영체제 계층(102)으로 시스템 파일에 대한 바이너리 데이터를 전달하도록 요청하고, 운영체제 계층(102)로부터 전달되는 시스템 파일에 대한 바이너리 데이터를 수집 및 분석한 후, 바이너리 데이터에서 특정 해쉬(hash) 값을 생성한 후에, 기 저장된 악성 코드 해쉬 값과 비교한 후, 악성 코드 여부를 판단하고, 악성 코드로 판명된 해당 바이너리 데이터의 시스템 파일을 제거한다. 이 후, 악성 코드 탐지 결과 및 제거 결과는 인터페이스 블록(204)을 통해 표시될 수 있다.
예를 들면, MAC OS X를 기반으로 하는 휴대용 단말기의 경우 코어 OS(core OS), 코어 서비스 계층(core service layer), 미디어 계층(media layer), 코코아 터치 계층(cocoa touch layer), 어플리케이션 계층(application layer) 등을 포함하여 구성되는데, 코어 OS는 로우 레벨 유닉스(low level Unix) 기반의 커널 시스템으로, 하드웨어와의 인터페이스를 담당하며, 보안, 네트워크 등에 대한 기반 기능을 제공하고, 코어 서비스 계층은 시스템에서 사용하는 자료의 관리, 어드레스 북(address book) 등을 제공하며, 자료 구조, 쓰레드, 소켓 등을 관리하고, 미디어 계층은 그래픽 환경, 오디오, 비디오 등과 관련된 기능을 제공하며, 코코아 터치 계층은 어플리케이션 작성을 위한 툴(tool)을 제공하여 예를 들면, 사용자 인터페이스, 어드레이스 북, 맵(map), 이메일(email) 등의 응용 프로그램을 제작하는 기능을 제공하고, 어플리케이션 계층은 제작된 응용 프로그램이 동작하는 곳으로, 코코아 터치 계층을 기반으로 동작할 수 있다. 여기에서, 악성 탐지 장치(200)의 코어 블록(202)은 코어 OS에 설치되며, 인터페이스 블록(204)은 어플리케이션 계층에 설치될 수 있다.
이러한 환경에서 악성 코드를 탐지하는 과정에 대해 설명하면, MAC OS X의 어플리케이션 계층에 설치된 악성 코드 탐지 장치(200)의 인터페이스 블록(204)에 악성 코드를 탐지하기 위한 요청이 입력되면, 이러한 탐지 요청을 코어 블록(202)으로 제공하며, 코어 블록(202)에서 코어 OS에 악성 코드 탐지를 위해 사용 중인 프로세스 정보와 시스템 파일에 대한 바이너리 데이터의 전달을 요청하고, 코어 OS로부터 사용 중인 프로세스에 대한 프로세스 정보(예를 들면, 프로세스 이름, 어플리케이션 이름 등)가 전달되면, 코어 블록(202)에서는 해당 프로세스 정보와 기 저장된 악성 코드 프로세서 정보를 비교한 후, 악성 코드 여부를 판단한다. 이 후, 악성 코드로 판명된 해당 프로세스에 대응하는 어플리케이션은 코어 OS와 연동하여 제거할 수 있다.
또한, 코어 OS로부터 시스템 파일에 대한 바이너리 데이터가 전달되면, 해당 바이너리 데이터의 해쉬 값을 생성하고, 생성된 해쉬 값과 기 저장된 악성 코드 해쉬 값을 비교한 후, 악성 코드 여부를 판단한다. 이 후, 악성 코드로 판명된 해당 바이너리 데이터에 대응하는 시스템 파일은 코어 OS와 연동하여 제거할 수 있다.
따라서, 악성 코드 탐지 요청에 따라 휴대용 단말기의 운영체제 계층으로부터 사용 중인 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하고, 수집된 프로세스 정보와 기 저장된 악성 코드 프로세스 정보를 비교한 후, 악성 코드 여부를 판단하고, 수집된 바이너리 데이터의 해쉬 값과 기 저장된 악성 코드 해쉬 값을 비교하여 악성 코드 여부를 판단함으로써, 제한 기능이 해제된 휴대용 단말기의 악성 코드를 효과적으로 탐지 및 제거할 수 있다.
다음에, 상술한 바와 같은 구성을 갖는 휴대용 단말기에서 악성 코드 탐지 요청에 따라 휴대용 단말기의 운영체제 계층으로부터 사용 중인 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하고, 수집된 프로세스 정보와 기 저장된 악성 코드 프로세스 정보를 비교한 후, 악성 코드 여부를 판단하고, 수집된 바이너리 데이터의 해쉬 값과 기 저장된 악성 코드 해쉬 값을 비교하여 악성 코드 여부를 판단하며, 악성 코드로 판단된 해당 어플리케이션 또는 시스템 파일을 제거하는 악성 코드 탐지 장치의 코어 블록에 대해 설명한다.
도 2는 본 발명의 일 실시 예에 따라 휴대용 단말기의 파일 시스템 및 프로세스의 악성 코드를 탐지하는 코어 블록의 구성도로서, 코어 블록(202)은 프로세서 검사부(202a), 파일 시스템 검사부(202b) 등을 포함할 수 있다.
도 2를 참조하면, 프로세서 검사부(202a)는 예를 들면, 프로세스 정보 수집기(202a/1), 프로세스 정보 데이터베이스(202a/2) 등을 포함하여 휴대용 단말기(100)의 운영체제 계층(102)에서 사용 중인 프로세서에 대한 악성 코드 여부를 판단하는 것으로, 프로세스 정보 수집기(202a/1)는 인터페이스 블록(202)로부터 악성 코드 탐지가 요청되면, 시스템 콜을 통해 휴대용 단말기(100)의 운영체제 계층(102)으로 사용 중인 프로세스의 프로세스 정보를 전달하도록 요청하고, 운영체제 계층(102)로부터 전달되는 프로세스 정보(예를 들면, 프로세스 이름, 어플리케이션 이름 등)를 수집 및 분석하고, 프로세스 정보 데이터베이스(202a/2)에 기 저장된 악성 코드 프로세서 정보를 추출한 후에, 해당 프로세스 정보와 기 저장된 악성 코드 프로세서 정보를 비교하여 악성 코드 여부를 판단하며, 악성 코드로 판명된 해당 프로세스 정보에 대응하는 어플리케이션을 휴대용 단말기(100)의 운영체제 계층(102)과 연동하여 제거한다.
그리고, 파일 시스템 검사부(202b)는 예를 들면, 검사 엔진(202b/1), 시그니쳐 데이터베이스(202b/2) 등을 포함하여 휴대용 단말기(100)의 운영체제 계층(102)에서 시스템 파일의 악성 코드 여부를 판단하는 것으로, 검사 엔진(202b/1)은 인터페이스 블록(202)로부터 악성 코드 탐지가 요청되면, 시스템 콜을 통해 휴대용 단말기(100)의 운영체제 계층(102)으로 시스템 파일에 대한 바이너리 데이터를 전달하도록 요청하고, 운영체제 계층(102)로부터 전달되는 시스템 파일에 대한 바이너리 데이터를 수집 및 분석하고, 바이너리 데이터에서 특정 해쉬(hash) 값을 생성하며, 시그니쳐 데이터베이스(202b/2)에 기 저장된 악성 코드 해쉬 값을 추출한 후에, 생성된 해쉬 값과 기 저장된 악성 코드 해쉬 값을 비교하여 악성 코드 여부를 판단하고, 악성 코드로 판명된 해당 바이너리 데이터의 시스템 파일을 휴대용 단말기(100)의 운영체제 계층(102)과 연동하여 제거한다.
따라서, 악성 코드 탐지 요청에 따라 휴대용 단말기의 운영체제 계층으로부터 사용 중인 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하고, 기 저장된 악성 코드 프로세스 정보 또는 기 저장된 악성 코드 해쉬 값을 비교하여 악성 코드 여부를 판단함으로써, 악성 코드로 판단된 어플리케이션 및 시스템 파일을 효과적으로 탐지 및 제거할 수 있다.
다음에, 상술한 바와 같은 구성을 갖는 악성 코드 탐지 장치를 이용하여 악성 코드 탐지 요청에 따라 휴대용 단말기의 운영체제 계층으로부터 사용 중인 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하고, 기 저장된 악성 코드 프로세스 정보 또는 기 저장된 악성 코드 해쉬 값을 비교하여 악성 코드 여부를 판단한 후에, 악성 코드로 판명된 어플리케이션 및 시스템 파일을 제거하는 과정에 대해 설명한다.
도 3은 본 발명의 다른 실시 예에 따라 제한 기능이 해제된 휴대용 단말기의 악성 코드를 탐지하여 제거하는 과정을 도시한 플로우차트이다.
도 3을 참조하면, 악성 코드 탐지 장치(200)의 대기 모드에서(단계302), 인터페이스 블록(204)에서는 사용자가 도시 생략된 입력 수단(예를 들면, 키패드, 터치패드 등)을 통해 악성 코드를 탐지하기 위한 조작신호가 입력되는지를 체크한다(단계304).
상기 단계(304)에서의 체크 결과, 악성 코드를 탐지하기 위한 조작신호가 입력되면, 인터페이스 블록(204)에서는 제한 기능이 해제된 휴대용 단말기(100)의 악성 코드 탐지를 코어 블록(202)에 요청하고, 코어 블록(202)에서는 시스템 콜을 통해 휴대용 단말기(100)의 운영체제 계층(102)으로 운영체제에서 사용 중인 프로세스를 탐지하도록 요청하고, 제한 기능이 해제된 휴대용 단말기(100)의 운영체제 계층(102)에서는 사용 중인 프로세스를 탐지한다(단계306). 여기에서, 제한 기능이 해제된 휴대용 단말기(100)에서는 일반적인 어플리케이션을 통해 운영 체제 계층(102)에 대한 접근이 차단되지만, 악성 코드 탐지 장치(200)의 인터페이스 블록(204)을 통해 코어 블록(202)으로 악성 코드 탐지를 요청하고, 코어 블록(202)에서 시스템 콜(system call)을 통해 운영체제 계층(102)에 접근할 수 있다.
그리고, 제한 기능이 해제된 휴대용 단말기(100)의 운영체제 계층(102)에서는 탐지된 프로세스에 대응하는 프로세스 정보(예를 들면, 프로세스 이름, 어플리케이션 이름 등)를 추출하여 이를 코어 블록(202)으로 전달하고, 코어 블록(202)에서는 이러한 프로세스 정보를 수집한다(단계308).
다음에, 코어 블록(202)에서는 수집된 프로세스 정보를 분석하고, 기 저장된 악성 코드 프로세스 정보를 추출한 후에, 분석된 프로세스 정보와 기 저장된 악성 코드 프로세스 정보를 비교한다(단계310).
상기 단계(310)에서의 비교 결과, 코어 블록(202)에서는 악성 코드가 탐지되는지를 체크한다(단계312).
상기 단계(312)에서의 체크 결과, 악성 코드가 탐지되면, 코어 블록(202)에서는 제한 기능이 해제된 휴대용 단말기(100)의 운영체제 계층(102)과 연동하여 악성 코드가 탐지된 해당 프로세스(즉, 해당 어플리케이션)를 제거한다(단계314).
한편, 상기 단계(312)에서의 체크 결과, 악성 코드가 탐지되지 않으면, 코어 블록(202)에서는 시스템 콜을 통해 제한 기능이 해제된 휴대용 단말기(100)의 운영체제 계층(102)으로 시스템 파일의 바이너리 데이터를 전달하도록 요청하고, 제한 기능이 해제된 휴대용 단말기(100)의 운영체제 계층(102)에서는 커널 시스템에 접근하여 시스템 파일의 바이너리 데이터를 추출하며, 이러한 시스템 파일의 바이너리 데이터는 코어 블록(202)으로 전달되고, 코어 블록(202)에서는 이러한 시스템 파일의 바이너리 데이터를 수집 및 분석한다(단계316).
다음에, 코어 블록(202)에서는 수집 및 분석된 시스템 파일의 바이너리 데이터에 대응하는 특정 해쉬 값을 생성하고, 기 저장된 악성 코드 프로세스 정보를 추출한 후에, 생성된 해쉬 값과 기 저장된 악성 코드 해쉬 값을 비교한다(단계318).
상기 단계(318)에서의 비교 결과, 코어 블록(202)에서는 악성 코드가 탐지되는지를 체크한다(단계320).
상기 단계(320)에서의 체크 결과, 악성 코드가 탐지되면, 코어 블록(202)에서는 제한 기능이 해제된 휴대용 단말기(100)의 운영체제 계층(102)과 연동하여 악성 코드가 탐지된 해당 시스템 파일을 제거한다(단계322). 이 후, 악성 코드 탐지 결과 및 제거 결과는 인터페이스 블록(204)을 통해 표시될 수 있다.
따라서, 악성 코드 탐지 요청에 따라 휴대용 단말기의 운영체제 계층으로부터 사용 중인 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하고, 기 저장된 악성 코드 프로세스 정보 또는 기 저장된 악성 코드 해쉬 값을 비교하여 악성 코드 여부를 판단함으로써, 악성 코드로 판단된 어플리케이션 및 시스템 파일을 효과적으로 탐지 및 제거할 수 있다.
한편, 그리고, 도 3에 도시된 바와 같은 악성 코드 탐지 방법의 각 단계별 과정들은 컴퓨터 프로그램으로 작성 가능한데, 이 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 해당 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 정보 저장 매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 악성 코드 탐지 방법을 구현한다. 여기에서, 정보 저장 매체는 예를 들면, 자기 기록매체, 광 기록매체 및 캐리어 웨이브 매체 등을 포함할 수 있다.
이상의 설명에서는 본 발명의 다양한 실시 예들을 제시하여 설명하였으나 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함을 쉽게 알 수 있을 것이다.
100 : 휴대용 단말기 102 : 운영체제 계층
104 : 어플리케이션 계층 200 : 악성 코드 탐지 장치
202 : 코어 블록 202a : 프로세서 검사부
202a/1 : 프로세스 정보 수집기 202a/2 : 프로세스 정보 데이터베이스
202b : 파일 시스템 검사부 202b/1 : 검사 엔진
202b/2 : 시그니쳐 데이터베이스 204 : 인터페이스 블록

Claims (11)

  1. 제한 기능이 해제된 휴대용 단말기의 어플리케이션 계층에 설치되며, 악성 코드 탐지를 위한 인터페이스를 제공하는 인터페이스 블록과,
    상기 휴대용 단말기의 운영체제 계층에 설치되며, 상기 인터페이스 블록으로부터 상기 악성 코드 탐지가 요청되면, 상기 운영체제 계층에서 사용 중인 프로세스에 대한 프로세스 정보와 시스템 파일의 바이너리 데이터를 수집하여 기 저장된 악성 코드 프로세스 정보 및 기 저장된 악성 코드 해쉬 값과 비교한 후에, 상기 프로세스 또는 시스템 파일에 대한 악성 코드를 탐지하는 코어 블록을 포함하는
    악성 코드 탐지 장치.
  2. 제 1 항에 있어서,
    상기 코어 블록은,
    상기 운영체제 계층에서 사용 중인 상기 프로세스에 대한 상기 프로세스 정보를 수집하여 상기 기 저장된 악성 코드 프로세스 정보와 비교하고, 상기 프로세스에 대한 악성 코드 여부를 검사하는 프로세서 검사부와,
    상기 운영체제 계층에서 상기 바이너리 데이터를 수집하여 그에 대응하는 해쉬 값을 생성하고, 상기 생성된 해쉬 값과 상기 기 저장된 악성 코드 해쉬 값을 비교하여 상기 시스템 파일에 대한 악성 코드 여부를 검사하는 파일 시스템 검사부를 포함하는
    악성 코드 탐지 장치.
  3. 제 2 항에 있어서,
    상기 프로세서 검사부는,
    상기 운영체제 계층에서 사용 중인 상기 프로세스에 대한 상기 프로세스 정보를 수집하여 상기 기 저장된 악성 코드 프로세스 정보와 비교하고, 상기 프로세스에 대한 악성 코드 여부를 검사한 후에, 상기 악성 코드로 판명된 상기 프로세스 정보에 대응하는 해당 어플리케이션을 제거하는 프로세스 정보 수집기와,
    각종 악성 코드 프로세스 정보가 저장되는 프로세스 정보 데이터베이스를 포함하는
    악성 코드 탐지 장치.
  4. 제 2 항에 있어서,
    상기 파일 시스템 검사부는,
    상기 운영체제 계층에서 상기 바이너리 데이터를 수집하여 그에 대응하는 해쉬 값을 생성하고, 상기 생성된 해쉬 값과 상기 기 저장된 악성 코드 해쉬 값을 비교하여 상기 시스템 파일에 대한 악성 코드 여부를 검사한 후에, 상기 악성 코드로 판명된 상기 시스템 파일을 제거하는 검사 엔진과,
    각종 악성 코드 시그니쳐에 대응하는 악성 코드 해쉬 값이 저장되는 시그니쳐 데이터베이스를 포함하는
    악성 코드 탐지 장치.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 코어 블록은, 상기 운영 체제 계층과 시스템 콜(system call)을 통해 상기 프로세스 정보 또는 바이너리 데이터를 수집하는
    악성 코드 탐지 장치.
  6. 악성 코드 탐지가 요청되면, 제한 기능이 해제된 휴대용 단말기의 운영체제 계층에서 사용 중인 프로세스에 대한 프로세스 정보를 수집하는 단계와,
    상기 수집된 프로세스 정보와 기 저장된 악성 코드 프로세스 정보를 비교하여 상기 프로세스에 대한 악성 코드 여부를 검사하는 단계와,
    상기 운영체제 계층에서 시스템 파일의 바이너리 데이터를 수집하는 단계와,
    상기 수집된 바이너리 데이터와 기 저장된 악성 코드 해쉬값을 이용하여 상기 시스템 파일에 대한 상기 악성 코드 여부를 검사하는 단계를 포함하는
    악성 코드 탐지 방법.
  7. 제 6 항에 있어서,
    상기 악성 코드 탐지 방법은,
    상기 프로세스에 대한 상기 악성 코드 여부를 검사한 후에, 악성 코드가 탐지된 상기 프로세스 정보에 대응하는 어플리케이션을 제거하는 단계를 더 포함하는
    악성 코드 탐지 방법.
  8. 제 7 항에 있어서,
    상기 악성 코드 탐지 방법은,
    상기 시스템 파일에 대한 상기 악성 코드 여부를 검사한 후에, 상기 악성 코드가 탐지된 상기 시스템 파일을 제거하는 단계를 더 포함하는
    악성 코드 탐지 방법.
  9. 제 8 항에 있어서,
    상기 시스템 파일에 대한 상기 악성 코드 여부를 검사하는 단계는, 상기 바이너리 데이터에 대응하는 해쉬 값을 생성하여 상기 기 저장된 악성 코드 해쉬 값과 비교하는
    악성 코드 탐지 방법.
  10. 제 6 항 또는 제 9 항 중 어느 한 항에 있어서,
    상기 프로세스 정보 또는 바이너리 데이터는, 상기 운영체제 계층과 시스템 콜(system call)을 통해 수집되는
    악성 코드 탐지 방법.
  11. 제 6 항 내지 제 10 항 중에서 어느 한 항의 악성 코드 탐지 방법을 수행하는 컴퓨터 프로그램이 기록된 기록매체.
KR1020100020015A 2010-03-05 2010-03-05 악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체 KR101130088B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100020015A KR101130088B1 (ko) 2010-03-05 2010-03-05 악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100020015A KR101130088B1 (ko) 2010-03-05 2010-03-05 악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체

Publications (2)

Publication Number Publication Date
KR20110100923A true KR20110100923A (ko) 2011-09-15
KR101130088B1 KR101130088B1 (ko) 2012-03-28

Family

ID=44953184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100020015A KR101130088B1 (ko) 2010-03-05 2010-03-05 악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체

Country Status (1)

Country Link
KR (1) KR101130088B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101477050B1 (ko) * 2014-05-28 2015-01-08 충남대학교산학협력단 메모리 덤프 기법을 이용한 어플리케이션의 실행코드 추출 방법
US8955056B2 (en) 2012-02-24 2015-02-10 Pantech Co., Ltd. Terminal and method for assigning permission to application
KR101715759B1 (ko) * 2015-09-22 2017-03-15 한국전자통신연구원 멀티코어 환경에서의 악성코드 분석 장치 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160025881A (ko) 2014-08-28 2016-03-09 주식회사 안랩 공유 라이브러리 파일의 악성을 진단하기 위한 장치 및 방법
KR101645214B1 (ko) * 2014-09-12 2016-08-16 고려대학교 산학협력단 악성코드 분류 장치 및 악성코드 분류 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100878895B1 (ko) * 2007-02-08 2009-01-15 삼성전자주식회사 휴대단말 악성코드 처리장치 및 그 처리 방법
KR20090063197A (ko) * 2009-05-28 2009-06-17 (주)유엠브이기술 해쉬 검증 기반의 웹쉘 탐지 성능 향상 기술

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8955056B2 (en) 2012-02-24 2015-02-10 Pantech Co., Ltd. Terminal and method for assigning permission to application
KR101477050B1 (ko) * 2014-05-28 2015-01-08 충남대학교산학협력단 메모리 덤프 기법을 이용한 어플리케이션의 실행코드 추출 방법
KR101715759B1 (ko) * 2015-09-22 2017-03-15 한국전자통신연구원 멀티코어 환경에서의 악성코드 분석 장치 및 방법
US9965631B2 (en) 2015-09-22 2018-05-08 Electronics And Telecommunications Research Institute Apparatus and method for analyzing malicious code in multi-core environment using a program flow tracer

Also Published As

Publication number Publication date
KR101130088B1 (ko) 2012-03-28

Similar Documents

Publication Publication Date Title
US10116451B2 (en) File backups using a trusted storage region
US9230099B1 (en) Systems and methods for combining static and dynamic code analysis
US9613209B2 (en) Augmenting system restore with malware detection
US8640233B2 (en) Environmental imaging
US8782615B2 (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
CN104123218B (zh) 一种代码覆盖测试方法、装置和系统
CN108763951B (zh) 一种数据的保护方法及装置
CN107103238A (zh) 用于保护计算机系统免遭恶意对象活动侵害的系统和方法
WO2012068101A1 (en) Shared resource dependencies
US9747449B2 (en) Method and device for preventing application in an operating system from being uninstalled
KR101130088B1 (ko) 악성 코드 탐지 장치 및 그 방법, 이를 위한 프로그램이 기록된 기록 매체
CN106709346A (zh) 文件处理方法及装置
CN114065196A (zh) Java内存马检测方法、装置、电子设备与存储介质
KR102180098B1 (ko) 악성코드 모니터링 및 사용자 단말 제어 기능을 수행하는 악성코드 탐지 시스템
CN106529312A (zh) 一种移动终端的权限控制方法、装置及移动终端
KR20170041618A (ko) 하이퍼바이저 기반의 가상머신 모니터링 장치 및 방법
KR101256468B1 (ko) 악성 파일 진단 장치 및 방법
CN110858247A (zh) 安卓恶意应用检测方法、系统、设备及存储介质
KR101324691B1 (ko) 모바일 악성 행위 어플리케이션 탐지 시스템 및 방법
CN106708555B (zh) 一种加载插件的方法和装置
CN102902921A (zh) 一种检测和清除计算机病毒的方法和装置
JP5441043B2 (ja) プログラム、情報処理装置、及び情報処理方法
CN104036193A (zh) 一种应用程序的本地跨域漏洞检测方法及装置
KR101256461B1 (ko) 프로세스 실행 시점 판단장치 및 방법
KR101595936B1 (ko) 백신과 컴퓨터 최적화 기능을 구비한 컴퓨터 최적화 방법, 최적화 서버 및 컴퓨터 판독 가능한 기록매체

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: 20160321

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170320

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180319

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190319

Year of fee payment: 8