KR102230443B1 - Blocking and replacing dangerous commands when diagnosing security vulnerabilities using scripts - Google Patents

Blocking and replacing dangerous commands when diagnosing security vulnerabilities using scripts Download PDF

Info

Publication number
KR102230443B1
KR102230443B1 KR1020200174716A KR20200174716A KR102230443B1 KR 102230443 B1 KR102230443 B1 KR 102230443B1 KR 1020200174716 A KR1020200174716 A KR 1020200174716A KR 20200174716 A KR20200174716 A KR 20200174716A KR 102230443 B1 KR102230443 B1 KR 102230443B1
Authority
KR
South Korea
Prior art keywords
command
target
script
control server
server
Prior art date
Application number
KR1020200174716A
Other languages
Korean (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 KR1020200174716A priority Critical patent/KR102230443B1/en
Application granted granted Critical
Publication of KR102230443B1 publication Critical patent/KR102230443B1/en

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis

Abstract

The present invention provides a method for blocking and replacing dangerous commands when diagnosing vulnerabilities performed by a script control server (hereinafter, ″server″). The method comprises the steps of: receiving, by a control server, a script from a user terminal; classifying, by the control server, at least one command included in the script into a target prohibition command and a target permission command whose execution in a target server is restricted; reconfiguring the script by replacing, by the control server, the target prohibition command with a replacement command of a different type to match, based on a conversion rule database unit in which commands of different types are matched and stored; and requesting, by the control server, the target server to execute the reconfigured script. Therefore, damage to a diagnostic server can be prevented.

Description

스크립트를 이용한 보안 취약점 진단 시 위험성 명령어 차단 및 대체 방법{BLOCKING AND REPLACING DANGEROUS COMMANDS WHEN DIAGNOSING SECURITY VULNERABILITIES USING SCRIPTS}Blocking and replacing dangerous commands when diagnosing security vulnerabilities using scripts {BLOCKING AND REPLACING DANGEROUS COMMANDS WHEN DIAGNOSING SECURITY VULNERABILITIES USING SCRIPTS}

본 발명은 스크립트를 이용한 보안 취약점 진단 시 위험성 명령어 차단 및 대체하는 방법에 관한 것이다. The present invention relates to a method of blocking and replacing dangerous commands when diagnosing a security vulnerability using a script.

네트워크 망을 통한 시스템이 일반화됨에 따라, 시스템 상에 포함된 자산의 보안을 점검하고 유지하는 것이 중요한 이슈가 되고 있다. As systems through network networks become more common, it is becoming an important issue to check and maintain the security of assets included in the system.

자산(또는, 진단 대상 서버)의 보안을 점검하고 유지하기 위하여, 보안 취약점 진단을 위한 스크립트를 수신받은 후, 이를 실행시키고, 실행에 따른 결과를 도출하는 방식이 사용되고 있다.In order to check and maintain the security of an asset (or a server to be diagnosed), a method of receiving a script for diagnosing security vulnerabilities, executing it, and deriving a result according to the execution is used.

다만, 스크립트 내부에 자산에 손상을 줄 수 있는 위험 명령어가 포함되어 있는 경우, 스크립트의 실행에 의해 자산이 손상되거나 정산적인 진단결과가 도출되지 않는 문제가 발생될 수 있다.However, if the script contains dangerous commands that may damage the asset, the execution of the script may cause damage to the asset or a problem in which a settlement diagnosis result is not derived.

또한, 스크립트 내부에 포함된 명령어의 실행에 대해 자산의 관리자가 실행제한을 걸어놓은 경우, 스크립트의 실행이 제한되어 자산에 대한 취약점 진단이 제한되는 문제가 발생될 수 있다. In addition, when an asset manager places an execution limit on the execution of a command included in a script, execution of the script is restricted, thereby limiting vulnerability diagnosis for the asset.

상술한 바와 같은 문제점을 해결하기 위한 본 발명은, 진단 스크립트의 실행 전, 진단 스크립트의 명령어를 진단 대상 서버에서 실행이 제한되는 금지 명령어 또는 허용 명령어로 분류하는 것을 일 목적으로 한다.An object of the present invention for solving the above-described problems is to classify a command of a diagnostic script into a prohibited command or a permitted command that is restricted to be executed in a diagnosis target server before execution of the diagnostic script.

또한, 본 발명은, 허용 명령어를 진단 대상 서버에 손상을 줄 위험이 있는 위험 명령어 또는 비위험 명령어로 분류하는 것을 일 목적으로 한다.In addition, an object of the present invention is to classify the permitted instructions into dangerous instructions or non-hazardous instructions that have a risk of damaging the diagnosis target server.

또한, 본 발명은, 위험 명령어의 위험성의 정도를 판단하여 진단 서버에 통지하는 것을 일 목적으로 한다. In addition, an object of the present invention is to determine the degree of danger of a dangerous instruction and notify it to a diagnosis server.

또한, 본 발명은, 분류된 금지 명령어 및 위험 명령어를 대체 명령어로 대체하여 진단 스크립트를 재구성하고, 재구성된 진단 스크립트를 통해 대상 서버를 진단하는 것을 일 목적으로 한다. In addition, an object of the present invention is to reconstruct a diagnostic script by replacing the classified prohibited commands and dangerous commands with replacement commands, and to diagnose a target server through the reconstructed diagnostic script.

또한, 본 발명은, 진단 대상 서버에서 도출된 금지 명령어 및 위험 명령어에 기초하여, 진단 대상 서버에 대한 대상 금지 명령어 리스트를 만들고, 진단 대상 서버별로 대상 금지 명령어 리스트를 관리하는 것을 일 목적으로 한다.Another object of the present invention is to create a target prohibition command list for a diagnosis target server based on a prohibition command and a risk command derived from a diagnosis target server, and manage the target prohibition command list for each diagnosis target server.

또한, 본 발명은, 진단 대상 서버에서 도출된 허용 명령어에 기초하여, 진단 대상 서버에 대한 대상 허용 명령어 리스트를 만들고, 진단 대상 서버별로 대상 허용 명령어 리스트를 관리하는 것을 일 목적으로 한다.In addition, an object of the present invention is to create a target allowable command list for the diagnosis target server based on the allowable command derived from the diagnosis target server, and manage the target allowable command list for each diagnosis target server.

또한, 본 발명은, 동일한 대상 서버에 대하여 동일한 진단 스크립트가 재실행되는 경우, 대상 금지 명령어 리스트에 기초하여 명령어를 대체 명령어로 대체하고, 대체된 명령어로 진단 스크립트를 재구성하는 것을 일 목적으로 한다. In addition, an object of the present invention is to replace the command with a replacement command based on the target prohibited command list and reconstruct the diagnostic script with the replaced command when the same diagnostic script is re-executed for the same target server.

또한, 본 발명은, 동일한 대상 서버에 대하여 새로운 진단 스크립트가 실행되는 경우, 새로운 진단 스크립트에서 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트에 포함되지 않는 테스트 명령어를 도출하는 것을 일 목적으로 한다.In addition, an object of the present invention is to derive a test command that is not included in the target prohibited command list and the target allowed command list from the new diagnosis script when a new diagnosis script is executed for the same target server.

또한, 본 발명은, 테스트 명령어 중 진단 대상 서버에서 실행이 제한되는 금지 명령어를 분류하는 것을 일 목적으로 한다. In addition, an object of the present invention is to classify a prohibited instruction whose execution is restricted in a diagnosis target server among test instructions.

또한, 본 발명은, 새로운 스크립트에서 분류된 금지 명령어에 기초하여 대상 금지 명령어 리스트를 새롭게 업데이트하여 관리하는 것을 일 목적으로 한다. In addition, an object of the present invention is to newly update and manage a target prohibition instruction list based on the prohibition instruction classified in a new script.

본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems that are not mentioned will be clearly understood by those skilled in the art from the following description.

상술한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 스크립트 제어서버(이하, "제어서버")에 의해 수행되는 취약점 진단 시 위험성 명령어 차단 및 대체 방법은, 상기 제어서버가 사용자 단말에서 스크립트를 수신하는 단계; 상기 제어서버가 상기 스크립트에 포함된 적어도 하나의 명령어를 대상서버에서의 실행이 제한된 대상 금지 명령어와 대상 허용 명령어로 분류하는 단계; 서로 다른 형태의 명령어가 매칭되어 변환규칙 데이터베이스부에 기초해, 상기 제어서버가 상기 대상 금지 명령어를 매칭되는 다른 형태의 대체 명령어로 대체하여 상기 스크립트를 재구성하는 단계; 및 상기 제어서버가 상기 대상서버에 상기 재구성 스크립트의 실행을 요청하는 단계를 포함한다.In order to solve the above-described problem, a method for blocking and replacing dangerous commands when diagnosing a vulnerability performed by a script control server (hereinafter, "control server") according to an embodiment of the present invention is, wherein the control server executes a script in a user terminal. Receiving; Classifying, by the control server, at least one command included in the script into a target prohibition command and a target allow command restricted to be executed in a target server; Reconfiguring the script by matching different types of commands and replacing the target prohibition command with a matching alternative command based on a conversion rule database unit; And requesting, by the control server, the target server to execute the reconfiguration script.

또한, 상기 대상 금지 명령어와 대상 허용 명령어로 분류하는 단계는, 상기 스크립트에서 적어도 하나의 명령어를 추출하는 단계; 상기 대상서버에 상기 적어도 하나의 명령어의 허용 여부에 대한 테스트를 요청하는 단계; 상기 대상서버에서 상기 테스트 결과를 수신받는 단계; 상기 테스트 결과에 기초하여 상기 적어도 하나의 명령어를 상기 대상 금지 명령어와 상기 대상 허용 명령어로 분류하는 단계; 및 상기 대상 허용 명령어 중 기 설정된 일반 금지 명령어 리스트에 포함되지 않은 명령어를 위험 명령어로 분류하는 단계를 포함한다.In addition, the step of classifying the target prohibition command and the target allow command may include: extracting at least one command from the script; Requesting the target server to test whether the at least one command is permitted; Receiving the test result from the target server; Classifying the at least one command into the target prohibition command and the target allow command based on the test result; And classifying a command that is not included in a preset general prohibition command list among the target allowable commands as dangerous commands.

또한, 상기 스크립트를 재구성하는 단계는, 상기 변환규칙 데이터베이스에 기초하여, 상기 제어서버가 상기 대상 금지 명령어 및 상기 위험 명령어를 매칭되는 다른 형태의 대체 명령어로 대체하여 상기 스크립트를 재구성하는 것이다.In addition, the reconfiguration of the script may be performed by the control server to reconfigure the script by replacing the target prohibition command and the dangerous command with a matching alternative command based on the conversion rule database.

또한, 상기 대상 금지 명령어와 대상 허용 명령어로 분류하는 단계는, 상기 대상서버에 상기 대상 허용 명령어 중 상기 위험 명령어가 존재함을 통지하는 단계를 더 포함한다.In addition, the step of classifying the target prohibition command and the target permission command further includes notifying the target server of the existence of the dangerous command among the target permission commands.

또한, 상기 대상 금지 명령어와 대상 허용 명령어로 분류하는 단계는, 상기 분류된 위험 명령어의 유형을 분석하는 단계; 및 상기 대상서버에 상기 위험 명령어 및 상기 위험 명령어의 유형을 전송하는 단계를 더 포함한다.In addition, the step of classifying the target prohibition command and the target permission command may include analyzing the classified dangerous command type; And transmitting the dangerous command and the type of the dangerous command to the target server.

또한, 상기 위험 명령어의 유형은, read 명령어, write 명령어 및 delete 명령어 중 적어도 하나를 포함한다.In addition, the type of the dangerous command includes at least one of a read command, a write command, and a delete command.

또한, 상기 대상 금지 명령어 및 기 설정된 일반 금지 명령어 리스트에 기초하여, 상기 대상서버에 대한 대상 금지 명령어 리스트를 생성하는 단계; 및 상기 대상 허용 명령어에 기초하여, 대상 허용 명령어 리스트를 생성하는 단계를 더 포함할 수 있다.Also, based on the target prohibition command and a preset general prohibition command list, generating a target prohibition command list for the target server; And generating a target allowed command list based on the target allowed command.

또한, 상기 대상 금지 명령어 리스트를 생성하는 단계는, 상기 대상 금지 명령어와 기 설정된 일반 금지 명령어 리스트를 비교하는 단계; 상기 대상 금지 명령어 중 상기 일반 금지 명령어 리스트에 포함되지 않는 명령어를, 상기 일반 금지 명령어 리스트에 추가하여 대상 금지 명령어 리스트를 생성하는 단계; 및 상기 위험 명령어 중 상기 일반 금지 명령어 리스트에 포함되지 않는 명령어를, 상기 일반 금지 명령어 리스트에 추가하여 대상 금지 명령어 리스트를 생성하는 단계를 포함할 수 있다. In addition, generating the target prohibition command list may include comparing the target prohibition command and a preset general prohibition command list; Adding a command that is not included in the general prohibition command list among the target prohibition commands to the general prohibition command list to generate a target prohibition command list; And adding a command that is not included in the general prohibition command list among the dangerous commands to the general prohibition command list to generate a target prohibition command list.

또한, 상기 제어서버가 사용자 단말에서 스크립트를 재수신하는 단계; 및 상기 제어서버가 재수신된 스크립트와 기존의 스크립트의 동일성을 판단하는 단계를 더 포함할 수 있다.In addition, the control server re-receiving the script from the user terminal; And determining, by the control server, the identity of the re-received script and the existing script.

또한, 상기 제어서버가 재수신된 스크립트와 기존의 스크립트의 동일성을 판단하는 단계는, 상기 제어서버가 재수신된 스크립트에서 적어도 하나의 명령어를 추출하는 단계; 및 상기 제어서버가 재수신된 스크립트에서 추출된 상기 적어도 하나의 명령어 중 상기 대상 금지 명령어 리스트 및 상기 대상 허용 명령어 리스트에 포함되지 않는 명령어가 있는지 여부를 판단하는 단계를 포함한다.In addition, the step of determining, by the control server, the identity of the re-received script and the existing script, the control server extracting at least one command from the re-received script; And determining, by the control server, whether there is a command not included in the target prohibited command list and the target allowed command list among the at least one command extracted from the re-received script.

또한, 상기 재수신된 스크립트가 기존의 스크립트와 동일한 경우, 상기 재수신된 스크립트에서 적어도 하나의 명령어를 추출하는 단계; 상기 변환규칙 데이터베이스부에 기초해, 재수신된 스크립트에 포함된 상기 적어도 하나의 명령어 중 상기 대상 금지 명령어 리스트에 포함되는 명령어를 매칭되는 다른 형태의 대체 명령어로 대체하여, 상기 재수신된 스크립트를 재구성하는 단계; 및 상기 제어서버가 상기 대상서버에 상기 재구성 스크립트의 실행을 요청하는 단계를 더 포함할 수 있다.In addition, when the re-received script is the same as the existing script, extracting at least one command from the re-received script; Based on the conversion rule database unit, the re-received script is reconstructed by replacing the command included in the target prohibited command list among the at least one command included in the re-received script with a matching alternative command The step of doing; And requesting, by the control server, to execute the reconfiguration script from the target server.

또한, 상기 재수신된 스크립트가 기존의 스크립트와 동일하지 않은 경우, 상기 제어서버가 추출된 상기 적어도 하나의 명령어를 개별 금지 명령어, 개별 허용 명령어 및 테스트 명령어로 분류하는 단계를 더 포함할 수 있다.In addition, when the re-received script is not the same as the existing script, the control server may further include classifying the extracted at least one command into an individual prohibition command, an individual permission command, and a test command.

또한, 상기 개별 금지 명령어는, 상기 적어도 하나의 명령어 중 상기 대상 금지 명령어 리스트와 일치하는 것이며, 상기 개별 허용 명령어는, 상기 적어도 하나의 명령어 중 상기 대상 허용 명령어 리스트와 일치하는 것일 수 있다.In addition, the individual prohibition command may match the target prohibition command list among the at least one command, and the individual permission command may correspond to the target permission command list among the at least one command.

또한, 상기 제어서버가 상기 대상서버에 상기 테스트 명령어의 허용 여부에 대한 테스트를 요청하는 단계; 상기 테스트 결과에 기초하여, 상기 제어서버가 재수신된 스크립트에 포함된 상기 적어도 하나의 명령어를 대상 금지 명령어와 대상 허용 명령어로 분류하는 단계; 상기 변환규칙 데이터베이스부에 기초해, 상기 제어서버가 재수신된 스크립트에 포함된 상기 개별 금지 명령어 및 대상 금지 명령어를 매칭되는 다른 형태의 대체 명령어로 대체하여, 상기 재수신된 스크립트를 재구성하는 단계; 및 상기 제어서버가 상기 대상서버에 상기 재구성 스크립트의 실행을 요청하는 단계를 더 포함할 수 있다.Further, the step of requesting, by the control server, a test of whether or not the test command is allowed to the target server; Classifying, by the control server, the at least one command included in the re-received script into a target prohibition command and a target allow command based on the test result; Reconfiguring the re-received script by replacing the individual prohibition command and the target prohibition command included in the re-received script by the control server based on the conversion rule database unit with a matching alternative command; And requesting, by the control server, to execute the reconfiguration script from the target server.

또한, 기존의 대상 금지 명령어 리스트에 재수신된 스크립트에 포함된 대상 금지 명령어를 포함시켜 새로운 대상 금지 명령어 리스트를 생성하는 단계; 및 기존의 대상 허용 명령어 리스트에 재수신된 스크립트에 포함된 대상 허용 명령어를 포함시켜 새로운 대상 허용 명령어 리스트를 생성하는 단계를 더 포함할 수 있다. In addition, generating a new target prohibition command list by including the target prohibition command included in the re-received script in the existing target prohibition command list; And generating a new target allowed command list by including the target allowed command included in the re-received script in the existing target allowed command list.

이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.In addition to this, another method for implementing the present invention, another system, and a computer-readable recording medium for recording a computer program for executing the method may be further provided.

상기와 같은 본 발명에 따르면, 진단 스크립트의 실행 전, 진단 대상 서버에서 실행이 금지되는 명령어를 대체하여 진단결과가 정상적으로 도출되지 않는 것을 예방할 수 있다. According to the present invention as described above, it is possible to prevent the diagnosis result from being normally derived by replacing a command that is prohibited from being executed in the diagnosis target server before execution of the diagnosis script.

또한, 본 발명에 따르면, 진단 스크립트의 실행 전, 진단 대상 서버에 손상을 줄 가능성이 있는 명령어를 대체하여 진단결과가 정상적으로 도출되지 않거나 진단 서버에 손상이 발생되는 것을 예방할 수 있다. In addition, according to the present invention, it is possible to prevent the diagnosis result from being normally derived or damage to the diagnosis server by replacing a command that may damage the diagnosis target server before execution of the diagnosis script.

또한, 본 발명에 따르면, 진단 서버에서 허용되는 명령어 중 위험성이 존재하는 명령어와 그 위험성을 진단 서버에 통지하여, 진단 서버가 위험성이 존재하는 명령어에 대한 실행을 제한하도록 유도할 수 있다. In addition, according to the present invention, it is possible to induce the diagnostic server to limit execution of dangerous commands by notifying the diagnosis server of the dangerous commands and the risks among commands allowed in the diagnosis server.

또한, 본 발명에 따르면, 진단 대상 서버별로 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트를 관리하고, 추후 동일한 스크립트가 재실행되는 경우, 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트에 기초하여 명령어를 대체하여 실행할 수 있다. 이를 통해, 진단 대상 서버에 대한 진단 스크립트의 재실행시, 명령어 대체를 처리하는 속도가 향상될 수 있다. In addition, according to the present invention, the target prohibited command list and the target allowed command list are managed for each diagnosis target server, and when the same script is executed again later, the command may be replaced and executed based on the target prohibited command list and the target allowed command list. have. Through this, when the diagnostic script for the diagnosis target server is re-executed, the speed of processing command substitution may be improved.

또한, 본 발명에 따르면, 추후 기존과 다른 스크립트가 재실행 되는 경우, 전체 명령어에서 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트에 포함되지 않은 테스트 명령어를 분류하고, 테스트 명령어만을 대상을 하여 금지 명령어 및 허용 명령어의 판단을 수행한다. 이를 통해, 판단을 처리하는 속도가 향상될 수 있다. In addition, according to the present invention, when a script different from the existing one is re-executed in the future, the test commands not included in the target prohibited command list and the target allowed command list are classified from all commands, and only the test commands are subject to prohibition commands and allowed commands Carry out the judgment of Through this, the speed of processing the judgment can be improved.

또한, 본 발명에 따르면, 새로운 스크립트에서 분류된 금지 명령어를 기존의 대상 금지 명령어 리스트에 추가하여 업데이트할 수 있다. 즉, 서로 다른 다양한 보안 스크립트가 실행될 때마다, 대상 서버에서 실행 제한하는 금지 명령어들이 지속적으로 수집되어 관리될 수 있다. In addition, according to the present invention, it is possible to update the prohibited command classified in the new script by adding it to the existing target prohibited command list. That is, whenever various different security scripts are executed, prohibited commands that restrict execution in the target server may be continuously collected and managed.

또한, 본 발명에 따르면, 새로운 스크립트에서 분류된 허용 명령어를 기존의 대상 허용 명령어 리스트에 추가하여 업데이트할 수 있다. 즉, 서로 다른 다양한 보안 스크립트가 실행될 때마다, 대상 서버에서 실행 허용되는 허용 명령어들이 지속적으로 수집되어 관리될 수 있다.In addition, according to the present invention, it is possible to update the allowed commands classified in the new script by adding them to the existing target allowed command list. That is, whenever various different security scripts are executed, allowable commands allowed to be executed in the target server may be continuously collected and managed.

결과적으로, 새로운 스크립트가 실행될수록 진단의 처리속도가 향상될 수 있다. As a result, as a new script is executed, the diagnostic processing speed can be improved.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명에 따른 위험성 명령어 차단 및 대체 시스템의 구성을 도시하는 블록도이다.
도 2는 본 발명의 실시 예에 따른 위험성 명령어 차단 및 대체 방법의 일부 과정(S1)을 도시하는 흐름도이다.
도 3은 도 2에 따른 S23단계의 실행과정을 도시하는 개념도이다.
도 4는 도 2에 따른 S31단계의 실행과정을 도시하는 개념도이다.
도 5는 도 2에 따른 S41단계 및 S42단계의 실행과정을 도시하는 개념도이다.
도 6은 도 2에 따른 S61단계의 구체적인 과정을 도시하는 흐름도이다.
도 7은 본 발명의 실시 예에 따른 위험성 명령어 차단 및 대체 방법의 일부 과정(S2)을 도시하는 흐름도이다.
도 8은 본 발명의 실시 예에 따른 위험성 명령어 차단 및 대체 방법의 일부 과정(S3)을 도시하는 흐름도이다.
도 9는 도 8에 따른 S220단계의 실행과정을 도시하는 개념도이다.
도 10은 도 8에 따른 S240단계의 실행과정을 도시하는 개념도이다.
도 11은 도 8에 따른 S310단계 및 S320단계의 실행과정을 도시하는 개념도이다.
도 12는 도 1에 따른 스크립트 제어 서버(20)의 구성을 도시하는 블록도이다.
1 is a block diagram showing the configuration of a system for blocking and replacing dangerous commands according to the present invention.
2 is a flowchart illustrating a partial process (S1) of a method for blocking and replacing dangerous commands according to an embodiment of the present invention.
3 is a conceptual diagram showing an execution process of step S23 according to FIG. 2.
4 is a conceptual diagram showing an execution process of step S31 according to FIG. 2.
5 is a conceptual diagram showing an execution process of steps S41 and S42 according to FIG. 2.
6 is a flowchart showing a specific process of step S61 according to FIG. 2.
7 is a flowchart illustrating a partial process (S2) of a method for blocking and replacing dangerous commands according to an embodiment of the present invention.
8 is a flowchart illustrating a partial process (S3) of a method for blocking and replacing dangerous commands according to an embodiment of the present invention.
9 is a conceptual diagram showing an execution process of step S220 according to FIG. 8.
10 is a conceptual diagram illustrating an execution process of step S240 according to FIG. 8.
11 is a conceptual diagram illustrating an execution process of steps S310 and S320 according to FIG. 8.
12 is a block diagram showing the configuration of the script control server 20 according to FIG. 1.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in a variety of different forms. It is provided to fully inform the skilled person of the scope of the present invention, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terms used in the present specification are for describing exemplary embodiments and are not intended to limit the present invention. In this specification, the singular form also includes the plural form unless specifically stated in the phrase. As used in the specification, “comprises” and/or “comprising” do not exclude the presence or addition of one or more other elements other than the mentioned elements. Throughout the specification, the same reference numerals refer to the same elements, and "and/or" includes each and all combinations of one or more of the mentioned elements. Although "first", "second", and the like are used to describe various elements, it goes without saying that these elements are not limited by these terms. These terms are only used to distinguish one component from another component. Therefore, it goes without saying that the first component mentioned below may be the second component within the technical idea of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in the present specification may be used with meanings that can be commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not interpreted ideally or excessively unless explicitly defined specifically.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

1. 본 발명의 실시 예에 따른 스크립트를 이용한 보안 취약점 진단 시1. When diagnosing security vulnerabilities using a script according to an embodiment of the present invention 위험성 명령어 차단 및 대체 방법(이하, "위험성 명령어 차단 및 대체 방법")에 대한 설명Description of how to block and replace dangerous commands (hereinafter, "How to block and replace dangerous commands")

도 1을 참조하면, 본 발명의 실시 예에 따른 위험성 명령어 차단 및 대체 방법은 서로 통신 가능한 사용자 단말(10), 스크립트 제어 서버(20) 및 대상 서버(30)의 정보 교환을 통해 수행된다. Referring to FIG. 1, a method of blocking and replacing dangerous commands according to an embodiment of the present invention is performed through information exchange between a user terminal 10 capable of communicating with each other, a script control server 20, and a target server 30.

사용자 단말(10), 스크립트 제어 서버(20) 및 대상 서버(30)는 각각 정보를 전송하고 수신하기 위한 통신부, 정보를 연산하기 위한 프로세서 및 정보를 저장하기 위한 메모리(또는 데이터베이스)를 포함할 수 있다.The user terminal 10, the script control server 20, and the target server 30 may each include a communication unit for transmitting and receiving information, a processor for calculating information, and a memory (or database) for storing information. have.

사용자 단말(10)은 스크립트 제어 서버(20)로 취약점 진단 스크립트의 실행을 요청할 수 있다. The user terminal 10 may request the script control server 20 to execute a vulnerability diagnosis script.

일 실시 예에서, 사용자 단말(10)에서 취약점 진단 스크립트를 스크립트 제어 서버(20)로 전송할 수 있다. 또한, 사용자 단말(10)의 요청에 따라 스크립트 제어 서버(20)에 기존에 저장되어 있던 취약점 진단 스크립트가 사용될 수 있다. In an embodiment, the user terminal 10 may transmit a vulnerability diagnosis script to the script control server 20. In addition, a vulnerability diagnosis script previously stored in the script control server 20 may be used according to the request of the user terminal 10.

스크립트 제어 서버(20)는 취약점 진단 스크립트에서 명령어를 추출하며, 추출된 명령어를 다른 명령어로 대체해야 하는 명령어 또는 있는 그대로 실행가능한 명령어로 분류하고, 다른 명령어로 대체해야 하는 명령어에 대한 대체를 수행한다. The script control server 20 extracts commands from the vulnerability diagnosis script, classifies the extracted commands as commands that need to be replaced with other commands or as executable commands, and performs substitution for commands that need to be replaced with other commands. .

또한, 스크립트 제어 서버(20)는 명령어를 대체하여 스크립트를 재구성한 후, 재구성된 스크립트를 대상 서버(30)에 전송하고, 대상 서버(30)로부터 진단 결과를 수신받는다. In addition, the script control server 20 replaces the command and reconfigures the script, then transmits the reconfigured script to the target server 30, and receives a diagnosis result from the target server 30.

또한, 스크립트 제어 서버(20)는 대상 서버(30) 별로 다른 명령어로 대체해야 하는 명령어 리스트를 생성하여 관리할 수 있다. In addition, the script control server 20 may generate and manage a command list that should be replaced with a different command for each target server 30.

대상 서버(30)는 스크립트 제어 서버(20)로부터 스크립트에 포함된 명령어에 대한 검색 요청을 수신하고, 스크립트에 포함된 명령어를 대상 서버(30)에서 실행이 제한된 명령어 및 실행이 가능한 명령어로 분류하며, 분류된 결과를 스크립트 제어 서버(20)에 전송한다.The target server 30 receives a search request for commands included in the script from the script control server 20, and classifies the commands included in the script into commands that are restricted to be executed and commands that can be executed in the target server 30, and , And transmits the classified result to the script control server 20.

또한, 대상 서버(30)는 스크립트 제어 서버(20)로부터 재구성된 스크립트를 전송받고, 전송받은 스크립트를 실행하여 취약점 진단을 수행하며, 수행 결과를 스크립트 제어 서버(20)에 전송한다. In addition, the target server 30 receives the reconstructed script from the script control server 20, executes the received script to perform vulnerability diagnosis, and transmits the execution result to the script control server 20.

아래에서는, 본 발명의 실시 예에 따른 위험성 명령어 차단 및 대체 방법의 구체적인 단계(S1, S2, S3)에 대해 설명한다. In the following, specific steps (S1, S2, S3) of the method of blocking and replacing dangerous commands according to an embodiment of the present invention will be described.

(1) 위험 진단 스크립트의 최초 실행 시 위험성 명령어 차단 및 대체 방법(S1)에 대한 설명(1) Explanation of the method of blocking and replacing dangerous commands (S1) when executing the risk diagnosis script for the first time

아래에서는, 도 2 내지 도 6을 참조하여 위험 진단 스크립트의 최초 실행 시 위험성 명령어 차단 및 대체 방법(S1)에 대해 구체적으로 설명한다.Hereinafter, a method (S1) of blocking and replacing dangerous commands when the risk diagnosis script is initially executed will be described in detail with reference to FIGS. 2 to 6.

도 2를 참조하면, 사용자 단말(10)이 스크립트 제어 서버(20)로 스크립트 실행 요청을 전송한다(S11). 2, the user terminal 10 transmits a script execution request to the script control server 20 (S11).

또한, 스크립트 실행 요청과 함께 스크립트 제어 서버(20)가 사용자 단말(10)로부터 스크립트를 수신한다(S12).In addition, along with the script execution request, the script control server 20 receives the script from the user terminal 10 (S12).

다만, 도시되지 않은 실시 예에서, 스크립트 제어 서버(20)는 사용자 단말(10)의 요청에 따라 스크립트 제어 서버(20)에 저장된 스크립트를 사용할 수 있다. However, in an embodiment not shown, the script control server 20 may use a script stored in the script control server 20 at the request of the user terminal 10.

스크립트가 수신되면, 스크립트 제어 서버(20)는 스크립트에서 명령어를 추출한다(S21). When the script is received, the script control server 20 extracts a command from the script (S21).

스크립트에는 명령어, 변수 등이 포함되며, 스크립트 제어 서버(20)는 명령어 대체 여부에 대한 판단을 위해 스크립트에서 명령어를 추출한다. The script includes commands, variables, and the like, and the script control server 20 extracts commands from the script to determine whether or not to replace the commands.

명령어가 추출되면, 스크립트 제어 서버(20)는 추출된 명령어를 대상 서버(30)에 전송하고, 추출된 명령어에 대상 서버(30)에서 실행이 제한되는 대상 금지 명령어가 포함되는지 여부에 대한 검색을 요청한다. When the command is extracted, the script control server 20 transmits the extracted command to the target server 30, and searches for whether the extracted command includes a target prohibition command that is restricted execution in the target server 30. request.

스크립트 제어 서버(20)에서 명령어가 수신되면, 대상 서버(30)가 수신된 명령어에 대한 분류를 수행한다.When a command is received from the script control server 20, the target server 30 classifies the received command.

구체적으로, 대상 서버(30)는 수신된 명령어를 대상 금지 명령어와 대상 허용 명령어로 분류한다(S23). Specifically, the target server 30 classifies the received command into a target prohibition command and a target allow command (S23).

대상 금지 명령어는 스크립트에 의해 진단이 수행될 대상 서버(30)에서 관리자에 의해 실행이 제한된 명령어를 의미하고, 대상 허용 명령어는 실행 제한 없이 대상 서버(30)에서 수행될 수 있는 명령어를 의미한다.The target prohibition command refers to a command that is restricted to be executed by an administrator in the target server 30 to be diagnosed by a script, and the target allow command refers to a command that can be executed by the target server 30 without execution restrictions.

도 3을 참조하면, 분류를 수행하는 과정이 개념적으로 도시된다. 대상 서버(30)는 수신된 명령어들에 대한 테스트 실행을 통해, 명령어들을 대상 금지 명령어와 대상 허용 명령어로 분류한다.Referring to FIG. 3, a process of performing classification is conceptually illustrated. The target server 30 classifies the commands into target prohibition commands and target allow commands through test execution of the received commands.

다시 도 2를 참조하면, 대상 서버(30)에서 분류된 결과가 스크립트 제어 서버(20)로 전송된다. 즉, 대상 서버(30)에서 대상 금지 명령어 및 대상 허용 명령어가 스크립트 제어 서버(20)로 전송된다. Referring back to FIG. 2, the result classified by the target server 30 is transmitted to the script control server 20. That is, the target prohibition command and the target allow command are transmitted from the target server 30 to the script control server 20.

대상 금지 명령어와 대상 허용 명령어가 수신되면, 스크립트 제어 서버(20)는 대상 허용 명령어 중 대상 서버(30)에 손상을 가할 수 있는 위험 명령어가 존재하는지 판단한다(S31). When the target prohibition command and the target allow command are received, the script control server 20 determines whether there is a dangerous command that may damage the target server 30 among the target allow commands (S31).

이를 위하여, 스크립트 제어 서버(20)에는 기 설정된 일반 금지 명령어 리스트가 저장된다. 일반 금지 명령어 리스트에는 서버에 손상을 가할 수 있는 복수의 위험한 명령어가 기 선별되어 포함된다. To this end, the script control server 20 stores a preset list of general prohibition commands. The list of general prohibited commands includes pre-selected multiple dangerous commands that can damage the server.

스크립트 제어 서버(20)는 일반 금지 명령어 리스트와 대상 허용 명령어를 비교하여, 일반 금지 명령어 리스트에 포함된 명령어와 일치하는 명령어를 위험 명령어로, 일치하지 않는 명령어를 비위험 명령어로 분류한다. The script control server 20 compares the general prohibition instruction list and the target allowable instruction, and classifies a command that matches the instruction included in the general prohibition instruction list as a dangerous instruction, and classifies the unmatched instruction as a non-dangerous instruction.

도 4를 참조하면, 분류를 수행하는 과정이 개념적으로 도시된다. 일반 금지 명령어 리스트에 포함되는지 여부에 따라 대상 허용 명령어가 위험 명령어 또는 비위험 명령어로 분류된다. Referring to FIG. 4, a process of performing classification is conceptually illustrated. Depending on whether or not it is included in the general prohibited command list, the target allowed commands are classified as dangerous commands or non-hazardous commands.

다시 도 2를 참조하면, 스크립트 제어 서버(20)는 분류된 위험 명령어를 위험성의 정도에 따라 분류한다(S32).Referring back to FIG. 2, the script control server 20 classifies the classified dangerous commands according to the degree of risk (S32).

일 실시 예에서, 위험 명령어는 read 명령어, write 명령어 및 delete 명령어로 구분될 수 있다. delete 명령어는 삭제권한이 있는 명령어를 의미하며, write 명령어는 수정권한이 있는 명령어, read 명령어는 읽기기능이 있는 명령어를 의미한다. 읽기, 수정, 삭제 순으로 위험성이 증가된다. In one embodiment, the dangerous command may be divided into a read command, a write command, and a delete command. The delete command refers to a command with delete permission, the write command refers to a command with edit authority, and the read command refers to a command with read function. The risk increases in the order of reading, editing, and deletion.

위험 명령어의 분류가 완료되면, 스크립트 제어 서버(20)는 분류된 위험 명령어와 위험 명령어의 분류 결과를 대상 서버(30)에 전송한다(S33).When the classification of the dangerous command is completed, the script control server 20 transmits the classified dangerous command and the classification result of the dangerous command to the target server 30 (S33).

예를 들어, 대상 서버(30)에서 "rm" 명령어가 허용 명령어로 분류된 경우, 스크립트 제어 서버(20)가 "rm" 명령어가 위험 명령어에 해당하고, delete 명령어로 분류할 수 있다. 따라서, 스크립트 제어 서버(20)는 "rm" 명령어가 서버에 손상을 가할 수 있는 위험 명령어에 해당되며, 삭제 기능을 갖는 delete 명령어에 해당됨을 대상 서버(30)에 전송할 수 있다. For example, when the "rm" command is classified as an allowable command in the target server 30, the script control server 20 may classify the "rm" command as a dangerous command and classify it as a delete command. Accordingly, the script control server 20 may transmit to the target server 30 that the "rm" command corresponds to a dangerous command that may damage the server and corresponds to a delete command having a delete function.

이를 통해, 대상 서버(30)의 관리자는 위험 명령어에 대하여 검토한 후, 위험 명령어의 실행을 추가적으로 제한할 수 있다. 그 결과, 추후에 위험 명령어가 포함된 스크립트에 의해 대상 서버(30)가 손상되는 것을 예방할 수 있다.Through this, the administrator of the target server 30 may additionally restrict execution of the dangerous command after reviewing the dangerous command. As a result, it is possible to prevent the target server 30 from being damaged by a script including a dangerous command in the future.

또한, 스크립트 제어 서버(20)는 수신된 명령어 중 대상 금지 명령어 및 위험 명령어에 해당되는 명령어를 대체 명령어로 변환한다(S41). In addition, the script control server 20 converts a command corresponding to a target prohibition command and a dangerous command among the received commands into a replacement command (S41).

"대상 금지 명령어 및 위험 명령어"와 "대체 명령어"의 변환은 기 설정된 매칭 룰에 의해 수행될 수 있다. Conversion of "target prohibition instruction and danger instruction" and "substitute instruction" may be performed according to a preset matching rule.

도 5를 참조하면, "대상 금지 명령어 및 위험 명령어"와 대체 명령어의 변환 규칙이 도시된다.Referring to FIG. 5, a conversion rule of a "target prohibition instruction and a danger instruction" and a replacement instruction is shown.

먼저, 스크립트 제어 서버(20)는 동일한 기능을 수행하지만 서로 다른 형태의 명령어가 서로 매칭되어 저장된 변환규칙 데이터베이스를 포함한다. 변환규칙 데이터베이스에는 서로 다른 형태의 명령어가 서로 매칭될 뿐 아니라 변환 룰(Rule)도 함께 매칭되어 저장된다.First, the script control server 20 performs the same function, but includes a conversion rule database in which different types of commands are matched with each other and stored. In the conversion rule database, commands of different types are not only matched with each other, but also conversion rules are matched and stored.

도시된 실시 예에서, 대상 금지 명령어 또는 위험 명령어에 해당하는 "cat"과 대체 명령어에 해당하는 "echo"가 서로 매칭되어 저장될 수 있다. 또한, 매칭된 두 명령어를 변환시키는 룰도 함께 저장되는데, "cat"은 "cat 파일명"의 형태로 실행었다면, "echo"는 "echo $(<%파일명%)"의 형태로 실행될 수 있다. In the illustrated embodiment, "cat" corresponding to the target prohibition command or the danger command and "echo" corresponding to the replacement command may be matched and stored. In addition, rules for converting two matched commands are also stored. If "cat" is executed in the form of "cat file name", "echo" can be executed in the form of "echo $(<% file name%)".

즉, 변환규칙 데이터베이스에 기초하여, 스크립트 제어 서버(20)는 매칭된 두 명령어의 텍스트와 실행 형태를 변환한다. That is, based on the conversion rule database, the script control server 20 converts the text and execution form of the matched two commands.

대상 금지 명령어 및 위험 명령어에는 주로 진단 대상 서버(30)에 손상을 가할 수 있는 명령어가 포함될 수 있다. 예를 들어, 대상 금지 명령어에는 파일 또는 디렉토리를 삭제시키는 "rm"이 포함될 수 있다. "rm"에 의해 삭제된 파일 또는 디렉토리는 복구가 불가능하므로 진단 대상에 손상을 가할 수 있다.The target prohibition command and the risk command may mainly include commands that may damage the diagnosis target server 30. For example, the target prohibition command may include "rm" for deleting a file or directory. Since files or directories deleted by "rm" cannot be recovered, they may damage the diagnosis target.

"rm"이 대상 서버(30)에서 대상 금지 명령어로 등록되어 있는 경우, 스크립트 제어 서버(20)는 변환규칙 데이터베이스에 기초하여, "rm"을 "rm"과 매칭되는 대체 명령어로 변환한다. When "rm" is registered as a target prohibition command in the target server 30, the script control server 20 converts "rm" into a replacement command matching "rm" based on the conversion rule database.

다시 도 2를 참조하면, 스크립트 제어 서버(20)가 대상 서버(30)에 재구성 스크립트의 실행을 요청하고(S51), 대상 서버(30)는 이를 실행하며(S52), 재구성 스크립트의 실행에 따라 도출된 진단 결과를 스크립트 제어 서버(20)에 전송한다(S53). Referring back to FIG. 2, the script control server 20 requests the target server 30 to execute the reconfiguration script (S51), and the target server 30 executes it (S52), according to the execution of the reconfiguration script. The derived diagnosis result is transmitted to the script control server 20 (S53).

또한, 스크립트 제어 서버(20)는 대상 서버(30) 별로 대상 금지 명령어 리스트를 만들어 별도로 관리할 수 있다.In addition, the script control server 20 may create a target prohibition command list for each target server 30 and separately manage it.

스크립트 제어 서버(20)는 대상 금지 명령어 및 위험 명령어를 일반 금지 명령어 리스트와 비교하여 대상 금지 명령어 리스트를 생성한다(S61).The script control server 20 generates a target prohibition command list by comparing the target prohibition command and the dangerous command with the general prohibition command list (S61).

도 6을 참조하면, S61단계의 구체적인 흐름이 도시된다. 6, a detailed flow of step S61 is shown.

먼저, 스크립트 제어 서버(20)는 대상 서버(30)에 대한 테스트를 통해 도출된 대상 금지 명령어 및 위험 명령어 중, 기 설정된 일반 금지 명령어 리스트에 포함되는 명령어가 있는지 판단한다(S611). First, the script control server 20 determines whether there is a command included in a preset general prohibition command list among target prohibition commands and dangerous commands derived through a test on the target server 30 (S611).

포함되지 않는 명령어가 있는 경우, 해당 명령어를 일반 금지 명령어 리스트에 포함시켜 대상 금지 명령어 리스트를 생성한다(S612). If there is a command that is not included, the target prohibition command list is generated by including the command in the general prohibition command list (S612).

포함되지 않는 명령어가 없는 경우, 기 설정된 일반 금지 명령어 리스트와 동일한 대상 금지 명령어 리스트를 생성한다(S613). If there is no command that is not included, a target prohibition instruction list identical to a preset general prohibition instruction list is generated (S613).

이를 통해, 대상 서버(30) 별로 별도의 대상 금지 명령어 리스트를 생성하여 관리할 수 있다. Through this, it is possible to create and manage a separate target prohibition command list for each target server 30.

또한, 스크립트 제어 서버(20)는 수신된 대상 허용 명령어에 기초하여 대상 허용 명령어 리스트를 생성한다(S62).In addition, the script control server 20 generates a target allowed command list based on the received target allowed command (S62).

기존에 진단을 수행했던 대상 서버(30)에 대한 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트가 생성되므로, 기존에 진단을 수행했던 대상 서버(30)에 대해 재진단을 수행하는 경우, 진단을 보다 효율적으로 수행할 수 있다. Since the target prohibition command list and the target allow command list for the target server 30 that previously performed the diagnosis are generated, when re-diagnosing the target server 30 that has previously performed the diagnosis, the diagnosis is more efficient. Can be done with

도 7을 참조하면, 기존에 진단을 수행했던 대상 서버(30)에 대해 동일한 스크립트로 재진단을 수행하는 경우, 위험성 명령어 차단 및 대체하는 과정이 도시된다.Referring to FIG. 7, when re-diagnosis is performed with the same script for the target server 30 that has previously performed diagnosis, a process of blocking and replacing dangerous commands is illustrated.

(2) 동일한 스크립트에 의한 재진단시, 위험성 명령어 차단 및 대체 방법(S2)의 설명(2) When re-diagnosis by the same script, explanation of the method of blocking and replacing dangerous commands (S2)

도 7을 참조하면, S1단계가 완료된 이후에, 사용자 단말(10)에서 스크립트 제어 서버(20)로 스크립트 실행요청을 전송한다(S71).Referring to FIG. 7, after step S1 is completed, a script execution request is transmitted from the user terminal 10 to the script control server 20 (S71).

스크립트 제어 서버(20)는 사용자 단말(10)로부터 스크립트를 수신한다(S72).The script control server 20 receives a script from the user terminal 10 (S72).

일 실시 예에서, 스크립트 제어 서버(20)는 사용자 단말(10)로부터 수신된 요청에 따라 스크립트 제어 서버(20)에 저장되어 있던 스크립트를 사용할 수 있다.In an embodiment, the script control server 20 may use a script stored in the script control server 20 according to a request received from the user terminal 10.

스크립트가 수신되면, 스크립트 제어 서버(20)가 수신된 스크립트로부터 명령어를 추출한다(S73). When the script is received, the script control server 20 extracts a command from the received script (S73).

일 실시 예에서, 스크립트 제어 서버(20)는 기존에 추출하였던 명령어를 사용할 수 있다.In one embodiment, the script control server 20 may use commands that have been previously extracted.

명령어가 추출되면, 스크립트 제어 서버(20)는 수신된 스크립트가 기존에 수신되었던 스크립트와 동일한 것인지 판단한다(S74). When the command is extracted, the script control server 20 determines whether the received script is the same as the previously received script (S74).

일 실시 예에서, 스크립트 제어 서버(20)는 추출된 명령어 중 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트에 포함되지 않는 명령어가 있는지 여부를 판단하고, 추출된 모든 명령어가 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트에 포함되는 경우, 수신된 스크립트를 기존의 스크립트와 동일한 것으로 판단할 수 있다. In one embodiment, the script control server 20 determines whether there are commands that are not included in the target prohibited command list and the target allowed command list among the extracted commands, and all extracted commands are the target prohibited command list and the target allowed command. When included in the list, the received script may be determined to be the same as the existing script.

동일한 스크립트로 판단된 경우, 스크립트 제어 서버(20)는 기 생성된 대상 금지 명령어 리스트를 사용하여 스크립트를 재구성할 수 있다. If it is determined to be the same script, the script control server 20 may reconstruct the script using a previously generated target prohibition command list.

명령어가 추출되면, 스크립트 제어 서버(20)는 대상 금지 명령어 리스트에 포함된 명령어를 대체 명령어로 변환하고(S81), 변환된 대체 명령어로 스크립트를 재구성한다(S82). When the command is extracted, the script control server 20 converts the command included in the target prohibited command list into a replacement command (S81), and reconstructs the script with the converted replacement command (S82).

대상 금지 명령어 리스트에 포함된 명령어를 대체 명령어로 변환하는 과정은 상술한 S41 단계 및 S42 단계와 동일하게 수행될 수 있다. 즉, 대상 금지 명령어 리스트에 포함된 명령어를 변환규칙 데이터베이스에 기초하여 대체 명령어로 변환한다. The process of converting the command included in the target prohibited command list into a replacement command may be performed in the same manner as steps S41 and S42 described above. That is, the command included in the target prohibited command list is converted into a replacement command based on the conversion rule database.

대상 서버(30)와의 정보교환 없이, 기존에 미리 생성해두었던 대상 금지 명령어 리스트를 활용하여 스크립트를 재구성하므로, 스크립트를 재구성하는 처리 속도가 향상될 수 있다. Without exchanging information with the target server 30, since the script is reconstructed using the target prohibition command list previously generated, the processing speed for reconfiguring the script may be improved.

스크립트 제어 서버(20)는 재구성된 스크립트를 대상 서버(30)에 전송하고, 이에 대한 실행을 요청한다(S91). 대상 서버(30)는 수신된 재구성 스크립트를 실행하고(S92), 실행 결과를 스크립트 제어 서버(20)에 전송한다(S93).The script control server 20 transmits the reconfigured script to the target server 30 and requests execution thereof (S91). The target server 30 executes the received reconfiguration script (S92), and transmits the execution result to the script control server 20 (S93).

(3) 상이한 스크립트에 의한 재진단시, 위험성 명령어 차단 및 대체 방법(S3)의 설명(3) When re-diagnosis by different scripts, explanation of the method of blocking and replacing dangerous commands (S3)

도 8을 참조하면, 기존에 진단을 실시한 대상 서버(30)에 대해 기존과 상이한 스크립트에 의해 진단을 수행하는 경우, 위험성 명령어 차단 및 대체 과정이 구체적으로 도시된다. Referring to FIG. 8, when the diagnosis is performed by a script different from the existing one on the target server 30 that has previously been diagnosed, a process of blocking and replacing dangerous commands is shown in detail.

먼저, S1단계가 완료된 이후에, 사용자 단말(10)에서 스크립트 제어 서버(20)로 스크립트 실행요청을 전송한다(S71).First, after step S1 is completed, a script execution request is transmitted from the user terminal 10 to the script control server 20 (S71).

스크립트 제어 서버(20)는 사용자 단말(10)로부터 스크립트를 수신한다(S72).The script control server 20 receives a script from the user terminal 10 (S72).

일 실시 예에서, 스크립트 제어 서버(20)는 사용자 단말(10)로부터 수신된 요청에 따라 스크립트 제어 서버(20)에 저장되어 있던 스크립트를 사용할 수 있다.In an embodiment, the script control server 20 may use a script stored in the script control server 20 according to a request received from the user terminal 10.

스크립트가 수신되면, 스크립트 제어 서버(20)가 수신된 스크립트로부터 명령어를 추출한다(S73). When the script is received, the script control server 20 extracts a command from the received script (S73).

일 실시 예에서, 스크립트 제어 서버(20)는 기존에 추출하였던 명령어를 사용할 수 있다.In one embodiment, the script control server 20 may use commands that have been previously extracted.

명령어가 추출되면, 스크립트 제어 서버(20)는 수신된 스크립트가 기존에 수신되었던 스크립트와 동일한 것인지 판단한다(S74). When the command is extracted, the script control server 20 determines whether the received script is the same as the previously received script (S74).

일 실시 예에서, 스크립트 제어 서버(20)는 추출된 명령어 중 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트에 포함되지 않는 명령어가 있는지 여부를 판단하고, 포함되지 않는 명령어가 있는 경우, 수신된 스크립트를 기존의 스크립트와 동일하지 않은 것으로 판단할 수 있다. In one embodiment, the script control server 20 determines whether there are commands not included in the target prohibited command list and the target allowed command list among the extracted commands, and if there is a command not included, the received script is It can be determined that it is not the same as the script of.

스크립트 제어 서버(20)가 스크립트가 동일하지 않은 것으로 판단되면, 기 생성한 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트를 활용하여 대상 서버(30)에 검색을 요청할 명령어의 범위를 축소한다. If the script control server 20 determines that the script is not the same, it reduces the range of commands to request a search from the target server 30 by using the previously generated target prohibited command list and target allowed command list.

스크립트 제어 서버(20)가 추출된 명령어를 개별 금지 명령어, 개별 허용 명령어 및 테스트 명령어로 분류한다(S220).The script control server 20 classifies the extracted command into an individual prohibition command, an individual permission command, and a test command (S220).

개별 금지 명령어는 추출된 명령어 중 기 생성된 대상 금지 명령어 리스트에 포함된 명령어를 의미하며, 개별 허용 명령어는 추출된 명령어 중 기 생성된 대상 허용 명령어 리스트에 포함된 명령어를 의미하고, 테스트 명령어는 포함되지 않은 명령어를 의미한다.Individual prohibition instructions refer to commands included in the previously generated target prohibition command list among the extracted commands, and individual allow commands refer to commands included in the pre-generated target prohibition command list among the extracted commands, and test commands are included. It means a command that is not available.

도 9를 참조하면, 테스트 명령어를 개별 금지 명령어, 개별 허용 명령어 및 테스트 명령어로 분류하는 과정이 개념적으로 도시된다. Referring to FIG. 9, a process of classifying a test instruction into an individual prohibition instruction, an individual allow instruction, and a test instruction is conceptually illustrated.

분류가 완료되면, 스크립트 제어 서버(20)는 대상 서버(30)로 테스트 명령어를 전송하고, 테스트 명령어에 금지 명령어가 포함되는지 여부에 대한 검색을 요청한다(S230). When the classification is completed, the script control server 20 transmits a test command to the target server 30 and requests a search for whether a prohibition command is included in the test command (S230).

대상 서버(30)는 수신된 테스트 명령어를 대상 금지 명령어 및 대상 허용 명령어로 분류한다(S240). The target server 30 classifies the received test command into a target prohibition command and a target allow command (S240).

도 10을 참조하면, 분류를 수행하는 과정이 개념적으로 도시된다. 대상 서버(30)는 수신된 테스트 명령어들에 대한 테스트 실행을 통해, 테스트 명령어들을 대상 금지 명령어와 대상 허용 명령어로 분류한다.Referring to FIG. 10, a process of performing classification is conceptually illustrated. The target server 30 classifies the test commands into a target prohibition command and a target allow command through test execution on the received test commands.

다시 도 8을 참조하면, 대상 서버(30)가 대상 금지 명령어와 대상 허용 명령어로 분류된 명령어들을 스크립트 제어 서버(20)로 전송한다(S250). Referring to FIG. 8 again, the target server 30 transmits commands classified as target prohibition commands and target allow commands to the script control server 20 (S250).

스크립트 제어 서버(20)는 개별 금지 명령어 및 수신된 대상 금지 명령어를 대체 명령어로 변환하고(S310), 변환된 대체 명령어로 스크립트를 재구성한다(S320). The script control server 20 converts the individual prohibition command and the received target prohibition command into a replacement command (S310), and reconstructs the script with the converted replacement command (S320).

도 11을 참조하면, 개별 금지 명령어 및 대상 금지 명령어를 대체 명령어로 변환하는 과정이 개념적으로 도시된다. Referring to FIG. 11, a process of converting an individual prohibition instruction and a target prohibition instruction into a replacement instruction is conceptually illustrated.

개별 금지 명령어 및 대상 금지 명령어를 대체 명령어로 변환하는 과정은 상술한 S41 단계 및 S42 단계와 동일하게 수행될 수 있다. 즉, 개별 금지 명령어 및 대상 금지 명령어를 변환규칙 데이터베이스에 기초하여 대체 명령어로 변환한다. The process of converting the individual prohibition instruction and the target prohibition instruction into a replacement instruction may be performed in the same manner as steps S41 and S42 described above. That is, the individual prohibition instruction and the target prohibition instruction are converted into replacement instructions based on the conversion rule database.

대상 금지 명령어 리스트 및 대상 허용 명령어 리스트와의 비교를 통해, 대상 서버(30)로 전송하여 테스트받을 명령어의 수가 1차적으로 감축되므로, 대상 서버(30)를 통해 대상 금지 명령어 및 대상 허용 명령어를 분류하는 처리 속도가 향상될 수 있다. By comparing the target prohibited command list and the target allowed command list, the number of commands transmitted to the target server 30 to be tested is primarily reduced, so the target prohibited command and the target allowed command are classified through the target server 30 Processing speed can be improved.

스크립트 제어 서버(20)는 재구성된 스크립트를 대상 서버(30)에 전송하고, 이에 대한 실행을 요청한다(S410). 대상 서버(30)는 수신된 재구성 스크립트를 실행하고(S420), 실행 결과를 스크립트 제어 서버(20)에 전송한다(S430).The script control server 20 transmits the reconfigured script to the target server 30 and requests execution thereof (S410). The target server 30 executes the received reconfiguration script (S420), and transmits the execution result to the script control server 20 (S430).

또한, 스크립트 제어 서버(20)는 기존의 대상 금지 명령어 리스트에 테스트 명령어에서 추출된 대상 금지 명령어를 포함시켜 대상 금지 명령어 리스트를 업데이트 한다(S510). In addition, the script control server 20 updates the target prohibition command list by including the target prohibition command extracted from the test command in the existing target prohibition command list (S510).

또한, 스크립트 제어 서버(20)는 기존의 대상 허용 명령어 리스트에 테스트 명령어에서 추출된 대상 허용 명령어를 포함시켜 대상 허용 명령어 리스트를 업데이트 한다(S520). In addition, the script control server 20 updates the target allowed command list by including the target allowed command extracted from the test command in the existing target allowed command list (S520).

하나의 대상 서버(30)에 대하여, 다양한 스크립트가 실행될 때마다 대상 금지 명령어 리스트 및 대상 허용 명령어 리스트가 업데이트될 수 있다. 따라서, 업데이트 될 때마다 대상 서버(30)에 검색을 요청할 명령어의 범위를 보다 좁게 축소할 수 있다.For one target server 30, the target prohibited command list and the target allowed command list may be updated whenever various scripts are executed. Accordingly, it is possible to narrower the range of a command to request a search from the target server 30 each time it is updated.

결과적으로, 하나의 대상 서버(30)에 대하여 다양한 스크립트가 실행될 때마다, 대상 서버(30)에 대한 진단 효율이 향상될 수 있다. As a result, whenever various scripts are executed for one target server 30, the diagnostic efficiency for the target server 30 may be improved.

2. 본 발명의 실시 예에 따른 스크립트를 이용한 보안 취약점 진단 시2. When diagnosing security vulnerabilities using a script according to an embodiment of the present invention 위험성 명령어 차단 및 대체 시스템(이하, "위험성 명령어 차단 및 대체 방법")에 대한 설명Description of the system for blocking and replacing dangerous commands (hereinafter, "How to block and replace dangerous commands")

본 실시 예에 따른 시스템은, 서로 통신 가능한 사용자 단말(10), 스크립트 제어 서버(20) 및 대상 서버(30)를 포함한다.The system according to the present embodiment includes a user terminal 10 capable of communicating with each other, a script control server 20 and a target server 30.

사용자 단말(10), 스크립트 제어 서버(20) 및 대상 서버(30)는 각각 정보를 전송하고 수신하기 위한 통신부, 정보를 연산하기 위한 프로세서 및 정보를 저장하기 위한 메모리(또는 데이터베이스)를 포함할 수 있다.The user terminal 10, the script control server 20, and the target server 30 may each include a communication unit for transmitting and receiving information, a processor for calculating information, and a memory (or database) for storing information. have.

사용자 단말(10)은 스크립트 제어 서버(20)로 취약점 진단 스크립트의 실행을 요청한다.The user terminal 10 requests the script control server 20 to execute a vulnerability diagnosis script.

일 실시 예에서, 사용자 단말(10)에서 취약점 진단 스크립트를 스크립트 제어 서버(20)로 전송할 수 있다. 또한, 사용자 단말(10)의 요청에 따라 스크립트 제어 서버(20)에 기존에 저장되어 있던 취약점 진단 스크립트가 사용될 수 있다. In an embodiment, the user terminal 10 may transmit a vulnerability diagnosis script to the script control server 20. In addition, a vulnerability diagnosis script previously stored in the script control server 20 may be used according to the request of the user terminal 10.

즉, 사용자 단말(10)은 상술한 S11단계 및 S71단계를 수행하도록 구성된다. That is, the user terminal 10 is configured to perform steps S11 and S71 described above.

도 12를 참조하면, 스크립트 제어 서버(20)의 구체적인 구성이 도시된다. Referring to FIG. 12, a detailed configuration of the script control server 20 is shown.

스크립트 제어 서버(20)는 스크립트 입력부(21), 명령어 추출부(22), 금지 명령어 판단부(23), 대체 스크립트 생성부(24), 대상 금지 명령어 리스트 관리부(25), 대상 허용 명령어 리스트 관리부(26) 및 동일 스크립트 판단부(27)를 포함한다. The script control server 20 includes a script input unit 21, a command extraction unit 22, a prohibited command determination unit 23, a substitute script generation unit 24, a target prohibited command list management unit 25, a target allowed command list management unit (26) and the same script determination unit (27).

일 실시 예에서, 상술한 스크립트 제어 서버(20)의 구성들은, 스크립트 제어 서버(20)의 프로세서에 포함된 구성일 수 있다. In an embodiment, the configurations of the script control server 20 described above may be configurations included in the processor of the script control server 20.

스크립트 입력부(21)는 상술한 S12단계, S72단계를 수행하도록 구성된다.The script input unit 21 is configured to perform steps S12 and S72 described above.

또한, 명령어 추출부(22)는 상술한 S21단계, S73단계를 수행하도록 구성된다.In addition, the instruction extracting unit 22 is configured to perform the above-described steps S21 and S73.

또한, 금지 명령어 판단부(23)는 상술한 S22단계, S31단계, S32단계, S33단계, S220단계 및 S230단계를 수행하도록 구성된다. In addition, the prohibition instruction determination unit 23 is configured to perform steps S22, S31, S32, S33, S220 and S230 described above.

또한, 대체 스크립트 생성부(24)는 상술한 S41단계, S42단계, S51단계, S81단계, S82단계, S91단계, S310단계, S320단계, S410단계를 수행하도록 구성된다.In addition, the replacement script generation unit 24 is configured to perform the above-described steps S41, S42, S51, S81, S82, S91, S310, S320, and S410.

또한, 대상 금지 명령어 리스트 관리부(25)는 상술한 S61단계, S510 단계를 수행하도록 구성된다.In addition, the target prohibition instruction list management unit 25 is configured to perform steps S61 and S510 described above.

또한, 대상 허용 명령어 리스트 관리부(26)는 상술한 S62단계, S520 단계를 수행하도록 구성된다. In addition, the target allowable command list management unit 26 is configured to perform steps S62 and S520 described above.

또한, 동일 스크립트 판단부(27)는 상술한 S74단계를 수행하도록 구성된다. In addition, the same script determination unit 27 is configured to perform step S74 described above.

대상 서버(30)는 스크립트 제어 서버(20)로부터 스크립트에 포함된 명령어에 대한 검색 요청을 수신하고, 스크립트에 포함된 명령어를 대상 서버(30)에서 실행이 제한된 명령어 및 실행이 가능한 명령어로 분류하며, 분류된 결과를 스크립트 제어 서버(20)에 전송한다.The target server 30 receives a search request for commands included in the script from the script control server 20, and classifies the commands included in the script into commands that are restricted to be executed and commands that can be executed in the target server 30, and , And transmits the classified result to the script control server 20.

즉, 대상 서버(30)는 상술한 S23단계, S24단계, S240단계, S250단계를 수행하도록 구성된다.That is, the target server 30 is configured to perform the above-described steps S23, S24, S240, and S250.

또한, 대상 서버(30)는 스크립트 제어 서버(20)로부터 재구성된 스크립트를 전송받고, 전송받은 스크립트를 실행하여 취약점 진단을 수행하며, 수행 결과를 스크립트 제어 서버(20)에 전송한다. In addition, the target server 30 receives the reconstructed script from the script control server 20, executes the received script to perform vulnerability diagnosis, and transmits the execution result to the script control server 20.

즉, 대상 서버(30)는 상술한 S52단계, S53단계, S92단계, S93단계, S420단계 및 S430단계를 수행하도록 구성된다. That is, the target server 30 is configured to perform steps S52, S53, S92, S93, S420 and S430 described above.

다만, 몇몇 실시예에서 본 실시 예에 따른 시스템은 도 1 및 도 12에 도시된 구성요소보다 더 적은 수의 구성요소나 더 많은 구성요소를 포함할 수도 있다.However, in some embodiments, the system according to the present embodiment may include a smaller number of components or more components than the components illustrated in FIGS. 1 and 12.

이상으로 설명한 본 발명의 실시예에 따른 시스템은 도 1 내지 도 11을 통해 설명한 본 실시 예에 따른 위험성 명령어 차단 및 대체 방법과 발명의 카테고리만 다를 뿐, 동일한 내용이므로 중복되는 설명, 예시는 생략하도록 한다.In the system according to the embodiment of the present invention described above, only the method of blocking and replacing dangerous commands according to the present embodiment described with reference to FIGS. 1 to 11 differs from the category of the invention. do.

이상에서 전술한 본 발명의 일 실시예에 따른 방법은, 하드웨어인 서버와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The method according to an embodiment of the present invention described above may be implemented as a program (or application) to be executed in combination with a server that is hardware and stored in a medium.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 Shell Script, C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-described program is Shell Script, C, C++, JAVA that can be read by the computer's processor (CPU) through the computer's device interface in order for the computer to read the program and execute the methods implemented as a program. , May include a code (Code) coded in a computer language such as machine language. Such code may include a functional code related to a function defining necessary functions for executing the methods, and a control code related to an execution procedure necessary for the processor of the computer to execute the functions according to a predetermined procedure. can do. In addition, such code may further include code related to a memory reference to which location (address address) of the internal or external memory of the computer or the media or additional information necessary for the processor of the computer to execute the functions. have. In addition, when the processor of the computer needs to communicate with any other computer or server in the remote in order to execute the functions, the code uses the communication module of the computer to determine how It may further include a communication-related code for whether to communicate or what information or media to transmit and receive during communication.

상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The stored medium is not a medium that stores data for a short moment, such as a register, cache, memory, etc., but a medium that stores data semi-permanently and can be read by a device. Specifically, examples of the storage medium include, but are not limited to, ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like. That is, the program may be stored in various recording media on various servers to which the computer can access, or on various recording media on the user's computer. In addition, the medium may be distributed over a computer system connected through a network, and computer-readable codes may be stored in a distributed manner.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in connection with an embodiment of the present invention may be implemented directly in hardware, implemented as a software module executed by hardware, or a combination thereof. Software modules include Random Access Memory (RAM), Read Only Memory (ROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), Flash Memory, hard disk, removable disk, CD-ROM, or It may reside on any type of computer-readable recording medium well known in the art.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.In the above, embodiments of the present invention have been described with reference to the accompanying drawings, but those skilled in the art to which the present invention pertains can be implemented in other specific forms without changing the technical spirit or essential features. You will be able to understand. Therefore, the embodiments described above are illustrative in all respects, and should be understood as non-limiting.

10: 사용자 단말
20: 스크립트 제어 서버
21: 스크립트 입력부
22: 명령어 추출부
23: 금지 명령어 판단부
24: 대체 스크립트 생성부
25: 대상 금지 명령어 리스트 관리부
26: 대상 허용 명령어 리스트 관리부
27: 동일 스크립트 판단부
10: user terminal
20: script control server
21: script input section
22: command extraction unit
23: prohibition instruction determination unit
24: alternative script generation unit
25: target prohibition instruction list management unit
26: target allowable command list management unit
27: Identical script determination unit

Claims (11)

스크립트 제어서버(이하, “제어서버”)에 의해 수행되는 취약점 진단 시 위험성 명령어 차단 및 대체 방법으로서,
상기 제어서버가 사용자 단말에서 스크립트를 수신하는 단계;
상기 제어서버가 상기 스크립트에 포함된 적어도 하나의 명령어를 대상서버에서의 실행이 제한된 대상 금지 명령어와 상기 대상서버에서의 실행이 허용된 대상 허용 명령어로 분류하는 단계;
서로 다른 형태의 명령어가 서로 매칭되어 저장된 변환규칙 데이터베이스부에 기초해, 상기 제어서버가 상기 대상 금지 명령어를 매칭되는 다른 형태의 대체 명령어로 대체하여 상기 스크립트를 재구성하는 단계; 및
상기 제어서버가 상기 대상서버에 상기 재구성 스크립트의 실행을 요청하는 단계를 포함하고,
상기 대상 금지 명령어와 대상 허용 명령어로 분류하는 단계는,
상기 스크립트에서 적어도 하나의 명령어를 추출하는 단계;
상기 대상서버에 상기 적어도 하나의 명령어의 허용 여부에 대한 테스트를 요청하는 단계;
상기 대상서버에서 상기 테스트 결과를 수신받는 단계;
상기 테스트 결과에 기초하여 상기 적어도 하나의 명령어를 상기 대상 금지 명령어와 상기 대상 허용 명령어로 분류하는 단계; 및
상기 대상 허용 명령어 중 기 설정된 일반 금지 명령어 리스트에 포함되지 않은 명령어를 위험 명령어로 분류하는 단계를 포함하고,
상기 스크립트를 재구성하는 단계는,
상기 변환규칙 데이터베이스에 기초하여, 상기 제어서버가 상기 대상 금지 명령어 및 상기 위험 명령어를 매칭되는 다른 형태의 대체 명령어로 대체하여 상기 스크립트를 재구성하는 것인,
스크립트를 이용한 취약점 진단 시, 위험성 명령어 차단 및 대체 방법.
As a method of blocking and replacing dangerous commands when diagnosing a vulnerability performed by a script control server (hereinafter, “control server”),
Receiving, by the control server, a script from a user terminal;
Classifying, by the control server, at least one command included in the script into a target prohibition command with restricted execution in a target server and a target allow command permitted to be executed by the target server;
Reconfiguring the script by replacing, by the control server, the target prohibition command with a matching alternative command based on a conversion rule database unit in which commands of different types are matched with each other and stored; And
Including the step of requesting the execution of the reconfiguration script from the control server to the target server,
The step of classifying into the target prohibition command and the target allow command,
Extracting at least one command from the script;
Requesting the target server to test whether the at least one command is permitted;
Receiving the test result from the target server;
Classifying the at least one command into the target prohibition command and the target allow command based on the test result; And
Classifying a command that is not included in a preset general prohibition command list among the target allowable commands as dangerous commands,
Reconfiguring the script,
Based on the conversion rule database, the control server reconstructs the script by replacing the target prohibition command and the dangerous command with a matching alternative command,
Blocking and replacing dangerous commands when diagnosing vulnerabilities using scripts.
삭제delete 제1항에 있어서,
상기 대상 금지 명령어와 대상 허용 명령어로 분류하는 단계는,
상기 대상서버에 상기 대상 허용 명령어 중 상기 위험 명령어가 존재함을 통지하는 단계를 더 포함하는,
스크립트를 이용한 취약점 진단 시, 위험성 명령어 차단 및 대체 방법.
The method of claim 1,
The step of classifying into the target prohibition command and the target allow command,
Informing the target server of the existence of the dangerous command among the target allowed commands,
Blocking and replacing dangerous commands when diagnosing vulnerabilities using scripts.
제1항에 있어서,
상기 대상 금지 명령어 및 기 설정된 일반 금지 명령어 리스트에 기초하여, 상기 대상서버에 대한 대상 금지 명령어 리스트를 생성하는 단계; 및
상기 대상 허용 명령어에 기초하여, 대상 허용 명령어 리스트를 생성하는 단계를 더 포함하는,
스크립트를 이용한 취약점 진단 시, 위험성 명령어 차단 및 대체 방법.
The method of claim 1,
Generating a target prohibition command list for the target server based on the target prohibition command and a preset general prohibition command list; And
Based on the target allowed command, further comprising the step of generating a target allowed command list,
Blocking and replacing dangerous commands when diagnosing vulnerabilities using scripts.
제4항에 있어서,
상기 대상 금지 명령어 리스트를 생성하는 단계는,
상기 대상 금지 명령어와 기 설정된 일반 금지 명령어 리스트를 비교하는 단계;
상기 대상 금지 명령어 중 상기 일반 금지 명령어 리스트에 포함되지 않는 명령어를, 상기 일반 금지 명령어 리스트에 추가하여 대상 금지 명령어 리스트를 생성하는 단계; 및
상기 위험 명령어 중 상기 일반 금지 명령어 리스트에 포함되지 않는 명령어를, 상기 일반 금지 명령어 리스트에 추가하여 대상 금지 명령어 리스트를 생성하는 단계를 포함하는,
스크립트를 이용한 취약점 진단 시, 위험성 명령어 차단 및 대체 방법.
The method of claim 4,
The step of generating the target prohibition command list,
Comparing the target prohibition command and a preset general prohibition command list;
Adding a command that is not included in the general prohibition command list among the target prohibition commands to the general prohibition command list to generate a target prohibition command list; And
Including the step of generating a target prohibited command list by adding a command that is not included in the general prohibition command list among the dangerous commands to the general prohibition command list,
Blocking and replacing dangerous commands when diagnosing vulnerabilities using scripts.
제5항에 있어서,
상기 제어서버가 사용자 단말에서 스크립트를 재수신하는 단계; 및
상기 제어서버가 재수신된 스크립트와 기존의 스크립트의 동일성을 판단하는 단계를 더 포함하는,
스크립트를 이용한 취약점 진단 시, 위험성 명령어 차단 및 대체 방법.
The method of claim 5,
Re-receiving the script from the user terminal by the control server; And
The control server further comprising the step of determining the identity of the re-received script and the existing script,
Blocking and replacing dangerous commands when diagnosing vulnerabilities using scripts.
제6항에 있어서,
상기 제어서버가 재수신된 스크립트와 기존의 스크립트의 동일성을 판단하는 단계는,
상기 제어서버가 재수신된 스크립트에서 적어도 하나의 명령어를 추출하는 단계; 및
상기 제어서버가 재수신된 스크립트에서 추출된 상기 적어도 하나의 명령어 중 상기 대상 금지 명령어 리스트 및 상기 대상 허용 명령어 리스트에 포함되지 않는 명령어가 있는지 여부를 판단하는 단계를 포함하는,
스크립트를 이용한 취약점 진단 시, 위험성 명령어 차단 및 대체 방법.
The method of claim 6,
The step of determining the identity of the re-received script and the existing script by the control server,
Extracting at least one command from the re-received script by the control server; And
The control server comprising the step of determining whether there is a command not included in the target prohibited command list and the target allowed command list among the at least one command extracted from the re-received script,
Blocking and replacing dangerous commands when diagnosing vulnerabilities using scripts.
제7항에 있어서,
상기 재수신된 스크립트가 기존의 스크립트와 동일한 경우,
상기 재수신된 스크립트에서 적어도 하나의 명령어를 추출하는 단계;
상기 변환규칙 데이터베이스부에 기초해, 재수신된 스크립트에 포함된 상기 적어도 하나의 명령어 중 상기 대상 금지 명령어 리스트에 포함되는 명령어를 매칭되는 다른 형태의 대체 명령어로 대체하여, 상기 재수신된 스크립트를 재구성하는 단계; 및
상기 제어서버가 상기 대상서버에 상기 재구성 스크립트의 실행을 요청하는 단계를 더 포함하는,
스크립트를 이용한 취약점 진단 시, 위험성 명령어 차단 및 대체 방법.
The method of claim 7,
If the re-received script is the same as the existing script,
Extracting at least one command from the re-received script;
Based on the conversion rule database unit, the re-received script is reconstructed by replacing a command included in the target prohibited command list among the at least one command included in the re-received script with a matching alternative command The step of doing; And
The control server further comprising the step of requesting the target server to execute the reconfiguration script,
Blocking and replacing dangerous commands when diagnosing vulnerabilities using scripts.
제8항에 있어서,
상기 재수신된 스크립트가 기존의 스크립트와 동일하지 않은 경우,
상기 제어서버가 추출된 상기 적어도 하나의 명령어를 개별 금지 명령어, 개별 허용 명령어 및 테스트 명령어로 분류하는 단계를 더 포함하고,
상기 개별 금지 명령어는,
상기 적어도 하나의 명령어 중 상기 대상 금지 명령어 리스트와 일치하는 것이며,
상기 개별 허용 명령어는,
상기 적어도 하나의 명령어 중 상기 대상 허용 명령어 리스트와 일치하는 것인,
스크립트를 이용한 취약점 진단 시, 위험성 명령어 차단 및 대체 방법.
The method of claim 8,
If the re-received script is not the same as the existing script,
Further comprising the step of classifying the at least one command extracted by the control server into an individual prohibition command, an individual permission command, and a test command,
The individual prohibition command,
One of the at least one command matches the target prohibition command list,
The individual allowable command,
Matching the target allowed command list among the at least one command,
Blocking and replacing dangerous commands when diagnosing vulnerabilities using scripts.
제9항에 있어서,
상기 제어서버가 상기 대상서버에 상기 테스트 명령어의 허용 여부에 대한 테스트를 요청하는 단계;
상기 테스트 결과에 기초하여, 상기 제어서버가 재수신된 스크립트에 포함된 상기 적어도 하나의 명령어를 대상 금지 명령어와 대상 허용 명령어로 분류하는 단계;
상기 변환규칙 데이터베이스부에 기초해, 상기 제어서버가 재수신된 스크립트에 포함된 상기 개별 금지 명령어 및 대상 금지 명령어를 매칭되는 다른 형태의 대체 명령어로 대체하여, 상기 재수신된 스크립트를 재구성하는 단계; 및
상기 제어서버가 상기 대상서버에 상기 재구성 스크립트의 실행을 요청하는 단계를 더 포함하는,
스크립트를 이용한 취약점 진단 시, 위험성 명령어 차단 및 대체 방법.
The method of claim 9,
Requesting, by the control server, the target server to test whether or not the test command is permitted;
Classifying, by the control server, the at least one command included in the re-received script into a target prohibition command and a target allow command based on the test result;
Reconfiguring the re-received script by replacing the individual prohibition command and target prohibition command included in the re-received script by the control server based on the conversion rule database unit with a matching alternative command; And
The control server further comprising the step of requesting the target server to execute the reconfiguration script,
Blocking and replacing dangerous commands when diagnosing vulnerabilities using scripts.
하드웨어인 컴퓨터와 결합되어, 제1항 및 제3항 내지 제10항 중 어느 한 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된,
프로그램.
It is combined with a computer that is hardware and stored in a computer-readable recording medium to execute the method of any one of claims 1 and 3 to 10,
program.
KR1020200174716A 2020-12-14 2020-12-14 Blocking and replacing dangerous commands when diagnosing security vulnerabilities using scripts KR102230443B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200174716A KR102230443B1 (en) 2020-12-14 2020-12-14 Blocking and replacing dangerous commands when diagnosing security vulnerabilities using scripts

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200174716A KR102230443B1 (en) 2020-12-14 2020-12-14 Blocking and replacing dangerous commands when diagnosing security vulnerabilities using scripts

Publications (1)

Publication Number Publication Date
KR102230443B1 true KR102230443B1 (en) 2021-03-22

Family

ID=75222928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200174716A KR102230443B1 (en) 2020-12-14 2020-12-14 Blocking and replacing dangerous commands when diagnosing security vulnerabilities using scripts

Country Status (1)

Country Link
KR (1) KR102230443B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101331879B1 (en) * 2013-05-29 2013-11-21 지코컨설팅 주식회사 Apparatus for managing instruction
KR20180130630A (en) * 2017-05-29 2018-12-10 서일대학교산학협력단 Vulnerability diagnosing and managing system and method of information system using automatic diagnosis tool
KR20200116970A (en) * 2018-02-02 2020-10-13 도버 마이크로시스템즈, 인크. System and method for converting instructions for metadata processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101331879B1 (en) * 2013-05-29 2013-11-21 지코컨설팅 주식회사 Apparatus for managing instruction
KR20180130630A (en) * 2017-05-29 2018-12-10 서일대학교산학협력단 Vulnerability diagnosing and managing system and method of information system using automatic diagnosis tool
KR20200116970A (en) * 2018-02-02 2020-10-13 도버 마이크로시스템즈, 인크. System and method for converting instructions for metadata processing

Similar Documents

Publication Publication Date Title
CN110225029B (en) Injection attack detection method, device, server and storage medium
CN109614262B (en) Service checking method, device and computer readable storage medium
CN104636130A (en) Method and system for generating event trees
US20230281249A1 (en) Computer-implemented methods, systems comprising computer-readable media, and electronic devices for enabled intervention into a network computing environment
US20230273959A1 (en) Computer-implemented methods, systems comprising computer-readable media, and electronic devices for narrative representation of a network computing environment
US11474809B2 (en) Upgrades based on analytics from multiple sources
CN112364022B (en) Information deduction management method, device, computer equipment and readable storage medium
KR102230443B1 (en) Blocking and replacing dangerous commands when diagnosing security vulnerabilities using scripts
KR20200066428A (en) A unit and method for processing rule based action
US20230273958A1 (en) Computer-implemented methods, systems comprising computer-readable media, and electronic devices for narrative representation of a network computing environment
JP7241360B2 (en) SECURITY POLICY AND AUDIT LOG BI-DIRECTIONAL LOOKUP, COMPARING AND TRACKING SYSTEM AND METHOD THEREOF}
US20220366056A1 (en) Computer security using zero-trust principles and artificial intelligence for source code
US11647054B2 (en) System for and method of determining data connections between software applications
CN112733157B (en) File uploading method, system and medium based on non-executable directory
CN115268847A (en) Block chain intelligent contract generation method and device and electronic equipment
CN113468217A (en) Data query management method and device, computer equipment and readable storage medium
CN115809466B (en) Security requirement generation method and device based on STRIDE model, electronic equipment and medium
JP7295814B2 (en) Data management method, data management system and terminal
CN117034210B (en) Event image generation method and device, storage medium and electronic equipment
US20230367636A1 (en) System and method for determining memory resource configuration for network nodes to operate in a distributed computing network
US20230367887A1 (en) System and method for updating a distributed ledger of a blockchain based on detecting anomalies in blockchain transactions
US20230367903A1 (en) System and method for detecting and obfuscating confidential information in task logs
US20240089283A1 (en) System and method for centralized cybersecurity configuration compliance management
KR102016967B1 (en) Method of processing vulnerability/risk through data correlation/association analysis of system information for system and processing the vulnerability/risk of system and apparatus therefor
CN110912851B (en) Method, device and equipment for monitoring flow data

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant