KR101375656B1 - 프로그램 보호 장치 및 프로그램 보호 방법 - Google Patents

프로그램 보호 장치 및 프로그램 보호 방법 Download PDF

Info

Publication number
KR101375656B1
KR101375656B1 KR1020120088548A KR20120088548A KR101375656B1 KR 101375656 B1 KR101375656 B1 KR 101375656B1 KR 1020120088548 A KR1020120088548 A KR 1020120088548A KR 20120088548 A KR20120088548 A KR 20120088548A KR 101375656 B1 KR101375656 B1 KR 101375656B1
Authority
KR
South Korea
Prior art keywords
specific
file
program
registry key
access
Prior art date
Application number
KR1020120088548A
Other languages
English (en)
Other versions
KR20140023459A (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 KR1020120088548A priority Critical patent/KR101375656B1/ko
Publication of KR20140023459A publication Critical patent/KR20140023459A/ko
Application granted granted Critical
Publication of KR101375656B1 publication Critical patent/KR101375656B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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
    • 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/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은, 프로그램 보호 장치 및 프로그램 보호 방법이 개시되어 있다. 본 발명의 실시예들은 DLL 인젝션에 의해 안티 바이러스 프로세스 내부에 악성 DLL 파일이 로드되는 것을 보다 완벽하게 사전 방지하고, 더 나아가 일반적인 프로세스에 대해서도 악성 DLL 파일이 로드되는 것 역시 방지할 수 있는 기술에 대한 것이다.

Description

프로그램 보호 장치 및 프로그램 보호 방법{PROGRAM PROTECTION APPARATUS AND PROGRAM PROTECTION METHOD}
본 발명의 실시예들은 DLL 인젝션에 의해 안티 바이러스 프로세스 내부에 악성 DLL 파일이 로드되는 것을 보다 완벽하게 사전 방지하고, 더 나아가 일반적인 프로세스에 대해서도 악성 DLL 파일이 로드되는 것 역시 방지할 수 있는 기술들과 관련된다.
DLL Injection은 시스템에서 실행되는 모든 프로세스에 특정 동작을 포함할 목적으로 사용되는 기술이다. 예컨대 일반적으로 부가적인 기능을 더해 사용자의 편의를 향상시킨다던가 프로세스의 동작을 모니터링 한다던가 하는 등의 여러 가지 작업을 하는데 DLL Injection을 사용할 수 있다.
헌데, 일부 사용자가 악성코드 즉 악성 DLL을 다른 프로세스에 로드해 악성 행위를 하도록 하고 DLL Injection 기술을 이용하고 있으며, 특히 안티 바이러스 프로세스 내부에 악성 DLL이 로드되어 안티 바이러스 프로세스를 강제종료하는 등의 악성행위가 이루어지고 있다.
예를 들어 AppInit_Dlls라는 레지스트리키에 DLL의 파일이름을 등록해 놓으면 시스템의 운영체제(예 : Windows OS)에서 윈도우를 사용하는 모든 프로세스에게 자동적으로 등록된 DLL들을 로딩하도록 하는 기능을 제공한다. 이에 많은 악성코드들이 이 방법을 이용하여 손쉽게 안티 바이러스 프로세스에 Injection한 후 해당 프로세스가 초기화 되기도 전에 Injection된 악성 DLL에서 종료하도록 하여 공격하고 있으며, 안티 바이러스 프로세스는 시스템 상의 악성 검사 및 악성 치료에 꼭 필요한 프로세스라는 점을 감안할 때 초기화 전에 강제종료되는 악성행위는 시스템에 상당한 악영향을 끼칠 수 있다.
이를 막기 위래 종래에는 DLL Injection에 사용되는 함수를 후킹해서 Injection 과정을 중간에서 차단하는 방법을 사용하고 있으나, 후킹과 차단을 위해 공개되지 않은 OS 내부구조를 사용해야 해서 안정적으로 구현하기 힘든 점이 있다.
따라서, 본 발명에서는, DLL Injection에 의해 안티 바이러스 프로세스 내부에 악성 DLL이 로드되는 것을 보다 완벽하게 사전 방지할 수 있는 방안을 제안하고자 한다.
본 발명의 실시예들은 DLL 인젝션에 의해 안티 바이러스 프로세스 내부에 악성 DLL 파일이 로드되는 것을 보다 완벽하게 사전 방지하고, 더 나아가 일반적인 프로세스에 대해서도 악성 DLL 파일이 로드되는 것 역시 방지하는 것을 가능하게 한다.
상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 프로그램 보호 방법은, 특정 보호대상프로그램과 관련하여 특정 파일을 인젝션시키는 기능의 특정 레지스트리키로의 접근 시도를 확인하는 접근확인단계; 및 확인된 상기 특정 레지스트리키로의 접근 시도에 대하여, 상기 특정 파일이 악성파일인지 여부를 고려하지 않고, 상기 특정 보호대상프로그램에서 상기 특정 레지스트리키에 기록된 상기 인젝션시키기 위한 특정 파일의 경로정보 대신 기 등록된 가상경로정보로 접근되도록 하는 접근제어단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 프로그램 보호 장치는, 특정 보호대상프로그램과 관련하여 특정 파일을 인젝션시키는 기능의 특정 레지스트리키로의 접근 시도를 확인하는 접근확인부; 및 확인된 상기 특정 레지스트리키로의 접근 시도에 대하여, 상기 특정 파일이 악성파일인지 여부를 고려하지 않고, 상기 특정 보호대상프로그램에서 상기 특정 레지스트리키에 기록된 상기 인젝션시키기 위한 특정 파일의 경로정보 대신 기 등록된 가상경로정보로 접근되도록 하는 접근제어부를 포함한다.
본 발명의 실시예들은 DLL 파일 인젝션에 의한 악성 행위로부터 보호받아야 하는 정도가 큰 특정 프로그램 예컨대 안티 바이러스 프로세스를 진행하게 될 프로그램에 대해서는, DLL 인젝션을 위한 특정 레지스트리키로의 접근 시도 확인 시 인젝션될 DLL 파일이 악성파일인지 여부와는 상관없이 무조건, 특정 레지스트리키가 아닌 가상레지스트리키로 접근되도록 유도하여 인젝션할 DLL 파일이 없는 것으로 인식하도록 하고, 일반적인 프로그램에 대해서는, 특정 레지스트리키로의 접근 시도 확인 시 인젝션될 DLL 파일이 악성파일인 경우에만 특정 레지스트리키가 아닌 가상레지스트리키로 접근되도록 유도하여 인젝션할 DLL 파일이 없는 것으로 인식하도록 할 수 있다.
이에, 본 발명의 실시예들은 DLL 인젝션에 의해 안티 바이러스 프로세스 내부에 악성 DLL 파일이 로드되는 것을 보다 완벽하게 사전 방지하고, 더 나아가 일반적인 프로세스에 대해서도 악성 DLL 파일이 로드되는 것 역시 방지할 수 있는 효과를 도출한다.
도 1은 본 발명의 바람직한 실시예에 따른 프로그램 보호 장치를 포함한 컴퓨터시스템의 구성도이다.
도 2는 본 발명의 바람직한 실시예에 따른 프로그램 보호 장치를 포함하는 컴퓨터시스템의 제어 흐름도이다.
도 3은 본 발명의 바람직한 실시예에 따른 프로그램 보호 방법의 동작 흐름을 나타내는 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.
먼저, 도 1을 참조하여 본 발명의 실시예에 따른 프로그램 보호 장치를 포함하는 시스템 예컨대 컴퓨터시스템을 설명하도록 한다.
도 1에 도시된 바와 같이 컴퓨터시스템은, 본 발명에 따른 프로그램 보호 장치(100), 보호대상프로그램(10) 및 일반 프로그램(20), 그리고 컴퓨터시스템의 운영체제가 제공하는 레지스트리키가 저장되는 메모리(50)를 포함할 수 있다.
보호대상프로그램(10) 및 일반 프로그램(20)은 컴퓨터시스템에 설치되는 프로그램이며, 특히 보호대상프로그램(10)은 보호대상프로그램(10)이 설치된 컴퓨터시스템 상에서 악성 검사 및 악성 치료 중 적어도 하나를 수행하는 프로그램인 적이 바람직하다.
즉, 보호대상프로그램(10)은 보호대상프로그램(10)이 설치된 컴퓨터시스템 상에서 악성 검사 및 악성 치료 중 적어도 하나를 수행하는 안티 바이러스 프로세스를 진행하는 프로그램일 수 있다.
또한, 일반 프로그램(20)은 일반 프로그램(20)이 설치된 컴퓨터시스템 상에서 일반적인 프로세스를 진행하는 프로그램, 예컨대 컨텐츠를 재생하는 프로그램, 문서를 작성하는 프로그램 들을 포함할 수 있다.
메모리(50)는, 컴퓨터시스템의 운영체제가 제공하는 레지스트리키를 저장하고 있는 영역을 의미한다.
이러한 메모리(50)는, 특정 파일을 인젝션시키는 기능의 특정 레지스트리키(30)가 저장되며, 더 나아가 후술할 본 발명의 프로그램 보호 장치(100)에 의한 가상레지스트리키(40)가 저장될 수 있다.
본 발명에 따른 프로그램 보호 장치(100)는, 특정 보호대상프로그램(10)과 관련하여 특정 파일을 인젝션시키는 기능의 특정 레지스트리키(30)로의 접근 시도를 확인하고, 확인된 특정 레지스트리키(30)로의 접근 시도에 대하여, 상기 특정 파일이 악성파일인지 여부를 고려하지 않고, 특정 보호대상프로그램(10)에서 특정 레지스트리키(30)에 기록된 상기 인젝션시키기 위한 상기 특정 파일의 경로정보 대신 기 등록된 가상경로정보로 접근되도록 한다.
여기서, 본 발명에 따른 프로그램 보호 장치(100)에서 고려하고 있는 특정 보호대상프로그램(10)은, 전술에서 설명한 바와 같이 컴퓨터시스템 상에서 악성 검사 및 악성 치료 중 적어도 하나를 수행하는 안티 바이러스 프로세스를 진행하는 프로그램일 수 있다.
이러한 본 발명에 따른 프로그램 보호 장치(100)의 구성을 언급하여 보다 구체적으로 설명하도록 한다.
본 발명의 프로그램 보호 장치(100)는, 보호대상프로그램(10)과 관련하여 특정 파일을 인젝션시키는 기능의 레지스트리키(30)로의 접근 시도를 확인하는 접근확인부(110)와, 확인된 레지스트리키(30)로의 접근 시도에 대하여, 상기 특정 파일이 악성파일인지 여부를 고려하지 않고, 보호대상프로그램(10)에서 레지스트리키(30)에 기록된 상기 인젝션시키기 위한 특정 파일의 경로정보 대신 기 등록된 가상경로정보로 접근되도록 하는 접근제어부(130)를 포함한다.
더불어, 본 발명의 프로그램 보호 장치(100)는, 악성여부확인부(120)를 더 포함할 수 있다.
접근확인부(110)는, 보호대상프로그램(10)과 관련하여 특정 파일을 인젝션시키는 기능의 레지스트리키(30)로의 접근 시도를 확인한다.
여기서, 레지스트리키(30)는, 인젝션시키기 위한 특정 파일 즉 인젝션할 DLL 파일과 관련된 경로정보 예컨대 Fullpath 또는 DLL 파일이름이 기록되어 있는 것이 바람직하다.
이러한 레지스트리키(30)는, AppInit_Dlls 레지스트리키인 것이 바람직하며, 여기서 AppInit_Dlls 레지스트리키(30)에 의해 인젝션될 DLL 파일은 전술한 바와 같은 악성 DLL일 가능성을 배제할 수 없다.
즉, 본 발명에서 언급되는 레지스트리키(30)는, 악성파일인지 여부를 확인하지 않은 특정 파일의 경로정보, 다시 말해 악성파일인지 여부를 확인하지 않은 DLL 파일을 인젝션시키기 위한 경로정보가 기록되는 것이 가능한 레지스트리키일 것이다.
따라서, 본 발명에서 언급되는 레지스트리키(30)는, 전술의 AppInit_Dlls 레지스트리키 이외에도, 악성파일인지 여부를 확인하지 않은 파일을 인젝션시키기 위한 경로정보가 기록되는 것이 가능한 레지스트리키이면 가능하다.
이에, 접근확인부(110)는, 보호대상프로그램(10)과 관련하여 전술과 같은 레지스트리키(30)로의 접근 시도를 확인한다.
예컨대, 컴퓨터시스템의 운영체제 부팅 또는 특정 이벤트상황 발생 등의 시점에, 접근확인부(110)는, 보호대상프로그램(10)과 관련하여 전술한 레지스트리키(30)로의 접근 시도를 확인할 수 있을 것이다.
접근제어부(130)는, 접근확인부(110)에서 확인한 레지스트리키(30)로의 접근 시도에 대하여, 레지스트리키(30)에 의해 인젝션될 수 있는 특정 파일이 악성파일인지 여부를 고려하지 않고, 보호대상프로그램(10)에서 레지스트리키(30)에 기록된 상기 특정 파일의 경로정보 대신 기 등록된 가상경로정보로 접근되도록 한다.
즉, 접근제어부(130)는, 보호대상프로그램(10)과 관련하여 확인한 레지스트리키(30)로의 접근 시도가 확인되면, 레지스트리키(30)에 의해 인젝션될 DLL 파일이 악성파일인지 여부와는 상관없이 무조건 보호대상프로그램(10)에서 레지스트리키(30)에 기록된 경로정보 대신 기 등록된 다른 가상경로정보로 접근되도록 한다.
보다 구체적으로 설명하면, 접근제어부(130)는, 보호대상프로그램(10)과 관련된 레지스트리키(30)로의 접근 시도를, 인젝션시키기 위한 파일이 존재하지 않는 것으로 인지되게 하는 상기 가상경로정보가 기록된 가상레지스트리키(40)로 접근되도록 유도할 수 있다.
예컨대, 전술한 바와 같이 메모리(50)에는, 본 발명의 프로그램 보호 장치(100)에 의한 가상레지스트리키(40)가 저장될 수 있다.
여기서, 가상레지스트리키(40)는, 인젝션시키기 위한 파일 즉 인젝션할 DLL 파일이 존재하지 않는 것으로 인지되게 하는 가상경로정보가 기록되어 있는 것이 바람직하다.
이에, 접근제어부(130)는, 보호대상프로그램(10)과 관련하여 확인한 레지스트리키(30)로의 접근 시도가 확인되면, 레지스트리키(30)에 의해 인젝션될 DLL 파일이 악성파일인지 여부와는 상관없이 무조건, 금번 보호대상프로그램(10)과 관련된 레지스트리키(30)로의 접근 시도를 레지스트리키(30)가 아닌 전술의 가상경로정보가 기록된 가상레지스트리키(40)로 접근되도록 유도할 수 있다.
이에, 본 발명에 따른 프로그램 보호 장치(100)가 없는 경우라면, 보호대상프로그램(10)은, 기존과 같이 레지스트리키(30)에 접근을 시도함에 따라 컴퓨터시스템 상에서 전술과 같은 안티 바이러스 프로세스 내부에 레지스트리키(30)에 의한 경로정보에 따른 파일 즉 DLL 파일을 로드할 것이고, 만약 DLL 파일이 악성파일인 경우 보호대상프로그램(10)은 로드된 악성파일에 의해 초기화 전에 강제종료되는 등의 악성행위에 영향을 받을 수 있다.
하지만, 본 발명에 따른 프로그램 보호 장치(100)에 의해, 보호대상프로그램(10)은, 기존과 같이 레지스트리키(30)에 접근을 시도함에 따라 실제 레지스트리키(30)가 아닌 가상레지스트리키(40)로 접근 시도가 유도되어 결과적으로 자신의 안티 바이러스 프로세스 내부에 레지스트리키(30)에 의한 경로정보에 따른 파일 즉 DLL 파일을 로드하지 않을 것이고, 만약 DLL 파일이 악성파일인 경우라도 보호대상프로그램(10)에는 악성 영향을 미치는 일이 없을 것이다.
더 나아가, 악성여부확인부(120)는, 전술의 보호대상프로그램(10)이 아닌 다른 프로그램 예컨대 일반 프로그램(20)과 관련하여 전술의 레지스트리키(30)로의 접근 시도가 확인되면, 레지스트리키(30)에 의해 인젝션될 특정 파일이 악성파일인지 여부를 확인한다.
예컨대, 컴퓨터시스템의 운영체제 부팅 또는 특정 이벤트상황 발생 등의 시점에, 접근확인부(110)는, 보호대상프로그램(10) 뿐만 아니라 일반 프로그램(20)과 관련하여 전술한 레지스트리키(30)로의 접근 시도를 확인할 수 있을 것이다.
이에, 악성여부확인부(120)는, 접근확인부(110)에서 일반 프로그램(20)과 관련하여 레지스트리키(30)로의 접근 시도가 확인되면, 레지스트리키(30)에 의해 인젝션될 특정 파일이 악성파일인지 여부를 확인한다.
예를 들면, 악성여부확인부(120)는, 자신이 직접 레지스트리키(30)에 의해 인젝션될 특정 파일 즉 DLL 파일에 대하여 악성파일 여부를 검사하여 확인할 수 있고, 또는 악성여부확인부(120)가 아닌 다른 주체에 의해 DLL 파일에 대하여 악성파일 여부를 검사한 결과를 획득하여 확인할 수 있다.
이때, 악성파일 여부를 검사하는 방식은, 기존에 존재하는 다양한 방식 중 하나를 채택할 수 있으므로 구체적인 검사 방식 설명을 생략하도록 한다.
이에 접근제어부(130)는, 악성여부확인부(120)의 확인 결과 특정 파일 즉 DLL 파일이 악성파일인 경우에 한해서, 일반 프로그램(20)에서 레지스트리키(30)에 기록된 인젝션시키기 위한 DLL 파일의 경로정보 대신 전술의 가상경로정보로 접근되도록 할 수 있다.
다시 말해, 접근제어부(130)는 전술과 같이 일반 프로그램(20)과 관련하여 확인한 레지스트리키(30)로의 접근 시도가 확인되면, 레지스트리키(30)에 의해 인젝션될 DLL 파일이 악성파일인 경우에만, 금번 일반 프로그램(20)과 관련된 레지스트리키(30)로의 접근 시도를 레지스트리키(30)가 아닌 전술의 가상경로정보가 기록된 가상레지스트리키(40)로 접근되도록 유도할 수 있다.
결국, 본 발명에 따른 프로그램 보호 장치(100)에 의해, 일반 프로그램(20)은, 기존과 같이 레지스트리키(30)에 접근을 시도함에 따라 인젝션될 DLL 파일이 악성파일인 경우, 실제 레지스트리키(30)가 아닌 가상레지스트리키(40)로 접근 시도가 유도되어 결과적으로 자신의 프로세스 내부에 레지스트리키(30)에 의한 경로정보에 따른 파일 즉 DLL 파일을 로드하지 않을 수 있다.
이상에서 설명한 바와 같이 본 발명에 따른 프로그램 보호 장치(100)에 의하면, DLL 파일 인젝션에 의한 악성 행위로부터 보호받아야 하는 정도가 큰 특정 프로그램 예컨대 안티 바이러스 프로세스를 진행하게 될 프로그램에 대해서는, DLL 인젝션을 위한 레지스트리키(30)로의 접근 시도 확인 시 인젝션될 DLL 파일이 악성파일인지 여부와는 상관없이 무조건, 실제 레지스트리키(30)가 아닌 가상레지스트리키(40)로 접근되도록 유도하여 인젝션할 DLL 파일이 없는 것으로 인식하도록 하고, 일반적인 프로그램에 대해서는, 레지스트리키(30)로의 접근 시도 확인 시 인젝션될 DLL 파일이 악성파일인 경우에만 실제 레지스트리키(30)가 아닌 가상레지스트리키(40)로 접근되도록 유도하여 인젝션할 DLL 파일이 없는 것으로 인식하도록 할 수 있다.
이에, 본 발명에 따른 프로그램 보호 장치(100)에 의하면, DLL 인젝션에 의해 안티 바이러스 프로세스 내부에 악성 DLL이 로드되는 것을 보다 완벽하게 사전 방지하고, 더 나아가 일반적인 프로세스에 대해서도 악성행위가 로드되는 것 역시 방지할 수 있는 효과를 도출한다.
한편, 전술에서 설명한 본 발명에 따른 프로그램 보호 장치(100)는, 레지스트리키(30)에 접근을 시도한 프로그램(보호대상프로그램 또는 일반 프로그램)이 실제 레지스트리키(30)의 경로정보 대신 DLL 파일이 존재하지 않는 것으로 인지되게 하는 가상경로정보를 기록한 가상레지스트리키(40)에 접근되도록 하여, 인젝션할 DLL 파일이 없는 것으로 인식하도록 하고 있다.
이와 같은 맥락으로, 본 발명에서 본 발명에 따른 프로그램 보호 장치는, 전술과 같이 레지스트리키 대신 가상레지스트리키로 접근을 유도하는 것과 유사하게, 레지스트리키(30)로부터 획득한 실제 경로정보를 이용하여 DLL 파일로의 접근을 시도한 프로그램(보호대상프로그램 또는 일반 프로그램)이 실제 경로정보에 따른 DLL 파일 대신 가상의 DLL 파일에 접근되도록 하여, 인젝션할 DLL 파일이 없는 것으로 인식하도록 하는 것도 가능할 것이다.
한편, 본 발명에 따른 프로그램 보호 장치(100)는, 전술과 같은 접근확인부(110), 악성여부확인부(120) 및 접근제어부(130)의 기능을 포함하는 보호프로그램 형태로 구성되어, 컴퓨터시스템에 설치되는 것도 가능할 것이다.
이하에서는 도 2 및 도 3을 참조하여 본 발명에 따른 프로그램 보호 방법을 설명하도록 한다. 여기서, 설명의 편의를 위해 전술한 도 1에 도시된 구성은 해당 참조번호를 언급하여 설명하겠다.
먼저, 도 2를 참조하여 본 발명에 따른 프로그램 보호 장치를 포함한 컴퓨터시스템의 제어 흐름을 간단하게 설명하도록 한다.
컴퓨터시스템의 운영체제 부팅 또는 특정 이벤트상황 발생 등의 시점에, 보호대상프로그램(10)이 초기화를 시작하여(S10) 운영체제에서 제공하는 레지스트리키 특히 레지스트리키(30)로의 접근을 시도할 수 있다(S20).
이러한 레지스트리키(30)는, AppInit_Dlls 레지스트리키인 것이 바람직하다.
프로그램 보호 장치(100)는, 보호대상프로그램(10)과 관련하여 전술과 같은 레지스트리키(30)로의 접근 시도를 확인하면(S30), 금번 접근 시도가 보호대상프로그램(10)에 의한 접근 시도인 것으로 확인되면(S40) 레지스트리키(30)가 아닌 가상레지스트리키(40)로 접근 시도를 유도하게 된다(S50).
이에 보호대상프로그램(10)은, 기존과 같이 초기화 시 레지스트리키(30)에 접근을 시도함에 따라 실제 레지스트리키(30)가 아닌 가상레지스트리키(40)의 가상경로정보에 접근하게 되어(S60), 결과적으로 자신의 안티 바이러스 프로세스 내부에 레지스트리키(30)에 의한 경로정보에 따른 DLL 파일을 로드하지 않고 인젝션할 DLL 파일이 존재하지 않는 것으로 인지하게 됨으로써, 만약 DLL 파일이 악성파일인 경우라도 보호대상프로그램(10)에는 악성 영향을 미치는 일이 없을 것이다.
이하에서는 도 3을 참조하여 본 발명에 따른 프로그램 보호 방법을 보다 구체적으로 설명하도록 한다.
본 발명에 따른 프로그램 보호 방법은, 특정 파일을 인젝션시키는 기능의 레지스트리키(30)로의 접근 시도를 확인한다(S100).
여기서, 레지스트리키(30)는, 인젝션시키기 위한 특정 파일 즉 인젝션할 DLL 파일과 관련된 경로정보 예컨대 Fullpath 또는 DLL 파일이름이 기록되어 있는 것이 바람직하며, AppInit_Dlls 레지스트리키인 것이 바람직하다.
이에, 본 발명에 따른 프로그램 보호 방법은, 레지스트리키(30)로의 접근 시도를 확인되면, 금번 접근 시도가 보호대상프로그램(10)과 관련된 접근 시도인지 혹은 일반 프로그램(20)에 관련된 접근 시도인지 확인한다(S110).
본 발명에 따른 프로그램 보호 방법은, 금번 접근 시도가 보호대상프로그램(10)과 관련된 접근 시도인 것으로 확인되면, 레지스트리키(30)에 의해 인젝션될 DLL 파일이 악성파일인지 여부와는 상관없이 무조건 보호대상프로그램(10)에서 레지스트리키(30)에 기록된 경로정보 대신 기 등록된 다른 가상경로정보로 접근되도록 한다(S120).
보다 구체적으로 설명하면, 본 발명에 따른 프로그램 보호 방법은, 보호대상프로그램(10)과 관련된 레지스트리키(30)로의 접근 시도를, 인젝션시키기 위한 파일이 존재하지 않는 것으로 인지되게 하는 상기 가상경로정보가 기록된 가상레지스트리키(40)로 접근되도록 유도할 수 있다.
여기서, 가상레지스트리키(40)는, 인젝션시키기 위한 파일 즉 인젝션할 DLL 파일이 존재하지 않는 것으로 인지되게 하는 가상경로정보가 기록되어 있는 것이 바람직하다.
이에, 본 발명에 따른 프로그램 보호 방법은, 보호대상프로그램(10)과 관련하여 확인한 레지스트리키(30)로의 접근 시도가 확인되면, 레지스트리키(30)에 의해 인젝션될 DLL 파일이 악성파일인지 여부와는 상관없이 무조건, 금번 보호대상프로그램(10)과 관련된 레지스트리키(30)로의 접근 시도를 레지스트리키(30)가 아닌 전술의 가상경로정보가 기록된 가상레지스트리키(40)로 접근되도록 유도할 수 있다.
한편 본 발명에 따른 프로그램 보호 방법은, 금번 접근 시도가 일반 프로그램(20)과 관련된 접근 시도인 것으로 확인되면, 레지스트리키(30)에 의해 인젝션될 특정 파일이 악성파일인지 여부를 확인한다(S130).
예를 들면, 본 발명에 따른 프로그램 보호 방법은, 자신이 직접 레지스트리키(30)에 의해 인젝션될 특정 파일 즉 DLL 파일에 대하여 악성파일 여부를 검사하여 확인할 수 있고, 또는 다른 주체에 의해 DLL 파일에 대하여 악성파일 여부를 검사한 결과를 획득하여 확인할 수 있다.
이때, 악성파일 여부를 검사하는 방식은, 기존에 존재하는 다양한 방식 중 하나를 채택할 수 있으므로 구체적인 검사 방식 설명을 생략하도록 한다.
이에 본 발명에 따른 프로그램 보호 방법은, 확인 결과 특정 파일 즉 DLL 파일이 악성파일인 경우에는, 전술의 S120단계와 같이 일반 프로그램(20)에서 레지스트리키(30)에 기록된 인젝션시키기 위한 DLL 파일의 경로정보 대신 전술의 가상경로정보로 접근되도록 할 수 있다(.
다시 말해, 본 발명에 따른 프로그램 보호 방법은, 일반 프로그램(20)과 관련하여 확인한 레지스트리키(30)로의 접근 시도가 확인되면, 레지스트리키(30)에 의해 인젝션될 DLL 파일이 악성파일인 경우에만, 금번 일반 프로그램(20)과 관련된 레지스트리키(30)로의 접근 시도를 레지스트리키(30)가 아닌 전술의 가상경로정보가 기록된 가상레지스트리키(40)로 접근되도록 유도할 수 있다.
한편, 본 발명에 따른 프로그램 보호 방법은, 확인 결과 특정 파일 즉 DLL 파일이 악성파일이 아닌 경우에는, 종래와 같이 일반 프로그램(20)에서 레지스트리키(30)로의 접근 시도를 허용하여 인젝션될 DLL 파일에 대한 경로정보에 접근되도록 할 수 있다(S140).
이상에서 설명한 바와 같이 본 발명에 따른 프로그램 보호 방법에 의하면, DLL 파일 인젝션에 의한 악성 행위로부터 보호받아야 하는 정도가 큰 특정 프로그램 예컨대 안티 바이러스 프로세스를 진행하게 될 프로그램에 대해서는, DLL 인젝션을 위한 레지스트리키(30)로의 접근 시도 확인 시 인젝션될 DLL 파일이 악성파일인지 여부와는 상관없이 무조건, 실제 레지스트리키(30)가 아닌 가상레지스트리키(40)로 접근되도록 유도하여 인젝션할 DLL 파일이 없는 것으로 인식하도록 하고, 일반적인 프로그램에 대해서는, 레지스트리키(30)로의 접근 시도 확인 시 인젝션될 DLL 파일이 악성파일인 경우에만 실제 레지스트리키(30)가 아닌 가상레지스트리키(40)로 접근되도록 유도하여 인젝션할 DLL 파일이 없는 것으로 인식하도록 할 수 있다.
이에, 본 발명에 따른 프로그램 보호 방법에 의하면, DLL 인젝션에 의해 안티 바이러스 프로세스 내부에 악성 DLL이 로드되는 것을 보다 완벽하게 사전 방지하고, 더 나아가 일반적인 프로세스에 대해서도 악성행위가 로드되는 것 역시 방지할 수 있는 효과를 도출한다.
본 발명의 일실시예에 따른 프로그램 보호 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
10 : 보호대상 프로그램 20 : 일반 프로그램
50 : 메모리
100 : 프로그램 보호 장치
110 : 접근확인부 120 : 악성여부확인부
130 : 접근제어부

Claims (11)

  1. 특정 보호대상프로그램과 관련하여 특정 파일을 인젝션시키는 기능의 특정 레지스트리키로의 접근 시도를 확인하는 접근확인단계; 및
    확인된 상기 특정 레지스트리키로의 접근 시도에 대하여, 상기 특정 파일이 악성파일인지 여부를 고려하지 않고, 상기 특정 보호대상프로그램에서 상기 특정 레지스트리키에 기록된 상기 인젝션시키기 위한 특정 파일의 경로정보 대신 기 등록된 가상경로정보로 접근되도록 하는 접근제어단계를 포함하는 것을 특징으로 하는 프로그램 보호 방법.
  2. 제 1 항에 있어서,
    상기 특정 레지스트리키는,
    악성파일인지 여부를 확인하지 않은 상기 특정 파일의 경로정보가 기록되는 것이 가능한 레지스트리키를 포함하는 것을 특징으로 하는 프로그램 보호 방법.
  3. 제 1 항에 있어서,
    상기 특정 보호대상프로그램은,
    상기 특정 보호대상프로그램이 설치된 시스템 상에서 악성 검사 및 악성 치료 중 적어도 하나를 수행하는 프로그램인 것을 특징으로 하는 프로그램 보호 방법.
  4. 제 1 항에 있어서,
    상기 접근제어단계는,
    상기 특정 보호대상프로그램과 관련된 상기 특정 레지스트리키로의 접근 시도를, 인젝션시키기 위한 파일이 존재하지 않는 것으로 인지되게 하는 상기 가상경로정보가 기록된 가상레지스트리키로 접근되도록 유도하는 것을 특징으로 하는 프로그램 보호 방법.
  5. 제 1 항에 있어서,
    상기 특정 보호대상프로그램이 아닌 다른 프로그램과 관련하여 상기 특정 레지스트리키로의 접근 시도가 확인되면, 상기 특정 파일이 악성파일인지 여부를 확인하는 단계; 및
    상기 특정 파일이 악성파일인 경우에 한해서, 상기 다른 프로그램에서 상기 특정 레지스트리키에 기록된 상기 인젝션시키기 위한 특정 파일의 경로정보 대신 상기 가상경로정보로 접근되도록 하는 단계를 더 포함하며;
    상기 다른 프로그램은,
    상기 특정 보호대상프로그램이 설치된 시스템 상의 다수 프로그램 중에서 상기 특정 보호대상프로그램을 제외한 나머지 프로그램인 것을 특징으로 하는 프로그램 보호 방법.
  6. 특정 보호대상프로그램과 관련하여 특정 파일을 인젝션시키는 기능의 특정 레지스트리키로의 접근 시도를 확인하는 접근확인부; 및
    확인된 상기 특정 레지스트리키로의 접근 시도에 대하여, 상기 특정 파일이 악성파일인지 여부를 고려하지 않고, 상기 특정 보호대상프로그램에서 상기 특정 레지스트리키에 기록된 상기 인젝션시키기 위한 특정 파일의 경로정보 대신 기 등록된 가상경로정보로 접근되도록 하는 접근제어부를 포함하는 것을 특징으로 하는 프로그램 보호 장치.
  7. 제 6 항에 있어서,
    상기 특정 레지스트리키는,
    악성파일인지 여부를 확인하지 않은 상기 특정 파일의 경로정보가 기록되는 것이 가능한 레지스트리키를 포함하는 것을 특징으로 하는 프로그램 보호 장치.
  8. 제 6 항에 있어서,
    상기 특정 보호대상프로그램은,
    상기 특정 보호대상프로그램이 설치된 시스템 상에서 악성 검사 및 악성 치료 중 적어도 하나를 수행하는 프로그램인 것을 특징으로 하는 프로그램 보호 장치.
  9. 제 6 항에 있어서,
    상기 접근제어부는,
    상기 특정 보호대상프로그램과 관련된 상기 특정 레지스트리키로의 접근 시도를, 인젝션시키기 위한 파일이 존재하지 않는 것으로 인지되게 하는 상기 가상경로정보가 기록된 가상레지스트리키로 접근되도록 유도하는 것을 특징으로 하는 프로그램 보호 장치.
  10. 제 6 항 내지 제 9 항 중 한 항에 있어서,
    상기 특정 보호대상프로그램이 아닌 다른 프로그램과 관련하여 상기 특정 레지스트리키로의 접근 시도가 확인되면, 상기 특정 파일이 악성파일인지 여부를 확인하는 악성여부확인부를 더 포함하며;
    상기 접근제어부는,
    상기 특정 파일이 악성파일인 경우에 한해서, 상기 다른 프로그램에서 상기 특정 레지스트리키에 기록된 상기 인젝션시키기 위한 특정 파일의 경로정보 대신 상기 가상경로정보로 접근되도록 하며,
    상기 다른 프로그램은,
    상기 특정 보호대상프로그램이 설치된 시스템 상의 다수 프로그램 중에서 상기 특정 보호대상프로그램을 제외한 나머지 프로그램인 것을 특징으로 하는 프로그램 보호 장치.
  11. 제 1 항 내지 제 5 항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
KR1020120088548A 2012-08-13 2012-08-13 프로그램 보호 장치 및 프로그램 보호 방법 KR101375656B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120088548A KR101375656B1 (ko) 2012-08-13 2012-08-13 프로그램 보호 장치 및 프로그램 보호 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120088548A KR101375656B1 (ko) 2012-08-13 2012-08-13 프로그램 보호 장치 및 프로그램 보호 방법

Publications (2)

Publication Number Publication Date
KR20140023459A KR20140023459A (ko) 2014-02-27
KR101375656B1 true KR101375656B1 (ko) 2014-03-18

Family

ID=50268831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120088548A KR101375656B1 (ko) 2012-08-13 2012-08-13 프로그램 보호 장치 및 프로그램 보호 방법

Country Status (1)

Country Link
KR (1) KR101375656B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11522891B2 (en) 2019-11-26 2022-12-06 Micro Focus Llc Machine learning anomaly detection of process-loaded DLLs

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101710918B1 (ko) * 2015-11-30 2017-02-28 (주)이스트소프트 사용자파일을 암호화하는 악성코드의 모니터링 장치 및 방법
KR101869743B1 (ko) * 2017-03-14 2018-07-20 주식회사 안랩 프로세스 보호 시스템 및 프로세스 보호 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268687A (ja) 2005-03-25 2006-10-05 Mitsubishi Electric Corp コンピュータウィルス監視プログラム及びこれを用いたコンピュータ端末装置
KR20100008678A (ko) * 2008-07-16 2010-01-26 주식회사 마크애니 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법
KR100959276B1 (ko) 2009-10-26 2010-05-26 에스지에이 주식회사 커널계층에서 통제리스트를 이용한 악성프로세스 설치차단 시스템 및 그 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
JP4929403B2 (ja) 2007-10-15 2012-05-09 ベイジン ライジング インフォメーション テクノロジー カンパニー、リミテッド コンピュータにおける悪意プログラム自動保護方法及び装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268687A (ja) 2005-03-25 2006-10-05 Mitsubishi Electric Corp コンピュータウィルス監視プログラム及びこれを用いたコンピュータ端末装置
JP4929403B2 (ja) 2007-10-15 2012-05-09 ベイジン ライジング インフォメーション テクノロジー カンパニー、リミテッド コンピュータにおける悪意プログラム自動保護方法及び装置
KR20100008678A (ko) * 2008-07-16 2010-01-26 주식회사 마크애니 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법
KR100959276B1 (ko) 2009-10-26 2010-05-26 에스지에이 주식회사 커널계층에서 통제리스트를 이용한 악성프로세스 설치차단 시스템 및 그 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11522891B2 (en) 2019-11-26 2022-12-06 Micro Focus Llc Machine learning anomaly detection of process-loaded DLLs

Also Published As

Publication number Publication date
KR20140023459A (ko) 2014-02-27

Similar Documents

Publication Publication Date Title
EP3779745B1 (en) Code pointer authentication for hardware flow control
RU2522019C1 (ru) Система и способ обнаружения угроз в коде, исполняемом виртуальной машиной
US20090288161A1 (en) Method for establishing a trusted running environment in the computer
CN102262574B (zh) 操作系统启动保护方法和装置
US9516056B2 (en) Detecting a malware process
US10757100B2 (en) Methods and apparatus for protecting domains of a device from unauthorized accesses
US9262631B2 (en) Embedded device and control method thereof
EP2680138B1 (en) Dynamic rule management for kernel mode filter drivers
CN106228078A (zh) 一种Linux下基于增强型ROST的安全运行方法
KR20190080591A (ko) 행위 기반 실시간 접근 제어 시스템 및 행위 기반 실시간 접근 제어 방법
KR101375656B1 (ko) 프로그램 보호 장치 및 프로그램 보호 방법
CN109583206B (zh) 监控应用程序的访问进程的方法、装置、设备及存储介质
CN113486413A (zh) 一种防截屏处理方法、计算设备及可读存储介质
US11194899B2 (en) Apparatus and methods for transitioning between a secure area and a less-secure area
CN104516791B (zh) 数据处理方法、装置及电子设备
KR101375658B1 (ko) 프로그램 정보변경 보호장치 및 프로그램 정보변경 보호방법
KR101217677B1 (ko) 악성 프로그램 방어 장치 및 방법
KR101845284B1 (ko) 악성코드탐지시스템 및 악성코드 탐지 방법
CN116910768B (zh) 一种防御攻击方法、系统、装置及介质
KR102298219B1 (ko) 악성 커널 모듈 탐지 장치 및 악성 커널 모듈 탐지 방법
KR20180087299A (ko) 마이크로컨트롤러를 작동시키기 위한 방법
CN116702098A (zh) 应用程序部署方法、Boot装置、单片机及介质
KR20150007803A (ko) 클라이언트시스템 및 클라이언트시스템의 동작 방법
KR101368949B1 (ko) 공격코드 실행 사전 차단 방법 및 공격코드 실행 사전 차단 장치
KR101277617B1 (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: 20170313

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180312

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190312

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200312

Year of fee payment: 7