KR101439207B1 - 해킹 프로세스 감지 방법 및 장치 - Google Patents

해킹 프로세스 감지 방법 및 장치 Download PDF

Info

Publication number
KR101439207B1
KR101439207B1 KR1020120126482A KR20120126482A KR101439207B1 KR 101439207 B1 KR101439207 B1 KR 101439207B1 KR 1020120126482 A KR1020120126482 A KR 1020120126482A KR 20120126482 A KR20120126482 A KR 20120126482A KR 101439207 B1 KR101439207 B1 KR 101439207B1
Authority
KR
South Korea
Prior art keywords
variable value
count variable
list
value
identification
Prior art date
Application number
KR1020120126482A
Other languages
English (en)
Other versions
KR20140059967A (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 KR1020120126482A priority Critical patent/KR101439207B1/ko
Publication of KR20140059967A publication Critical patent/KR20140059967A/ko
Application granted granted Critical
Publication of KR101439207B1 publication Critical patent/KR101439207B1/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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

기존의 감지 기술로 감지하지 못하는 루트킷 프로세스를 감지할 수 있고, 모듈 관리가 용이한 기술을 제공한다. 본 발명의 일 실시예에 따른 해킹 프로세스 감지 방법은, 해킹을 위한 프로세스로서 루트킷 프로세스(Rootkit Process)를 감지하는 장치가, 사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트로서 제1 프로세스 리스트를 수집하는 단계; 카운터로부터 수신한 카운트 변수값을 이용하여, 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계; 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는 경우, 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는지 여부를 판단하는 단계; 및 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 수집된 제1 프로세스 리스트에 미존재하는 것으로 판단되는 경우, 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스를, 해킹에 사용되는 상기 루트킷 프로세스들의 리스트로서 제2 프로세스 리스트에 추가하는 단계;를 포함하는 것을 특징으로 한다.

Description

해킹 프로세스 감지 방법 및 장치{METHOD AND APPARATUS FOR DETECTING HACKING PROCESS}
본 발명은 관리자 계정 등을 입수하여 악용하기 위해 사용되는 해킹 프로세스인 루트킷(Rootkit) 프로세스를 정확하게 탐지하여 해킹을 예방하기 위한 기술에 관한 것으로, 구체적으로는 기존에 숨겨진 루트킷 프로세스의 탐지가 불가능했던 탐지 기술과 달리 사용자 단말 내에 숨겨진 루트킷 프로세스를 탐지할 수 있는 기술에 관한 것이다.
최근 온라인을 통한 다양한 컨텐츠의 송수신 및 이용이 이루어지면서, 사용자 단말에서 실행되는 프로세스 역시 다양해지고 있다. 특히, 네트워크를 통해 SNS(소셜 네트워크 서비스), 포털 사이트, 게시판 사이트, 동호회, 게임 등의 다양한 컨텐츠를 이용하기 위한 클라이언트를 사용자 단말에 다운로드 받고, 이를 실행하여 온라인 또는 오프라인 상에서 컨텐츠를 이용하는 서비스가 제공되고 있다.
상기와 같이 현상으로 인해, 사용자 단말에서는 사용자도 모르게 실행되고 있는 프로세스가 생겨나고 있다. 사용자 단말에서 실행되는 프로세스 중에는, 사용자 단말에서 상기의 컨텐츠 이용을 위해 실행되는 정상적인 프로세스가 존재할 수 있다.
그러나, 정상적인 프로세스 이외에, 해킹에 사용되는 악성 프로세스 역시 존재할 수 있다. 대표적인 해킹을 위한 프로세스로는 루트킷(RootKit) 프로세스가 있다. 루트킷 프로세스는, 관리자 또는 단말에서의 사용자의 다양한 서비스 이용 시의 계정 또는 단말의 이용 계정을 입수하기 위해 사용자 단말에서 실행되는 프로세스를 의미한다. 루트킷 프로세스는 단순히 개인 단말에서 사용자의 계정을 입수하여 좀비 단말 등을 생성하거나 사용자 계정으로부터 사용자의 개인 정보를 유출시키는 데 사용될 수도 있다.
그러나, 루트킷 프로세스가 서비스를 관리하는 서버 또는 관리자 단말의 계정을 입수하는 데 사용될 경우, 서비스의 이용이 불가능해지거나, 서버의 다양한 개인 정보 및 컨텐츠 정보가 유출되어 대량의 피해가 발생할 가능성이 있다.
상기와 같은 루트킷 프로세스를 감지하기 위한 기존의 기술로는 커널 드라이버(Kernel Driver)가 있다. 그러나 커널 드라이버는 단말 자체를 리붓(Reboot)하지 않는 경우 드라이버의 변경이 불가능하여 운영체제에 대한 적응성이 떨어지며, 일부의 루트킷 프로세스를 감지하지 못하는 등의 문제점이 지적되어 왔다.
이에 본 발명은, 기존의 루트킷 프로세스 감지 기술의 한계점을 해결함으로써, 더욱 정확하고 근본적인 루트킷 프로세스 감지 기술을 제공하여, 사용자 단말, 서버 및 관리자 단말 등에 대한 루트킷 프로세스를 통한 해킹을 사전에 방지하는 기술을 제공하는 데 그 목적이 있다.
상기의 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 해킹 프로세스 감지 방법은, 해킹을 위한 프로세스로서 루트킷 프로세스(Rootkit Process)를 감지하는 장치가, 사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트로서 제1 프로세스 리스트를 수집하는 단계; 카운터로부터 수신한 카운트 변수값을 이용하여, 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계; 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 존재하는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는지 여부를 판단하는 단계; 및 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 미존재하는 것으로 판단되는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스를, 해킹에 사용되는 상기 루트킷 프로세스들의 리스트로서 제2 프로세스 리스트에 추가하는 단계;를 포함하는 것을 특징으로 한다.
상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계는, 상기 카운트 변수값이 기설정된 임계 변수값과 같거나 상기 임계 변수값보다 작은 경우, 상기 카운트 변수값을 이용하여 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것이 바람직하다.
상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계는, 상기 카운트 변수값이 상기 임계 변수값보다 큰 경우, 상기 해킹을 위한 프로세스로서 루트킷 프로세스(Rootkit Process)를 감지하는 장치가 상기 해킹 프로세스 감지 방법의 수행을 종료하도록 제어하는 것이 바람직하다.
제2 프로세스 리스트에 추가하는 단계 후, 상기 카운터에 저장된 상기 카운트 변수값에 기설정된 단위 변수값을 더하여 상기 카운트 변수값을 갱신하는 단계;를 더 포함하는 것이 바람직하다.
상기 카운트 변수값을 갱신하는 단계 후, 상기 갱신된 카운트 변수값이 기설정된 임계 변수값과 같거나 상기 임계 변수값보다 작은 경우, 상기 갱신된 카운트 변수값을 상기 카운트 변수값으로 이용하여, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계를 반복 수행하는 것이 바람직하다.
상기 기설정된 단위 변수값은, 상기 사용자 단말에서 상기 프로세스의 실행을 제어하는 운영체제에서 할당하는 상기 프로세스의 식별 값에 대한 단위 변동값인 것이 바람직하다.
상기 기설정된 단위 변수값은 0을 초기값으로 갖는 것이 바람직하다.
상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는 것으로 판단되는 경우, 상기 카운터에 저장된 상기 카운트 변수값에 기설정된 단위 변수값을 더하여 상기 카운트 변수값을 갱신하는 단계; 및 상기 갱신된 카운트 변수값이 기설정된 임계 변수값과 같거나 상기 임계 변수값보다 작은 경우, 상기 갱신된 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계;를 더 포함하는 것이 바람직하다.
상기 제1 프로세스 리스트를 수집하는 단계는, 상기 사용자 단말에서 상기 프로세스의 실행을 제어하는 운영체제에서 제공하는 함수로서, 상기 운영체제에서 실행이 제어되고 상기 사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트를 추출하는 함수인 제1 함수를 로드하는 단계; 및 상기 로드된 제1 함수를 이용하여 상기 제1 프로세스 리스트를 수집하는 것이 바람직하다.
상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계는, 상기 카운트 변수값을 사용자 단말의 내부 시스템 레이어 중 어플리케이션단에 대입하여, 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것이 바람직하다.
본 발명의 일 실시예에 따른 해킹 프로세스 감지 장치는, 사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트로서 제1 프로세스 리스트를 수집하는 리스트 수집부; 카운터로부터 수신한 카운트 변수값을 이용하여, 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 프로세스 감지부; 및 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 존재하는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는지 여부를 판단하고, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 미존재하는 것으로 판단되는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스를, 해킹에 사용되는 상기 루트킷 프로세스들의 리스트로서 제2 프로세스 리스트에 추가하는 해킹 프로세스 리스트 생성부;를 포함하는 것을 특징으로 한다.
상기 프로세스 감지부는, 상기 카운트 변수값이 기설정된 임계 변수값과 같거나 상기 임계 변수값보다 작은 경우, 상기 카운트 변수값을 이용하여 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것이 바람직하다.
상기 프로세스 감지부는, 상기 카운트 변수값이 상기 임계 변수값보다 큰 경우 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것을 중단하는 것이 바람직하다.
상기 카운터는, 상기 카운터에 저장된 상기 카운트 변수값에 기설정된 단위 변수값을 더하여 상기 카운트 변수값을 갱신하는 것이 바람직하다.
상기 카운터는, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 미존재하는 것으로 판단되는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스를, 해킹에 사용되는 상기 루트킷 프로세스들의 리스트로서 제2 프로세스 리스트에 추가하고 상기 카운트 변수값을 갱신하거나, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는 것으로 판단되는 경우 상기 카운트 변수값을 갱신하는 것이 바람직하다.
상기 리스트 수집부는, 상기 사용자 단말에서 상기 프로세스의 실행을 제어하는 운영체제에서 제공하는 함수로서, 상기 운영체제에서 실행이 제어되고 상기 사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트를 추출하는 함수인 제1 함수를 로드한 뒤, 상기 로드된 제1 함수를 이용하여 상기 제1 프로세스 리스트를 수집하는 것이 바람직하다.
상기 프로세스 감지부는, 상기 카운트 변수값을 사용자 단말의 내부 시스템 레이어 중 어플리케이션단에 대입하여, 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것이 바람직하다.
본 발명에 의하면, 기존의 루트킷 프로세스 감지 기술과 달리, 정상적으로 실행되고 있는 것으로 운영체제에서 판단하여 제공되는 제1 프로세스 리스트를 이용하되, 직접 카운터를 이용하여 단위 식별 값을 더해가면서 생성되는 프로세스 식별 값에 따라 프로세스를 직접 탐지한 뒤, 제1 프로세스 리스트와 비교하기 때문에, 숨겨진 프로세스를 모두 탐지할 수 있는 효과가 있다.
즉, 루트킷 프로세스의 종류에 따라서 제1 프로세스 리스트를 변조하거나, 운영체제의 커널(Kernel) 단에 저장되고, 운영체제 내에서 현재 실행중인 프로세스 리스트의 정보를 저장하는 커널 오브젝트(Kernel Object)의 정보를 변경함으로서, 루트킷 프로세스가 프로세스 리스트로부터 생략되더라도, 직접 카운트 변수값을 이용하여 프로세스의 존재 여부를 어플리케이션 단에서 판단하기 때문에, 프로세스 리스트에 생략된 모든 프로세스를 감지할 수 있어, 보다 정확한 루트킷 프로세스 감지 기능을 수행할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 해킹 프로세스 감지 방법의 플로우차트이다.
도 2는 본 발명의 일 실시예에 따라 해킹 프로세스 감지 방법의 수행이 제어되는 흐름을 도시한 것이다.
도 3은 본 발명의 일 실시예에 따라 카운트 변수값이 갱신되는 흐름의 예를 도시한 것이다.
도 4는 본 발명의 일 실시예에 따라 제1 프로세스 리스트를 수집하는 흐름의 예를 도시한 것이다.
도 5는 본 발명의 일 실시예에 따라 제2 프로세스 리스트가 생성 및 관리되는 흐름의 예를 도시한 것이다.
도 6은 본 발명의 일 실시예에 따른 해킹 프로세스 감지 장치의 블록도이다.
도 7은 본 발명의 일 실시예에 따라 리스트 수집부가 수행하는 기능을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따라 프로세스 감지부가 수행하는 기능을 설명하기 위한 도면이다.
도 9 및 10은 본 발명의 일 실시예에 있어서, 루트킷 프로세스가 프로세스 리스트에서 생략되는 예를 설명하기 위한 도면이다.
이하 첨부된 도면을 참조하여 본 발명의 각 실시예에 따른 해킹 프로세스 감지 방법 및 장치에 대하여 설명하기로 한다.
이하의 실시 예는 본 발명의 이해를 돕기 위한 상세한 설명이며, 본 발명의 권리 범위를 제한하는 것이 아님은 당연할 것이다. 따라서, 본 발명과 동일한 기능을 수행하는 균등한 발명 역시 본 발명의 권리 범위에 속할 것이다.
또한 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 발명의 실시 예에서 “통신”, “통신망” 및 “네트워크”는 동일한 의미로 사용될 수 있다. 상기 세 용어들은, 파일을 사용자 단말, 다른 사용자들의 단말 및 다운로드 서버 사이에서 송수신할 수 있는 유무선의 근거리 및 광역 데이터 송수신망을 의미한다.
도 1은 본 발명의 일 실시예에 따른 해킹 프로세스 감지 방법의 플로우차트이다.
먼저 본 발명에서 프로세스라 함은, 사용자 단말에서 실행중인 프로그램 그 자체 또는 일부를 의미한다. 또한 프로세스라 함은 데이터의 입력이나 출력 등을 조작하거나 처리하는 일련의 흐름을 의미한다.
각 프로세스는 OS(운영체제, Operating System)의 관할 하에 수행된다. 이때, 운영체제의 하위에서 각 프로세스에 대응하는 프로그램에, 시스템 자원을 할당하는 단을 Kernel(이하 커널이라 함)이라 한다.
커널은 컴퓨터 운영체계의 중요한 핵심으로서, OS 하에서 운영체계의 다른 부분들에 기분적인 서비스를 제공하는 시스템의 구성요소이다. 일반적으로 커널에는, 종료된 입출력 연산 등 커널의 서비스를 경쟁적으로 요구하는 모든 요청들을 처리하는 인터럽트 처리기와 어떤 프로그램들이 어떤 순서로 커널의 처리시간을 공유할 것인지를 결정하는 스케줄러, 그리고 스케줄이 끝나면 실제로 각 프로세스들에게 컴퓨터의 사용권을 부여하는 수퍼바이저(supervisor) 등이 포함되어 있다.
또한 커널은 메모리나 저장장치 내에서 운영체계의 주소공간을 관리하고, 이들을 모든 주변장치들과 커널의 서비스들을 사용하는 다른 사용자들에게 고루 나누어주는 메모리관리자를 가지고 있다. 커널의 서비스는 운영체계의 다른 부분이나, 흔히 시스템 호출이라고 알려진 일련의 프로그램 인터페이스들을 통해 요청된다.
본 발명에서는 커널의 개념과 함께, 커널에서 관리되는 커널 오브젝트(Kernel Object)의 개념에 대한 이해가 필요하다. 커널 오브젝트는 커널, 즉 운영체제에서 프로세스, 쓰레드, IPC, 파일 등의 리소스 들의 관리를 용이하게 하기 위해 리소스들의 정보를 저장한 메로리 데이터 블록을 지칭한다. 결국 커널 오브젝트의 개수는 생성 및 관리되는 리로스의 수와 비례한다.
커널 오브젝트의 이프로세스(Eprocess)는, Executive Process의 약자로서, 각 커널 오브젝트의 프로세스 커널 개체를 의미한다.
본 발명에서 어플리케이션 단이라 함은, 운영체제 및 커널단이 아닌 실행되고 있는 프로그램에 대응하는 프로세스 그 자체의 시스템 레이어(System Layer)를 의미한다. 보통 프로세스에 접근하기 위해서는 운영체제 및 커널 단을 거쳐서 현재 실행되고 있는 프로세스를 수집하는 등의 작업이 실행되는 것이 일반적이다. 어플리케이션단은 프로세스 그 자체의 측면을 의미한다.
루트킷 프로세스(Rootkit Process)는, 루트킷을 실행 시 수행되는 프로세스를 의미한다. 이때 루트킷이란, 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이목마 설치, 원격 접근, 내부 사용 흔적 삭제, 관리자 권한 획득 등 주로 불법적인 해킹에 사용되는 기능들을 제공하는 프로그램의 모음을 의미한다.
루트킷이 설치되면 자신이 뚫고 들어온 모든 경로를 바꾸어 놓고, 명령어들을 은폐해 놓기 때문에 해커가 시스템을 원격으로 해킹하고 있어도 루트킷이 설치되어 있는 사실조차 감지하기 어렵다. 침입자는 먼저 암호를 크래킹 하거나 시스템 취약점을 찾아내어 사용자용 접근 권한을 획득한 뒤, 컴퓨터에 루트킷을 설치한다. 루트킷은 네트워크상의 다른 컴퓨터에 있는 사용자 ID와 암호들을 탐지하여 해커에게 루트 권한, 시스템 정보 그리고 기타 특수한 접근 권한을 제공한다. 또한 트래픽이나 키스트로크 감시, 해커 이용 목적의 시스템 내 백도어 설치, 로그파일 수정, 네트워크상의 다른 컴퓨터 공격, 탐지 회피를 위한 기존 시스템 도구의 수정 등의 기능을 제공한다.
루트킷을 사용하게 되면, 프로세스가 은닉될 수 있다. 즉, 현재 실행되고 있는 프로세스에서 루트킷 프로세스가 사라지게 되며, 이에 따라서 프로세스가 들키지 않게 된 뒤 루트킷을 통해 해킹이 수행될 수 있는 것이다.
이때 루트킷 프로세스가 현재 실행되고 있는 프로세스들의 리스트에 포함되지 않도록 하는 방법은 여러가지가 있다. 예를 들어, 운영체제에서 현재 실행되고 있는 프로세스의 리스트를 수집하기 위해 사용되는 일반 함수(공용 API)를 변조(후킹, Hooking)함으로써 해당 프로세스가 프로세스 리스트에 나타나지 않도록 할 수 있다.
또는, 운영체제 내에서 현재 실행중인 프로세스 리스트의 정보가 저장되는 커널 오브젝트의 이프로세스 구조체의 정보를 변경하여, 프로세스 리스트에 나타나지 않도록 하는 방법 역시 사용되고 있다.
일반적으로 루트킷 프로세스를 감지하기 위해서는 커널 드라이버가 사용되고 있다. 이러한 커널 드라이버는, 이프로세스 구조체의 정보를 참조하여, 운영체제에서 제공하는 프로세스 리스트와 비교하여 루트킷 프로세스를 감지하는 방법을 사용하고 있다.
이 때, 상기 언급한 커널 오브젝트의 이프로세스 구조체의 정보를 변경하여, 프로세스 리스트에 나타나지 않도록 하는 방법이 사용되는 경우, 루트킷 프로세스의 감지가 불가능하다.
또한, 커널 드라이버는 해당 드라이버의 모듈을 업그레이드 하는 등의 변경이 필요할 때, 단말 자체를 리부팅(Rebooting)하지 않는 경우 변경이 되지 않는 단점이 있다. 이에 따라서 리스크 관리에 취약한 것으로 지적되고 있다.
이러한 문제점을 해결하기 위해, 본 발명의 일 실시예에 따른 해킹 프로세스 감지 방법에서는, 상기 언급한 해킹에 사용되는 루트킷을 감지하는 장치(이하 장치라 한다.)가 사용자 단말에서 실행중인 프로세스들의 리스트인 제1 프로세스 리스트를 수집하는 단계(S10)를 수행한다. 제1 프로세스 리스트를 수집하는 S10 단계는 예를 들어 도 4의 방법에 의하여 수행될 수 있다.
도 4는 본 발명의 일 실시예에 따라 제1 프로세스 리스트를 수집하는 흐름의 예를 도시한 것이다.
도 4를 참조하면, 장치는 먼저 사용자 단말의 OS, 즉 운영체제로부터, OS가 제공하는 프로세스 리스트에 대한 추출 함수이며, 운영체제에서 실행이 제어되고 사용자 단말에서 실행중인 것으로 판단되는 프로세스들의 리스트, 즉 제1 프로세스 리스트를 추출하는 함수인 제1 함수를 로드하는 단계(S14)를 수행한다.
제1 함수는 상기 언급한 바와 같이 운영체제에서 제공하는 일반 함수를 의미하며, 흔히 공용 API(Application Programming interface)라고 지칭된다.
S14 단계를 통해 제1 함수가 로드되면, 장치는 로드된 제1 함수를 이용하여 제1 프로세스 리스트를 수집한다.
다시 도 1에 대한 설명으로 돌아오면, 상기 도 4의 과정 등에 의하여 제1 프로세스 리스트가 수집되면, 장치는 장치 내의 카운터로부터 수신한 카운트 변수값을 이용하여, 카운트 변수값을 프로세스의 식별 값(PID, Process ID)로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계(S20)를 수행한다.
본 발명에서는 어플리케이션 단에서 실행되는 프로세스를 감지하게 된다. 이를 위해서는 공용 API 또는 커널 오브젝트를 참조하는 것이 아니라, 직접 프로세스 아이디를 통해 프로세스를 감지한다. 사용자 단말에서 실행되는 프로세스는 리스트에 포함되어 있지 않더라도 프로세스가 수행될 때의 식별 값, 즉 PID가 존재하게 된다.
S20 단계를 통해, 본 발명의 일 실시예에 따르면 프로세스 아이디를 이용하여 직접 실행되는 프로세스가 존재하는지 여부를 판단하기 때문에, 상기 언급한 바와 같이 프로세스 리스트로부터 숨겨진 프로세스도 감지할 수 있게 되는 것이다.
S20 단계의 수행 결과 카운트 변수값, 즉 현재 감지 주기에서의 카운트 변수값을 식별값으로 사용하는 프로세스가 존재하지 않으면, 해당 카운트 변수값을 식별값으로 하는 프로세스는 존재하지 않게 되며, 이는 현재 사용자 단말에서 해당 카운트 변수값을 식별값으로 하는 프로세스는 수행되고 있지 않음을 의미한다.
한편, S20 단계의 수행 결과 카운트 변수값, 즉 현재 감지 주기에서의 카운트 변수값을 식별값으로 사용하는 프로세스가 존재하는 것으로 판단되면, 현재 사용자 단말에서 해당 카운트 변수값을 식별값으로 하는 프로세스가 수행되고 있음을 확인하게 된다.
이때 장치는, 해당 카운트 변수값을 식별값으로 사용하는 프로세스가, S10 단계에서 수집된 제1 프로세스 리스트에 존재하는지 여부를 판단하는 단계(S30)를 수행한다.
제1 프로세스 리스트는, 운영체제 단, 즉 커널 오브젝트를 참조하고, 공용 API를 사용하여 수집된 프로세스들의 리스트이다. 따라서, 제1 프로세스 리스트에 존재하지 않는 프로세스가 있다면, 이는 루트킷이 실행되어 숨겨진 루트킷 프로세스이다.
즉, S30 단계의 수행 결과, 해당 카운트 변수값을 프로세스의 식별값으로 사용하는 프로세스가 제1 프로세스 리스트에 존재하지 않는 것으로 판단되는 경우, 장치는 해당 카운트 변수값을 식별값으로 사용하는 프로세스를, 해킹에 사용되는 루트킷 프로세스로 판단하고, 루트킷 프로세스들의 리스트인 제2 프로세스 리스트에 해당 프로세스를 추가하는 단계(S40)를 수행한다.
한편 S30의 수행 결과 해당 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 제1 프로세스 리스트에 존재하거나, S40 단계를 통해 제2 프로세스 리스트에 해당 프로세스가 추가된 후, 장치는 카운트 변수값을 변경하도록 하는 단계(S50)를 수행한다.
도 1의 실시예에 의한 해킹 프로세스 감지 방법에 따르면, 상기 언급한 기존의 커널 드라이버가 감지할 수 없는 숨겨진 루트킷 프로세스를 감지할 수 있는 장점이 있다.
즉, 카운트 변수값을 이용하여 프로세스 단, 즉 어플리케이션 단에서 프로세스를 감지하고, 이를 프로세스가 숨겨질 수 있을 때, 숨겨진 결과로서 수집되는 제1 프로세스 리스트와 비교하기 때문에, 커널 드라이버를 이용한 상기 언급한 바와 같은 감지 기법을 우회하여 현재 사용되고 있는 모든 루트킷 프로세스를 감지할 수 있다.
또한, 상기의 본 발명에 의하면, 커널 드라이버의 모듈 변경을 위해 단말을 리부팅하는 등의 절차가 필요 없고 장치 내부에서 운영체제의 변경 등이 있더라도 단순히 카운트 변수값 등만을 변경하면 되기 때문에, 운영체제에 대한 적응성 역시 매우 높은 장점이 있다. 즉, 본 발명은 관리성 측면에서도 기존의 감지 방법에 비하여 높은 효율성을 보일 수 있다.
도 2는 본 발명의 일 실시예에 따라 해킹 프로세스 감지 방법의 수행이 제어되는 흐름을 도시한 것이다.
도 1에서 언급한 바와 같이 본 발명에서는 카운트 변수값이 프로세스를 감지하는 데 사용된다. 카운트 변수값은 도 1의 S50 단계에서 언급된 바와 같이 각 감지 시점 당 변경될 수 있다.
이를 위해, 도 2를 참조하면 장치는 먼저 사용자 단말에서 실행중인 프로세스의 리스트가 수집되면(S10), 카운터로부터 현재 감지 시점에서의 카운트 변수값을 호출하는 단계(S11)를 수행한다.
프로세스의 식별값인 PID는 운영체제에 따라서 다르지만 초기값과 최종값을 갖게 된다. 본 발명에서 최종값은 임계 변수값으로 사용된다.
즉, 카운트 변수값은 초기값으로부터 최종값인 임계 변수값까지 변경되면서 사용되어, 사용자 단말에서 실행되는 프로세스를 식별값을 통해 감지하게 된다.
따라서, 장치는 카운트 변수값을 식별값으로 갖는 프로세스를 감지하기 전, 현재 감지 시점의 카운트 변수값이 임계 변수값을 초과하는지 여부(S12)를 수행하여, 더 이상 프로세스를 감지할 필요가 없는지 여부를 판단하게 된다.
S12의 수행결과, 현재 감지 시점의 카운트 변수값이 임계 변수값과 같거나 임계 변수값보다 작은 경우, 도 1의 S20 단계, 즉 카운트 변수값을 이용하여 카운트 변수값을 프로세스의 식별값으로 사용하는 프로세스가 존재하는지 여부를 판단한다.
그러나 S12의 수행결과, 현재 감지 시점의 카운트 변수값이 임계 변수값보다 큰 것으로 판단되는 경우, 더 이상의 프로세스 감지가 필요 없기 때문에, 장치는 장치가 수행하는 본 발명의 일 실시예에 따른 해킹 프로세스 감지 방법의 수행을 종료하도록 제어하는 단계(S13)를 수행할 수 있다.
이로서, 무제한으로 반복적인 감지를 피하고, 최소한의 시스템 자원을 활용하여 프로세스를 감지하여, 시스템 로드를 줄이고 해킹 프로세스 감지의 효율성을 재고할 수 있는 효과가 있다.
도 3은 본 발명의 일 실시예에 따라 카운트 변수값이 갱신되는 흐름의 예를 도시한 것이다.
도 1 및 2에서 언급한 바와 같이 카운트 변수값은 그 값이 변경되면서 프로세스 식별 값으로 사용되어, 어플리케이션 단에서 프로세스를 감지하는 데 사용되는 변수값이다. 따라서, 각 감지 시점에서 카운트 변수값은 변경되어야 할 것이다.
이를 위해 도 3을 참조하면, 장치는 먼저 도 1의 S30 단계, 즉 현재 감지 시점의 카운트 변수값을 프로세스의 식별값으로 하는 프로세스가 감지된 경우 감지된 프로세스가 제1 프로세스 리스트에 존재하는지 여부를 판단한다.
이때, 감지된 프로세스가 제1 프로세스 리스트에 존재하는 경우에는, 감지된 프로세스를 제2 프로세스 리스트에 저장하지 않고 건너뛰게 된다. 한편, 감지된 프로세스가 제1 프로세스 리스트에 존재하지 않는 경우라면, 장치는 도 1의 S40 단계, 즉 감지된 프로세스를 제2 프로세스 리스트에 추가하는 단계를 수행하게 된다.
S40 단계가 수행되거나, 감지된 프로세스가 제2 프로세스 리스트에 저장되지 않는 경우, 즉 어떠한 판단 결과로든 판단 결과에 따른 일련의 과정이 종료되면, 장치는 카운터를 제어하여 카운트 변수를 갱신하도록 한다.
이때, 카운트 변수는, 현재 감지 시점의 카운트 변수에 단위 변수값을 더함으로써 갱신된다(S51).
운영체제는 그 종류에 따라서 실행되는 프로세스의 PID를 각각 단위 주소 값으로 할당한다. 예를 들어 단위 주소 값은 4일 수 있다. 또한 상기 언급한 바와 같이 PID의 초기값이 존재할 수 있고, 예를 들어 0일 수 있다. 이때 PID의 최종값은 예를 들어 16진수값으로 0xffff가 될 수 있다. PID는 본 발명에서 장치가 사용하는 카운트 변수값에 대응될 수 있다.
즉 단위 변수값은, 사용자 단말에서 프로세스의 실행을 제어하는 운영체제에서 할당하는 프로세스의 식별값에 대한 단위 변동값을 의미한다.
즉, 도 1 내지 2의 실시예에서 PID, 즉 카운트 변수값은 0으로부터 S51 단계의 수행에 따라서 4씩 증가하면서 0xffff까지 증가할 수 있으며, 본 발명에서 장치는 증가되는 카운트 변수값마다 해당 카운트 변수값에 대응하는 PID를 갖는 프로세스, 즉 프로세스 식별값을 갖는 프로세스를 감지하게 되는 것이다.
프로세스가 감지되면, 그 프로세스가 정상적으로 실행되는 프로세스(즉, 제1 프로세스 리스트에 존재하는 프로세스)로 판단되든지 또는 루트킷 프로세스(즉, 제1 프로세스 리스트에 미존재하는 프로세스)로 판단되어 제2 프로세스 리스트에 추가되든지 카운트 변수값이 갱신된다.
카운트 변수값이 갱신되면, 장치는 갱신된 카운트 변수값을 이용하여 다시 해당 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계를 수행할 수 있다.
즉, 카운트 변수값이 갱신될때마다 프로세스의 존재 여부를 판단하게 되며, 이러한 판단 과정은 카운트 변수값이 최종값(예를 들어 0xffff)에 이를때까지 계속되는 것이다.
이를 통해, 상기 언급한 바와 같이 어떠한 방법을 사용하여 숨겨진 프로세스든지 본 발명에 의해 감지될 수 있으며, 이에 따라서 해킹을 위한 루트킷을 감지할 수 있는 효과가 있다.
도 5는 본 발명의 일 실시예에 따라 제2 프로세스 리스트가 생성 및 관리되는 흐름의 예를 도시한 것이다.
도 5를 참조하면, 먼저 장치는 도 2의 실시예에서 언급한 바와 같이, 카운터로부터 카운트 변수값을 호출하는 단계(S11)를 수행한다.
카운트 변수값이 호출되면, 장치는 어플리케이션 단에서 호출된 카운트 변수값을 대입하는 단계(S21)를 수행한다. S21 단계는 상기 도 1 내지 4에 대한 설명에서 언급한 바와 같이, 카운트 변수값에 대응하는 프로세스 식별값을 사용하는 프로세스가 존재하는지 여부는 카운트 변수값을 직접 이용하여 감지하기 위해, 카운트 변수값을 어플리케이션 단에 적용하는 것을 의미한다.
이후, 장치는 대입된 변수값에 대응하는 프로세스 식별값을 갖는 프로세스가 존재하는지 여부를 판단하는 단계(S22)를 수행하여, 사용자 단말에서 실제 수행되는 모든 프로세스를 감지하게 된다.
도 6은 본 발명의 일 실시예에 따른 해킹 프로세스 감지 장치의 블록도이다. 이하의 설명에서, 도 1 내지 5에 대한 설명과 중복되는 부분은 이를 생략하기로 한다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 해킹 프로세스 감지 장치(10)는, 리스트 수집부(11), 프로세스 감지부(12) 및 해킹 프로세스 리스트 생성부(13)를 포함하는 것을 특징으로 한다. 또한 프로세스 감지부(12)에는 카운트 변수값을 생성 및 갱신하는 카운터(14)가 연결될 수 있다.
리스트 수집부(11)는 상기 언급한 바와 같이, 사용자 단말의 운영체제(20)로부터, 사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트인 제1 프로세스 리스트를 수집하는 기능을 수행한다.
도 4에서 언급한 바와 같이, 리스트 수집부(11)는 운영체제(21)로부터 커널(22)의 커널 오브젝트를 이용하여 프로세스의 리스트를 추출하는 공용 API, 즉 제1 함수를 로드한 뒤, 로드된 제1 함수를 이용하여 제1 프로세스 리스트를 수집할 수 있다.
프로세스 감지부(12)는, 카운터(14)로부터 수신한 카운트 변수값을 이용하여, 카운트 변수값을 프로세스의 식별값(PID)로 사용하는 프로세스가 존재하는지 여부를 판단하는 기능을 수행한다.
이때, 프로세스 감지부(12)는, 도 2에 대한 설명에서 언급한 바와 같이, 카운트 변수값이 기설정된 임계 변수값과 같거나 작은 경우에만, 해당 카운트 변수값을 이용하여 카운트 변수값을 프로세스의 식별값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 기능을 수행할 수 있다.
즉, 카운트 변수값이 기설정된 임계 변수값보다 큰 경우, 프로세스 감지부(12)는 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것을 중단하고 모든 감지 절차를 종료하게 된다.
프로세스 감지부(12)는 어플리케이션 단에서 프로세스를 감지한다. 즉, 카운트 변수값을 사용자 단말의 내부 시스템 레이어 중, 어플리케이션 단(23)에 대입하여 어플리케이션(231)들에 대응하는 프로세스들 중, 해당 카운트 변수값을 프로세스의 식별값으로 갖는 프로세스가 존재하는지 여부를 직접 판단한다.
프로세스 감지부(12)에 연결된 카운터(14)는 프로세스 감지부(12)에 카운트 변수값을 제공한다. 카운터(14)는 운영체제에 따라서 각각 프로세스에 운영체제가 할당하는 프로세스의 식별값이 될 수 있는 모든 값을 카운트 변수값으로 생성하고 이를 프로세스 감지부(12)에 전송하여, 프로세스 감지부(12)가 현재 실제로 실행되고 있는, 즉 숨겨진 프로세스들까지 감지할 수 있도록 한다. 감지된 프로세스는 해킹 프로세스 리스트 생성부(13)에 전달된다.
이에 따라서 카운터(14)는 각 감지 시점마다 갱신된 카운트 변수값을 프로세스 감지부(12)에 전달한다. 카운터(14)는 이를 위해, 현재 감지 시점에 있어서 카운터(14)에 저장된 카운트 변수값에, 기설정된 단위 변수값을 더하여 카운트 변수값을 갱신한다. 상기 언급한 바와 같이, 단위 변수값은 운영체제에 따라서 프로세스의 식별 값이 변동되는 단위 변동값을 의미한다.
카운터(14)는 이하 설명한 해킹 프로세스 리스트 생성부(13)의 기능 수행에 의해, 현재 감지 시점의 카운트 변수값을 프로세스의 식별값으로 갖는 프로세스가 리스트 수집부(11)에 의해 수집된 제1 프로세스 리스트에 존재하는 것으로 판단되는 경우에는, 해당 프로세스를 제2 프로세스 리스트에 추가하지 않고 넘어간 뒤 카운트 변수값을 갱신한다.
또는, 해킹 프로세스 리스트 생성부(13)의 기능 수행에 의해, 현재 감지 시점의 카운트 변수값을 프로세스의 식별값으로 갖는 프로세스가 리스트 수집부(11)에 의해 수집된 제1 프로세스 리스트에 미존재하는 것으로 판단되어, 해당 프로세스가 제2 프로세스 리스트에 추가된 뒤 카운트 변수값을 갱신할 수 있다.
위에서 언급한 바와 같이, 해킹 프로세스 리스트 생성부(13)는, 감지된 프로세스가 제1 프로세스 리스트에 존재하는지 여부를 판단하고, 감지된 프로세스가 제1 프로세스 리스트에 미존재하는 것으로 판단되면, 해당 프로세스를 루트킷 프로세스들의 리스트인 제2 프로세스 리스트에 추가하는 기능을 수행한다.
제2 프로세스 리스트는 별도의 데이터베이스(30)에 저장되어 추후 루트킷 프로세스를 제거하거나 해당 프로세스의 실행을 중단시키는 데 사용된다.
도 7은 본 발명의 일 실시예에 따라 리스트 수집부(11)가 수행하는 기능을 설명하기 위한 도면이다.
리스트 수집부(11)는, 먼저 사용자 단말에서 실행되는 운영체제(21)에, 제1 프로세스 리스트에 대한 요청을 하게 된다. 이는 상기 언급한 바와 같은 제1 함수를 로드하고, 이를 실행하도록 하는 기능과 동일한 기능을 의미한다.
이때, 운영체제(21)는 커널(22)의 커널 오브젝트에 제1 함수를 적용하여, 현재 실행되고 있는 것으로 판단되어 커널 오브젝트에서 관리되는 어플리케이션(231)에 대응하는 프로세스의 리스트인 제1 프로세스 리스트를 수집하여 리스트 수집부(11)에 전달한다.
이때, 도 7에 도시된 바와 같이, 루트킷 프로세스에 대응하는 어플리케이션(232)의 경우, 상기 루트킷 프로세스의 종류에 대한 설명에서 언급한 바와 같이 제1 프로세스 리스트에 포함되지 않게 된다. 즉, 루트킷 프로세스는 운영체제(21) 및 커널(22) 단에서는 감지되지 않는다.
도 8은 본 발명의 일 실시예에 따라 프로세스 감지부가 수행하는 기능을 설명하기 위한 도면이다.
도 7에 대한 설명으로부터 연속적으로 도 8을 참조하면, 어플리케이션 단에는 정상적으로 실행되는 어플리케이션(A1, A2, A4, A5, A6)에 대응하는 프로세스와, 루트킷 어플리케이션(A3)에 대응하여 숨겨지는 프로세스가 존재할 수 있다.
이때 도 7에서 수집되는 제1 프로세스 리스트에는 루트킷 어플리케이션(A3)에 대응하는 프로세스가 존재하지 않게 된다.
한편, 프로세스 감지부(12)는 카운트 변수값(121)을 일일이 어플리케이션 단에 대입하고, 이에 대응 리턴신호(122), 즉 해당 카운트 변수값(121)을 프로세스 식별값으로 하는 프로세스가 존재하는지 여부에 대한 신호에 따라서, 프로세스를 감지하게 된다.
이후에는 도 6에 대한 설명에서 언급한 바와 같이 제1 프로세스 리스트에 감지된 프로세스를 비교하여 루트킷 프로세스를 추출하게 된다.
도 9 및 10은 본 발명의 일 실시예에 있어서, 루트킷 프로세스가 프로세스 리스트에서 생략되는 예를 설명하기 위한 도면이다. 구체적으로 도 9 및 도 10은 상기 언급한 본 발명의 일 실시예에 따라서 감지될 수는 있으나, 기존의 커널 드라이버 등의 루트킷 감지 기법으로는 감지할 수 없는 루트킷 프로세스의 예를 도시한 것이다.
먼저 도 9를 참조하면, 커널은 생략되어 있으나, 운영체제(21)에는 공용 API, 즉 상기 언급한 제1 함수(211)가 존재하여 제1 프로세스 리스트를 추출할 수 있다. 한편 어플리케이션 단(23)에는, 정상적인 프로세스에 대응하는 어플리케이션(231)과, 루트킷 프로세스(233)에 대응하는 어플리케이션(232)이 존재할 수 있다.
이때 루트킷 프로세스(233)에 대응하는 어플리케이션(232)은, 실행에 의해 제1 함수(211)를 변조(Hooking)함으로서, 제1 함수(211)가 프로세스 리스트를 추출 시 푸트킷 프로세스(233)에 대응하는 어플리케이션(232)의 프로세스는 제1 프로세스 리스트에 포함되지 않도록 할 수 있다.
한편 도 10을 참조하면, 도 9와 유사하게 운영체제(21)에는 제1 프로세스 리스트를 추출하기 위한 제1 함수(211)가 존재할 수 있으며, 커널(22)에는 상기 언급한 바와 같이 커널 오브젝트(221)가 존재하며, 커널 오브젝트(221)에는 이프로세스 구조체에 대응하여 프로세스 리스트(222)가 존재할 수 있다. 프로세스 리스트(222)에는 현재 실행되고 있는 것으로 판단되는 모든 어플리케이션(223)에 대응하는 프로세스가 존재한다.
이때 어플리케이션 단(23)에는, 도 9와 같이 정상적인 프로세스에 대응하는 어플리케이션(231)과, 루트킷 프로세스(233)에 대응하는 어플리케이션(232)이 존재할 수 있다.
이때 도 10의 루트킷 프로세스(233)는, 어플리케이션 단(23)에서 커널 오브젝트(221)의 이프로세스 구조체에 대응한 프로세스 리스트(222)에서, 이프로세스 구조체를 변경하게 된다.
즉, 어플리케이션단(23)의 어플리케이션(231, 232)에 대응하는 프로세스에는 존재하나, 커널 오브젝트(221)에 전달되는 프로세스 리스트에는, 루트킷 프로세스(233)에 의해 해킹에 사용되는 어플리케이션(232)의 정보는 삭제된다. 이를 통해, 프로세스는 숨겨지게 된다.
상기 언급한 바와 같이 기존의 커널 드라이버는 도 9 및 10의 실시예에 의해 숨겨진 프로세스의 탐지가 불가능하나, 상기 언급한 과정을 통해 본 발명에서는 숨겨진 프로세스가 모두 탐지됨으로써, 정확한 루트킷 감지가 가능한 효과가 있다.
이상에서 전술한 본 발명의 실시예에 따른 해킹 프로세스 감지 방법은, 단말기에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 단말기에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 본 발명의 실시예에 따른 해킹 프로세스 감지 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고 단말기 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
이러한 프로그램은 컴퓨터에 의해 읽힐 수 있는 기록매체에 기록되고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다.
이와 같이, 본 발명의 각 실시예에 따른 해킹 프로세스 감지 방법을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다.
또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다.
또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈(예: 유선 및/또는 무선 통신 모듈)을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
이상에서 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다.
또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 적어도 하나의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 적어도 하나에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송 받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다.
특히, 본 발명의 각 실시예에 따른 해킹 프로세스 감지 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 컴퓨터로 읽을 수 있는 기록매체는, 애플리케이션 스토어 서버(Application Store Server), 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버(Application Provider Server)에 포함된 저장매체(예: 하드디스크 등)이거나, 애플리케이션 제공 서버 그 자체일 수도 있다.
본 발명의 각 실시예에 따른 해킹 프로세스 감지 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터는, 일반적인 데스크 탑이나 노트북 등의 일반 PC 뿐만 아니라, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함할 수 있으며, 이뿐만 아니라, 컴퓨팅(Computing) 가능한 모든 기기로 해석되어야 할 것이다.
또한, 본 발명의 실시예에 따른 해킹 프로세스 감지 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터가 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기인 경우, 애플리케이션은 애플리케이션 제공 서버에서 일반 PC로 다운로드 되어 동기화 프로그램을 통해 모바일 단말기에 설치될 수도 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 적어도 하나로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (18)

  1. 해킹을 위한 프로세스로서 루트킷 프로세스(Rootkit Process)를 감지하는 장치가,
    사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트로서 제1 프로세스 리스트를 수집하는 단계;
    카운터로부터 수신한 카운트 변수값을 이용하여, 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계;
    상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 존재하는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는지 여부를 판단하는 단계; 및
    상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 미존재하는 것으로 판단되는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스를, 해킹에 사용되는 상기 루트킷 프로세스들의 리스트로서 제2 프로세스 리스트에 추가하는 단계;를 포함하는 것을 특징으로 하는 해킹 프로세스 감지 방법.
  2. 청구항 2은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계는,
    상기 카운트 변수값이 기설정된 임계 변수값과 같거나 상기 임계 변수값보다 작은 경우, 상기 카운트 변수값을 이용하여 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것을 특징으로 하는 해킹 프로세스 감지 방법.
  3. 청구항 3은(는) 설정등록료 납부시 포기되었습니다.
    제2항에 있어서,
    상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계는,
    상기 카운트 변수값이 상기 임계 변수값보다 큰 경우, 상기 해킹을 위한 프로세스로서 루트킷 프로세스(Rootkit Process)를 감지하는 장치가 상기 해킹 프로세스 감지 방법의 수행을 종료하도록 제어하는 것을 특징으로 하는 해킹 프로세스 감지 방법.
  4. 청구항 4은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    제2 프로세스 리스트에 추가하는 단계 후,
    상기 카운터에 저장된 상기 카운트 변수값에 기설정된 단위 변수값을 더하여 상기 카운트 변수값을 갱신하는 단계;를 더 포함하는 것을 특징으로 하는 해킹 프로세스 감지 방법.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서,
    상기 카운트 변수값을 갱신하는 단계 후,
    상기 갱신된 카운트 변수값이 기설정된 임계 변수값과 같거나 상기 임계 변수값보다 작은 경우, 상기 갱신된 카운트 변수값을 상기 카운트 변수값으로 이용하여, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계를 반복 수행하는 것을 특징으로 하는 해킹 프로세스 감지 방법.
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서,
    상기 기설정된 단위 변수값은,
    상기 사용자 단말에서 상기 프로세스의 실행을 제어하는 운영체제에서 할당하는 상기 프로세스의 식별 값에 대한 단위 변동값인 것을 특징으로 하는 해킹 프로세스 감지 방법.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제6항에 있어서,
    상기 기설정된 단위 변수값은 0을 초기값으로 갖는 것을 특징으로 하는 해킹 프로세스 감지 방법.
  8. 제1항에 있어서,
    상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는 것으로 판단되는 경우, 상기 카운터에 저장된 상기 카운트 변수값에 기설정된 단위 변수값을 더하여 상기 카운트 변수값을 갱신하는 단계; 및
    상기 갱신된 카운트 변수값이 기설정된 임계 변수값과 같거나 상기 임계 변수값보다 작은 경우, 상기 갱신된 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계;를 더 포함하는 것을 특징으로 하는 해킹 프로세스 감지 방법.
  9. 제1항에 있어서,
    상기 제1 프로세스 리스트를 수집하는 단계는,
    상기 사용자 단말에서 상기 프로세스의 실행을 제어하는 운영체제에서 제공하는 함수로서, 상기 운영체제에서 실행이 제어되고 상기 사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트를 추출하는 함수인 제1 함수를 로드하는 단계; 및
    상기 로드된 제1 함수를 이용하여 상기 제1 프로세스 리스트를 수집하는 단계;를 포함하는 것을 특징으로 하는 해킹 프로세스 감지 방법.
  10. 제1항에 있어서,
    상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계는,
    상기 카운트 변수값을 사용자 단말의 내부 시스템 레이어 중 어플리케이션단에 대입하여, 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것을 특징으로 하는 해킹 프로세스 감지 방법.
  11. 사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트로서 제1 프로세스 리스트를 수집하는 리스트 수집부;
    카운터로부터 수신한 카운트 변수값을 이용하여, 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 프로세스 감지부; 및
    상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 존재하는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는지 여부를 판단하고, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 미존재하는 것으로 판단되는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스를, 해킹에 사용되는 프로세스인 루트킷 프로세스들의 리스트로서 제2 프로세스 리스트에 추가하는 해킹 프로세스 리스트 생성부;를 포함하는 것을 특징으로 하는 해킹 프로세스 감지 장치.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제11항에 있어서,
    상기 프로세스 감지부는,
    상기 카운트 변수값이 기설정된 임계 변수값과 같거나 상기 임계 변수값보다 작은 경우, 상기 카운트 변수값을 이용하여 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것을 특징으로 하는 해킹 프로세스 감지 장치.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서,
    상기 프로세스 감지부는,
    상기 카운트 변수값이 상기 임계 변수값보다 큰 경우 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것을 중단하는 것을 특징으로 하는 해킹 프로세스 감지 장치.
  14. 청구항 14은(는) 설정등록료 납부시 포기되었습니다.
    제11항에 있어서,
    상기 카운터는,
    상기 카운터에 저장된 상기 카운트 변수값에 기설정된 단위 변수값을 더하여 상기 카운트 변수값을 갱신하는 것을 특징으로 하는 해킹 프로세스 감지 장치.
  15. 제14항에 있어서,
    상기 카운터는,
    상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 미존재하는 것으로 판단되는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스를, 해킹에 사용되는 상기 루트킷 프로세스들의 리스트로서 제2 프로세스 리스트에 추가하고 상기 카운트 변수값을 갱신하거나,
    상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는 것으로 판단되는 경우 상기 카운트 변수값을 갱신하는 것을 특징으로 하는 해킹 프로세스 감지 장치.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제11항에 있어서,
    상기 리스트 수집부는,
    상기 사용자 단말에서 상기 프로세스의 실행을 제어하는 운영체제에서 제공하는 함수로서, 상기 운영체제에서 실행이 제어되고 상기 사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트를 추출하는 함수인 제1 함수를 로드한 뒤, 상기 로드된 제1 함수를 이용하여 상기 제1 프로세스 리스트를 수집하는 것을 특징으로 하는 해킹 프로세스 감지 장치.
  17. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.
    제11항에 있어서,
    상기 프로세스 감지부는,
    상기 카운트 변수값을 사용자 단말의 내부 시스템 레이어 중 어플리케이션단에 대입하여, 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 것을 특징으로 하는 해킹 프로세스 감지 장치.
  18. 해킹을 위한 프로세스로서 루트킷 프로세스(Rootkit Process)를 감지하는 장치가,
    사용자 단말에서 실행 중인 것으로 판단되는 프로세스들의 리스트로서 제1 프로세스 리스트를 수집하는 단계;
    카운터로부터 수신한 카운트 변수값을 이용하여, 상기 카운트 변수값을 프로세스의 식별 값으로 사용하는 프로세스가 존재하는지 여부를 판단하는 단계;
    상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 존재하는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 존재하는지 여부를 판단하는 단계; 및
    상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스가 상기 수집된 제1 프로세스 리스트에 미존재하는 것으로 판단되는 경우, 상기 카운트 변수값을 상기 프로세스의 식별 값으로 사용하는 프로세스를, 해킹에 사용되는 상기 루트킷 프로세스들의 리스트로서 제2 프로세스 리스트에 추가하는 단계;를 포함하는 것을 특징으로 하는 해킹 프로세스 감지 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020120126482A 2012-11-09 2012-11-09 해킹 프로세스 감지 방법 및 장치 KR101439207B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120126482A KR101439207B1 (ko) 2012-11-09 2012-11-09 해킹 프로세스 감지 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120126482A KR101439207B1 (ko) 2012-11-09 2012-11-09 해킹 프로세스 감지 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140059967A KR20140059967A (ko) 2014-05-19
KR101439207B1 true KR101439207B1 (ko) 2014-09-15

Family

ID=50889553

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120126482A KR101439207B1 (ko) 2012-11-09 2012-11-09 해킹 프로세스 감지 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101439207B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070076935A (ko) * 2006-01-20 2007-07-25 엔에이치엔(주) 은닉 프로세스 모니터링 방법 및 모니터링 시스템
JP2010182020A (ja) 2009-02-04 2010-08-19 Kddi Corp 不正検知装置およびプログラム
KR20120087508A (ko) * 2011-01-28 2012-08-07 한남대학교 산학협력단 Lkm 루트킷 검출을 통한 실시간 운영정보 백업 방법 및 그 기록매체

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070076935A (ko) * 2006-01-20 2007-07-25 엔에이치엔(주) 은닉 프로세스 모니터링 방법 및 모니터링 시스템
JP2010182020A (ja) 2009-02-04 2010-08-19 Kddi Corp 不正検知装置およびプログラム
KR20120087508A (ko) * 2011-01-28 2012-08-07 한남대학교 산학협력단 Lkm 루트킷 검출을 통한 실시간 운영정보 백업 방법 및 그 기록매체

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
부경대학교 CERT-IS *

Also Published As

Publication number Publication date
KR20140059967A (ko) 2014-05-19

Similar Documents

Publication Publication Date Title
US9547765B2 (en) Validating a type of a peripheral device
US10033748B1 (en) System and method employing structured intelligence to verify and contain threats at endpoints
US10528735B2 (en) Malicious code protection for computer systems based on process modification
EP3113063B1 (en) System and method for detecting malicious code in random access memory
CN103886252B (zh) 受信进程地址空间中执行的软件代码的恶意性的选择评估
US7685638B1 (en) Dynamic replacement of system call tables
US8639814B2 (en) Electronic apparatus, virtual machine providing apparatus, and method of using virtual machine service
CN111191226B (zh) 利用提权漏洞的程序的确定方法、装置、设备及存储介质
KR101899589B1 (ko) 안전 소프트웨어 인증 시스템 및 방법
US20150332043A1 (en) Application analysis system for electronic devices
JP2014509421A (ja) Usbホストシステムの拡張usbプロトコルスタックのためのセキュリティ手段
EP2790122A2 (en) System and method for correcting antivirus records to minimize false malware detections
CN104885092A (zh) 用于操作系统的安全系统和方法
CN106557669A (zh) 一种应用程序安装过程的权限控制方法及装置
CN105760787A (zh) 用于检测随机存取存储器中的恶意代码的系统及方法
CN111125688B (zh) 一种进程控制方法、装置及电子设备和存储介质
CN114065196A (zh) Java内存马检测方法、装置、电子设备与存储介质
US10275596B1 (en) Activating malicious actions within electronic documents
US11914710B2 (en) System and method for application tamper discovery
KR101439207B1 (ko) 해킹 프로세스 감지 방법 및 장치
CN113836529A (zh) 进程检测方法、装置、存储介质以及计算机设备
US8788845B1 (en) Data access security
KR101366544B1 (ko) 해킹을 위한 dll 루트킷 감지 방법 및 장치
CN111177726A (zh) 一种系统漏洞检测方法、装置、设备及介质
Yoon et al. A Hidden File Extraction Scheme Defeating Malware Using Android Dynamic Loading

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
LAPS Lapse due to unpaid annual fee