KR20190109006A - 악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램 - Google Patents

악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램 Download PDF

Info

Publication number
KR20190109006A
KR20190109006A KR1020180030812A KR20180030812A KR20190109006A KR 20190109006 A KR20190109006 A KR 20190109006A KR 1020180030812 A KR1020180030812 A KR 1020180030812A KR 20180030812 A KR20180030812 A KR 20180030812A KR 20190109006 A KR20190109006 A KR 20190109006A
Authority
KR
South Korea
Prior art keywords
file
decoy
checker
entropy
access path
Prior art date
Application number
KR1020180030812A
Other languages
English (en)
Other versions
KR102045500B1 (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 KR1020180030812A priority Critical patent/KR102045500B1/ko
Publication of KR20190109006A publication Critical patent/KR20190109006A/ko
Application granted granted Critical
Publication of KR102045500B1 publication Critical patent/KR102045500B1/ko

Links

Images

Classifications

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

Landscapes

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

Abstract

본 발명의 실시 예에 따른 컴퓨팅 시스템은 악성코드를 탐지하기 위한 디코이 파일(decoy file)에 대한 프로세스의 접근에 따라, 상기 디코이 파일이 훼손되었는지 여부를 검사하는 디코이 검사기, 상기 프로세스의 파일 접근 경로의 호핑(hopping) 거리에 기초하여, 상기 프로세스의 상기 파일 접근 경로의 엔트로피를 검사하는 엔트로피 검사기 및 상기 디코이 파일의 훼손 여부 및 상기 파일 접근 경로의 엔트로피(entropy)에 기초하여, 상기 프로세스를 종료시킬지 여부를 결정하는 프로세스 제어기를 포함한다.

Description

악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램{METHOD FOR DETECTING MALWARE, COMPUTING SYSTEM AND PROGRAM USING THE SAME}
본 발명의 기술적 사상은 악성코드를 탐지하는 방법 ,이를 이용하는 컴퓨팅 시스템, 및 프로그램에 관한 것으로, 보다 상세하게는 디코이 파일의 훼손 여부와 파일 접근 경로의 엔트로피에 기초하여 악성코드를 탐지할 수 있는 악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램에 관한 것이다.
악성 코드는 컴퓨터 바이러스, 트로이 목마, 스파이웨어(spyware), 웜(worm), 백도어(backdoor), 루트킷(rootkit), 랜섬웨어 등의 다양한 형태로 사용자에게 해를 끼치는 모든 코드(code)를 총칭한다.
악성 코드를 탐지하고 차단하는 다양한 기술들이 개발되고 있지만 악성 코드도 이와 함께 진화하고 있기 때문에 종래의 악성 코드 탐지기술로 신규의 악성 코드를 탐지하는 데에는 한계를 가진다.
특히, 가상 파일을 생성하여 악성 코드를 탐지하는 방법의 경우, 가상 파일의 형태나 배치가 파악되면 악성 코드는 이를 피하여 컴퓨터 시스템에 접근이 가능하다는 점에서 문제점을 가진다.
본 발명의 기술적 사상이 이루고자 하는 과제는 디코이 파일의 훼손 여부와 파일 접근 경로의 엔트로피에 기초하여 악성코드를 탐지할 수 있는 악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램을 제공하는 것이다.
본 발명의 기술적 사상에 의한 일 양태에 따른 컴퓨팅 시스템은, 악성코드를 탐지하기 위한 디코이 파일(decoy file)에 대한 프로세스의 접근에 따라, 상기 디코이 파일이 훼손되었는지 여부를 검사하는 디코이 검사기, 상기 프로세스의 파일 접근 경로의 호핑(hopping) 거리에 기초하여, 상기 프로세스의 상기 파일 접근 경로의 엔트로피를 검사하는 엔트로피 검사기 및 상기 디코이 파일의 훼손 여부 및 상기 파일 접근 경로의 엔트로피(entropy)에 기초하여, 상기 프로세스를 종료시킬지 여부를 결정하는 프로세스 제어기를 포함할 수 있다.
예시적인 실시 예에 따르면, 상기 컴퓨팅 시스템은, 상기 프로세스의 상기 파일 접근 경로를 모니터링하고, 모니터링된 상기 프로세스의 상기 파일 접근 경로에 관한 정보를 상기 디코이 검사기와 상기 엔트로피 검사기로 전달하는, 파일시스템 입출력 모니터를 더 포함할 수 있다.
예시적인 실시 예에 따르면, 상기 디코이 검사기는, 상기 컴퓨팅 시스템의 파일시스템에 관한 구조 정보를 추출하고, 상기 구조 정보에 기초하여 상기 디코이 파일을 배치할 수 있다.
예시적인 실시 예에 따르면, 상기 디코이 검사기는, 상기 파일시스템의 상기 구조 정보에 기초하여 상기 파일시스템을 파티셔닝하고, 파티셔닝된 상기 파일시스템에 상기 디코이 파일을 배치할 수 있다.
예시적인 실시 예에 따르면, 상기 디코이 검사기는, 상기 파일시스템의 상기 구조 정보에서의 상위노드와 하위노드 관계에 기초하여 상기 파일시스템을 파티셔닝 할 수 있다.
예시적인 실시 예에 따르면, 상기 디코이 검사기는, DFS(Depth First Search) 알고리즘 및 BFS(Breadth First Search) 알고리즘 중에서 적어도 어느 하나의 알고리즘에 기초하여, 상기 파티셔닝된 상기 파일 시스템 내에서 상기 디코이 파일을 배치할 위치를 결정할 수 있다.
예시적인 실시 예에 따르면, 상기 디코이 검사기는, 상기 디코이 파일을 배치할 위치에 포함된 파일들 각각의 파일명, 확장자, 크기, 및 파일내용 중에서 적어도 어느 하나에 기초하여, 상기 디코이 파일의 파일명, 확장자, 크기, 및 파일내용 중에서 적어도 어느 하나를 결정하여 생성할 수 있다.
예시적인 실시 예에 따르면, 상기 디코이 검사기는, 상기 디코이 파일을 배치할 위치에 포함된 상기 파일들 각각의 확장자 중에서 최다 확장자를 상기 디코이 파일의 확장자로 결정할 수 있다.
예시적인 실시 예에 따르면, 상기 디코이 검사기는, 상기 디코이 파일을 배치할 위치에 포함된 상기 파일들의 평균 크기와 동일한 크기로 상기 디코이 파일의 크기를 결정할 수 있다.
예시적인 실시 예에 따르면, 상기 디코이 검사기는, 상기 디코이 파일을 배치할 위치에 포함된 상기 파일들 중에서 상기 평균 크기 이상의 크기를 갖는 파일의 파일내용에서 상기 평균 크기만큼을 복사하여 상기 디코이 파일의 파일내용을 구성할 수 있다.
예시적인 실시 예에 따르면, 상기 프로세스의 상기 파일 접근 경로의 호핑 거리는, 상기 프로세스가 접근하는 파일들 각각과 루트 디렉토리(root directory) 간의 거리에 기초하여 결정될 수 있다.
예시적인 실시 예에 따르면, 상기 프로세스의 상기 파일 접근 경로의 호핑 거리는, 상기 프로세스가 접근하는 파일들 각각과 상기 루트 디렉토리 간의 거리의 합에서 상기 프로세스가 접근하는 파일들 각각에 대한 공통 경로의 두 배 값을 뺀 거리일 수 있다.
예시적인 실시 예에 따르면, 상기 엔트로피 검사기는, 상기 프로세스의 상기 파일 접근 경로의 호핑 거리의 집합을 구하고, 상기 호핑 거리의 집합의 엔트로피를 계산하여 기준값과 비교할 수 있다.
본 발명의 기술적 사상에 의한 일 양태에 따른 악성코드를 탐지하는 방법은, 악성코드를 탐지하기 위한 디코이 파일(decoy file)에 대한 프로세스의 접근에 따라, 상기 디코이 파일이 훼손되었는지 여부를 검사하는 단계, 상기 프로세스의 파일 접근 경로의 호핑(hopping) 거리에 기초하여, 상기 프로세스의 상기 파일 접근 경로의 엔트로피(entropy)를 검사하는 단계 및 상기 디코이 파일의 훼손 여부 및 상기 파일 접근 경로의 엔트로피에 기초하여, 상기 프로세스를 종료시킬지 여부를 결정하는 단계를 포함할 수 있다.
본 발명의 기술적 사상에 의한 일 양태에 따른 프로세서(processor)와 결합되어 악성코드를 탐지하는 방법을 수행하기 위한 매체에 저장된 프로그램은, 악성코드를 탐지하기 위한 디코이 파일(decoy file)에 대한 프로세스의 접근에 따라 상기 디코이 파일이 훼손되었는지 여부를 검사하는 단계, 상기 프로세스의 파일 접근 경로의 호핑(hopping) 거리에 기초하여, 상기 프로세스의 상기 파일 접근 경로의 엔트로피(entropy)를 검사하는 단계 및 상기 디코이 파일의 훼손 여부 및 상기 파일 접근 경로의 엔트로피에 기초하여, 상기 프로세스를 종료시킬지 여부를 결정하는 단계를 수행하는 프로그램 코드를 포함할 수 있다.
본 발명의 실시 예에 따른 방법과 장치는 디코이 파일의 훼손 여부와 파일 접근 경로의 엔트로피를 함께 이용하여 악성코드를 탐지함으로써, 악성코드를 실시간으로 탐지할 수 있을 뿐 아니라 악성코드의 탐지율을 향상시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템의 일 실시 예에 따른 블록도이다.
도 2는 도 1에 도시된 컴퓨팅 시스템에서 디코이 파일을 배치하는 과정을 나타낸 플로우차트이다.
도 3 내지 도 5는 도 2에 도시된 과정에서 파일 시스템을 파티셔닝하고 디코이 파일을 배치하는 세부과정을 도식화한 도면이다.
도 6은 도 2에 도시된 과정에서 파일 시스템을 파티셔닝하는 세부과정의 일 실시 예를 나타낸 플로우차트이다.
도 7은 도 1에 도시된 컴퓨팅 시스템에서 디코이 파일의 훼손여부에 따라 프로세스를 종료시킬지 여부를 결정하는 과정을 나타낸 플로우차트이다.
도 8은 도 1에 도시된 컴퓨팅 시스템에서 프로세스의 파일 접근 경로의 호핑거리에 따라 프로세스를 종료시킬지 여부를 결정하는 과정을 나타낸 플로우차트이다.
본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Drive Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있으며, 적어도 하나의 기능이나 동작의 처리에 필요한 데이터를 저장하는 메모리(memory)와 결합되는 형태로 구현될 수도 있다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 발명의 기술적 사상에 따른 실시 예들을 차례로 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템의 일 실시 예에 따른 블록도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 컴퓨팅 시스템(100)은 파일시스템 입출력 모니터(file system I/O monitor, 110), 디코이 검사기(decoy checker, 120), 엔트로피 검사기(entropy checker, 130), 커널-유저 인터페이스(kernel-user interface, 140), 프로세스 제어기(process controller, 150), 유저-커널 인터페이스(user-kernel interface, 160), 및 유저 인터페이스(user interface, 170)를 포함할 수 있다.
실시 예에 따라, 컴퓨팅 시스템(100) 내의 데이터 처리과정은 컴퓨팅 시스템(100)에 포함된 하드웨어(hardware), 예컨대, 메모리(memory, 미도시)와 프로세서(processor, 미도시)를 기반으로 수행될 수 있다.
예컨대, 본 발명의 실시 예에 따른 악성코드를 탐지하는 방법은 프로그램 코드로 구현되어 메모리에 저장될 수 있으며, 상기 메모리는 프로세서와 결합되어 본 발명의 실시 예에 따른 악성코드를 탐지하는 방법을 수행 시킬 수 있다.
실시 예에 따라, 파일시스템 입출력 모니터(110), 디코이 검사기(120), 엔트로피 검사기(130), 커널-유저 인터페이스(140), 및 프로세스 제어기(150)는 커널 모드(kernel mode)에서 동작하고, 유저-커널 인터페이스(160) 및 유저 인터페이스(170)는 유저 모드(user mode)에서 동작하도록 구성될 수 있다.
실시 예에 따라, 커널 모드에서 동작하는 파일시스템 입출력 모니터(110), 디코이 검사기(120), 엔트로피 검사기(130), 커널-유저 인터페이스(140), 및 프로세스 제어기(150) 중의 일부 또는 전부는 컴퓨팅 시스템(100)의 파일 시스템 필터 드라이버로 구현될 수 있다.
실시 예에 따라, 유저 모드에서 동작하는 유저-커널 인터페이스(160) 및 유저 인터페이스(170)는 본 발명의 실시 예에 따른 악성코드를 탐지하는 방법을 수행하기 위한 악성코드 관리 프로그램 또는 악성코드 관리 어플리케이션으로 구현될 수 있다.
파일시스템 입출력 모니터(110)는 파일 입출력을 모니터링할 수 있다. 파일시스템 입출력 모니터(110)는 파일 입출력이 존재하지 않는 경우 파일 입출력 모니터링을 지속적으로 수행할 수 있다. 파일시스템 입출력 모니터(110)는 파일 입출력이 존재하는 경우 해당 프로세스의 파일 접근 경로를 검색하여 디코이 검사기(120)와 엔트로피 검사기(130)로 전달할 수 있다.
디코이 검사기(120)는 악성코드를 탐지하기 위한 디코이 파일들(decoy files)을 생성 및 배치하고, 배치된 디코이 파일들 중에서 적어도 하나의 디코이 파일을 선택하여 선택된 디코이 파일이 훼손되었는지 여부를 판단할 수 있다. 디코이 검사기(120)는 디코이 파일의 훼손 여부에 대한 정보를 커널-사용자 인터페이스(140)로 전달할 수 있다.
도 1에서는 디코이 검사기(120)가 디코이 파일을 생성 및 배치하는 과정은 생략되었으며, 배치된 디코이 파일이 훼손되었는지 여부를 판단하는 주요 과정만을 도시하였다. 디코이 검사기(120)가 디코이 파일을 생성 및 배치하는 상세 과정은 도 2 내지 도 6을 참조하여 후술하도록 한다.
디코이 검사기(120)는 훼손되었는지 여부를 판단할 디코이 파일을 선택할 수 있다. 디코이 검사기(120)는 선택된 디코이 파일이 훼손되었는지 여부를 판단하여, 훼손되지 않은 경우로 판단되면 별도의 처리과정 없이 결과 값을 리턴(return)하고, 훼손된 경우로 판단되면 결과 값을 커널-유저 인터페이스(140)로 전달할 수 있다. 커널-유저 인터페이스(140)는 디코이 검사기(120)로부터 디코이 파일이 훼손되었다는 정보를 프로세스 제어기(150)로 전달할 수 있다. 프로세스 제어기(150)는 커널-유저 인터페이스(140)로부터 전달된 정보에 따라 프로세스를 중단시킬 수 있다. 실시 예에 따라, 프로세스 제어기(150)는 인증되지 않은 프로세스를 모두 중단시키거나 해당 프로세스를 중단시킬 수 있다.
디코이 검사기(120)가 디코이 파일이 훼손되었는지 여부를 판단하는 상세과정은 도 7을 참조하여 후술하도록 한다.
엔트로피 검사기(130)는 프로세스의 파일 접근 경로의 엔트로피 값에 따라, 해당 프로세스가 악성코드에 해당하는지 여부를 판단할 수 있다. 엔트로피 검사기(130)는 파일시스템 입출력 모니터(110)로부터 전달된 프로세스의 파일 접근 경로를 수신하여, 파일 접근 경로의 호핑 거리(hopping distance)를 획득할 수 있다.
파일 접근 경로의 호핑 거리는 프로세스가 접근하는 파일들 각각과 루트 디렉토리(root directory) 간의 거리에 기초하여 결정될 수 있으며, 파일 접근 경로의 호핑 거리가 멀어질 수록 프로세스의 파일 접근 경로가 불규칙한 것을 의미할 수 있다.
엔트로피 검사기(130)는 획득한 호핑 거리에 기초하여, 해당 프로세스의 파일 접근 경로의 엔트로피를 계산할 수 있다. 엔트로피 검사기(130)는 계산된 엔트로피 값이 기준값(threshold)을 초과하였는지 여부를 판단하고, 초과하지 않은 경우에는 별도의 처리과정 없이 결과 값을 리턴(return)하고, 초과한 경우에는 결과 값을 커널-유저 인터페이스(140)로 전달할 수 있다. 커널-유저 인터페이스(140)는 엔트로피 검사기(130)로부터 프로세스의 파일 접근 경로의 엔트로피가 기준값을 초과하였다는 정보를 프로세스 제어기(150)로 전달할 수 있다. 실시 예에 따라, 프로세스 제어기(150)는 인증되지 않은 프로세스를 모두 중단시키거나 해당 프로세스를 중단시킬 수 있다.
엔트로피 검사기(130)가 해당 프로세스가 악성코드에 해당하는지 여부를 판단하는 상세과정은 도 8을 참조하여 후술하도록 한다.
커널-유저 인터페이스(140)는 디코이 검사기(120)와 엔트로피 검사기(130)의 검사 결과를 프로세스 제어기(150)로 전달할 수 있으며, 유저-커널 인터페이스(160)와 데이터를 주고받을 수 있다.
프로세스 제어기(150)는 디코이 검사기(120)와 엔트로피 검사기(130) 각각으로부터 전달된 검사 결과에 기초하여, 프로세스를 종료시킬지 여부를 판단하여 프로세스를 중단시킬 수 있다.
실시 예에 따라, 프로세스 제어기(150)는 악성코드로 의심되는 해당 프로세스 만을 중단시킬 수 있다.
다른 실시 예에 따라, 프로세스 제어기(150)는 인증되지 않은 모든 프로세스를 중단시킬 수도 있다.
유저-커널 인터페이스(160)는 커널-유저 인터페이스(140)와 데이터를 주고받을 수 있다. 유저 인터페이스(170)는 유저로부터 입력되는 입력값을 입력받거나 컴퓨팅 시스템(100)의 처리결과를 피드백할 수 있다.
도 2는 도 1에 도시된 컴퓨팅 시스템에서 디코이 파일을 배치하는 과정을 나타낸 플로우차트이다. 도 3 내지 도 5는 도 2에 도시된 과정에서 파일 시스템을 파티셔닝하고 디코이 파일을 배치하는 세부과정을 도식화한 도면이다
도 1과 도 2를 참조하면, 컴퓨팅 시스템(100)의 디코이 검사기(120)는 먼저 컴퓨팅 시스템(100)의 파일시스템에 관한 구조 정보를 추출할 수 있다(S210).
디코이 검사기(120)는 추출된 파일시스템에 관한 구조 정보에 기초하여, 파일시스템 그래프를 생성할 수 있다(S220).
도 2와 도 3을 함께 참조하면, 디코이 검사기(120)는 컴퓨터 시스템(100)의 파일시스템(FS)의 구조 정보를 기초로 도 3과 같은 파일시스템 그래프를 생성할 수 있다.
실시 예에 따라, 파일시스템의 각 구성은 도 3에 예시된 각 노드(A1~A9, B1~B6, C1~C6)에 대응되도록 구성될 수 있으며, 파일시스템 그래프는 다양한 형태, 예컨대 트리 형태 그래프로 생성될 수 있다. 이 경우 각 노드(A1~A9, B1~B6, C1~C6)는 디렉토리를 의미할 수 있다.
실시 예에 따라, 각 노드(A1~A9, B1~B6, C1~C6) 간의 연결 구조는 폴더 간의 상하위 관계에 상응하여 상위노드-하위노드 관계를 가지는 그래프로 생성될 수 있다. 예컨대, A1 노드에 대응되는 디렉토리는 A2 노드에 대응되는 디렉토리의 상위 디렉토리이고, A5 노드에 대응되는 디렉토리는 A2 노드에 대응되는 디렉토리의 하위 디렉토리를 의미할 수 있다.
실시 예에 따라, 최상위의 노드(예컨대, A1)에 상응하는 디렉토리는 루트 디렉토리(root directory)일 수 있다.
도 2로 돌아와서, 디코이 검사기(120)는 파일시스템에 대한 파티셔닝(partitioning) 동작을 수행할 수 있다(S230).
도 2와 도 4를 함께 참조하면, 디코이 검사기(120)는 파일시스템을 복수의 서브시스템들(예컨대, 서브시스템1 ~ 서브시스템n)로 파티셔닝할 수 있다.
파일시스템의 상세한 파티셔닝 과정에 대해서는 도 6을 참조하여 후술하도록 한다.
도 2로 돌아와서, 디코이 검사기(120)는 파티셔닝된 파일시스템의 구조에 기초하여, 디코이 파일을 배치할 위치를 결정할 수 있다(S240).
도 2와 도 5를 함께 참조하면, 디코이 검사기(120)는 파티셔닝된 파일시스템의 구조에 기초하여, A1 노드, B4 노드, , B6 노드, C4 노드 및 C6 노드에 우선적으로 디코이 파일을 배치하고, A2 노드, A4 노드, A7 노드, B2 노드, B3 노드, B5 노드, C2 노드, C3 노드, 및 C5 노드에 다음 우선순위로 디코이 파일을 배치하고, A5 노드, A9 노드, B1 노드, C1 노드에 추가적으로 디코이 파일을 배치할 수 있다.
실시 예에 따라, 디코이 검사기(120)는 특정 알고리즘(예컨대, DFS(Depth First Search) 알고리즘 또는 BFS(Breadth First Search) 알고리즘 등)에 따라 파티셔닝된 파일시스템의 구조를 탐색하고, 탐색되는 빈도에 따라 최상위 빈도의 노드들(예컨대, 도 5의 Decoy file #1)과 중간 빈도의 노드들(예컨대, 도 5의 Decoy file #2)에 디코이 파일을 배치할 수 있다.
실시 예에 따라, 디코이 검사기(120)는 특정 서브시스템(예컨대, 서브시스템1)의 최하위 노드(예컨대, A5)와 타 서브시스템(예컨대, 서브시스템2)의 최상위 노드(예컨대, B1)가 상하위 관계에 놓였는 경우, 상기 최하위 노드(예컨대, A5)와 상기 최상위 노드(예컨대, B1) 중에서 적어도 어느 하나에 디코이 파일(Decoy file #3)을 배치할 수 있다. 마찬가지로 A9 노드와 C1 노드에도 디코이 파일이 배치될 수 있다.
도 2로 돌아와서, 디코이 검사기(120)는 결정된 위치에 배치할 디코이 파일을 생성할 수 있다(S250).
실시 예에 따라, 디코이 검사기(120)는 디코이 파일을 배치할 위치(예컨대,노드 또는 디렉토리)에 포함된 파일들 각각의 파일명, 확장자, 크기, 및 파일내용 중에서 적어도 어느 하나에 기초하여, 생성할 디코이 파일의 파일명, 확장자, 크기, 및 파일내용을 결정하여 생성할 수 있다.
다른 실시 예에 따라, 디코이 검사기(120)는 디코이 파일을 배치할 위치(예컨대, 노드 또는 디렉토리)에 포함된 파일들 각각의 확장자 중에서 최다 확장자를 확인하고, 디코이 파일의 확장자를 상기 최다 확장자와 동일하게 결정할 수 있다.
또 다른 실시 예에 따라, 디코이 검사기(120)는 디코이 파일을 배치할 위치에 포함된 파일들의 평균 크기와 동일한 크기로 디코이 파일의 크기를 결정할 수 있다. 이 경우, 디코이 검사기(120)는 디코이 파일을 배치할 위치에 포함된 파일들 중에서 평균 크기 이상의 크기를 갖는 파일의 파일 내용 중에서 상기 평균 크기만큼의 파일 내용만을 복사하여 디코이 파일의 내용을 구성할 수도 있다.
디코이 검사기(120)는 결정된 위치에 생성된 디코이 파일을 배치할 수 있다(S260).
실시 예에 따라, 디코이 검사기(120)는 배치된 디코이 파일들에 대한 디코이 파일 리스트를 컴퓨팅 시스템(100) 내의 임의의 저장공간에 저장할 수 있다.
도 6은 도 2에 도시된 과정에서 파일 시스템을 파티셔닝하는 세부과정의 일 실시 예를 나타낸 플로우차트이다.
도 2와 도 6을 참조하면, 디코이 검사기(120)는 파일 시스템을 파티셔닝하기 위하여 먼저 선택된 알고리즘(예컨대, DFS(Depth First Search) 알고리즘 또는 BFS(Breadth First Search) 알고리즘 등)에 따라 파일 시스템의 각 노드를 순차적으로 방문할 수 있다(S610).
실시 예에 따라, 방문 순서는 알파벳 순서(alphabetic order) 또는 역 알파벳 순서(reverse alphabetic order)일 수 있다.
디코이 검사기(120)는 S610 단계에 따라 방문한 현재 방문노드의 크기가 최대 파티션 크기보다 큰지 여부를 판단할 수 있다(S620).
S620 단계의 판단결과, 현재 방문노드의 크기가 최대 파티션의 크기보다 큰 경우에는 별도의 파티션을 생성하고(S630), 생성된 파티션에 현재 방문노드를 추가할 수 있다(S640).
S620 단계의 판단결과, 현재 방문노드의 크기가 최대 파티션의 크기보다 작은 경우에는 현재 방문노드의 상위노드가 포함된 파티션이 존재하는지 여부를 판단할 수 있다(S650).
S650 단계의 판단 결과, 현재 방문노드의 상위노드가 포함된 파티션이 존재하지 않는 경우에는 별도의 파티션을 생성하고(S630), 생성된 파티션에 현재 방문노드를 추가할 수 있다(S640).
S650 단계의 판단 결과, 현재 방문노드의 상위노드가 포함된 파티션이 존재하는 경우에는 상위노드가 포함된 파티션 내의 노드들의 크기와 현재 방문노드의 크기 합이 최대파티션 크기보다 작은지 여부를 판단할 수 있다(S660).
S660 단계의 판단 결과, 상위노드가 포함된 파티션 내의 노드들의 크기와 현재 방문노드의 크기 합이 최대파티션 크기보다 큰 경우, 별도의 파티션을 생성하고(S630), 생성된 파티션에 현재 방문노드를 추가할 수 있다(S640).
S660 단계의 판단 결과, 상위노드가 포함된 파티션 내의 노드들의 크기와 현재 방문노드의 크기 합이 최대파티션 크기보다 작은 경우, 상위노드가 포함된 파티션에 현재 방문노드를 추가할 수 있다(S670).
도 7은 도 1에 도시된 컴퓨팅 시스템에서 디코이 파일의 훼손여부에 따라 프로세스를 종료시킬지 여부를 결정하는 과정을 나타낸 플로우차트이다.
도 1과 도 7을 참조하면, 디코이 검사기(120)는 디코이 파일 리스트에 존재하는 디코이 파일들 중에서 검사할 디코이 파일을 순차적으로 선택할 수 있다(S710).
디코이 검사기(120)는 선택된 디코이 파일의 크기가 기존 크기와 동일한지 여부를 판단할 수 있다(S720).
S720 단계의 판단 결과 선택된 디코이 파일의 크기가 기존 크기와 다른 경우, 디코이 검사기(120)는 선택된 디코이 파일이 훼손된 것으로 판단하고(S730), 해당 판단 결과를 커널-유저 인터페이스(140)를 통하여 프로세스 제어기(150)로 전달할 수 있다. 프로세스 제어기(150)는 전달된 정보에 따라 비등록 프로세스를 종료시킬 수 있다(S740). 실시 예에 따라, 프로세스 제어기(150)는 전달된 정보에 따라 해당 프로세스만을 종료시킬 수도 있다.
S720 단계의 판단 결과 선택된 디코이 파일의 크기가 기존 크기와 동일한 경우, 디코이 검사기(120)는 선택된 디코이 파일의 해시값이 기존 해시값과 동일한지 여부를 추가적으로 판단할 수 있다(S750).
S750 단계의 판단 결과 선택된 디코이 파일의 해시값이 기존 해시값과 다른 경우 디코이 검사기(120)는 선택된 디코이 파일이 훼손된 것으로 판단하고(S730), 해당 판단 결과를 커널-유저 인터페이스(140)를 통하여 프로세스 제어기(150)로 전달할 수 있다. 프로세스 제어기(150)는 전달된 정보에 따라 비등록 프로세스를 종료시킬 수 있다(S740). 실시 예에 따라, 프로세스 제어기(150)는 전달된 정보에 따라 해당 프로세스만을 종료시킬 수도 있다.
S750 단계의 판단 결과 선택된 디코이 파일의 해시값이 기존 해시값과 동일한 경우 디코이 검사기(120)는 디코이 파일 리스트에 존재하는 디코이 파일들 중에서 검사할 다른 디코이 파일을 순차적으로 선택할 수 있다(S710).
도 8은 도 1에 도시된 컴퓨팅 시스템에서 프로세스의 파일 접근 경로의 호핑거리에 따라 프로세스를 종료시킬지 여부를 결정하는 과정을 나타낸 플로우차트이다.
도 1과 도 8을 참조하면, 엔트로피 검사기(130)는 파일시스템 입출력 모니터(110)로부터 전달된 프로세스의 파일 접근 경로를 수집할 수 있다(S810).
엔트로피 검사기(130)는 수집된 프로세스의 파일 접근 경로의 호핑거리(hopping distance)를 계산할 수 있다(S820).
실시 예에 따라, 엔트로피 검사기(130)는 수집된 프로세스가 접근하는 파일들 각각과 루트 디렉토리(root directory) 간의 거리에 기초하여, 호핑거리를 결정할 수 있다. 예컨대, 도 2에서 루트 디렉토리가 A1 노드라고 가정하고 최초 프로세스(프로세스 a)가 접근한 파일이 속한 노드가 A5 노드라면 프로세스가 접근하는 파일과 루트 디렉토리 간의 경로거리는 '2(단위 노드)'이며, 다음 프로세스(프로세스 b)가 접근한 파일이 속한 노드가 A3라면 프로세스가 접근하는 파일과 루트 디렉토리 간의 경로거리는 '1(단위 노드)'가 될 수 있다. 이 때, 호핑거리는 다음의 (수식 1)에 따라 결정될 수 있다.
(수식 1)
Figure pat00001
(여기서, hd(a,b)는 프로세스 a와 프로세스 b의 호핑거리, d(a,r)은 프로세스 a의 경로거리, d(b, r)은 프로세스 b의 경로거리, d(a∩b)는 프로세스 a와 프로세스 b의 공통경로의 거리))
위의 실시 예에서 프로세스 a와 프로세스 b는 공통되는 경로는 없으므로, 프로세스 a와 프로세스 b의 호핑거리는 프로세스 a의 경로거리와 프로세스 b의 경로거리의 합인 '3(단위 노드)'로 계산될 수 있다.
엔트로피 검사기(130)는 S820 단계에서 계산된 호핑거리의 집합에 기초하여 다음의 (수식 2)에 따라 엔트로피 값을 계산할 수 있다(S830).
(수식2)
Figure pat00002
(여기서, hdset은 호핑거리의 집합, Entropy(hdset)은 호핑거리의 집합의 엔트로피 값, hdi는 i번째 프로세스의 호핑거리, P(hdi)는 hdi에 대한 확률질량 함수)
실시 예에 따라, 본원 발명에서의 엔트로피 값은 정보 엔트로피(또는 섀넌 엔트로피) 값을 의미할 수 있다.
예컨대, 엔트로피 값의 계산에 사용된 확률질량 함수 P(hdi)는 본 발명의 실시 예에 따른 호핑거리의 종류들 중에서 해당 호핑거리(hdi)가 발생하는 비율을 의미할 수도 있다. 본 발명의 실시 예에 따른 컴퓨팅 시스템(100)에서 발생한 프로세스의 호핑 거리의 집합이 {1, 2, 3, 4, 4, 5}라면 P(hd4)는 2/6의 값을 가지며, P(hd1), P(hd2), P(hd3), P(hd5) 각각은 1/6의 값을 가질 수 있다.
엔트로피 검사기(130)는 S830 단계에서 계산된 엔트로피 값이 기준값을 초과하는지 여부를 판단할 수 있다(S840).
판단결과 계산된 엔트로피 값이 기준값을 초과하는 경우, 엔트로피 검사기(130)는 해당 프로세스가 악성코드에 해당하는 것으로 판단하고 프로세스 제어기(150)를 통하여 인증되지 않은 프로세스를 중단시킬 수 있다(S850). 실시 예에 따라, 프로세스 제어기(150)는 악성코드로 판단된 해당 프로세스만을 중단시킬 수도 있다.
판단결과 계산된 엔트로피 값이 기준값을 초과하지 않는 경우, 엔트로피 검사기(130)는 파일시스템 입출력 모니터(110)로부터 전달된 프로세스의 파일 접근 경로를 지속적으로 수집할 수 있다(S810).
이상, 본 발명의 기술적 사상을 다양한 실시 예들을 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시 예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
100 : 컴퓨팅 시스템
110 : 파일시스템 입출력 모니터
120 : 디코이 검사기
130 : 엔트로피 검사기
140 : 커널-유저 인터페이스
150 : 프로세스 제어기
160 : 유저-커널 인터페이스
170 : 유저 인터페이스

Claims (15)

  1. 악성코드를 탐지하기 위한 디코이 파일(decoy file)에 대한 프로세스의 접근에 따라, 상기 디코이 파일이 훼손되었는지 여부를 검사하는 디코이 검사기;
    상기 프로세스의 파일 접근 경로의 호핑(hopping) 거리에 기초하여, 상기 프로세스의 상기 파일 접근 경로의 엔트로피를 검사하는 엔트로피 검사기; 및
    상기 디코이 파일의 훼손 여부 및 상기 파일 접근 경로의 엔트로피(entropy)에 기초하여, 상기 프로세스를 종료시킬지 여부를 결정하는 프로세스 제어기를 포함하는, 컴퓨팅 시스템.
  2. 제1항에 있어서,
    상기 컴퓨팅 시스템은,
    상기 프로세스의 상기 파일 접근 경로를 모니터링하고, 모니터링된 상기 프로세스의 상기 파일 접근 경로에 관한 정보를 상기 디코이 검사기와 상기 엔트로피 검사기로 전달하는 파일시스템 입출력 모니터를 더 포함하는, 컴퓨팅 시스템.
  3. 제2항에 있어서,
    상기 디코이 검사기는,
    상기 컴퓨팅 시스템의 파일시스템에 관한 구조 정보를 추출하고, 상기 구조 정보에 기초하여 상기 디코이 파일을 배치하는, 컴퓨팅 시스템.
  4. 제3항에 있어서,
    상기 디코이 검사기는,
    상기 파일시스템의 상기 구조 정보에 기초하여 상기 파일시스템을 파티셔닝하고, 파티셔닝된 상기 파일시스템에 상기 디코이 파일을 배치하는, 컴퓨팅 시스템.
  5. 제4항에 있어서,
    상기 디코이 검사기는,
    상기 파일시스템의 상기 구조 정보에서의 상위노드와 하위노드 관계에 기초하여 상기 파일시스템을 파티셔닝 하는, 컴퓨팅 시스템.
  6. 제5항에 있어서,
    상기 디코이 검사기는,
    DFS(Depth First Search) 알고리즘 및 BFS(Breadth First Search) 알고리즘 중에서 적어도 어느 하나의 알고리즘에 기초하여, 상기 파티셔닝된 상기 파일 시스템 내에서 상기 디코이 파일을 배치할 위치를 결정하는, 컴퓨팅 시스템.
  7. 제6항에 있어서,
    상기 디코이 검사기는,
    상기 디코이 파일을 배치할 위치에 포함된 파일들 각각의 파일명, 확장자, 크기, 및 파일내용 중에서 적어도 어느 하나에 기초하여, 상기 디코이 파일의 파일명, 확장자, 크기, 및 파일내용 중에서 적어도 어느 하나를 결정하여 생성하는, 컴퓨팅 시스템.
  8. 제7항에 있어서,
    상기 디코이 검사기는,
    상기 디코이 파일을 배치할 위치에 포함된 상기 파일들 각각의 확장자 중에서 최다 확장자를 상기 디코이 파일의 확장자로 결정하는, 컴퓨팅 시스템.
  9. 제8항에 있어서,
    상기 디코이 검사기는,
    상기 디코이 파일을 배치할 위치에 포함된 상기 파일들의 평균 크기와 동일한 크기로 상기 디코이 파일의 크기를 결정하는, 컴퓨팅 시스템.
  10. 제9항에 있어서,
    상기 디코이 검사기는,
    상기 디코이 파일을 배치할 위치에 포함된 상기 파일들 중에서 상기 평균 크기 이상의 크기를 갖는 파일의 파일내용에서 상기 평균 크기만큼을 복사하여 상기 디코이 파일의 파일내용을 구성하는, 컴퓨팅 시스템.
  11. 제10항에 있어서,
    상기 프로세스의 상기 파일 접근 경로의 호핑 거리는,
    상기 프로세스가 접근하는 파일들 각각과 루트 디렉토리(root directory) 간의 거리에 기초하여 결정되는, 컴퓨팅 시스템.
  12. 제11항에 있어서,
    상기 프로세스의 상기 파일 접근 경로의 호핑 거리는,
    상기 프로세스가 접근하는 파일들 각각과 상기 루트 디렉토리 간의 거리의 합에서 상기 프로세스가 접근하는 파일들 각각에 대한 공통 경로의 두 배 값을 뺀 거리인, 컴퓨팅 시스템.
  13. 제12항에 있어서,
    상기 엔트로피 검사기는,
    상기 프로세스의 상기 파일 접근 경로의 호핑 거리의 집합을 구하고, 상기 호핑 거리의 집합의 엔트로피를 계산하여 기준값과 비교하는, 컴퓨팅 시스템.
  14. 악성코드를 탐지하기 위한 디코이 파일(decoy file)에 대한 프로세스의 접근에 따라, 상기 디코이 파일이 훼손되었는지 여부를 검사하는 단계;
    상기 프로세스의 파일 접근 경로의 호핑(hopping) 거리에 기초하여, 상기 프로세스의 상기 파일 접근 경로의 엔트로피(entropy)를 검사하는 단계; 및
    상기 디코이 파일의 훼손 여부 및 상기 파일 접근 경로의 엔트로피에 기초하여, 상기 프로세스를 종료시킬지 여부를 결정하는 단계를 포함하는, 악성코드를 탐지하는 방법.
  15. 프로세서(processor)와 결합되어 악성코드를 탐지하는 방법을 수행하기 위한 매체에 저장된 프로그램으로서,
    악성코드를 탐지하기 위한 디코이 파일(decoy file)에 대한 프로세스의 접근에 따라 상기 디코이 파일이 훼손되었는지 여부를 검사하는 단계;
    상기 프로세스의 파일 접근 경로의 호핑(hopping) 거리에 기초하여, 상기 프로세스의 상기 파일 접근 경로의 엔트로피(entropy)를 검사하는 단계; 및
    상기 디코이 파일의 훼손 여부 및 상기 파일 접근 경로의 엔트로피에 기초하여, 상기 프로세스를 종료시킬지 여부를 결정하는 단계를 수행하는 프로그램 코드를 포함하는, 프로그램.
KR1020180030812A 2018-03-16 2018-03-16 악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램 KR102045500B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180030812A KR102045500B1 (ko) 2018-03-16 2018-03-16 악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180030812A KR102045500B1 (ko) 2018-03-16 2018-03-16 악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램

Publications (2)

Publication Number Publication Date
KR20190109006A true KR20190109006A (ko) 2019-09-25
KR102045500B1 KR102045500B1 (ko) 2019-11-15

Family

ID=68068101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180030812A KR102045500B1 (ko) 2018-03-16 2018-03-16 악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램

Country Status (1)

Country Link
KR (1) KR102045500B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102344496B1 (ko) 2020-02-28 2021-12-28 국방과학연구소 악성코드의 기능을 분석하는 방법 및 장치
US11853421B2 (en) 2020-02-25 2023-12-26 Agency For Defense Development Method and apparatus for analyzing malicious code

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096397A (zh) * 2016-05-26 2016-11-09 倪茂志 一种勒索软件的防范方法和系统
US20170061123A1 (en) * 2015-08-26 2017-03-02 Symantec Corporation Detecting Suspicious File Prospecting Activity from Patterns of User Activity
US20170206353A1 (en) * 2016-01-19 2017-07-20 Hope Bay Technologies, Inc. Method and system for preventing malicious alteration of data in computer system
US9846776B1 (en) * 2015-03-31 2017-12-19 Fireeye, Inc. System and method for detecting file altering behaviors pertaining to a malicious attack

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9846776B1 (en) * 2015-03-31 2017-12-19 Fireeye, Inc. System and method for detecting file altering behaviors pertaining to a malicious attack
US20170061123A1 (en) * 2015-08-26 2017-03-02 Symantec Corporation Detecting Suspicious File Prospecting Activity from Patterns of User Activity
US20170206353A1 (en) * 2016-01-19 2017-07-20 Hope Bay Technologies, Inc. Method and system for preventing malicious alteration of data in computer system
CN106096397A (zh) * 2016-05-26 2016-11-09 倪茂志 一种勒索软件的防范方法和系统

Also Published As

Publication number Publication date
KR102045500B1 (ko) 2019-11-15

Similar Documents

Publication Publication Date Title
RU2614557C2 (ru) Система и способ обнаружения вредоносных файлов на мобильных устройствах
RU2617654C2 (ru) Система и способ формирования набора антивирусных записей, используемых для обнаружения вредоносных файлов на компьютере пользователя
EP3899770B1 (en) System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats
US9065849B1 (en) Systems and methods for determining trustworthiness of software programs
US9185119B1 (en) Systems and methods for detecting malware using file clustering
JP6277224B2 (ja) 仮想スタックマシンで実行可能な有害なファイルを検出するためのシステムおよび方法
EP3346664B1 (en) Binary search of byte sequences using inverted indices
US9202050B1 (en) Systems and methods for detecting malicious files
US11379581B2 (en) System and method for detection of malicious files
JP5779334B2 (ja) 出力制御装置、出力制御プログラム、出力制御方法および出力制御システム
KR102045500B1 (ko) 악성코드를 탐지하는 방법, 이를 이용하는 컴퓨팅 시스템, 및 프로그램
US20100071064A1 (en) Apparatus, systems, and methods for content selfscanning in a storage system
EP3151150B1 (en) System and method for detection of phishing scripts
EP3113065B1 (en) System and method of detecting malicious files on mobile devices
EP3798885B1 (en) System and method for detection of malicious files
EP3758330A1 (en) System and method of determining a trust level of a file
WO2019005406A1 (en) ACCELERATED CODE INJECTION DETECTION USING MEMORY ATTRIBUTES CONTROLLED BY AN OPERATING SYSTEM
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
US8402545B1 (en) Systems and methods for identifying unique malware variants
US9842219B1 (en) Systems and methods for curating file clusters for security analyses
US20230359737A1 (en) System and method of anomaly detection in the behavior of trusted process
EP3535681B1 (en) System and method for detecting and for alerting of exploits in computerized systems
US11275836B2 (en) System and method of determining a trust level of a file
CN113010268A (zh) 恶意程序识别方法及装置、存储介质、电子设备
RU2614561C1 (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