KR20150144046A - Apparatus for detecting a web shell and method for controlling function execution using the same - Google Patents
Apparatus for detecting a web shell and method for controlling function execution using the same Download PDFInfo
- Publication number
- KR20150144046A KR20150144046A KR1020140072654A KR20140072654A KR20150144046A KR 20150144046 A KR20150144046 A KR 20150144046A KR 1020140072654 A KR1020140072654 A KR 1020140072654A KR 20140072654 A KR20140072654 A KR 20140072654A KR 20150144046 A KR20150144046 A KR 20150144046A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- function
- called
- web shell
- allowable
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
본 발명은 웹 쉘의 탐지와 이를 통한 함수 실행 제어에 관한 것이다.
The present invention relates to detection of web shells and control of function execution through them.
일반적으로, 웹을 이용한 IT 인프라가 대부분의 온라인 네트워크 환경을 지배하게 되면서, 사회적 환경 하에서 생활하는 사람들에게 없어서는 안될 중요한 요소로서 자리잡게 되었는 바, 이러한 상황에서 불법적인 해킹을 수행하는 해커들이 웹 인프라의 허점을 이용하여 다양한 방법으로 공격을 시도하고 있다. In general, as the IT infrastructure using the web dominates most online network environments, it has become an indispensable element for people living in social environments. In this situation, illegal hacking hackers have become a necessity for web infrastructure Attacks are attempted in various ways using loopholes.
일반적으로, 해커들은 웹 인프라의 필수 구성인 웹 서버의 해킹을 위해 대부분 웹쉘을 이용하는 경향이 있는데, 이러한 해킹에 대한 피해를 최소화하기 위해 종래에는, 웹 방화벽이나 서버 백신 등의 보안 제품에 웹쉘 탐지 기능을 추가하거나 웹쉘 탐지 시스템으로 웹쉘의 공격을 방어하도록 하고 있다. In general, hackers tend to use WebShells mostly for hacking Web servers, which is an essential component of Web infrastructure. In order to minimize the damage to such hacking, conventionally, Web shell detection Or WebShell detection system to protect WebShell attacks.
그럼에도 불구하고, 최근의 해커들은 공격 수단으로서 이용하는 웹쉘을 스크립트 난독화를 이용하여 공격함으로써, 기존 웹 쉘 탐지 기능을 우회하고 있다.
Nonetheless, recent hackers are bypassing existing web shell detection by attacking WebShells as a means of attack using script obfuscation.
본 발명의 실시예들은 함수를 호출한 파일과 허용 파일 리스트간의 비교를 통해 파일이 웹 쉘인지를 판단하고, 허용 파일에 의해 호출될 경우 허용 파일로부터 전달받은 인자 값에 대한 허용 유무를 기반으로 악의적인 함수 접근 차단시킴으로써, 웹 쉘에 의한 함수의 실행을 원천적으로 차단할 수 있는 웹 쉘 탐지 장치와 이를 이용한 함수 실행 제어 방법을 제공한다.Embodiments of the present invention determine whether a file is a web shell through comparison between a file calling a function and an allowable file list, and when the file is called by an allowable file, And a method for controlling the execution of the function using the web shell detecting apparatus, which is capable of blocking the execution of the function by the web shell.
또한, 본 발명의 실시예들은 호출한 파일과 허용 파일 리스트간의 비교만을 통해 호출한 파일이 웹 쉘인지를 판단함으로써, 함수가 실행되는 서버의 리소스 사용을 최소화시킬 수 있는 웹 쉘 탐지 장치와 이를 이용한 함수 실행 제어 방법을 제공한다.
Embodiments of the present invention also provide a web shell detection apparatus capable of minimizing resource use of a server on which a function is executed by determining whether a file called through a comparison between a called file and a permitted file list is a web shell, Provides a function execution control method.
본 발명의 예시적인 실시예에 따르면, 함수를 호출하는 파일이 웹 쉘인지를 탐지하기 위한 장치로서, 상기 함수를 호출한 파일과 기 정의된 허용 파일 리스트간의 비교를 통해 상기 호출한 파일이 웹 쉘인지를 판단하고, 상기 호출한 파일이 웹 쉘이 아닐 경우 상기 호출한 파일로부터 전달받은 인자 값과 기 정의된 허용 인자 리스트간의 비교를 통해 상기 인자 값이 허용 인자 값인지를 판단하는 판단부; 및 상기 호출한 파일이 웹 쉘이거나 상기 전달받은 인자 값이 허용 인자 값이 아닐 경우 상기 파일에 의해 호출된 함수의 실행을 차단시키는 차단부를 포함하는 웹 쉘 탐지 장치가 제공된다.According to an exemplary embodiment of the present invention, there is provided an apparatus for detecting whether a file calling a function is a web shell, wherein the file is called a web shell through comparison between a file calling the function and a pre- Judging whether the argument value is an allowable argument value by comparing the argument value received from the called file with a predefined permissible argument list when the called file is not a web shell; And a blocking unit for blocking execution of a function called by the file if the called file is a web shell or the received argument value is not an allowable argument value.
상기 웹 쉘 탐지 장치는 상기 허용 파일이거나 상기 전달받은 인자 값이 허용 인자인 경우 상기 파일에 의해 호출된 함수를 실행시켜 상기 호출한 파일에 의한 상기 함수의 사용 이력을 기록하는 실행부를 더 포함할 수 있다.The web shell detection apparatus may further include an execution unit that executes the function called by the file if the permission file is the allowable file or the received argument value is an allowable argument and records the use history of the function by the called file have.
상기 웹 쉘 탐지 장치에서 상기 파일에 의해 호출되는 함수는 자바 계열의 실행함수, PHP 계열의 실행 함수 또는 ASP 계열의 오브젝트 생성 함수이며, 상기 웹 쉘 탐지 장치는 상기 함수 내에 포함되어 동작할 수 있다.The function called by the file in the web shell detection apparatus is an execution function of Java series, an execution function of PHP series, or an ASP series object creation function, and the web shell detection apparatus can be included in the function and operate.
본 발명의 다른 예시적인 실시예에 따르면, 임의의 파일에 의해 서버에 기 정의된 함수가 호출되는지를 감지하는 감지부; 상기 임의의 파일과 기 정의된 허용 파일 리스트간의 비교를 통해 상기 임의의 파일이 웹 쉘인지를 판단하고, 상기 호출한 파일이 웹 쉘이 아닐 경우 상기 임의의 파일로부터 전달받은 인자 값과 기 정의된 허용 인자 리스트간의 비교를 통해 상기 인자 값이 허용 인자 값인지를 판단하는 판단부; 및 상기 임의의 파일이 웹 쉘이거나 상기 전달받은 인자 값이 허용 인자 값이 아닐 경우 상기 파일에 의해 호출된 함수의 실행을 차단시키는 차단부를 포함하는 웹 쉘 탐지 장치가 제공된다.According to another exemplary embodiment of the present invention, a detection unit detects whether a function defined in a server is called by an arbitrary file. Determining whether the arbitrary file is a web shell through comparison between the arbitrary file and a predefined permitted file list, and if the invoked file is not a web shell, A determination unit for determining whether the argument value is an allowable argument value through comparison between allowable argument lists; And a blocking unit for blocking execution of a function called by the file if the arbitrary file is a web shell or the value of the argument received is not an allowable argument value.
상기 웹 쉘 탐지 장치는 상기 임의의 파일이 허용 파일이거나 상기 전달받은 인자 값이 허용 인자인 경우 상기 임의의 파일에 의해 호출된 함수를 실행시켜, 상기 임의의 파일에 의한 의한 상기 함수의 사용 이력을 기록하는 실행부를 더 포함할 수 있다.Wherein the web shell detection apparatus executes a function called by the arbitrary file when the arbitrary file is an allowable file or when the received argument value is an allowable argument and stores the usage history of the function by the arbitrary file And may further include an execution unit for writing the data.
상기 웹 쉘 탐지 장치에서 상기 기 정의된 함수는 자바 계열의 실행함수, PHP 계열의 실행 함수 또는 ASP 계열의 오브젝트 생성 함수일 수 있다.In the web shell detection apparatus, the predefined function may be an execution function of the Java family, an execution function of the PHP family, or an object generation function of the ASP family.
본 발명의 또 다른 예시적인 실시예에 따르면, 파일에 의해 호출되는 함수의 실행을 제어하는 장치를 이용한 상기 함수의 실행을 제어하는 방법으로서, 상기 함수를 호출한 파일과 기 정의된 허용 파일 리스트간의 비교를 통해 상기 호출한 파일이 웹 쉘인지를 판단하는 단계; 상기 호출한 파일이 웹 쉘이 아닐 경우 상기 호출한 파일로부터 전달받은 인자 값과 기 정의된 허용 인자 리스트간의 비교를 통해 상기 인자 값이 허용 인자 값인지를 판단하는 단계; 및 상기 허용 인자 값이 아니거나, 상기 호출한 파일이 웹 쉘일 경우 상기 호출한 파일에 의한 함수의 실행을 차단시키는 단계를 포함하는 웹 쉘 탐지 장치를 이용한 함수 실행 제어 방법이 제공된다.According to another exemplary embodiment of the present invention, there is provided a method of controlling the execution of a function using an apparatus for controlling execution of a function called by a file, the method comprising the steps of: Determining whether the called file is a web shell through comparison; Determining whether the argument value is an allowable argument value by comparing a argument value received from the called file with a predefined permission argument list if the called file is not a web shell; And blocking the execution of the function by the called file when the called file is not the allowable factor or the called file is a web shell.
상기 함수 실행 제어 방법은 상기 호출한 파일이 허용 파일이거나 상기 전달받은 인자 값이 허용 인자인 경우 상기 호출한 파일에 의한 상기 함수의 사용 이력을 기록하는 단계; 및 상기 호출한 파일에 의해 호출된 함수를 실행시키는 단계를 더 포함할 수 있다.The function execution control method comprising the steps of: recording a use history of the function by the called file when the called file is an allowable file or the received argument value is an allowable argument; And executing a function called by the called file.
상기 함수 실행 제어 방법은 기 정의된 함수가 임의의 파일에 의해 호출되는지를 감지하는 단계를 더 포함하며, 상기 기 정의된 함수가 호출되는 것이 감지되면 상기 판단하는 단계를 수행할 수 있다. The function execution control method further includes a step of detecting whether a predefined function is called by an arbitrary file, and the step of determining whether the predefined function is called can be performed.
상기 함수 실행 제어 방법에서 상기 함수는 자바 계열의 실행함수, PHP 계열의 실행 함수 또는 ASP 계열의 오브젝트 생성 함수일 수 있다.
In the function execution control method, the function may be an execution function of a Java series, an execution function of a PHP series, or an object generation function of an ASP series.
본 발명의 실시예에 따르면, 함수를 호출한 파일과 허용 파일 리스트간의 비교를 통해 파일이 웹 쉘인지를 판단하고, 허용 파일에 의해 호출될 경우 허용 파일로부터 전달받은 인자 값에 대한 허용 유무를 기반으로 악의적인 함수 접근 차단시킴으로써, 웹 쉘에 의한 함수의 실행을 원천적으로 차단할 수 있는다.According to an embodiment of the present invention, it is determined whether a file is a web shell by comparing a file calling a function with a permitted file list. If the file is called by an allowable file, By blocking malicious function access, it is possible to block the execution of functions by the web shell.
웹 쉘을 탐지하여 호출한 파일과 허용 파일 리스트간의 비교만을 통해 호출한 파일이 웹 쉘인지를 판단함으로써, 함수가 실행되는 서버의 리소스 사용을 최소화시킬 수 있다.
By detecting the web shell and judging whether the invoked file is a web shell only by comparing the invoked file with the allowed file list, resource use of the server on which the function is executed can be minimized.
도 1은 본 발명의 일 실시예에 따른 웹 쉘 탐지 장치를 도시한 블록도
도 2는 본 발명의 일 실시예에 따른 웹 쉘 탐지 장치를 이용한 함수 실행 제어 방법을 도시한 순서도
도 3은 본 발명의 다른 실시예에 따른 웹 쉘 탐지 장치를 도시한 블록도
도 4는 본 발명의 다른 실시예에 따른 웹 쉘 탐지 장치를 이용한 함수 실행 제어 방법을 도시한 순서도.1 is a block diagram illustrating a web shell detection apparatus according to an embodiment of the present invention.
2 is a flowchart showing a method of controlling execution of functions using a web shell detection apparatus according to an embodiment of the present invention.
3 is a block diagram illustrating a web shell detection apparatus according to another embodiment of the present invention.
4 is a flowchart illustrating a function execution control method using a web shell detection apparatus according to another embodiment of the present invention.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and / or systems described herein. However, this is merely an example and the present invention is not limited thereto.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification. The terms used in the detailed description are intended only to describe embodiments of the invention and should in no way be limiting. Unless specifically stated otherwise, the singular forms of the expressions include plural forms of meanings. In this description, the expressions "comprising" or "comprising" are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, Should not be construed to preclude the presence or possibility of other features, numbers, steps, operations, elements, portions or combinations thereof.
도 1은 본 발명의 일 실시예에 따른 웹 쉘 탐지 장치(100)를 도시한 블록도이다.1 is a block diagram illustrating a web
본 발명의 실시예에 대한 설명에 앞서, 웹 쉘에 대해 설명하면 아래와 같다.Before describing the embodiment of the present invention, the web shell will be described as follows.
웹 쉘은 공격자가 악의적인 목적으로 가지고 만든 프로그램으로, SSS(Server Side Script) 언어, 예컨대 ASP, PHP, JSP 등을 사용하여 구현된다. 이러한 웹 쉘은 취약점이 존재하는 서버에 업로드되며, 공격자에 의해 입력된 명령어를 서버에 전송하여, 명령어를 서버에서 실행시킨다. 즉, 공격자는 해당 서버의 모든 제어권을 장악하고, 정보탈취, 변조, 악성스크립트 삽입 등과 각종 악성행위를 웹 쉘을 이용하여 수행할 수 있다.A web shell is a program created by an attacker for malicious purposes and is implemented using an SSS (Server Side Script) language such as ASP, PHP, JSP, and the like. These web shells are uploaded to the server where the vulnerability exists and send the command entered by the attacker to the server and execute the command on the server. In other words, an attacker can take control of the server, execute information stealing, tampering, insert a malicious script, and perform various malicious actions using the web shell.
한편, 웹 쉘은 공격자를 통해 입력된 명령어를 서버 내의 API 함수를 이용하여 실행시킬 수 있다.On the other hand, the web shell can execute the command entered through the attacker using the API function in the server.
API 함수는 자바 계열, PHP 계열, 및 ASP 계열의 실행 함수 또는 서버 내에 임의의 오브젝트, 예컨대 시스템에 접근할 수 있는 매체, 메일 생성을 위한 매체 등을 생성할 수 있는 생성 함수일 수 있다.The API function may be a generation function capable of generating an executable function of Java series, PHP series, and ASP series, or an arbitrary object in the server, for example, a medium for accessing the system, a medium for generating mail, and the like.
자바 계열의 API 함수는 Runtime.getRuntime(), exec() 등을 들 수 있으며, PHP 계열의 API 함수는 exec(), passthru(), proc_open(), shell_exec(), system() 등을 들 수 있다. 또한, ASP 계열의 API 함수는 Server.createObject ("scripting.filesystemobject"), Server.createObject ("CDONTS.NewMail") 등을 들 수 있다.The API functions of the Java family are Runtime.getRuntime (), exec (), etc. The PHP API functions are exec (), passthru (), proc_open (), shell_exec (), system have. In addition, API functions of the ASP series include Server.createObject ("scripting.filesystemobject") and Server.createObject ("CDONTS.NewMail").
본 발명의 실시예에 따른 웹 쉘 탐지 장치(100)는 상술한 바와 같이 웹 쉘이 서버 내에서 실행되는 것을 탐지하여 차단할 수 있다. 구체적으로, 웹 쉘 탐지 장치(100)는 서버 내 API 함수와 연동 또는 API 함수 내부에 코드 형태로 추가되어 웹 쉘에 의해 API 함수가 호출될 때 동작할 수 있다.The web
먼저, 웹 쉘 탐지 장치(100)가 API 함수 내부에 코드 형태로 추가되어 동작하는 경우에 대해 도 1을 참조하여 설명하기로 한다.First, a case where the web
이러한 웹 쉘 탐지 장치(100)는, 도 1에 도시된 바와 같이, 판단부(110), 차단부(120) 및 실행부(130)를 포함할 수 있다.The web
판단부(110)는 허용 파일 리스트 및 허용 인자 리스트를 구비하며, API 함수를 호출한 파일이 허용 파일 리스트에 포함된 파일인지를 판단하며, 허용 파일 리스트에 포함된 경우 호출한 함수로부터 전달받은 명령어에 대응하는 인자 값이 허용 인자 리스트에 포함되는지를 판단할 수 있다.The
한편, 판단부(110)는 API 함수를 호출한 파일이 허용 파일 리스트에 포함되지 않을 경우 또는 인자 값이 허용 인자 리스트에 포함되지 않을 경우 호출한 파일을 웹 쉘로 판단하여 차단부(120)를 동작시킬 수 있다.On the other hand, when the file calling the API function is not included in the allowed file list or the argument value is not included in the allowable argument list, the
또한, 판단부(110)는 API 함수를 호출한 파일이 허용 파일 리스트에 포함되고 인자 값이 허용 인자 리스트에 포함되면 실행부(130)를 통해 API 함수의 원래 기능을 실행시킬 수 있다.The determining
차단부(120)는 판단부(110)의 판단 결과 호출한 파일이 웹 쉘일 경우 또는 허용 인자 리스트에 포함되지 않은 인자 값이 전달받은 경우 판단부(110)에 의해 요청에 따라 동작하여 API 함수 실행을 차단시킬 수 있다.If the called file is a web shell or the argument value not included in the allowable argument list is received, the
실행부(130)는 판단부(110)의 판단 결과에 의거하여 API 함수의 기능을 실행시킬 수 있다.The
또한, 실행부(130)는 API 함수의 실행 전에 웹 쉘에 의한 API 함수 호출에 따른 이력 정보를 소정의 파일에 기록할 수 있다.Also, the
상기와 같은 구성을 갖는 웹 쉘 탐지 장치(100)가 자바 계열의 API 함수에 포함될 수 있다. 구체적으로, JVMTI(Java Virtual Machine Tool Interface)를 이용하여 웹 쉘 탐지 장치(100)가 포함되도록 자바 계열의 API 함수가 재정의(overriding)될 수 있다.The web
또한, 웹 쉘 탐지 장치(100)가 PHP 계열의 API 함수에 포함될 수 있다. 구체적으로, API 함수 내 PHP 소스의 재컴파일을 통해 웹 쉘 탐지 장치(100)가 포함되도록 PHP 계열의 API 함수가 재정의(overriding)될 수 있다.Also, the web
한편, 웹 쉘 탐지 장치(100)가 ASP 계열의 API 함수에 포함될 수 있다. 구체적으로, 윈도우 함수의 후킹(hooking)을 통해 웹 쉘 탐지 장치(100)가 포함되도록 ASP 계열의 API 함수가 재정의(overriding)될 수 있다.On the other hand, the web
상기와 같은 구성을 갖는 웹 쉘 탐지 장치(100)를 이용한 함수 실행 제어 방법(200)에 대해 도 2를 참조하여 설명한다.A function
도 2는 본 발명의 실시예에 따른 웹 쉘 탐지 장치(100)를 이용한 함수 실행 제어 방법(200)을 도시한 순서도이다.FIG. 2 is a flowchart illustrating a function
도 2에 도시된 방법은 예를 들어, 전술한 웹 쉘 탐지 장치(100)에 의해 수행될 수 있다. 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다. 또한 실시예에 따라 도 2에 도시되지 않은 하나 이상의 단계들이 도 2에 도시된 방법과 함께 수행될 수도 있다.The method shown in FIG. 2 may be performed, for example, by the web
도 2에 도시된 바와 같이, 임의의 파일에 의해 호출된 API 함수 내 웹 쉘 탐지 장치(100)는 호출한 임의의 파일과 허용 파일 리스트간의 비교를 통해 임의의 파일이 허용 파일인지를 판단할 수 있다. As shown in FIG. 2, the Web
단계 202의 판단 결과, 허용 파일인 경우 웹 쉘 탐지 장치(100)는 임의의 파일로부터 전달받은 인자 값, 예컨대 임의의 파일에 입력된 명령어에 대응하는 인자 값을 전달받으며(단계 204), 전달받은 인자 값과 허용 인자 리스트간의 비교를 통해 전달받은 인자 값이 허용 인자 값인지를 판단할 수 있다.If it is determined in
단계 206의 판단 결과, 허용 인자 값인 경우 웹 쉘 탐지 장치(100)는 임의의 파일에 의한 API 함수의 호출에 따른 이력 정보를 소정의 파일에 기록(단계 208)한 후 API 함수를 실행시킨다(단계 210).As a result of the determination in
한편, 단계 202 또는 단계 206의 판단 결과 허용 파일이 아니거나 허용 인자 값이 아닌 경우 웹 쉘 탐지 장치(100)는 임의의 파일을 웹 쉘로 판단하여 API 함수의 실행을 차단시킨다(단계 212).On the other hand, if it is determined in
본 발명의 일 실시예에서는 웹 쉘 탐지 장치(100)가 API 함수 내부에 코드 형태로 추가되어 동작하는 경우에 대해 설명하였지만, 웹 쉘 탐지 장치(100)가 서버 내에서 API 함수의 호출을 감지하여 동작할 수도 있다. 이 경우에 대해서 도 3 내지 도 4를 참조하여 설명한다.Although the Web
도 3은 본 발명의 다른 실시예에 따른 웹 쉘 탐지 장치(300)의 내부 구성을 도시한 블록도이다. 도 1을 참조하여 설명하였던 본 발명의 일 실시예에서의 구성요소와 대응되는 구성요소는, 일 실시예에서 설명한 바와 동일 또는 유사한 기능을 수행하므로, 이에 대한 보다 구체적인 설명은 생략하도록 한다.3 is a block diagram illustrating an internal configuration of a web
도 3에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 웹 쉘 탐지 장치(300)는 감지부(310), 판단부(110), 차단부(120) 및 실행부(130)를 포함할 수 있다.3, the web
감지부(310)는 서버 내의 특정 API 함수, 예컨대 기 정의된 시스템 함수가 임의의 파일에 의해 호출되는지를 감지할 수 있다. The
또한, 감지부(310)는 임의의 파일에 의해 특정 API 함수가 호출되는 것이 감지됨에 따라 특정 API 함수의 실행을 보류시킨 후 판단부(110)를 구동시킬 수 있다. In addition, the
판단부(110)는 도 1에서 설명한 바와 같이 API 함수를 호출한 파일과 허용 파일 리스트간의 비교를 통해 호출한 파일이 허용 파일인지를 판단하고, 허용 파일일 경우 호출한 파일로부터 전달받은 인자 값과 허용 인자 리스트간의 비교를 통해 인자 값이 허용 인자 값인지를 판단할 수 있다. 또한, 판단부(110)는 판단 결과에 의거하여 차단부(120)를 동작시켜 API 함수의 실행을 차단하거나 또는 실행부(130)를 통해 API 함수를 실행시킬 수 있다.1, the
상기와 같은 구성을 갖는 본 발명의 다른 실시예에 따른 웹 쉘 탐지 장치(300)를 이용한 함수 실행 제어 방법(400)에 대해 도 4를 참조하여 설명한다.A function execution control method 400 using the web
도 4는 본 발명의 다른 실시예에 따른 웹 쉘 탐지 장치(300)를 이용한 함수 실행 제어 방법(400)을 도시한 순서도이다.4 is a flowchart illustrating a function execution control method 400 using a web
도 4에 도시된 방법은 예를 들어, 전술한 도 3의 웹 쉘 탐지 장치(300)에 의해 수행될 수 있다. 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다. 또한 실시예에 따라 도 4에 도시되지 않은 하나 이상의 단계들이 도 4에 도시된 방법과 함께 수행될 수도 있다.The method shown in FIG. 4 may be performed, for example, by the web
도 4에 도시된 바와 같이, 웹 쉘 탐지 장치(300)는 웹 쉘 탐지 장치(300)를 포함한 서버(미도시됨) 내에 정의된 API 함수가 임의의 파일에 의해 호출되는지를 판단한다(단계 402).4, the web
단계 402의 판단 결과, API 함수가 호출되는 경우 웹 쉘 탐지 장치(300)는 호출한 파일이 허용 파일인지를 판단한다(단계 404). 구체적으로, 웹 쉘 탐지 장치(300)는 호출한 파일의 정보와 허용 파일 리스트간의 비교하여 웹 쉘이 허용 파일인지를 판단할 수 있다.If it is determined in step 402 that the API function is called, the web-
단계 404의 판단 결과, 허용 파일인 경우 웹 쉘 탐지 장치(300)는 호출한 파일로부터 전달받은 인자 값, 예컨대 호출한 파일 상에 입력된 명령어에 대응하는 인자 값을 전달받으며(단계 406), 전달받은 인자 값과 이 허용 인자 값인지를 판단한다(단계 408). 구체적으로, 웹 쉘 탐지 장치(300)는 전달받은 인자 값과 허용 인자 리스트간의 비교를 통해 전달받은 인자 값이 허용 인자 값인지를 판단할 수 있다.As a result of the determination in step 404, in the case of the allowable file, the web
단계 408의 판단 결과, 허용 인자 값인 경우 웹 쉘 탐지 장치(300)는 웹 쉘에 의한 API 함수의 호출에 따른 이력 정보를 소정의 파일에 기록(단계 410)한 후 API 함수를 실행시킨다(단계 412).As a result of the determination in step 408, the web
한편, 단계 404 또는 단계 408의 판단 결과 허용 파일이 아니거나 허용 인자 값이 아닌 경우 웹 쉘 탐지 장치(300)는 호출한 파일을 웹 쉘로 탐지하여 호출한 파일에 의한 API 함수의 실행을 차단시킨다(단계 414).On the other hand, if it is determined in step 404 or step 408 that the file is not an allowable file or is not an allowable argument value, the web
상술한 본 발명의 실시예들은 본 명세서에서 기술한 일 실시예 및 다른 실시예에 따른 웹 쉘 탐지 장치를 이용한 함수 실행 제어 방법(200, 400)을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.The embodiments of the present invention described above are applicable to computer readable media including a program for performing on a computer a
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, . Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.
100, 300 : 웹 쉘 탐지 장치
110 : 판단부
120 : 차단부
130 : 실행부
310 : 감지부100, 300: Web shell detection device
110:
120:
130:
310:
Claims (10)
상기 함수를 호출한 파일과 기 정의된 허용 파일 리스트간의 비교를 통해 상기 호출한 파일이 웹 쉘인지를 판단하고, 상기 호출한 파일이 웹 쉘이 아닐 경우 상기 호출한 파일로부터 전달받은 인자 값과 기 정의된 허용 인자 리스트간의 비교를 통해 상기 인자 값이 허용 인자 값인지를 판단하는 판단부; 및
상기 호출한 파일이 웹 쉘이거나 상기 전달받은 인자 값이 허용 인자 값이 아닐 경우 상기 파일에 의해 호출된 함수의 실행을 차단시키는 차단부를 포함하는, 웹 쉘 탐지 장치.
A device for detecting whether a file calling a function is a web shell,
And determines whether the called file is a web shell by comparing the file calling the function with a predefined permitted file list. If the called file is not a web shell, A determination unit for determining whether the argument value is an allowable argument value through comparison between the defined allowable argument lists; And
And a blocking unit for blocking execution of a function called by the file if the called file is a web shell or if the received argument value is not an allowable argument value.
상기 웹 쉘 탐지 장치는
상기 허용 파일이거나 상기 전달받은 인자 값이 허용 인자인 경우 상기 파일에 의해 호출된 함수를 실행시켜 상기 호출한 파일에 의한 상기 함수의 사용 이력을 기록하는 실행부를 더 포함하는, 웹 쉘 탐지 장치.
The method according to claim 1,
The web shell detection device
And an execution unit for executing the function called by the file and recording the use history of the function by the called file when the received file value is the allowable file or the permitted file value is the allowable factor.
상기 파일에 의해 호출되는 함수는 자바 계열의 실행함수, PHP 계열의 실행 함수 또는 ASP 계열의 오브젝트 생성 함수이며,
상기 웹 쉘 탐지 장치는 상기 함수 내에 포함되어 동작하는, 웹 쉘 탐지 장치.
3. The method according to claim 1 or 2,
The function called by the file is an executable function of Java series, an executable function of PHP series, or an object generation function of ASP series,
Wherein the web shell detection device is included in the function.
상기 임의의 파일과 기 정의된 허용 파일 리스트간의 비교를 통해 상기 임의의 파일이 웹 쉘인지를 판단하고, 상기 호출한 파일이 웹 쉘이 아닐 경우 상기 임의의 파일로부터 전달받은 인자 값과 기 정의된 허용 인자 리스트간의 비교를 통해 상기 인자 값이 허용 인자 값인지를 판단하는 판단부; 및
상기 임의의 파일이 웹 쉘이거나 상기 전달받은 인자 값이 허용 인자 값이 아닐 경우 상기 파일에 의해 호출된 함수의 실행을 차단시키는 차단부를 포함하는, 웹 쉘 탐지 장치.
A detection unit for detecting whether a function defined in the server is called by an arbitrary file;
Determining whether the arbitrary file is a web shell through comparison between the arbitrary file and a predefined permitted file list, and if the invoked file is not a web shell, A determination unit for determining whether the argument value is an allowable argument value through comparison between allowable argument lists; And
And blocking the execution of the function called by the file if the arbitrary file is a web shell or the value of the argument received is not an allowable argument value.
상기 웹 쉘 탐지 장치는
상기 임의의 파일이 허용 파일이거나 상기 전달받은 인자 값이 허용 인자인 경우 상기 임의의 파일에 의해 호출된 함수를 실행시켜, 상기 임의의 파일에 의한 의한 상기 함수의 사용 이력을 기록하는 실행부를 더 포함하는, 웹 쉘 탐지 장치.
5. The method of claim 4,
The web shell detection device
And an execution unit for executing a function called by the arbitrary file and recording the use history of the function by the arbitrary file when the arbitrary file is an allowable file or the received argument value is an allowable argument , A web shell detector.
상기 기 정의된 함수는 자바 계열의 실행함수, PHP 계열의 실행 함수 또는 ASP 계열의 오브젝트 생성 함수인, 웹 쉘 탐지 장치.
The method according to claim 4 or 5,
Wherein the predefined function is an executable function of the Java family, an executable function of the PHP family, or an object generation function of the ASP family.
상기 함수를 호출한 파일과 기 정의된 허용 파일 리스트간의 비교를 통해 상기 호출한 파일이 웹 쉘인지를 판단하는 단계;
상기 호출한 파일이 웹 쉘이 아닐 경우 상기 호출한 파일로부터 전달받은 인자 값과 기 정의된 허용 인자 리스트간의 비교를 통해 상기 인자 값이 허용 인자 값인지를 판단하는 단계; 및
상기 허용 인자 값이 아니거나, 상기 호출한 파일이 웹 쉘일 경우 상기 호출한 파일에 의한 함수의 실행을 차단시키는 단계를 포함하는, 웹 쉘 탐지 장치를 이용한 함수 실행 제어 방법.
A method for controlling execution of a function using a device that controls execution of a function called by a file,
Determining whether the called file is a web shell through comparison between a file calling the function and a predefined permitted file list;
Determining whether the argument value is an allowable argument value by comparing a argument value received from the called file with a predefined permission argument list if the called file is not a web shell; And
Blocking the execution of a function by the called file when the called file is not the allowable argument value or the called file is a web shell.
상기 함수 실행 제어 방법은
상기 호출한 파일이 허용 파일이거나 상기 전달받은 인자 값이 허용 인자인 경우 상기 호출한 파일에 의한 상기 함수의 사용 이력을 기록하는 단계; 및
상기 호출한 파일에 의해 호출된 함수를 실행시키는 단계를 더 포함하는, 웹 쉘 탐지 장치를 이용한 함수 실행 제어 방법.
8. The method of claim 7,
The function execution control method
Recording a use history of the function by the called file when the called file is an allowable file or the received argument value is an allowable argument; And
And executing the function called by the called file. A method for controlling execution of a function using a Web shell detection device.
상기 함수 실행 제어 방법은
기 정의된 함수가 임의의 파일에 의해 호출되는지를 감지하는 단계를 더 포함하며,
상기 기 정의된 함수가 호출되는 것이 감지되면 상기 판단하는 단계를 수행하는, 웹 쉘 탐지 장치를 이용한 함수 실행 제어 방법.
8. The method of claim 7,
The function execution control method
Detecting whether the predefined function is called by an arbitrary file,
And if it is detected that the predefined function is called, performing the determining step.
상기 함수는 자바 계열의 실행함수, PHP 계열의 실행 함수 또는 ASP 계열의 오브젝트 생성 함수인, 웹 쉘 탐지 장치를 이용한 함수 실행 제어 방법.10. The method according to any one of claims 7 to 9,
Wherein the function is an executable function of a Java family, a PHP family executable function, or an ASP family object creation function.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140072654A KR101585968B1 (en) | 2014-06-16 | 2014-06-16 | Apparatus for detecting a web shell and method for controlling function execution using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140072654A KR101585968B1 (en) | 2014-06-16 | 2014-06-16 | Apparatus for detecting a web shell and method for controlling function execution using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150144046A true KR20150144046A (en) | 2015-12-24 |
KR101585968B1 KR101585968B1 (en) | 2016-01-15 |
Family
ID=55084117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140072654A KR101585968B1 (en) | 2014-06-16 | 2014-06-16 | Apparatus for detecting a web shell and method for controlling function execution using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101585968B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102015223187A1 (en) | 2014-11-27 | 2016-06-02 | Samsung Electronics Co., Ltd. | One-chip systems for controlling capacity utilization, methods of operating them, and computer devices comprising them |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060046231A (en) * | 2004-05-28 | 2006-05-17 | 마이크로소프트 코포레이션 | Managing spyware and unwanted software through auto-start extensibility points |
KR20090088687A (en) * | 2008-02-15 | 2009-08-20 | 한국정보보호진흥원 | System for detecting webshell and method thereof |
KR20090114012A (en) * | 2008-04-29 | 2009-11-03 | 주식회사 안철수연구소 | Inventing system for handling of memory |
KR101080953B1 (en) * | 2011-05-13 | 2011-11-08 | (주)유엠브이기술 | System and method for detecting and protecting webshell in real-time |
KR20120070021A (en) | 2010-12-21 | 2012-06-29 | 한국인터넷진흥원 | Malicious code, the system automatically collects |
-
2014
- 2014-06-16 KR KR1020140072654A patent/KR101585968B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060046231A (en) * | 2004-05-28 | 2006-05-17 | 마이크로소프트 코포레이션 | Managing spyware and unwanted software through auto-start extensibility points |
KR20090088687A (en) * | 2008-02-15 | 2009-08-20 | 한국정보보호진흥원 | System for detecting webshell and method thereof |
KR20090114012A (en) * | 2008-04-29 | 2009-11-03 | 주식회사 안철수연구소 | Inventing system for handling of memory |
KR20120070021A (en) | 2010-12-21 | 2012-06-29 | 한국인터넷진흥원 | Malicious code, the system automatically collects |
KR101080953B1 (en) * | 2011-05-13 | 2011-11-08 | (주)유엠브이기술 | System and method for detecting and protecting webshell in real-time |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102015223187A1 (en) | 2014-11-27 | 2016-06-02 | Samsung Electronics Co., Ltd. | One-chip systems for controlling capacity utilization, methods of operating them, and computer devices comprising them |
Also Published As
Publication number | Publication date |
---|---|
KR101585968B1 (en) | 2016-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9836608B2 (en) | System, method and apparatus for simultaneous definition and enforcement of access-control and integrity policies | |
US9183377B1 (en) | Unauthorized account monitoring system and method | |
KR102307534B1 (en) | Systems and methods for tracking malicious behavior across multiple software entities | |
US9703954B2 (en) | Method and system for protecting computerized systems from malicious code | |
US8904537B2 (en) | Malware detection | |
US20150163231A1 (en) | System and method for reducing load on an operating system when executing antivirus operations | |
US7665139B1 (en) | Method and apparatus to detect and prevent malicious changes to tokens | |
US7607173B1 (en) | Method and apparatus for preventing rootkit installation | |
JP2015141718A (en) | Aggression detection device and method using vulnerable point of program | |
RU2584507C1 (en) | Method of providing safe execution of script file | |
CN102110213A (en) | Detection of hided object in computer system | |
CN105760787A (en) | System and method used for detecting malicious code of random access memory | |
Yu et al. | Access control to prevent attacks exploiting vulnerabilities of webview in android OS | |
US20230297676A1 (en) | Systems and methods for code injection detection | |
CN110717181B (en) | Non-control data attack detection method and device based on novel program dependency graph | |
Huang et al. | A11y and Privacy don't have to be mutually exclusive: Constraining Accessibility Service Misuse on Android | |
KR101429131B1 (en) | Device and method for securing system | |
KR101723623B1 (en) | System and method for detecting malicious code | |
KR101585968B1 (en) | Apparatus for detecting a web shell and method for controlling function execution using the same | |
EP2881883B1 (en) | System and method for reducing load on an operating system when executing antivirus operations | |
US20200004960A1 (en) | Method of detecting malicious files resisting analysis in an isolated environment | |
Jain | Android security: Permission based attacks | |
KR102463814B1 (en) | Method and apparatus for monitoring server | |
US10552626B2 (en) | System and method for selecting a data entry mechanism for an application based on security requirements | |
Shuang et al. | Using inputs and context to verify user intentions in internet services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181206 Year of fee payment: 4 |