KR101503827B1 - 절대 경로 관리를 통한 악성 프로그램 검사 시스템 - Google Patents

절대 경로 관리를 통한 악성 프로그램 검사 시스템 Download PDF

Info

Publication number
KR101503827B1
KR101503827B1 KR1020130094161A KR20130094161A KR101503827B1 KR 101503827 B1 KR101503827 B1 KR 101503827B1 KR 1020130094161 A KR1020130094161 A KR 1020130094161A KR 20130094161 A KR20130094161 A KR 20130094161A KR 101503827 B1 KR101503827 B1 KR 101503827B1
Authority
KR
South Korea
Prior art keywords
path
absolute path
file
system call
absolute
Prior art date
Application number
KR1020130094161A
Other languages
English (en)
Other versions
KR20150017925A (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 KR1020130094161A priority Critical patent/KR101503827B1/ko
Publication of KR20150017925A publication Critical patent/KR20150017925A/ko
Application granted granted Critical
Publication of KR101503827B1 publication Critical patent/KR101503827B1/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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

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)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 시스템 콜 후킹을 기반으로 상대경로로 생성되는 악성 프로그램을 절대 경로로 변환하고, 해당 프로그램을 검사하여 경고 및 차단하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로, 상기 컴퓨터 단말의 운영체제의 시스템콜을 후킹하는 시스템콜 후킹 제어부; 상기 컴퓨터 단말에서 실행되는 프로세스(이하 실행 프로세스)의 절대 경로를 저장하고 갱신하는 프로세스 처리부; 상기 시스템콜에서 접근을 요청한 파일(이하 접근 파일)의 경로가 절대 경로인지 상대 경로인지를 판단하고, 상대 경로인 경우 상기 접근 파일의 절대 경로가 저장되어 있는지를 판단하는 절대경로 판단부; 상기 시스템콜을 요청한 프로세스(이하 요청 프로세스)의 절대 경로와, 상기 접근 파일의 상대 경로를 조합하여, 상기 접근 파일의 절대 경로를 구하는 절대경로 조합부; 및, 상기 접근 파일의 절대 경로를 이용하여, 상기 접근 파일에 대하여 악성 프로그램 여부를 판단하는 악성코드 검사부으로 구성한다.
상기와 같은 악성 프로그램 검사 시스템에 의하여, 커널 시스템 콜 후킹으로 악성 프로그램이 상대경로로 생성되는 경우에도 이를 절대 경로로 변환하여 악성프로그램이 신규로 생성되는 것을 효율적으로 차단하고, 이로 인해, 새로운 악성프로그램의 위협으로부터 시스템을 안전하게 보호 할 수 있다.

Description

절대 경로 관리를 통한 악성 프로그램 검사 시스템 { A detect system against malicious processes by using the full path of access files }
본 발명은 시스템 콜 후킹을 기반으로 상대경로로 생성되는 악성 프로그램을 절대 경로로 변환하고, 해당 프로그램을 검사하여 경고 및 차단하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것이다.
특히, 본 발명은 시스템 콜 후킹에 의한 악성 프로그램 및 유해 프로그램을 식별하는 것으로서, 파일을 생성할 경우 사용하는 시스템의 특정 시스템 콜의 호출되는 경로가 상대적인 경로이면 해당 상대 경로를 절대 경로로 자동으로 변환하고, 이를 통해 새로 생성되는 파일이 정상 파일인지 악성 프로그램인지 여부를 검사하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것이다.
인터넷 기술의 급속한 발전과 인터넷 보급의 확대에 따라 유닉스 및 리눅스 서버의 보안을 위협하는 유해 프로그램도 갈수록 증가 추세에 있다. 이러한 악성 프로그램은 시스템에 침투하여 본래 사용하고자 하는 용도와는 무관한 작업을 처리하거나 비정상적인 기능을 수행하는 프로그램으로서, 바이러스, 웜, 트로이목마, 백도어 등의 프로그램을 통칭한다.
악성 프로그램은 그 종류에 따라서 다양한 형태로 존재한다. 이러한 악성 프로그램은 다른 프로그램 또는 운영 체제에 접근하여 코드를 변경시키거나 정보를 추출하는 동작, 비정상적인 네트워크 패킷을 송수신하는 동작, 또는, 보안 프로그램으로부터 자신의 존재를 숨기기 위한 은닉 동작 등, 일반적인 프로그램과는 다른 이상 행동(동작)을 수행한다는 공통적인 특성을 가지고 있다.
일반적으로, 기존의 바이러스 백신의 보안 프로그램은 주기적으로 유해 프로그램에 대한 검사를 진행하여 해당 유해 프로그램을 치료하는 방식으로 작동한다. 그러나, 이와 같은 종래의 보안 프로그램은 주기적으로 모든 파일에 대하여 악성 프로그램을 검사하는 방법을 사용하기 때문에, 시스템에 대한 부하가 많고 또한 주기적 검사 시간 사이, 즉, 검사가 진행되지 않는 동안에, 활동하는 악성 프로그램에 대하여 거의 대응할 수 없다는 문제점이 있다.
이러한 문제점을 해결하기 위한 것으로는, 한국공개특허 제10-2004-0083409호에 기재된 "실시간 감시를 통한 컴퓨터 보호 방법 및 이에 따라 보호되는 컴퓨터와 그 시스템"이 있다[특허문헌 1]. 상기 문헌에는 파일 핸들링에 관련된 인터럽트 또는 이벤트를 가로챈 후 분석하여 허용되지 않은 실행 가능한 파일에 대한 변경요청을 폐기하도록 구성되어 있다. 이로 인해, 바이러스 등으로부터 컴퓨터를 보호할 수 있는 실시간 감시를 통한 컴퓨터 보호 방법을 제시하고 있다.
그러나, 상기 종래 기술은 운영체제 자체에서 절대 경로를 제공하는 경우에만 컴퓨터를 보호할 수 있다. 이것은 종래 기술의 컴퓨터 보호 방법은 별도로 현재 실행 중인 프로세스의 경로를 가지고 있지 않기 때문이다. 따라서 상대 경로로 운영되는 운영 체제에서, 상대 경로로 생성되는 유해 프로그램에 대한 보안 기능은 한계가 있다는 문제점이 있다.
[특허문헌 1] 한국공개특허 10-2004-0072633 (2004.10.01.공개)
본 발명은 상기한 배경기술의 문제점을 해결하기 위하여 안출된 것으로, 악성 프로그램 및 유해 프로그램을 식별하는 것으로서, 파일을 생성할 경우 사용하는 시스템의 특정 시스템 콜의 호출되는 경로가 상대적인 경로이면 해당 상대 경로를 절대 경로로 자동으로 변환하고, 절대경로를 이용하여 새로 생성되는 파일이 정상 파일인지 악성 프로그램인지 여부를 검사하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템을 제공하는 것이다.
상기한 과제를 해결하기 위하여, 본 발명은 컴퓨터 단말에 실행되는 프로세스가 접근하는 파일을 검사하여 상기 프로세스의 악성 여부를 판단하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 컴퓨터 단말의 운영체제의 시스템콜을 후킹하는 시스템콜 후킹 제어부; 상기 컴퓨터 단말에서 실행되는 프로세스(이하 실행 프로세스)의 절대 경로를 저장하고 갱신하는 프로세스 처리부; 상기 시스템콜에서 접근을 요청한 파일(이하 접근 파일)의 경로가 절대 경로인지 상대 경로인지를 판단하고, 상대 경로인 경우 상기 접근 파일의 절대 경로가 저장되어 있는지를 판단하는 절대경로 판단부; 상기 시스템콜을 요청한 프로세스(이하 요청 프로세스)의 절대 경로와, 상기 접근 파일의 상대 경로를 조합하여, 상기 접근 파일의 절대 경로를 구하는 절대경로 조합부; 및, 상기 접근 파일의 절대 경로를 이용하여, 상기 접근 파일에 대하여 악성 프로그램 여부를 판단하는 악성코드 검사부를 포함하는 것을 특징으로 한다.
또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 시스템콜 후킹 제어부는 프로세스의 생성, 경로 변경, 종료에 대한 시스템콜, 또는 파일의 접근에 대한 시스템콜에 한하여 후킹하는 것을 특징으로 한다.
또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 프로세스 처리부는 상기 실행 프로세스가 생성될 때, 상속받으려는 부모 프로세스의 디렉터리 정보를 이용하여 절대 경로를 정하는 것을 특징으로 한다.
또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 프로세스 처리부는 상기 실행 프로세스가 생성될 때, 얻어지는 부모 프로세스의 아이디를 통해, 상기 부모 프로세스의 현재 디렉터리의 속성을 조회하고, 조회된 디렉터리로 상기 실행 프로세스의 절대 경로를 정하는 것을 특징으로 한다.
또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 절대경로 판단부는, 사전에 정해진 자주 사용되는 파일에 대하여 절대경로를 저장해두고, 상기 접근 파일이 상대 경로인 경우, 상기 접근 파일의 절대경로가 저장되어 있는지를 판단하고, 상기 접근 파일의 절대경로가 저장되어 있으면, 상기 접근 파일의 상대 경로를 절대경로로 변환하는 것을 특징으로 한다.
또한, 본 발명은 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 관한 것으로서, 상기 절대경로 판단부는 상기 자주 사용되는 파일에 대하여, 파일의 경로가 변경되면 변경된 경로로 절대경로를 변경하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 의하면, 커널 시스템 콜 후킹으로 악성 프로그램이 상대경로로 생성되는 경우에도 이를 절대 경로로 변환하여 악성프로그램이 신규로 생성되는 것을 효율적으로 차단하고, 이로 인해, 새로운 악성프로그램의 위협으로부터 시스템을 안전하게 보호 할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 의하면, 운영체제의 커널 수준에서 악성프로세스의 신규 설치를 실시간으로 검사함으로써, 종래 기술에 의해 주기적으로 악성 프로그램 여부를 검사할 때 1차 검사 후 2차 검사되기 전에 신규로 발생될 수 있는 악성 프로세스의 생성을 근본적으로 차단할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 절대 경로 관리를 통한 악성 프로그램 검사 시스템에 의하면, 신규로 생성되는 파일에 대해서만 악성 프로그램을 검사하기 때문에 기존에 모든 파일을 검사하는 기존 악성 프로그램 검사 시스템에 비해서 불필요한 파일을 검사함으로써 생기는 시스템 자원의 낭비를 줄이는 효과가 얻어진다.
도 1은 본 발명을 실시하기 위한 전체 시스템에 대한 구성도.
도 2는 본 발명의 일실시예에 따른 감시대상 시스템콜의 종류에 대한 표.
도 3은 본 발명의 일실시예에 따른 악성 프로그램 검사 시스템의 구성에 대한 블록도.
도 4는 본 발명의 일실시예에 따른 시스템콜 후킹 제어부의 구성에 대한 블록도.
도 5는 본 발명의 일실시예에 따른 절대경로 판단부의 구성에 대한 블록도.
도 6은 본 발명의 일실시예에 따른 절대경로 변환부의 구성에 대한 블록도.
도 7은 본 발명의 일실시예에 따른 프로세스 처리부의 구성에 대한 블록도.
도 8은 본 발명의 일실시예에 따른 악성프로그램 검사부의 구성에 대한 블록도.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명을 실시하기 위한 전체 시스템의 구성의 예들에 대하여 도 1을 참조하여 설명한다.
도 1에서 보는 바와 같이, 본 발명은 통상의 컴퓨터 시스템 내에서 실시된다. 즉, 본 발명의 실시를 위한 전체 시스템은 컴퓨터 시스템 상에서의 하드웨어(25), 운영체제(OS, 20), 그 운영체제 상에서 수행되는 프로세스(10), 악성 프로그램 검사 시스템(30)으로 구성된다. 데이터를 저장하기 위한 데이터베이스(40)를 추가 구성될 수 있다.
하드웨어(25)는 입출력 장치, 저장장치(하드디스크 등), 네트워크 장치(네트워크 카드 등) 등 시스템의 물리적 자원을 말한다. 운영체제(20)는 컴퓨터 시스템을 운영하는 시스템 프로그램으로서, 통상 커널계층이라고 부르기도 한다. 일반적으로 사용자의 컴퓨터 프로그램들은 사용자 계층에서 프로세스로 실행된다.
프로세스(10)는 컴퓨터 프로그램이 운영체제 상에서 실행되는 상태를 말하는 것으로서, 프로그램, (프로그램) 코드라 부르기도 한다. 따라서 악성행위를 수행하는 프로세스를 악성 코드, 악성 프로그램, 악성 프로세스 등으로 혼용한다.
프로세스(10)는 컴퓨터 시스템의 자원(하드웨어 자원)을 이용하기 위하여, 시스템 동적 라이브러리(21)(Win32.dll 등)의 API(Application programming interface) 함수를 호출한다. 이때 API 함수를 호출하는 것을 시스템콜(system call)이라고 부르기로 한다.
운영체제의 커널계층(20)은 시스템 처리모듈(22), 드라이버(23) 등으로 구성된다. 드라이버(23)는 하드웨어 장치(25)를 직접 제어하기 위한 시스템 프로그램이다. 따라서 호출된 API 함수는 커널계층의 시스템 처리모듈(22)에서 처리되어, 필요한 경우 드라이버(23)에 의해 시스템 자원에 접근한다.
악성 프로그램 검사 시스템(30)은 프로세스(10)의 시스템콜을 후킹하여, 프로세스(10)가 요청하는 파일(또는 접근 파일)을 검사한다. 즉, 접근 파일을 검사함으로써 악성 여부를 조사(또는 판단)한다. 이때, 시스템콜을 후킹하기 위하여, 시스템콜 후킹모듈를 포함한다. 악성 프로그램 검사 시스템(30)은 시스템콜 후킹모듈을 통해 통상의 후킹(hooking) 방법으로 시스템 동적 라이브러리(21)를 후킹한다.
먼저, 악성 프로그램 검사 시스템(30)은 후킹된 시스템콜이 감시대상(또는 분석대상)인 시스템콜(또는 API 함수)인지를 확인하여, 감시대상이 아닌 경우 시스템 동적 라이브러리(21)로 상기 시스템콜을 넘겨 실행하게 한다. 감시대상 여부를 확인하기 위하여, 감시대상 API 함수(또는 시스템콜)를 리스트로 사전에 저장하여 관리한다.
감시대상 API 함수는 도 2에서 보는 바와 같다. 도 2에서 보는 바와 같이, 크게 프로세스 관련 시스템콜과 파일관련 시스템콜로 구분된다. 프로세스 관련 시스템콜은 프로세스의 생성(fork) 등이 있고, 파일관련 시스템콜은 파일 생성, 열기, 이름변경 등에 관한 API 함수이다.
시스템콜(API 함수)이 감시대상이면, 악성 프로그램 검사 시스템(30)은 후킹된 시스템콜을 분석하여, 프로세스(10)가 요청한 파일에 대한 절대 경로를 검출한다. 그리고 절대 경로를 이용하여, 실제 저장된 파일을 검사한다. 즉, 파일의 내용, 파일의 종류나 위치 등을 사전에 정해진 검사 규칙에 따라 검사한다. 이러한 검사를 통해, 해당 프로세스(10)가 악성 여부인지를 판단하거나, 새로 생성된 파일이 악성 프로그램과 관련된 파일인지를 판단한다.
이때, 악성행위 여부를 판단하기 위한 판단조건은 사전에 구비된다. 판단조건은 과거에 악성 프로세스로 밝혀진 행위들을 분석하여 경험적으로 만들어진 것이다.
한편, 시스템콜이 프로세스와 관련된 함수이면, 악성 프로그램 검사 시스템(30)은 프로세스의 절대 경로를 획득하여 데이터베이스(40)에 저장해둔다.
다음으로, 악성 프로그램 검사 시스템(30)은 요청사항이 악성행위인지를 판단하여, 악성행위인 경우 상기 시스템콜을 차단한다. 즉, 시스템콜을 시스템 동적 라이브러리(21)에 넘겨주지 않는다. 더 나아가, 악성 프로그램 검사 시스템(30)은 해당 프로세스(또는 악성 프로세스)를 중단시키거나, 사용자에게 중단시킬 것을 경고하고 요청할 수 있다.
요청사항(또는 시스템콜)이 악성행위가 아니라고 판단되면, 악성 프로그램 검사 시스템(30)은 시스템콜을 커널계층(20)으로 넘겨준다. 즉, 해당 프로세스의 절대 경로만 저장하고 해당 시스템콜은 커널에 의해 처리되도록 한다.
데이터베이스(40)는 파일 또는 프로세스들의 절대경로를 저장하는 절대경로DB(41), 및, 파일에 대하여 악성 여부를 판단하는 판단조건을 저장하는 판단조건DB(42)로 이루어진다. 그러나 상기 데이터베이스(40)의 구성은 바람직한 일실시예일 뿐이며, 구체적인 장치를 개발하는데 있어서, 접근 및 검색의 용이성 및 효율성 등을 감안하여 데이터베이스 구축이론에 의하여 다른 구조로 구성될 수 있다.
다음으로, 본 발명의 일실시예에 따른 절대 경로 관리를 통한 악성 프로그램 검사 시스템의 구성을 도 3을 참조하여 보다 구체적으로 설명한다.
도 3에서 보는 바와 같이, 본 발명에 따른 악성 프로그램 검사 시스템(30)은 시스템콜 후킹 제어부(31), 절대경로 판단부(32), 절대경로 변환부(33), 프로세스 처리부(34), 및, 악성프로그램 검사부(35)로 구성된다.
시스템콜 후킹 제어부(31)는 컴퓨터 단말의 운영체제의 시스템콜을 후킹한다. 이를 위해, 시스템콜 후킹 제어부(31)는 운영체제의 시스템콜(System call) 테이블의 주소를 자신의 테이블 주소로 대치시킨다. 이때, 자신의 테이블 주소란 후킹한 시스템콜을 처리하는 모듈(또는 시스템콜 후킹 모듈)의 메모리상 주소를 말한다. 따라서 시스템콜이 호출되면, 시스템콜 후킹 제어부(31)의 시스템콜 처리 모듈이 호출되어 실행된다. 구체적인 수행 방법이 도 4에 도시되고 있다.
도 4에서 보는 바와 같이, 후킹 제어부(31)가 시스템상(또는 메모리상)에 로딩되면 초기화되어 커널 메모리에 할당되고, 운영체제의 시스템콜 테이블에 접근한다. 만약 운영체제의 시스템콜의 접근이 성공하면, 후킹 제어부(31)는 운영체제의 시스템콜 테이블 중에서 감시대상인 시스템콜에 대해서 자신의 시스템콜 처리 모듈의 주소로 대치한다.
앞서 도 2를 참조하여 설명한 바와 같이, 감시대상의 시스템콜은 프로세스 관련 시스템콜, 또는 파일 관련 시스템콜 등으로 구분된다.
다음으로, 프로세스 처리부(34)에 대하여 도 5를 참조하여 설명한다.
프로세스 처리부(34)는 컴퓨터 단말에서 실행되는 프로세스(이하 실행 프로세스)의 절대 경로를 저장하고 갱신한다. 특히, 프로세스 처리부(34)는 실행 프로세스의 현재 경로를 관리하고 항상 최신의 절대경로로 갱신한다.
도 5에서 보는 바와 같이, 프로세스 처리부(34)는 프로세스와 관련된 시스템콜에 의해 수행된다. 즉, 프로세스 관련 시스템콜은 프로세스 생성과 관련된 시스템콜(sys_fork, sys_execve), 프로세스의 경로를 변경하는 시스템콜(sys_chdir), 프로세스를 종료하는 시스템콜(sys_kill) 등이 있다.
즉, 앞서 후킹 제어부(31)에 의해 위와 같은 시스템콜이 후킹되면, 프로세스 처리부(34)는 후킹된 시스템콜을 이용하여 프로세스의 절대경로와 관련된 작업을 수행한다.
먼저, 신규 프로세스 생성시, 즉, 프로세스를 생성하는 시스템콜이 호출되면, 프로세스의 현재 경로가 존재하는지를 확인한다. 즉, 시스템콜에 의해 프로세스의 현재 위치의 절대경로를 획득할 수 있는지를 확인한다. 만약 현재 위치의 절대경로를 획득할 수 있으면, 상기 절대경로를 프로세스의 경로 데이터베이스에 해당 프로세스의 경로로서 저장한다.
만약 시스템콜에 의하여 실행 프로세스의 프로세스 절대경로를 구할 수 없는 경우, 부모 프로세스를 이용하여 실행 프로세스의 절대경로를 추출한다. 이를 위해, 먼저, 상기 실행 프로세스의 부모 프로세스가 존재하는지를 확인한다. 그리고 부모 프로세스의 현재 디렉터리의 속성을 조회한다. 조회한 디렉터리를 상기 프로세스의 경로 데이터베이스(또는 프로세스 경로 테이블)에 저장한다.
즉, 프로세스가 생성될 때, 부모 프로세스의 식별정보(또는 아이디)도 조회가 가능하다. 따라서 부모 프로세스의 아이디(또는 식별정보)로 부모 프로세스에 접근하여 속성을 읽어온다. 이때, 현재 디렉터리 속성에는 부모 프로세스의 현재 디렉터리의 절대 경로를 가지고 있다. 상기 부모 프로세스의 현재 디렉터리의 속성값을, 생성되는 프로세스의 절대경로로 정하여 저장한다.
생성되어 실행되는 프로세스는 부모 프로세스의 모든 속성을 동일하게 상속받는 것이 운영체제(OS)의 기본적인 동작 방식이다. 따라서 실행되는 프로세스는 기본적으로 부모 프로세스와 동일한 경로에서 실행이 되기 때문에, 부모 프로세스의 절대 경로를 해당 프로세스의 절대경로로 이용하는 것이 바람직하다.
다음으로, 프로세스의 현재 경로가 변경되면, 변경된 경로가 시스템 콜 후킹 제어부(31)에 의해 전송되고, 이때, 변경된 경로를 프로세스 경로 테이블에서 갱신된다. 변경된 경로가 없는 경우, 앞서 프로세스의 생성의 경우와 같이, 부모 프로세스로부터 변경된 경로를 상속받는다. 그래서 상속받은 경로(변경된 프로세스)를 프로세스 경로 테이블에 갱신한다.
다음으로, 프로세스가 종료되는 경우, 즉, kill 등에 의해 해당 프로세스가 종료되는 경우, 프로세스 테이블(또는 절대경로DB)에서 해당 프로세스에 대한 현재 경로를 삭제한다.
즉, 프로세스 처리부(34)는 실행 프로세스들에 대한 현재 경로를 항상 갱신하여 유지한다. 프로세스 처리부(34)는 프로세스의 절대경로가 변경될 수 있는 모든 시스템콜을 분석하여 프로세스의 경로(특히 절대경로)에 대한 현재 상태를 유지하여 데이터베이스에 저장한다.
다음으로, 절대경로 판단부(32)에 대하여 도 6을 참조하여 구체적으로 설명한다.
절대경로 판단부(32)는 시스템콜 후킹 제어부(31)에 의해 시스템콜 후킹 모듈이 삽입된 후, 후킹된 시스템콜에 대하여 파일(또는 접근 파일)의 생성 및 삭제 시, 요청되는 파일의 경로가 절대 경로 또는 상대 경로 여부를 판단한다.
먼저, 절대경로 판단부(32)는 사전에 자주 사용되는 파일에 대하여 절대경로를 저장해둔다. 자주 사용하는 파일이란 운영체제 시스템의 실행파일 폴더(예를 들어, bin 폴더 등)에 들어있는 실행 파일 등의 경로 등을 말한다.
이와 같이 자주 시용되는 파일에 대하여, 파일 인덱스(inode)를 식별정보로 이용하여 절대경로를 저장해둔다. 즉, 파일 인덱스와 절대경로를 데이터베이스화하여 저장해둔다. 아이노드(inode) 등 파일 인덱싱은 운영체제에서 사용하는 파일의 인덱싱 방식을 말한다. 파일 인덱스(아이노드)는 각 파일에 고유의 아이디를 부여하는 것이므로, 식별정보로서 이용될 수 있다.
또한, 자주 사용되는 파일은 파일의 변경 또는 삭제시 자동으로 갱신된다.
다음으로, 파일(또는 접근 파일)이 생성 또는 오픈되는 경우를 설명한다. 즉, 파일을 생성하거나 오픈하는 시스템콜, 예를 들어, Sys_create, sys_open 등이 호출되면, 이때 생성되거나 오픈되는 파일의 경로를 판단한다. 파일의 경로는 시스템콜의 인수로 넘겨받고, 해당 파일의 인수를 대상으로 판단한다.
파일의 경로가 상대 경로가 아닌 경우, 즉, 절대 경로인 경우, 절대경로 판단부(32)는 이를 악성 프로그램 검사부(35)로 바로 전달한다.
파일의 경로가 상대 경로인 경우, 해당 파일에 대하여 절대 경로가 데이터베이스에 저장되어 있는지를 확인한다. 즉, 해당 파일의 경로에 대한 저장된 절대 경로가 있는지를 데이터베이스에 조회한다.
만약 파일의 절대 경로가 존재하면, 저장된 파일의 절대 경로를 악성 프로그램 검사부(35)에 전달한다. 그리고 파일의 절대 경로가 존재하지 않으면, 해당 파일의 경로를 절대경로 변환부(33)로 전달한다.
파일의 절대 경로가 존재하는 경우란, 앞서 설명한 "자주 사용하는 파일"에 대하여 파일 인덱스(inode)와 절대경로를 데이터베이스화하여 저장한 경우를 말한다. 이때, 해당 파일의 인덱스(inode)를 비교하여 저장된 파일 인덱스를 검색한다. 검색된 파일 인덱스에 의한 절대경로가 해당 파일의 절대경로로 선정된다.
즉, 절대경로 판단부(32)는 사전에 정해진 자주 사용되는 파일에 대하여 절대경로를 저장해두고, 상기 접근 파일이 상대 경로인 경우, 상기 접근 파일의 절대경로가 저장되어 있는지를 판단한다. 그래서 상기 접근 파일의 절대경로가 저장되어 있으면, 상기 접근 파일의 상대 경로를 절대경로로 변환한다.
한편, 시스템콜이 파일의 파일명 변경 등과 같은 요청을 하면, 파일의 경로가 절대 경로인 경우 이전에 저장된 파일의 절대경로를 해당 경로로 변경한다. 또한, 넘겨받은 파일의 경로가 상대 경로이면서 해당 파일 경로에 대하여 절대 경로가 저장되어 있는 경우에도, 저장된 절대 경로로 변경(또는 갱신)한다.
파일명 변경(rename) 시에도 파일 인덱스(inode)가 시스템콜의 인자로서 전달되기 때문에, 파일 인덱스를 통해 데이터베이스화된 파일의 절대 경로에서도 갱신할 수 있다.
또한, 파일의 삭제(예를 들어, unlink 등 시스템콜)인 시스템콜을 처리하는 경우, 해당 파일이 삭제되면, 절대경로 데이터베이스에서도 해당 파일의 절대경로 데이터를 삭제하는 것이 바람직하다.
다음으로, 절대경로 변환부(33)에 대하여 도 7을 참조하여 구체적으로 설명한다.
도 7에서 보는 바와 같이, 절대경로 변환부(33)는 시스템콜을 요청한 프로세스(또는 요청 프로세스)의 절대 경로와, 상기 접근 파일의 상대 경로를 조합하여, 상기 접근 파일의 절대 경로를 구한다.
즉, 절대경로 판단부(32)에 의해 전달된 상대 경로를, 절대경로 변환부(33)가 프로세스 처리부(34)에서 저장하고 있는 프로세스 절대 경로와 조합한다. 즉, 상대 경로로 전달된 접근 파일의 경로(또는 접근 파일 경로)를 구하기 위하여, 절대경로 판단부(32)는 현재 프로세스의 식별자(아이디)를 기반으로 저장된 프로세스의 절대 경로를 요청하고, 프로세스의 절대 경로와 파일의 상대 경로를 조합하여 조화된 절대 경로를 악성 프로그램 검사부(35)로 전달한다.
다음으로, 악성 프로그램 판단부(35)에 대하여 도 8을 참조하여 설명한다.
도 8에서 보는 바와 같이, 악성 프로그램 판단부(35)는 접근 파일의 절대 경로를 이용하여, 상기 접근 파일에 대하여 악성 프로그램 여부를 판단한다.
즉, 악성 프로그램 판단부(35)는 절대경로 판단부(32) 또는 절대경로 변환부(33)로부터 전달된 절대 경로를 이용하여 악성 여부를 판단한다. 악성 여부의 판단은 종래 파일의 내용 및 파일의 절대 경로의 특성 등을 미리 정해진 규칙에 따라 판단한다.
예를 들어, 일반 사용자 프로그램(또는 프로세스)이 접근하지 않아야 하는 파일인데 접근 요청을 받거나, 절대 경로로 저장된 파일을 읽어와서 특정한 패턴이 파일 내에 저장되어 있는 등을 분석하여 악성 여부를 판단한다.
만약 악성으로 판단되면, 요청된 시스템콜을 차단한다. 즉, 시스템콜을 시스템 동적 라이브러리(21)에 넘겨주지 않는다. 더 나아가, 해당 프로세스(또는 악성 프로세스)를 중단시키거나, 사용자에게 중단시킬 것을 경고하고 요청할 수 있다.
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 프로세스 20 : 커널 계층
21 : 시스템 동적 라이브러리 22 : 시스템 처리 모듈
23 : 드라이버 25: 하드웨어 장치
30 : 검사 시스템 31 : 시스템콜 후킹 제어부
32 : 절대경로 판단부 33 : 절대경로 변환부
34 : 프로세스 처리부 35 : 악성프로그램 검사부
40 : 데이터베이스 41 : 절대경로DB
42 : 판단조건DB

Claims (6)

  1. 컴퓨터 단말에 실행되는 프로세스가 접근하는 파일을 검사하여 상기 프로세스의 악성 여부를 판단하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템으로서,
    상기 컴퓨터 단말의 운영체제의 시스템콜을 후킹하는 시스템콜 후킹 제어부;
    상기 컴퓨터 단말에서 실행되는 프로세스(이하 실행 프로세스)의 절대 경로를 저장하고 갱신하는 프로세스 처리부;
    상기 시스템콜에서 접근을 요청한 파일(이하 접근 파일)의 경로가 절대 경로인지 상대 경로인지를 판단하는 절대경로 판단부;
    상기 시스템콜을 요청한 프로세스(이하 요청 프로세스)의 절대 경로와, 상기 접근 파일의 상대 경로를 조합하여, 상기 접근 파일의 절대 경로를 구하는 절대경로 변환부; 및,
    상기 접근 파일의 절대 경로를 이용하여, 상기 접근 파일에 대하여 악성 프로그램 여부를 판단하는 악성코드 검사부를 포함하고,
    상기 시스템콜 후킹 제어부는 프로세스의 생성, 경로 변경, 종료에 대한 시스템콜, 또는 파일의 접근에 대한 시스템콜에 한하여 후킹하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 프로세스 처리부는 상기 실행 프로세스가 생성될 때, 상속받으려는 부모 프로세스의 디렉터리 정보를 이용하여 절대 경로를 정하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
  4. 제3항에 있어서,
    상기 프로세스 처리부는 상기 실행 프로세스가 생성될 때, 얻어지는 부모 프로세스의 아이디를 통해, 상기 부모 프로세스의 현재 디렉터리의 속성을 조회하고, 조회된 디렉터리로 상기 실행 프로세스의 절대 경로를 정하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
  5. 제1항에 있어서,
    상기 절대경로 판단부는,
    사전에 정해진 자주 사용되는 파일에 대하여 절대경로를 저장해두고,
    상기 접근 파일이 상대 경로인 경우, 상기 접근 파일의 절대경로가 저장되어 있는지를 판단하고,
    상기 접근 파일의 절대경로가 저장되어 있으면, 상기 접근 파일의 상대 경로를 절대경로로 변환하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
  6. 제5항에 있어서,
    상기 절대경로 판단부는 상기 자주 사용되는 파일에 대하여, 파일의 경로가 변경되면 변경된 경로로 절대경로를 변경하는 것을 특징으로 하는 절대 경로 관리를 통한 악성 프로그램 검사 시스템.
KR1020130094161A 2013-08-08 2013-08-08 절대 경로 관리를 통한 악성 프로그램 검사 시스템 KR101503827B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130094161A KR101503827B1 (ko) 2013-08-08 2013-08-08 절대 경로 관리를 통한 악성 프로그램 검사 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130094161A KR101503827B1 (ko) 2013-08-08 2013-08-08 절대 경로 관리를 통한 악성 프로그램 검사 시스템

Publications (2)

Publication Number Publication Date
KR20150017925A KR20150017925A (ko) 2015-02-23
KR101503827B1 true KR101503827B1 (ko) 2015-03-19

Family

ID=53046537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130094161A KR101503827B1 (ko) 2013-08-08 2013-08-08 절대 경로 관리를 통한 악성 프로그램 검사 시스템

Country Status (1)

Country Link
KR (1) KR101503827B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101710928B1 (ko) * 2015-09-04 2017-03-13 숭실대학교산학협력단 모바일 단말기의 os 플랫폼에서의 악성 코드 방지 방법, 이를 수행하기 위한 기록 매체 및 시스템
KR101857001B1 (ko) 2017-03-03 2018-05-14 숭실대학교산학협력단 안드로이드 동적 로딩 파일 추출 방법, 이를 수행하기 위한 기록 매체 및 시스템
CN116186699B (zh) * 2023-01-19 2023-08-22 安芯网盾(北京)科技有限公司 Php文件访问检测方法及装置
CN116796308B (zh) * 2023-02-03 2024-04-12 安芯网盾(北京)科技有限公司 一种基于Linux内核的伪装进程可执行程序检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249215A (ja) * 1995-03-14 1996-09-27 Mitsubishi Electric Corp プログラム動作情報の管理方法
JP2011076438A (ja) 2009-09-30 2011-04-14 Canon Inc プロセス生成方法、プロセス生成装置、及びプログラム
KR101091777B1 (ko) * 2010-07-16 2011-12-08 주식회사 파수닷컴 Drm 환경에서의 악성 코드 실시간 검사 장치 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US20120204019A1 (en) 2008-04-24 2012-08-09 Dell Products, Lp Method of Using an Information Handling System Having a Boot File, and an Information Handling System and Machine-Executable Code for Carrying Out the Method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249215A (ja) * 1995-03-14 1996-09-27 Mitsubishi Electric Corp プログラム動作情報の管理方法
US20120204019A1 (en) 2008-04-24 2012-08-09 Dell Products, Lp Method of Using an Information Handling System Having a Boot File, and an Information Handling System and Machine-Executable Code for Carrying Out the Method
JP2011076438A (ja) 2009-09-30 2011-04-14 Canon Inc プロセス生成方法、プロセス生成装置、及びプログラム
KR101091777B1 (ko) * 2010-07-16 2011-12-08 주식회사 파수닷컴 Drm 환경에서의 악성 코드 실시간 검사 장치 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체

Also Published As

Publication number Publication date
KR20150017925A (ko) 2015-02-23

Similar Documents

Publication Publication Date Title
US10642978B2 (en) Information security techniques including detection, interdiction and/or mitigation of memory injection attacks
US10893068B1 (en) Ransomware file modification prevention technique
RU2571723C2 (ru) Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
RU2645268C2 (ru) Сложное классифицирование для выявления вредоносных программ
KR101647487B1 (ko) 패치파일 분석시스템과 분석방법
US7620990B2 (en) System and method for unpacking packed executables for malware evaluation
US20140053267A1 (en) Method for identifying malicious executables
CN107992751B (zh) 一种基于分支行为模型的实时威胁检测方法
US8572738B2 (en) On demand virus scan
CN109074450B (zh) 威胁防御技术
RU2723665C1 (ru) Динамический индикатор репутации для оптимизации операций по обеспечению компьютерной безопасности
US10216934B2 (en) Inferential exploit attempt detection
CN103077353A (zh) 主动防御恶意程序的方法和装置
US9906537B2 (en) System, method, and computer program product for conditionally performing an action based on an attribute
KR101503827B1 (ko) 절대 경로 관리를 통한 악성 프로그램 검사 시스템
CN103793649A (zh) 通过云安全扫描文件的方法和装置
US8381300B2 (en) Offline extraction of configuration data
JP2007109016A (ja) アクセスポリシ生成システム、アクセスポリシ生成方法及びアクセスポリシ生成用プログラム
US20230376591A1 (en) Method and apparatus for processing security events in container virtualization environment
CN112597492B (zh) 一种基于Windows内核的二进制可执行文件更改监测方法
WO2017114341A1 (zh) 一种root病毒清理方法、装置及电子设备
US10809924B2 (en) Executable memory protection
KR102017016B1 (ko) 악성프로그램 처리장치 및 처리방법
RU2624554C1 (ru) Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы
GB2572637A (en) Detecting shared library hijacking

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190612

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200310

Year of fee payment: 6