WO2018016669A2 - 공격 문자열 생성 방법 및 장치 - Google Patents

공격 문자열 생성 방법 및 장치 Download PDF

Info

Publication number
WO2018016669A2
WO2018016669A2 PCT/KR2016/008263 KR2016008263W WO2018016669A2 WO 2018016669 A2 WO2018016669 A2 WO 2018016669A2 KR 2016008263 W KR2016008263 W KR 2016008263W WO 2018016669 A2 WO2018016669 A2 WO 2018016669A2
Authority
WO
WIPO (PCT)
Prior art keywords
attack
web application
string
final
response message
Prior art date
Application number
PCT/KR2016/008263
Other languages
English (en)
French (fr)
Other versions
WO2018016669A3 (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 JP2019503340A priority Critical patent/JP6785360B2/ja
Priority to CN201680087790.9A priority patent/CN109565499B/zh
Priority to US16/318,476 priority patent/US11496502B2/en
Publication of WO2018016669A2 publication Critical patent/WO2018016669A2/ko
Publication of WO2018016669A3 publication Critical patent/WO2018016669A3/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Definitions

  • the present invention relates to a technique for generating an attack string executed through a web application, and more particularly, to a method and apparatus for generating an attack string using a string constraint generated in a static analyzer.
  • the first is through static analysis. This is done by analyzing a number of web applications, extracting properties, and then checking whether the web application is vulnerable based on the properties. This method has been used as a base technology in various studies because it can be applied by diversifying the characteristics of malicious behavior into code patterns and permission patterns.
  • reference data should be generated whenever new malicious behaviors appear, and the analysis results may differ according to the reference data.
  • the dynamic analysis method is to analyze the propagation path and leakage of data used internally by modifying and operating the platform and web application. This has the advantage of understanding the propagation flow of data used internally by the operating system and data used by web applications.
  • the analysis can be performed only in the environment that was performed for the purpose, when a new platform version emerges or when a simple method of filtering is performed, the attack string is bypassed and not recognized, and the filtering can be bypassed. Additional environment configuration work is needed to detect attack strings.
  • there are advantages and disadvantages of static and dynamic methodologies have a disadvantage in that it takes a long time to prepare for analysis (reference data establishment, environment setting, etc.).
  • An object of the present invention for solving the above problems is to provide a method and apparatus for generating an attack string that can bypass the predetermined filtering logic.
  • Another object of the present invention for solving the above problems is to provide a method and apparatus for analyzing the execution state of a web application based on the attack string.
  • a method of operating a dynamic analyzer for analyzing an execution state of a web application includes a parameter indicating a specific operation to be executed through the web application.
  • the operation method of the dynamic analyzer further comprises the step of transmitting a request message requesting the provision of the final attack string to the server, the response message may be received in response to the request message.
  • the determining of whether the web application is filtered or not may include determining that the final attack string is not filtered by the web application when a specific operation indicated by the final attack string is executed through the web application. You can judge.
  • the determining of whether the web application is filtered or not may include determining that the final attack string is filtered by the web application when the specific operation indicated by the final attack string is not executed through the web application. You can judge.
  • the final attack string may further include a uniform resource locator (URL) address.
  • URL uniform resource locator
  • the specific operation to be executed through the web application may include a distributed denial of service (DDoS) attack operation, a cross site scripting phishing (XSS) attack operation, an advanced persistent threat (APT) attack operation, and password cracking.
  • DDoS distributed denial of service
  • XSS cross site scripting phishing
  • API advanced persistent threat
  • password cracking May include at least one of an attack operation, a keylogging attack operation, a spoofing attack operation, and a rootkit attack operation.
  • a method of operating a server for generating an attack string according to an embodiment of the present invention for achieving the above object includes filtering logic designed to filter a raw attack string including a predefined parameter from a static analyzer. receiving a first response message comprising a policy for avoiding logic; Generating a final attack string comprising modified parameters indicative of a particular action to be executed through the web application to evade the filtering logic; And sending a second response message including the final attack string to a dynamic analyzer.
  • the method of operating the server may further include transmitting a first request message to the static analyzer requesting provision of a policy for avoiding the filtering logic, wherein the first response message is the first request message. Can be received in response.
  • the method of operating the server may further include receiving a second request message from the dynamic analyzer requesting the provision of the final attack string, wherein the second response message is a response to the second request message. Can be sent.
  • the first response message may further include a raw resource locator (URL) address and a primitive parameter indicating a specific operation to execute a web application.
  • URL raw resource locator
  • the final attack string may further include a uniform resource locator (URL) address.
  • URL uniform resource locator
  • the specific operation to be executed through the web application may include a distributed denial of service (DDoS) attack operation, a cross site scripting phishing (XSS) attack operation, an advanced persistent threat (APT) attack operation, and password cracking.
  • DDoS distributed denial of service
  • XSS cross site scripting phishing
  • API advanced persistent threat
  • password cracking May include at least one of an attack operation, a keylogging attack operation, a spoofing attack operation, and a rootkit attack operation.
  • the processor for generating the final attack string according to an embodiment of the present invention for achieving the above object
  • the processor Processor
  • a database storing at least one instruction executed through the process, wherein the at least one instruction comprises filtering logic designed to filter the raw attack string comprising a predefined parameter from a static analyzer.
  • a final attack message comprising a modified parameter instructing a particular action to be executed through the web application to receive a first response message that includes a policy for avoiding logic and to circumvent the filtering logic.
  • the at least one command is executable to send a first request message to the static analyzer requesting provision of a policy for avoiding the filtering logic, wherein the first response message is for the first request message. May be received in response.
  • the first response message may further include a uniform resource locator (URL) address and a primitive parameter indicating a specific operation to execute a web application.
  • URL uniform resource locator
  • the final attack string may further include a uniform resource locator (URL) address.
  • URL uniform resource locator
  • the specific operations to be executed through the web application may include distributed denial of service (DDoS) attack operations, advanced persistent threat (APT) attack operations, password cracking attack operations, keylogging attack operations, and spoofing ( a spoofing attack action and a rootkit attack action.
  • DDoS distributed denial of service
  • API advanced persistent threat
  • spoofing a spoofing attack action and a rootkit attack action.
  • an attack string that can bypass the filtering logic may be generated, and the execution state of the web application based on the attack string may be checked. Therefore, a security vulnerability of a web application that has not been detected previously can be detected.
  • FIG. 1 is a block diagram schematically illustrating a system for analyzing an execution state of a web application based on an attack string according to an embodiment of the present invention.
  • FIG. 2 is a block diagram illustrating a node constituting a system for analyzing an execution state of a web application based on an attack string according to an embodiment of the present invention.
  • FIG. 3 is a block diagram illustrating the operation of a node constituting a system for analyzing a running state of a web application based on an attack string according to an embodiment of the present invention.
  • FIG. 4 is a block diagram illustrating a dynamic analyzer according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a method of analyzing an execution state of a web application based on an attack string according to an embodiment of the present invention.
  • FIG. 6 is a flowchart illustrating a method of performing static analysis according to an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating a method of performing dynamic analysis according to an embodiment of the present invention.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • FIG. 1 is a block diagram schematically illustrating a system for analyzing an execution state of a web application based on an attack string according to an embodiment of the present invention.
  • a system server 100 a static analyzer 110, a dynamic analyzer 120, a device on which the web application 130 is installed, and the like, which analyzes an execution state of a web application based on an attack string, are included. can do.
  • the server 100 may be connected to the static analyzer 110 and the dynamic analyzer 120 through a wired network or a wireless network.
  • the server 100 may be connected to the static analyzer 110 and the dynamic analyzer 120 by long term evolution (LTE), long term evolution-advanced (LTE-A), and the like defined in the 3GPP standard.
  • LTE long term evolution
  • LTE-A long term evolution-advanced
  • the server 100 may be connected to the static analyzer 110 and the dynamic analyzer 120 by a wireless LAN (WLAN), a wireless personal area network (WPAN), or the like defined in the IEEE standard.
  • the server 100 may be connected to the static analyzer 110 and the dynamic analyzer 120 by a wired LAN.
  • the server 100 may receive information necessary for generating the final attack string from the static analyzer 110 and the dynamic analyzer 120, and may generate the final attack string based on the received information.
  • the static analyzer 110 and the dynamic analyzer 120 may transmit information necessary for software development to the server 100.
  • the dynamic analyzer 120 may generate a final attack string and transmit the generated attack string to a device on which the web application 130 is installed.
  • FIG. 2 is a block diagram illustrating a node constituting a system for analyzing an execution state of a web application based on an attack string according to an embodiment of the present invention.
  • the node 200 may include at least one processor 210, a memory 220, and a network interface device 230 connected to a network to perform communication.
  • the node 200 may further include an input interface device 240, an output interface device 250, a storage device 260, and the like.
  • the node 200 may be the server 100, the static analyzer 110, the dynamic analyzer 120, and the like described with reference to FIG. 1.
  • Each component included in the node 200 may be connected by a bus 270 to communicate with each other.
  • the processor 210 may execute a program command stored in the memory 220 and / or the storage device 260.
  • the processor 210 may refer to a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to the present invention are performed.
  • the memory 220 and the storage device 260 may be configured of a volatile storage medium and / or a nonvolatile storage medium.
  • the memory 220 may be configured as read only memory (ROM) and / or random access memory (RAM).
  • the corresponding second node is performed in the first node.
  • a method corresponding to eg, receiving or transmitting a signal (or message)
  • the static analyzer 110 and the dynamic analyzer 120 corresponding thereto may perform operations corresponding to the operation of the server 100.
  • the server 100 corresponding thereto may perform operations corresponding to the operations of the static analyzer 110 and the dynamic analyzer 120.
  • FIG. 3 is a block diagram illustrating the operation of a node constituting a system for analyzing a running state of a web application based on an attack string according to an embodiment of the present invention.
  • a system for analyzing an execution state of a web application based on an attack string may include a server 100, a static analyzer 110, a dynamic analyzer 120, a device on which the web application 130 is installed, and the like. Can be.
  • the constraint solver 102 may be included in the server 100.
  • the static analyzer 110 may be connected to the web server in which the source code 310 of the web application existing on the web is stored by a wired or wireless communication method. The source code 310 may also be used in the web application development process.
  • the static analyzer 110 may be connected to the server 100 by wire and wireless communication methods. Uniform Resource Locator (URL) address 320, parameter string 330, parameter string from static analyzer 110 to server 100 via a wired and wireless communication method connecting static analyzer 110 and server 100 Constraint 340 may be sent.
  • the parameter string 330 may mean a string converted into a parameter.
  • the parameter string 330 may mean a parameter string used for static analysis.
  • the parameter string constraint 340 may refer to a condition capable of avoiding filtering logic designed to filter the raw attack string.
  • the constraint solver 102 may be a processor present in the server 100.
  • the dynamic analyzer 120 may be connected to the server 100 by wired and wireless communication methods.
  • the dynamic analyzer 120 may transmit the final attack string 350 from the server 100 to the dynamic analyzer 120 through wired and wireless communication methods connecting the server 100.
  • the dynamic analyzer 120 may analyze an execution state of the web application 130 installed in the device.
  • FIG. 4 is a block diagram illustrating a dynamic analyzer according to an embodiment of the present invention.
  • the dynamic analyzer 120 may include a test case generator 121, an automatic performer 123, a result analyzer 124, and the like.
  • the dynamic analyzer 120 may receive the final attack string 350 and use it for dynamic analysis.
  • the auto executor 123 may be connected to the device 400 by wire and wireless communication methods.
  • the device 400 may support a dynamic analysis by installing a web application to be checked.
  • the test case generator 121 may generate another type of test case 122 according to a test purpose.
  • the automatic executor 123 may automatically execute a command performed by the test case generator 121 and may be responsible for installing and deleting a web application.
  • the result analyzer 124 may collect each information to generate an Excel file, and may be expanded and modified according to a format to be output.
  • FIG. 5 is a flowchart illustrating a method of analyzing an execution state of a web application based on an attack string according to an embodiment of the present invention.
  • the dynamic analyzer 120 may transmit a signal (or message) requesting a final attack string including a parameter indicating a specific operation to be executed through a web application to the server 100 (S500).
  • the final attack string including parameters that indicate the specific action to be executed through the web application, can bypass the filtering logic that can be filtered if it was a raw attack string.
  • the server 100 may transmit a signal (or message) requesting a URL address, a parameter string, and a parameter string constraint to the static analyzer 110. There is (S510).
  • the URL address may mean an internet address used for internet access, and the parameter may indicate a specific operation to be executed through the web application.
  • the parameter string may mean that the parameter is converted to a string.
  • Parameter string constraints may refer to conditions that can circumvent filtering logic designed to filter raw attack strings.
  • the dynamic analyzer 120 may perform dynamic analysis based on the raw attack string, which means a general attack string. Since raw attack strings generally have rules in parameter strings, simple filtering (for example, substituting parameter strings, writing duplicate characters, etc.) can easily avoid attack of raw attack strings. Can be.
  • the static analyzer 110 receives a signal (or message) requesting a URL address, a parameter string, and a parameter string constraint, the static analyzer 110 obtains a web application source code, analyzes a characteristic from the obtained web application source code, and performs a static analysis. It may be performed (S520).
  • Static analysis can be performed as follows.
  • FIG. 6 is a flowchart illustrating a method of performing static analysis according to an embodiment of the present invention.
  • the operation of the static analyzer 110 may receive a signal (or message) requesting a URL, an address parameter string, and a constraint of the parameter string from the server 100 (S521).
  • Static analyzer 110 may analyze the characteristics of the source code of a plurality of web applications.
  • the static analyzer 110 may perform a static analysis by analyzing a feature from source code of one or multiple web applications to check the source code.
  • the static analyzer 110 may generate static analysis information through the performed static analysis (S522).
  • Executable server-side code that executes a web application typically has filtering logic to evade the raw attack string.
  • the static analyzer 110 may analyze the filtering logic to determine whether the filtering logic is generated. In the step of analyzing and verifying the filtering logic by the static analyzer 110, the static analyzer 110 may acquire a constraint of the URL string, the parameter string, and the parameter string including the filtering logic (S523). The static analyzer 110 may transmit the URL, the address parameter string, and the constraints of the parameter string obtained through the static analysis to the server 100 (S524).
  • the static analyzer 110 may transmit the URL address, the parameter string, and the parameter string constraint obtained through the static analysis to the server 100 (S530).
  • the static analyzer 110 requests a final attack string including a parameter indicating a specific action to be executed through the web application from the dynamic analyzer 120 by using the URL address, parameter string, and parameter string constraints obtained through the static analysis in advance. When receiving a signal, it may be transmitted to the server 100.
  • the server 100 may receive a URL address, a parameter string, and a parameter string constraint.
  • the server 100 may generate the final attack string using the constraint solver which generates the final attack string by reflecting the constraint (S540).
  • the raw attack string may consist of a URL address and raw parameters
  • the final attack string may consist of a URL address and modified parameters.
  • the raw attack string may mean any attack string.
  • the constraint solver of the server 100 may generate a final attack string that may bypass the filtering logic to filter the raw attack string based on the URL address, the parameter string, and the constraint of the parameter string.
  • the server 100 may transmit the final attack string generated by the constraint solver of the server 100 to the dynamic analyzer 120 (S550).
  • the dynamic analyzer 120 may receive the final attack string from the server 100.
  • the dynamic analyzer 120 receiving the final attack string may transmit the final attack string to the device 400 on which the web application to be analyzed is dynamically installed (S560).
  • the dynamic analyzer 120 may perform dynamic analysis by performing a specific operation on the device 400 in which the web application to be analyzed is installed.
  • Certain actions executed through web applications can include distributed denial of service (DDoS) attack actions, advanced persistent threat (APT) attack actions, password cracking attack actions, keylogging attack actions, and spoofing. It may include at least one of an attack operation and a rootkit attack operation.
  • DDoS distributed denial of service
  • API advanced persistent threat
  • spoofing It may include at least one of an attack operation and a rootkit attack operation.
  • the device 400 may indicate an execution state of the web application based on the final attack string.
  • the dynamic analyzer 120 may monitor the execution state of the web application based on the final attack string by the device 400 (S570). Dynamic analyzer 120 may receive an action from device 400 based on the final attack string. The dynamic analyzer 120 may perform dynamic analysis based on an operation based on the final attack string received from the device 400 (S580).
  • the dynamic analysis method may be as follows.
  • FIG. 7 is a flowchart illustrating a method of performing dynamic analysis according to an embodiment of the present invention.
  • the test case generator may generate a test case (S581).
  • the result analyzer may input text data into the web application to analyze what the vulnerability of the web application is (S582).
  • Text data may mean that a parameter value is put in a URL address.
  • the parameter value may be the final attack string generated by applying constraints through static analysis.
  • Specific actions to be executed through the web application include distributed denial of service (DDoS) attack actions, advanced persistent threat (APT) attack actions, password cracking attack actions, keylogging attack actions, and spoofing attacks. It may include at least one of an operation and a rootkit attack operation.
  • DDoS distributed denial of service
  • API advanced persistent threat
  • spoofing attacks It may include at least one of an operation and a rootkit attack operation.
  • the methods according to the invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium.
  • Computer-readable media may include, alone or in combination with the program instructions, data files, data structures, and the like.
  • the program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention, or may be known and available to those skilled in computer software.
  • Examples of computer readable media include hardware devices that are specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions include machine language code, such as produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

웹 애플리케이션의 실행 상태를 분석하는 동적 분석기의 동작 방법이 개시된다. 상기 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 파라미터를 포함하는 최종 공격 문자열에 기초한 상기 웹 애플리케이션의 실행 상태를 분석하는 단계; 및 웹 애플리케이션의 실행 상태에 대한 분석하는 단계를 포함하며, 상기 최종 공격 문자열은 미리 정의된 파라미터를 포함하는 원시 공격 문자열을 필터링하도록 설계된 필터링 로직을 회피하도록 생성된다. 따라서 간단한 필터링을 우회할 수 있는 최종 공격 문자열 생성을 통해 기존 동적 분석기에서 검출하지 못하던 보안 취약점을 검출할 수 있다.

Description

공격 문자열 생성 방법 및 장치
본 발명은 웹 애플리케이션을 통해 실행되는 공격 문자열을 생성하는 기술에 관한 것으로, 더욱 상세하게는 정적 분석기에서 생성된 문자열 제약 조건을 활용하여 공격 문자열을 생성하는 방법 및 장치에 관한 것이다.
웹 애플리케이션 사용자층이 두터워짐에 따라 시장에 출시되는 웹 애플리케이션의 수가 급증하고 있다. 이에 따라 웹 애플리케이션 보안 위협도 함께 증가하고 있는 추세이다. 웹 애플리케이션의 구조 및 기능상의 취약점을 악용하여 악의적인 행위를 하는 코드가 삽입되는 경우가 발생한다. 웹 애플리케이션을 통한 정보 유출이 사회적 문제로 대두하고 있기 때문에 취약 웹 애플리케이션을 검증하기 위한 연구의 중요성이 높아지고 있다.
웹 애플리케이션을 검증하기 위한 방법론은 크게 두 가지로 나눌 수 있다. 첫 번째는 정적 분석을 통한 방법이다. 이는 다수의 웹 애플리케이션을 분석하여 특성을 추출한 후 특성을 기준으로 웹 애플리케이션의 취약 여부를 검사하는 형태로 수행된다. 이러한 방법은 악성 행위 특성을 코드 패턴 및 사용 권한 패턴 등으로 다각화하여 적용할 수 있기 때문에 여러 연구에 기반 기술로 사용되고 있다. 하지만, 새로운 악성 행위가 나타날 때마다 기준 데이터를 생성하여야 하고, 분석 결과가 기준 데이터에 따라 다르게 나올 수 있다는 단점이 존재한다.
두 번째로 동적 분석 방식은 플랫폼 및 웹 애플리케이션을 수정하여 동작 시킴으로써 내부에서 사용되는 데이터의 전파 경로 및 유출 여부를 파악하는 분석 방법이다. 이는 운영체제 내부적으로 사용되는 데이터와 웹 애플리케이션이 사용하는 데이터의 전파 흐름을 상세히 파악할 수 있는 장점을 가진다. 하지만 목적에 맞게 수행된 환경 내에서만 분석이 가능하므로 새로운 플랫폼 버전이 등장할 경우나, 간단한 방법의 필터링을 할 경우, 공격 문자열이 이를 우회하게 되어 인식하지 못하게 되는 문제가 있으며, 필터링을 우회할 수 있는 공격 문자열을 검출하기 위해서는 추가적인 환경 구성 작업이 필요하다. 일반적으로 정적, 동적 방법론의 장단점이 각각 존재하기 때문에 목적에 따라 두 가지 분석 방안을 취사선택하여 사용한다. 하지만 두 방법 모두 공통적으로 분석을 위한 준비 과정(기준 데이터 확립, 환경 설정 등)이 오래 걸리는 단점을 가진다. 또한, 결과 분석이 어렵기 때문에 분석 과정에서 많은 시간이 필요하다는 한계점이 존재한다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 미리 설정된 필터링 로직을 우회할 수 있는 공격 문자열을 생성하는 방법 및 장치를 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 방법 및 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 웹 애플리케이션(application)의 실행 상태를 분석하는 동적 분석기의 동작 방법은, 상기 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 파라미터(parameter)를 포함하는 최종 공격 문자열을 포함하는 응답 메시지를 서버로부터 수신하는 단계; 상기 최종 공격 문자열에 기초한 상기 웹 애플리케이션의 실행 상태를 분석하는 단계; 및 상기 웹 애플리케이션의 실행 상태에 대한 분석 결과에 기초하여 상기 최종 공격 문자열이 상기 웹 애플리케이션에 의해 필터링(filtering)되는지 여부를 판단하는 단계를 포함하며, 상기 최종 공격 문자열은 미리 정의된 파라미터를 포함하는 원시 공격 문자열을 필터링하도록 설계된 필터링 로직(logic)을 회피하도록 생성된다.
여기서, 상기 동적 분석기의 동작 방법은, 상기 최종 공격 문자열의 제공을 요청하는 요청 메시지를 상기 서버에 전송하는 단계를 더 포함하며, 상기 응답 메시지는 상기 요청 메시지에 대한 응답으로 수신될 수 있다.
여기서, 상기 웹 애플리케이션에 의해 필터링되는지 여부를 판단하는 단계는, 상기 최종 공격 문자열에 의해 지시되는 특정 동작이 상기 웹 애플리케이션을 통해 실행되는 경우, 상기 최종 공격 문자열이 상기 웹 애플리케이션에 의해 필터링되지 않는 것으로 판단할 수 있다.
여기서, 상기 웹 애플리케이션에 의해 필터링되는지 여부를 판단하는 단계는, 상기 최종 공격 문자열에 의해 지시되는 특정 동작이 상기 웹 애플리케이션을 통해 실행되지 않는 경우, 상기 최종 공격 문자열이 상기 웹 애플리케이션에 의해 필터링되는 것으로 판단할 수 있다.
여기서, 상기 최종 공격 문자열은 URL(uniform resource locator) 주소를 더 포함할 수 있다.
여기서, 상기 웹 애플리케이션을 통해 실행될 특정 동작은, DDoS(distributed denial of service) 공격 동작, 악성 스크립트 실행(XSS: Cross Site Scripting phishing) 공격 동작, APT(advanced persistent threat) 공격 동작, 패스워드 크래킹(password cracking) 공격 동작, 키로깅(keylogging) 공격 동작, 스푸핑(spoofing) 공격 동작 및 루트킷(rootkit) 공격 동작 중에서 적어도 하나를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 공격 문자열을 생성하는 서버의 동작 방법은, 정적 분석기로부터 미리 정의된 파라미터(parameter)를 포함하는 원시 공격 문자열을 필터링(filtering)하도록 설계된 필터링 로직(logic)을 회피하기 위한 정책을 포함하는 제1 응답 메시지(message)를 수신하는 단계; 상기 필터링 로직을 회피하도록, 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 수정된 파라미터를 포함하는 최종 공격 문자열을 생성하는 단계; 및 상기 최종 공격 문자열을 포함하는 제2 응답 메시지를 동적 분석기에 전송하는 단계를 포함한다.
여기서, 상기 서버의 동작 방법은, 상기 필터링 로직을 회피하기 위한 정책의 제공을 요청하는 제1 요청 메시지를 상기 정적 분석기에 전송하는 단계를 더 포함하며, 상기 제1 응답 메시지는 상기 제1 요청 메시지에 대한 응답으로 수신될 수 있다.
여기서, 상기 서버의 동작 방법은, 상기 최종 공격 문자열의 제공을 요청하는 제2 요청 메시지를 상기 동적 분석기로부터 수신하는 단계를 더 포함하며, 상기 제2 응답 메시지는 상기 제2 요청 메시지에 대한 응답으로 전송될 수 있다.
여기서, 상기 제1 응답 메시지는 URL(uniform resource locator) 주소 및 웹 애플리케이션을 실행될 특정 동작을 지시하는 원시 파라미터를 더 포함 할 수 있다.
여기서, 상기 최종 공격 문자열은 URL(uniform resource locator) 주소를 더 포함할 수 있다.
여기서, 상기 웹 애플리케이션을 통해 실행될 특정 동작은, DDoS(distributed denial of service) 공격 동작, 악성 스크립트 실행(XSS: Cross Site Scripting phishing) 공격 동작, APT(advanced persistent threat) 공격 동작, 패스워드 크래킹(password cracking) 공격 동작, 키로깅(keylogging) 공격 동작, 스푸핑(spoofing) 공격 동작 및 루트킷(rootkit) 공격 동작 중에서 적어도 하나를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 최종 공격 문자열을 생성하는 서버(Server)는, 프로세서(Processor); 및 상기 프로세스를 통해 실행되는 적어도 하나의 명령이 저장된 데이터베이스를 포함하고, 상기 적어도 하나의 명령은, 정적 분석기로부터 미리 정의된 파라미터(parameter)를 포함하는 원시 공격 문자열을 필터링(filtering)하도록 설계된 필터링 로직(logic)을 회피하기 위한 정책을 포함하는 제1 응답 메시지(message)를 수신하고, 상기 필터링 로직을 회피하도록, 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 수정된 파라미터(parameter)를 포함하는 최종 공격 문자열을 생성하고, 그리고 상기 최종 공격 문자열을 포함하는 제2 응답 메시지를 동적 분석기에 전송하도록 실행 가능하다.
여기서, 상기 적어도 하나의 명령은, 상기 필터링 로직을 회피하기 위한 정책의 제공을 요청하는 제1 요청 메시지를 상기 정적 분석기에 전송하도록 실행 가능하며, 상기 제1 응답 메시지는 상기 제1 요청 메시지에 대한 응답으로 수신될 수 있다.
여기서, 상기 제1 응답 메시지는 URL(uniform resource locator) 주소 및 웹 애플리케이션을 실행될 특정 동작을 지시하는 원시 파라미터를 더 포함할 수 있다.
여기서, 상기 최종 공격 문자열은 URL(uniform resource locator) 주소를 더 포함 수 있다.
여기서, 상기 웹 애플리케이션을 통해 실행될 특정 동작은, DDoS(distributed denial of service) 공격 동작, APT(advanced persistent threat) 공격 동작, 패스워드 크래킹(password cracking) 공격 동작, 키로깅(keylogging) 공격 동작, 스푸핑(spoofing) 공격 동작 및 루트킷(rootkit) 공격 동작 중에서 적어도 하나를 포함할 수 있다.
본 발명에 따르면, 필터링 로직을 우회할 수 있는 공격 문자열이 생성될 수 있고, 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 확인할 수 있다. 따라서, 기존에 검출되지 못하던 웹 애플리케이션의 보안 취약점이 검출될 수 있다.
도 1은 본 발명의 일 실시예에 따른 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 시스템을 간략히 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 시스템을 구성하는 노드를 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 시스템을 구성하는 노드의 동작을 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 동적 분석기를 도시한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 방법을 도시한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 정적 분석을 수행하는 방법을 도시한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 동적 분석을 수행하는 방법을 도시한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. 이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 시스템을 간략히 도시한 블록도이다.
도 1을 참조하면, 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 시스템 서버(Server)(100), 정적 분석기(110), 동적 분석기(120), 웹 애플리케이션(130)이 설치된 디바이스 등을 포함할 수 있다. 서버(100)는 유선 네트워크 또는 무선 네트워크를 통해 정적 분석기(110) 및 동적 분석기(120)와 연결될 수 있다. 예를 들어, 서버(100)는 3GPP 표준에서 규정된 LTE(long term evolution), LTE-A(long term evolution-advanced) 등에 의해 정적 분석기(110) 및 동적 분석기(120)와 연결될 수 있다. 또는, 서버(100)는 IEEE 표준에서 규정된 WLAN(Wireless LAN), WPAN(Wireless Personal Area Network) 등에 의해 정적 분석기(110) 및 동적 분석기(120)와 연결될 수 있다. 또는 서버(100)는 유선 랜 등에 의해 정적 분석기(110) 및 동적 분석기(120)와 연결될 수 있다.
서버(100)는 정적 분석기(110) 및 동적 분석기(120)로부터 최종 공격 문자열을 생성에 필요한 정보를 수신할 수 있고, 수신된 정보를 기초로 최종 공격 문자열을 생성 할 수 있다. 정적 분석기(110) 및 동적 분석기(120)는 소프트웨어 개발에 필요한 정보를 서버(100)에 전송할 수 있다.
동적 분석기(120)는 최종 공격 문자열을 생성하여 웹 애플리케이션(130)이 설치된 디바이스(device)에 전송할 수 있다.
도 2는 본 발명의 일 실시예에 따른 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 시스템을 구성하는 노드를 도시한 블록도이다.
도 2를 참조하면, 노드(200)는 적어도 하나의 프로세서(processor)(210), 메모리(220) 및 네트워크와 연결되어 통신을 수행하는 네트워크 인터페이스 장치(230)를 포함할 수 있다. 또한, 노드(200)는 입력 인터페이스 장치(240), 출력 인터페이스 장치(250), 저장 장치(260) 등을 더 포함할 수 있다. 여기서, 노드(200)는 도 1을 참조하여 설명된 서버(100), 정적 분석기(110), 동적 분석기(120), 등일 수 있다. 노드(200)에 포함된 각각의 구성 요소들은 버스(bus)(270)에 의해 연결되어 서로 통신을 수행할 수 있다.
프로세서(210)는 메모리(220) 및/또는 저장 장치(260)에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit; CPU), 그래픽 처리 장치(graphics processing unit; GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220)와 저장 장치(260)는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory; ROM) 및/또는 랜덤 액세스 메모리(random access memory; RAM)로 구성될 수 있다.
또한, 노드들 중에서 제1 노드에서 수행되는 방법(예를 들어, 신호(또는, 메시지(message))의 전송 또는 수신)이 설명되는 경우에도 이에 대응하는 제2 노드는 제1 노드에서 수행되는 방법과 상응하는 방법(예를 들어, 신호(또는, 메시지)의 수신 또는 전송)을 수행할 수 있다. 즉, 서버(100)의 동작이 설명된 경우에 이에 대응하는 정적 분석기(110) 및 동적 분석기(120)는 서버(100)의 동작과 상응하는 동작을 수행할 수 있다. 반대로, 정적 분석기(110) 및 동적 분석기(120)의 동작이 설명된 경우에 이에 대응하는 서버(100)는 정적 분석기(110) 및 동적 분석기(120)의 동작과 상응하는 동작을 수행할 수 있다.
도 3은 본 발명의 일 실시예에 따른 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 시스템을 구성하는 노드의 동작을 도시한 블록도이다.
도 3을 참조하면, 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 시스템은 서버(100), 정적 분석기(110), 동적 분석기(120), 웹 애플리케이션(130)이 설치된 디바이스, 등을 포함할 수 있다.
제약조건솔버(102)는 서버(100)에 포함되어 있을 수 있다. 정적 분석기(110)는 웹 상에 존재하는 웹 애플리케이션의 소스코드(310)가 저장된 웹서버와 유선 또는 무선 통신 방법으로 연결되어 있을 수 있다. 소스코드(310)는 또한 웹 애플리케이션(130) 개발 과정에서 이용 될 수 있다. 정적 분석기(110)는 서버(100)와 유선 및 무선 통신 방법으로 연결되어 있을 수 있다. 정적 분석기(110)와 서버(100)를 연결하는 유선 및 무선 통신 방법을 통해 정적 분석기(110)에서 서버(100)로 URL(Uniform Resource Locator) 주소(320), 파라미터 문자열(330), 파라미터 문자열 제약조건(340)이 전송될 수 있다. 파라미터 문자열(330)은, 문자열을 파라미터로 변환시킨 것을 의미할 수 있다. 또한 파라미터 문자열(330)은 정적 분석을 위해 사용되는 파라미터 문자열을 의미할 수 있다. 파라미터 문자열 제약조건(340)은 원시 공격 문자열을 필터링하도록 설계된 필터링 로직(Filtering Logic)을 회피할 수 있는 조건을 의미할 수 있다.
제약조건솔버(102)는 서버(100)에 존재하는 프로세서일 수 있다. 동적 분석기(120)는 서버(100)와 유선 및 무선 통신 방법으로 연결되어 있을 수 있다. 동적 분석기(120)는 서버(100)를 연결하는 유선 및 무선 통신 방법을 통해 서버(100)에서 동적 분석기(120)로 최종 공격 문자열(350)이 전송될 수 있다. 동적 분석기(120)는 디바이스에 설치된 웹 애플리케이션(130)의 실행 상태를 분석할 수 있다.
도 4는 본 발명의 일 실시예에 따른 동적 분석기를 도시한 블록도이다.
도 4를 참조하면, 동적 분석기(120)는 테스트 케이스(Test Case) 생성기(121), 자동 수행기(123), 결과 분석기(124) 등을 포함할 수 있다.
동적 분석기(120)는 최종 공격 문자열(350)을 수신하여 이를 동적 분석에 이용할 수 있다. 자동 수행기(123)는 디바이스(400)와 유선 및 무선 통신 방법으로 연결되어 있을 수 있다. 디바이스(400)는 확인하고자 하는 웹 애플리케이션을 설치하여 동적 분석을 지원할 수 있다.
테스트 케이스 생성기(121)는 테스트 목적에 따라 다른 형태의 테스트 케이스(122)를 생성할 수 있다.
자동 수행기(123)는 테스트 케이스 생성기(121)가 수행하는 명령을 자동으로 수행할 수 있으며, 웹 애플리케이션 설치 및 삭제 등을 담당 할 수 있다. 결과 분석기(124)는 엑셀파일을 생성하기 위하여 각 정보를 취합할 수 있으며, 출력하고자 하는 형식에 따라 확장 및 변형이 가능할 수 있다.
도 5는 본 발명의 일 실시예에 따른 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 분석하는 방법을 도시한 순서도이다.
도 5를 참조하면, 동적 분석기(120)는 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 파라미터를 포함하는 최종 공격 문자열을 요청하는 신호(또는, 메시지)를 서버(100)로 전송할 수 있다(S500). 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 파라미터를 포함하는 최종 공격 문자열은, 원시 공격 문자열이었다면 필터될 수 있는 필터링 로직을 우회할 수 있다.
서버(100)는 최종 공격 문자열을 요청하는 신호(또는, 메시지)를 수신한 경우, 정적 분석기(110)로 URL주소, 파라미터 문자열, 파라미터 문자열 제약조건을 요청하는 신호(또는, 메시지)를 전송할 수 있다(S510).
URL주소는 인터넷 접속을 위해 이용되는 인터넷 주소를 의미할 수 있으며, 파라미터는 웹 애플리케이션을 통해 실행될 특정 동작을 지시할 수 있다. 파라미터 문자열은 파라미터가 문자열로 변환된 것을 의미할 수 있다. 파라미터 문자열 제약조건은 원시 공격 문자열을 필터링하도록 설계된 필터링 로직을 회피할 수 있는 조건을 의미할 수 있다.
동적 분석기(120)는 일반적인 공격 문자열을 의미하는 원시 공격 문자열을 기초로 동적 분석을 수행할 수 있다. 원시 공격 문자열은 일반적으로 파라미터 문자열에 규칙이 있기 때문에 간단한 필터링(예를들어, 파라미터 문자열의 앞뒤를 치환하거나, 문자를 중복해서 기재하는 등의 행위)을 하는 경우 원시 공격 문자열의 공격을 쉽게 회피할 수 있다.
URL주소, 파라미터 문자열, 파라미터 문자열 제약조건을 요청하는 신호(또는, 메시지)를 수신한 정적 분석기(110)는 웹 애플리케이션 소스코드를 획득하여, 획득된 웹 애플리케이션 소스코드로부터 특징을 분석하여 정적 분석을 수행할 수 있다(S520).
정적 분석은 다음과 같이 수행될 수 있다.
도 6은 본 발명의 일 실시예에 따른 정적 분석을 수행하는 방법을 도시한 흐름도이다.
도 6을 참조하면, 정적 분석기(110)의 동작은 서버(100)로부터 URL, 주소 파라미터 문자열 및 파라미터 문자열의 제약조건을 요청하는 신호(또는, 메시지)를 수신할 수 있다(S521). 정적 분석기(110)는 다수의 웹 애플리케이션의 소스코드의 특징을 분석 할 수 있다.
정적 분석기(110)는 하나의 또는 다수의 웹 애플리케이션의 소스코드로부터 특징을 분석하여 소스코드를 확인하여 정적 분석을 수행할 수 있다. 정적 분석기(110)는 수행된 정적 분석을 통해 정적 분석 정보를 생성할 수 있다(S522).
웹 애플리케이션을 실행하는 실행서버 측 코드는 일반적으로 원시 공격 문자열을 회피하기 위한 필터링 로직이 있을 수 있다. 정적 분석기(110)는 필터링 로직을 분석하여 어떤 방법으로 필터링 로직이 생성되어 있는지 여부를 확인 할 수 있다. 정적 분석기(110)가 필터링 로직을 분석하고 확인하는 단계에서, 정적 분석기(110)는 URL 주소, 파라미터 문자열 및 필터링 로직이 포함된 파라미터 문자열의 제약조건을 획득할 수 있다(S523). 정적 분석기(110)는 정적 분석을 통해 획득한 URL, 주소 파라미터 문자열 및 파라미터 문자열의 제약조건을 서버(100)에 전송할 수 있다(S524).
다시 도 5을 참조하면, 정적 분석기(110)는 정적 분석을 통해 획득된 URL 주소, 파라미터 문자열, 파라미터 문자열 제약조건을 서버(100)로 전송할 수 있다(S530).
정적 분석기(110)는 미리 정적 분석을 통해 획득된 URL 주소, 파라미터 문자열, 파라미터 문자열 제약조건을 동적 분석기(120)로부터 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 파라미터를 포함하는 최종 공격 문자열을 요청하는 신호를 수신하는 경우, 서버(100)로 전송할 수도 있다.
서버(100)는 URL 주소, 파라미터 문자열, 파라미터 문자열 제약조건을 수신할 수 있다. 서버(100)는 제약조건 반영하여 최종 공격 문자열을 생성하는 제약조건솔버를 이용하여 최종 공격 문자열을 생성할 수 있다(S540).
원시 공격 문자열은 URL 주소 및 원시 파라미터로 구성될 수 있고, 최종 공격 문자열은 URL 주소 및 수정된 파라미터로 구성될 수 있다. 원시 공격 문자열은 임의의 공격 문자열을 의미할 수 있다. 서버(100)의 제약조건솔버는 URL 주소, 파라미터 문자열 및 파라미터 문자열의 제약 조건을 바탕으로 원시 공격 문자열을 필터링하도록 필터링 로직을 우회할 수 있는 최종 공격 문자열을 생성할 수 있다.
서버(100)는 동적 분석기(120)로 서버(100)의 제약조건솔버에 의해 생성된 최종 공격 문자열을 전송할 수 있다(S550). 동적 분석기(120)는 최종 공격 문자열을 서버(100)로부터 수신 할 수 있다. 최종 공격 문자열을 수신한 동적 분석기(120)는 최종 공격 문자열을 동적 분석을 하고자 하는 웹 애플리케이션이 설치된 디바이스(400)에 전송할 수 있다(S560).
동적 분석기(120)는 동적 분석을 하고자 하는 웹 애플리케이션이 설치된 디바이스(400)에 특정 동작을 수행하여 동적 분석을 할 수 있다. 웹 애플리케이션을 통해 실행되는 특정 동작은, DDoS(distributed denial of service) 공격 동작, APT(advanced persistent threat) 공격 동작, 패스워드 크래킹(password cracking) 공격 동작, 키로깅(keylogging) 공격 동작, 스푸핑(spoofing) 공격 동작 및 루트킷(rootkit) 공격 동작 중에서 적어도 하나를 포함할 수 있다.
디바이스(400)는 최종 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 나타낼 수 있다. 동적 분석기(120)는 디바이스(400)가 최종 공격 문자열에 기초한 웹 애플리케이션의 실행 상태를 모니터링 할 수 있다(S570). 동적 분석기(120)는 최종 공격 문자열에 기초한 동작을 디바이스(400)로부터 수신할 수 있다. 동적 분석기(120)는 디바이스(400)로부터 수신한 최종 공격 문자열에 기초한 동작을 바탕으로 동적 분석을 수행할 수 있다(S580). 동적 분석 방법은 다음과 같을 수 있다.
도 7은 본 발명의 일 실시예에 따른 동적 분석을 수행하는 방법을 도시한 흐름도이다.
도 7을 참조하면, 테스트 케이스 생성기는 테스트 케이스(test case)를 생성할 수 있다(S581).
결과 분석기는 웹 애플리케이션에 텍스트 데이터를 입력하여 웹 애플리케이션의 취약점이 무엇인지 분석할 수 있다(S582). 텍스트 데이터란 URL주소에 파라미터 값을 넣어 주는 것을 의미할 수 있다. 파라미터 값은 정적분석을 통해 제약조건 반영하여 생성된 최종 공격 문자열일 수 있다.
분석 결과, 최종 공격 문자열에 의해 지시되는 특정 동작이 웹 애플리케이션을 통해 실행되는 경우, 최종 공격 문자열이 웹 애플리케이션에 의해 필터링되지 않는 것으로 판단될 수 있다. 분석 결과, 최종 공격 문자열에 의해 지시되는 특정 동작이 웹 애플리케이션을 통해 실행되지 않는 경우, 최종 공격 문자열이 웹 애플리케이션에 의해 필터링되는 것으로 판단될 수 있다.
웹 애플리케이션을 통해 실행될 특정 동작은, DDoS(distributed denial of service) 공격 동작, APT(advanced persistent threat) 공격 동작, 패스워드 크래킹(password cracking) 공격 동작, 키로깅(keylogging) 공격 동작, 스푸핑(spoofing) 공격 동작 및 루트킷(rootkit) 공격 동작 중에서 적어도 하나를 포함할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (18)

  1. 웹 애플리케이션(application)의 실행 상태를 분석하는 동적 분석기의 동작 방법으로서,
    상기 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 파라미터(parameter)를 포함하는 최종 공격 문자열을 포함하는 응답 메시지를 서버로부터 수신하는 단계;
    상기 최종 공격 문자열에 기초한 상기 웹 애플리케이션의 실행 상태를 분석하는 단계; 및
    상기 웹 애플리케이션의 실행 상태에 대한 분석 결과에 기초하여 상기 최종 공격 문자열이 상기 웹 애플리케이션에 의해 필터링(filtering)되는지 여부를 판단하는 단계를 포함하며,
    상기 최종 공격 문자열은 미리 정의된 파라미터를 포함하는 원시 공격 문자열을 필터링하도록 설계된 필터링 로직(logic)을 회피하도록 생성된, 동적 분석기의 동작 방법.
  2. 청구항 1에 있어서,
    상기 동적 분석기의 동작 방법은,
    상기 최종 공격 문자열의 제공을 요청하는 요청 메시지를 상기 서버에 전송하는 단계를 더 포함하며, 상기 응답 메시지는 상기 요청 메시지에 대한 응답으로 수신되는, 동적 분석기의 동작 방법.
  3. 청구항 1에 있어서,
    상기 웹 애플리케이션에 의해 필터링되는지 여부를 판단하는 단계는,
    상기 최종 공격 문자열에 의해 지시되는 특정 동작이 상기 웹 애플리케이션을 통해 실행되는 경우, 상기 최종 공격 문자열이 상기 웹 애플리케이션에 의해 필터링되지 않는 것으로 판단하는, 동적 분석기의 동작 방법.
  4. 청구항 1에 있어서,
    상기 웹 애플리케이션에 의해 필터링되는지 여부를 판단하는 단계는,
    상기 최종 공격 문자열에 의해 지시되는 특정 동작이 상기 웹 애플리케이션을 통해 실행되지 않는 경우, 상기 최종 공격 문자열이 상기 웹 애플리케이션에 의해 필터링되는 것으로 판단하는, 동적 분석기의 동작 방법.
  5. 청구항 1에 있어서,
    상기 최종 공격 문자열은 URL(uniform resource locator) 주소를 더 포함하는, 동적 분석기의 동작 방법.
  6. 청구항 1에 있어서,
    상기 웹 애플리케이션을 통해 실행될 특정 동작은,
    DDoS(distributed denial of service) 공격 동작, 악성 스크립트 실행(XSS: Cross Site Scripting phishing) 공격 동작, APT(advanced persistent threat) 공격 동작, 패스워드 크래킹(password cracking) 공격 동작, 키로깅(keylogging) 공격 동작, 스푸핑(spoofing) 공격 동작 및 루트킷(rootkit) 공격 동작 중에서 적어도 하나를 포함하는, 동적 분석기의 동작 방법.
  7. 최종 공격 문자열을 생성하는 서버의 동작 방법으로서,
    정적 분석기로부터 미리 정의된 파라미터(parameter)를 포함하는 원시 공격 문자열을 필터링(filtering)하도록 설계된 필터링 로직(logic)을 회피하기 위한 정책을 포함하는 제1 응답 메시지(message)를 수신하는 단계;
    상기 필터링 로직을 회피하도록, 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 수정된 파라미터를 포함하는 최종 공격 문자열을 생성하는 단계; 및
    상기 최종 공격 문자열을 포함하는 제2 응답 메시지를 동적 분석기에 전송하는 단계를 포함하는, 서버의 동작 방법.
  8. 청구항 7에 있어서,
    상기 서버의 동작 방법은,
    상기 필터링 로직을 회피하기 위한 정책의 제공을 요청하는 제1 요청 메시지를 상기 정적 분석기에 전송하는 단계를 더 포함하며, 상기 제1 응답 메시지는 상기 제1 요청 메시지에 대한 응답으로 수신되는, 서버의 동작 방법.
  9. 청구항 7에 있어서,
    상기 서버의 동작 방법은,
    상기 최종 공격 문자열의 제공을 요청하는 제2 요청 메시지를 상기 동적 분석기로부터 수신하는 단계를 더 포함하며, 상기 제2 응답 메시지는 상기 제2 요청 메시지에 대한 응답으로 전송되는, 서버의 동작 방법.
  10. 청구항 7에 있어서,
    상기 제1 응답 메시지는 URL(uniform resource locator) 주소 및 웹 애플리케이션을 실행될 특정 동작을 지시하는 원시 파라미터를 더 포함하는, 서버의 동작 방법.
  11. 청구항 7에 있어서,
    상기 최종 공격 문자열은 URL(uniform resource locator) 주소를 더 포함하는, 서버의 동작 방법.
  12. 청구항 7에 있어서,
    상기 웹 애플리케이션을 통해 실행될 특정 동작은,
    DDoS(distributed denial of service) 공격 동작, APT(advanced persistent threat) 공격 동작, 패스워드 크래킹(password cracking) 공격 동작, 키로깅(keylogging) 공격 동작, 스푸핑(spoofing) 공격 동작 및 루트킷(rootkit) 공격 동작 중에서 적어도 하나를 포함하는, 서버의 동작 방법.
  13. 최종 공격 문자열을 생성하는 서버(Server)로서,
    프로세서(Processor); 및
    상기 프로세스를 통해 실행되는 적어도 하나의 명령이 저장된 데이터베이스를 포함하고,
    상기 적어도 하나의 명령은,
    정적 분석기로부터 미리 정의된 파라미터(parameter)를 포함하는 원시 공격 문자열을 필터링(filtering)하도록 설계된 필터링 로직(logic)을 회피하기 위한 정책을 포함하는 제1 응답 메시지(message)를 수신하고,
    상기 필터링 로직을 회피하도록, 웹 애플리케이션을 통해 실행될 특정 동작을 지시하는 수정된 파라미터를 포함하는 최종 공격 문자열을 생성하고, 그리고
    상기 최종 공격 문자열을 포함하는 제2 응답 메시지를 동적 분석기에 전송하도록 실행 가능한, 서버.
  14. 청구항 13에 있어서,
    상기 적어도 하나의 명령은,
    상기 필터링 로직을 회피하기 위한 정책의 제공을 요청하는 제1 요청 메시지를 상기 정적 분석기에 전송하도록 더 실행 가능하며, 상기 제1 응답 메시지는 상기 제1 요청 메시지에 대한 응답으로 수신되는, 서버.
  15. 청구항 13에 있어서,
    상기 적어도 하나의 명령은,
    상기 최종 공격 문자열의 제공을 요청하는 제2 요청 메시지를 상기 동적 분석기로부터 수신하도록 더 실행 가능하며, 상기 제2 응답 메시지는 상기 제2 요청 메시지에 대한 응답으로 전송되는, 서버.
  16. 청구항 13에 있어서,
    상기 제1 응답 메시지는 URL(uniform resource locator) 주소 및 웹 애플리케이션을 실행될 특정 동작을 지시하는 원시 파라미터를 더 포함하는, 서버.
  17. 청구항 13에 있어서,
    상기 최종 공격 문자열은 URL(uniform resource locator) 주소를 더 포함하는, 서버.
  18. 청구항 13에 있어서,
    상기 웹 애플리케이션을 통해 실행될 특정 동작은,
    DDoS(distributed denial of service) 공격 동작, 악성 스크립트 실행(XSS: Cross Site Scripting phishing) 공격 동작, APT(advanced persistent threat) 공격 동작, 패스워드 크래킹(password cracking) 공격 동작, 키로깅(keylogging) 공격 동작, 스푸핑(spoofing) 공격 동작 및 루트킷(rootkit) 공격 동작 중에서 적어도 하나를 포함하는, 서버.
PCT/KR2016/008263 2016-07-19 2016-07-28 공격 문자열 생성 방법 및 장치 WO2018016669A2 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019503340A JP6785360B2 (ja) 2016-07-19 2016-07-28 攻撃文字列生成方法および装置
CN201680087790.9A CN109565499B (zh) 2016-07-19 2016-07-28 攻击字符串生成方法及装置
US16/318,476 US11496502B2 (en) 2016-07-19 2016-07-28 Method and apparatus for generating attack string

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160091242A KR101885615B1 (ko) 2016-07-19 2016-07-19 공격 문자열 생성 방법 및 장치
KR10-2016-0091242 2016-07-19

Publications (2)

Publication Number Publication Date
WO2018016669A2 true WO2018016669A2 (ko) 2018-01-25
WO2018016669A3 WO2018016669A3 (ko) 2018-03-08

Family

ID=60993127

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/008263 WO2018016669A2 (ko) 2016-07-19 2016-07-28 공격 문자열 생성 방법 및 장치

Country Status (5)

Country Link
US (1) US11496502B2 (ko)
JP (1) JP6785360B2 (ko)
KR (1) KR101885615B1 (ko)
CN (1) CN109565499B (ko)
WO (1) WO2018016669A2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102231726B1 (ko) 2019-03-28 2021-03-25 네이버클라우드 주식회사 취약점 진단방법 및 이를 위한 진단장치
CN112507347B (zh) * 2020-10-27 2022-06-24 中国科学院信息工程研究所 面向分布式密码破解框架的破解作业描述信息生成方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070261124A1 (en) * 2006-05-03 2007-11-08 International Business Machines Corporation Method and system for run-time dynamic and interactive identification of software authorization requirements and privileged code locations, and for validation of other software program analysis results
KR100894331B1 (ko) 2006-11-15 2009-04-24 한국전자통신연구원 웹 로그 상호연관분석을 이용한 웹 애플리케이션 공격의침입 탐지 시스템 및 방법
US8656495B2 (en) * 2006-11-17 2014-02-18 Hewlett-Packard Development Company, L.P. Web application assessment based on intelligent generation of attack strings
WO2011073982A1 (en) * 2009-12-15 2011-06-23 Seeker Security Ltd. Method and system of runtime analysis
JP5425699B2 (ja) 2010-04-30 2014-02-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、テストケース生成方法、プログラムおよび記録媒体
CN101883024B (zh) * 2010-06-23 2012-02-01 南京大学 一种跨站点伪造请求的动态检测方法
CN102136051B (zh) 2011-05-06 2013-02-20 南开大学 一种应用SGM-SQL注入模型驱动web应用渗透测试的方法
US8949992B2 (en) * 2011-05-31 2015-02-03 International Business Machines Corporation Detecting persistent vulnerabilities in web applications
US9032528B2 (en) * 2011-06-28 2015-05-12 International Business Machines Corporation Black-box testing of web applications with client-side code evaluation
CN102917360B (zh) * 2012-10-24 2015-04-29 北京邮电大学 一种Zigbee协议漏洞的检测装置及方法
US9083736B2 (en) * 2013-01-28 2015-07-14 Hewlett-Packard Development Company, L.P. Monitoring and mitigating client-side exploitation of application flaws
US9507943B1 (en) * 2013-02-19 2016-11-29 Amazon Technologies, Inc. Analysis tool for data security
US10515214B1 (en) * 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9363284B2 (en) * 2013-12-11 2016-06-07 International Business Machines Corporation Testing web applications for security vulnerabilities with metarequests
US10182068B2 (en) * 2014-11-26 2019-01-15 Entit Software Llc Determine vulnerability using runtime agent and network sniffer
CN104683328A (zh) * 2015-01-29 2015-06-03 兴华永恒(北京)科技有限责任公司 一种跨站漏洞扫描方法及系统
US10033747B1 (en) * 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10176325B1 (en) * 2016-06-21 2019-01-08 Symantec Corporation System and method for dynamic detection of command and control malware

Also Published As

Publication number Publication date
KR101885615B1 (ko) 2018-08-06
CN109565499B (zh) 2022-03-25
KR20180009510A (ko) 2018-01-29
WO2018016669A3 (ko) 2018-03-08
JP2019521456A (ja) 2019-07-25
JP6785360B2 (ja) 2020-11-18
US20190297107A1 (en) 2019-09-26
US11496502B2 (en) 2022-11-08
CN109565499A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
US8990944B1 (en) Systems and methods for automatically detecting backdoors
CN110209583B (zh) 安全测试方法、装置、系统、设备和存储介质
WO2018182126A1 (ko) 안전 소프트웨어 인증 시스템 및 방법
Stasinopoulos et al. Commix: automating evaluation and exploitation of command injection vulnerabilities in Web applications
WO2014112185A1 (ja) 攻撃分析システム及び連携装置及び攻撃分析連携方法及びプログラム
US20180034837A1 (en) Identifying compromised computing devices in a network
CN102546576A (zh) 一种网页挂马检测和防护方法、系统及相应代码提取方法
WO2021169293A1 (zh) 攻击行为检测方法、装置及攻击检测设备
KR102280845B1 (ko) 네트워크 내의 비정상 행위 탐지 방법 및 그 장치
JP5752642B2 (ja) 監視装置および監視方法
EP3340097B1 (en) Analysis device, analysis method, and analysis program
WO2018016669A2 (ko) 공격 문자열 생성 방법 및 장치
JP6527111B2 (ja) 解析装置、解析方法および解析プログラム
CN113347184A (zh) 网络流量安全检测引擎的测试方法、装置、设备及介质
Zammit A machine learning based approach for intrusion prevention using honeypot interaction patterns as training data
US11163882B2 (en) Analysis apparatus, analysis method, and analysis program
US20230318956A1 (en) Testing device, testing method, and testing program
TWI667587B (zh) 資訊安全防護方法
Cao et al. Covert Channels in SDN: Leaking Out Information from Controllers to End Hosts
WO2012077966A1 (en) Apparatus and method for removing malicious code
KR20210076455A (ko) Xss 공격 검증 자동화 방법 및 그 장치
US11921912B1 (en) Manipulating inter-chip communications for IoT security
Sharif A Practical Framework for Finding Software Vulnerabilities in SDN Controllers
JP5456636B2 (ja) ファイル収集監視方法、ファイル収集監視装置及びファイル収集監視プログラム
WO2016195344A1 (ko) 드라이브 바이 다운로드를 차단하는 네트워크 보안 시스템 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16909584

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 2019503340

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16909584

Country of ref document: EP

Kind code of ref document: A2