KR101895836B1 - Method for Treating and Deleting Malware Having Self-Protection Function - Google Patents
Method for Treating and Deleting Malware Having Self-Protection Function Download PDFInfo
- Publication number
- KR101895836B1 KR101895836B1 KR1020160159272A KR20160159272A KR101895836B1 KR 101895836 B1 KR101895836 B1 KR 101895836B1 KR 1020160159272 A KR1020160159272 A KR 1020160159272A KR 20160159272 A KR20160159272 A KR 20160159272A KR 101895836 B1 KR101895836 B1 KR 101895836B1
- Authority
- KR
- South Korea
- Prior art keywords
- code
- function
- client program
- program module
- shared memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은, 컴퓨터에서 실행 가능한 프로그램이 실행될 때에 커널 드라이버 모듈이 프로세스 이미지를 로딩하고 공유 메모리를 할당하는 제1 단계와; 클라이언트 프로그램 모듈이 모든 프로세스에 종료 코드를 프로세스 실행 전에 로딩하는 제2 단계와; 클라이언트 프로그램 모듈이 종료 코드의 함수 주소를 공유 메모리로서 기록하는 제3 단계와; 악성 코드가 감지되면 클라이언트 프로그램 모듈이 종료 코드의 함수를 호출하는 쓰레드를 생성하는 제4 단계와; 상기 함수가 호출되어 상기 프로그램을 종료시키는 제5 단계를 포함한다.The present invention includes a first step of a kernel driver module loading a process image and allocating a shared memory when a program executable by the computer is executed; A second step of the client program module loading all processes with an exit code before execution of the process; A third step of the client program module writing the function address of the termination code as a shared memory; A fourth step of, when a malicious code is detected, generating a thread for the client program module to call a function of the termination code; And terminating the program by calling the function.
Description
본 발명은 악성 코드의 치료 및 삭제 방법에 대한 것으로서 좀 더 자세하게는 자기 보호 기능이 탑재된 악성 코드에 감염된 파일도 치료 및 삭제할 수 있는 방법에 대한 것이다.The present invention relates to a method for treating and deleting malicious codes, and more particularly, to a method for treating and deleting a file infected with malicious code equipped with a self-protection function.
종래의 컴퓨터 바이러스 백신 프로그램이나 악성 코드 치료 프로그램은 실행 중인 프로그램을 종료하고 감염된 파일을 삭제하는 등의 방식으로 악성 코드 감염 치료를 했다.Conventional computer antivirus programs or malicious code remediation programs have infected malicious code by terminating programs and deleting infected files.
그런데 자기 보호 기능이 탑재된 악성 코드는 해당 프로세스를 종료하려고 해도 종료되지 않기 때문에 치료 및 삭제가 불가능하다는 문제가 있다.However, there is a problem that the malicious code equipped with the self-protection function can not be cured or deleted because the process is not terminated even if the process is terminated.
본 발명은 위와 같이 자기 보호 기능이 탑재된 악성 코드에 감염된 파일이 실행되더라도, 강제로 프로세스를 종료시키고 악성 코드를 치료 및 삭제할 수 있는 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a method for forcibly terminating a process and treating and deleting a malicious code even if a file infected with the malicious code having the self-protection function is executed as described above.
본 발명은, 컴퓨터에서 실행 가능한 프로그램이 실행될 때에 커널 드라이버 모듈이 프로세스 이미지를 로딩하고 공유 메모리를 할당하는 제1 단계와; 클라이언트 프로그램 모듈이 모든 프로세스에 종료 코드를 프로세스 실행 전에 로딩하는 제2 단계와; 클라이언트 프로그램 모듈이 종료 코드의 함수 주소를 공유 메모리로서 기록하는 제3 단계와; 악성 코드가 감지되면 클라이언트 프로그램 모듈이 종료 코드의 함수를 호출하는 쓰레드를 생성하는 제4 단계와; 상기 함수가 호출되어 상기 프로그램을 종료시키는 제5 단계를 포함한다.
제2 단계는, 컴퓨터 시스템 전역에 상기 종료 코드를 로딩하도록 한 API 후킹에 의해서 실행되는 단계일 수 있다.The present invention includes a first step of a kernel driver module loading a process image and allocating a shared memory when a program executable by the computer is executed; A second step of the client program module loading all processes with an exit code before execution of the process; A third step of the client program module writing the function address of the termination code as a shared memory; A fourth step of, when a malicious code is detected, generating a thread for the client program module to call a function of the termination code; And terminating the program by calling the function.
The second step may be a step executed by API hooking to load the exit code throughout the computer system.
삭제delete
제4 단계에서 쓰레드는 CreatRemoteThread 함수에 의해서 생성될 수 있다.In step 4, the thread can be created by the CreatRemoteThread function.
본 발명에 의하면, 자기 보호 기능을 가지는 악성 코드가 실행되어 있다 하더라도 해당 파일의 실행시의 모든 프로세스에 종료 코드가 로딩(삽입)되고, 종료 코드 함수의 호출 주소가 메모리에 공유 메모리로서 기록되기 때문에 종료 코드의 함수를 호출하는 쓰레드를 생성하여 프로그램을 종료시키고 악성 코드를 치료 및 삭제할 수 있는 효과가 있다.According to the present invention, even if a malicious code having a self-protection function is executed, an end code is loaded (inserted) into all processes at the time of execution of the file, and the call address of the end code function is recorded as a shared memory in the memory It is possible to terminate the program by creating a thread that calls a function of the termination code, and to treat and delete the malicious code.
도 1은 본 발명에 의한 악성 코드 치료 방법의 흐름도.
도 2는 본 발명에 의한 악성 코드 치료 방법을 설명하기 위한 블록도.1 is a flow chart of a malicious code treatment method according to the present invention.
2 is a block diagram for explaining a malicious code treatment method according to the present invention.
이하에서는 첨부 도면을 참조하여 본 발명에 대해서 자세하게 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
본 명세서에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다. 본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행 단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 “A 또는 B”은 A와 B 중 어느 하나를 선택적으로 가리키는 것 뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.Encryption / decryption may be applied to the information (data) transmission process performed in the present specification, and the description describing the process of transmitting information (data) in the present specification and claims is not limited to encryption / decryption Should be construed as including. Expressions of the form "transfer from A to B" or "receive from A" in this specification include transmission (transfer) or reception of another medium in between, It does not just represent transmission (forwarding) or receiving. In the description of the present invention, the order of each step should be understood to be non-limiting, unless the preceding step must be performed logically and temporally before the next step. That is to say, except for the exceptional cases mentioned above, even if the process described in the following stage is performed before the process described in the preceding stage, it does not affect the essence of the invention and the scope of the right should be defined regardless of the order of the stages. &Quot; A " or " B " is defined herein to mean not only selectively pointing to either A or B, but also including both A and B. It is also to be understood that the term "comprising " is intended to encompass further including other elements in addition to the elements listed as being included.
본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.Only essential components necessary for explanation of the present invention are described in this specification, and components not related to the essence of the present invention are not mentioned. And should not be construed in an exclusive sense that includes only the recited elements, but should be interpreted in a non-exclusive sense to include other elements as well.
본 발명에 의한 악성 코드 치료 방법에 의하면 먼저 프로그램 실행시 프로그램 종료 코드를 로딩한다(100). 도 2에는 이 과정이 자세하게 설명되어 있다. 먼저 프로그램 실행시 프로세스 실행이 시작되면(100-1), 커널 드라이버 모듈(10)에 의해서 프로세스 이미지가 로딩되고 메모리가 할당된다(100-2). 그러면 본 발명에 의한 악성 코드 치료 방법을 수행하는 클라이언트 프로그램 모듈(20)이 모든 프로세스에 프로그램 종료 코드를 프로그램 실행 전에 로딩시킨다(100-3). 그리고 커널 드라이버 모듈(10)을 거쳐서 프로세스 생성 이벤트가 수집되며(100-4), 프로세스의 실행이 성공적으로 완료된다(100-5). According to the malicious code treatment method of the present invention, the program termination code is first loaded (100) when the program is executed. This process is described in detail in FIG. First, when the execution of the program starts (100-1) at the time of executing the program, the process image is loaded by the
종료 코드를 모든 프로세스에 로딩하는 것은 시스템 전역으로 API 후킹을 걸어서 실행할 수 있다.Loading the exit code into all processes can be done by hooking APIs throughout the system.
단계(110)에서는 종료 코드의 함수 주소가 메모리에 공유 메모리로서 기록된다. 이 과정은 종료 코드의 로딩시 동시에 수행될 수 있다. 프로그램 실행 중에 악성 코드가 클라이언트 프로그램 모듈(20)에 의해서 감지되면(120), 종료 코드의 함수를 호출할 수 있는 쓰레드(thread)를 생성한다(130). 쓰레드의 생성은 예를 들어 CreatRemoteThread 함수에 의해서 생성될 수 있으며, 종료 코드의 함수 주소가 공유 메모리로서 기록되어 있기 때문에 쓰레드의 호출에 의해서 종료 코드의 함수가 호출되며, 전술한 바와 같이 프로세스에 종료 코드가 로딩(삽입)되어 있기 때문에 악성 코드가 자기 보호 기능을 가지고 있다고 하더라도 악성 코드 자신이 종료 코드에 의해서 자신의 프로세스를 종료시키기 때문에 종래 기술과 달리 프로그램을 종료시키고 악성 코드에 감염된 파일을 삭제하는 등의 치료 행위를 수행할 수 있다.In
본 발명에 의하면, 자기 보호 기능을 가지는 악성 코드에 감염된 파일이라고 하더라도 해당 파일의 실행시의 모든 프로세스에 종료 코드가 로딩(삽입)되고, 종료 코드 함수의 주소가 메모리에 공유 메모리로서 기록되기 때문에 종료 코드의 함수를 호출하는 쓰레드를 생성하여 프로그램을 종료시키고 악성 코드를 치료할 수 있는 효과가 있다.According to the present invention, even if a file is infected with a malicious code having a self-protection function, an end code is loaded (inserted) into all processes at the time of execution of the file, and the address of the end code function is recorded as a shared memory in the memory. It is effective to kill a malicious code by creating a thread that calls a function of the code.
이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.While the present invention has been described with reference to the accompanying drawings, it is to be understood that the scope of the present invention is defined by the claims that follow, and should not be construed as limited to the above-described embodiments and / or drawings. It is to be expressly understood that improvements, changes and modifications that are obvious to those skilled in the art are also within the scope of the present invention as set forth in the claims.
10: 커널 드라이버 모듈
20: 클라이언트 프로그램 모듈10: kernel driver module
20: Client program module
Claims (3)
클라이언트 프로그램 모듈이 모든 프로세스에 종료 코드를 프로세스 실행 전에 로딩하는 제2 단계와,
클라이언트 프로그램 모듈이 종료 코드의 함수 주소를 공유 메모리로서 기록하는 제3 단계와,
악성 코드가 감지되면 클라이언트 프로그램 모듈이 종료 코드의 함수를 호출하는 쓰레드를 생성하는 제4 단계와,
상기 함수가 호출되어 상기 프로그램을 종료시키는 제5 단계를 포함하는,
악성 코드 치료 방법.
A first step in which a kernel driver module loads a process image and allocates a shared memory when an executable program is executed in the computer,
A second step in which the client program module loads all the processes with an end code before execution of the process,
A third step of the client program module writing the function address of the termination code as a shared memory,
A fourth step of, when a malicious code is detected, generating a thread in which the client program module calls a function of the termination code;
And a fifth step of calling the function to terminate the program.
How to cure malware.
제2 단계는, 컴퓨터 시스템 전역에 상기 종료 코드를 로딩하도록 한 API 후킹에 의해서 실행되는 단계인,
악성 코드 치료 방법.
The method according to claim 1,
The second step is a step executed by API hooking to load the exit code throughout the computer system,
How to cure malware.
제4 단계에서 쓰레드는 CreatRemoteThread 함수에 의해서 생성되는,
악성 코드 치료 방법.
The method according to claim 1 or 2,
In step 4, the thread is created by the CreatRemoteThread function,
How to cure malware.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160159272A KR101895836B1 (en) | 2016-11-28 | 2016-11-28 | Method for Treating and Deleting Malware Having Self-Protection Function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160159272A KR101895836B1 (en) | 2016-11-28 | 2016-11-28 | Method for Treating and Deleting Malware Having Self-Protection Function |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180060140A KR20180060140A (en) | 2018-06-07 |
KR101895836B1 true KR101895836B1 (en) | 2018-09-06 |
Family
ID=62621503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160159272A KR101895836B1 (en) | 2016-11-28 | 2016-11-28 | Method for Treating and Deleting Malware Having Self-Protection Function |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101895836B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006155090A (en) * | 2004-11-26 | 2006-06-15 | Matsushita Electric Ind Co Ltd | Application executing device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100875997B1 (en) * | 2006-11-13 | 2008-12-24 | 한국전자통신연구원 | Network Fuzzing Using Windows Sockets Application Program Hooking |
KR101217677B1 (en) * | 2011-05-12 | 2013-01-02 | 주식회사 안랩 | Malicious program blocking apparatus and method |
KR20150089365A (en) * | 2014-01-27 | 2015-08-05 | 동국대학교 산학협력단 | System and method for managing and controlling application program in client apparatus |
-
2016
- 2016-11-28 KR KR1020160159272A patent/KR101895836B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006155090A (en) * | 2004-11-26 | 2006-06-15 | Matsushita Electric Ind Co Ltd | Application executing device |
Also Published As
Publication number | Publication date |
---|---|
KR20180060140A (en) | 2018-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3528149B1 (en) | Software repackaging prevention method and device | |
US9081960B2 (en) | Architecture for removable media USB-ARM | |
US10372444B2 (en) | Android dynamic loading file extraction method, recording medium and system for performing the method | |
US20070226773A1 (en) | System and method for using sandboxes in a managed shell | |
US20070089088A1 (en) | Dynamically determining a buffer-stack overrun | |
EP3502944B1 (en) | Detecting script-based malware cross reference to related applications | |
CN110325994B (en) | Apparatus and method for enhancing control flow integrity of software applications | |
US10528729B2 (en) | Methods and systems for defending against cyber-attacks | |
US11262993B2 (en) | Application binary rewriting to reduce binary attack surface area | |
AU2014254253A1 (en) | Executable component injection utilizing hotpatch mechanisms | |
US11397812B2 (en) | System and method for categorization of .NET applications | |
CN103559439A (en) | Detection method and system for buffer overflow | |
US9990493B2 (en) | Data processing system security device and security method | |
US20170126716A1 (en) | Malware detection | |
CN107479874B (en) | DLL injection method and system based on Windows platform | |
EP3128458B1 (en) | User-mode component injection and atomic hooking | |
CN104915594A (en) | Application running method and device | |
KR101895836B1 (en) | Method for Treating and Deleting Malware Having Self-Protection Function | |
KR101367992B1 (en) | Method of blocking heap spray hacking using nop sled, and computer-readable recording medium with anti-heap spray program for the same | |
CN107798244B (en) | Method and device for detecting remote code execution vulnerability | |
US20140283060A1 (en) | Mitigating vulnerabilities associated with return-oriented programming | |
US20180165226A1 (en) | Memory privilege | |
US11500982B2 (en) | Systems and methods for reliably injecting control flow integrity into binaries by tokenizing return addresses | |
US8788785B1 (en) | Systems and methods for preventing heap-spray attacks | |
KR102322408B1 (en) | IoT Device Where Server Resource Detects and Removes Malware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) |