WO2018016671A2 - Dangerous code detection system for checking security vulnerability and method thereof - Google Patents

Dangerous code detection system for checking security vulnerability and method thereof Download PDF

Info

Publication number
WO2018016671A2
WO2018016671A2 PCT/KR2016/008749 KR2016008749W WO2018016671A2 WO 2018016671 A2 WO2018016671 A2 WO 2018016671A2 KR 2016008749 W KR2016008749 W KR 2016008749W WO 2018016671 A2 WO2018016671 A2 WO 2018016671A2
Authority
WO
WIPO (PCT)
Prior art keywords
analysis
detection system
code detection
unit
risk
Prior art date
Application number
PCT/KR2016/008749
Other languages
French (fr)
Korean (ko)
Other versions
WO2018016671A3 (en
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 주식회사 이븐스타
Publication of WO2018016671A2 publication Critical patent/WO2018016671A2/en
Publication of WO2018016671A3 publication Critical patent/WO2018016671A3/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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
    • 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
    • G06F21/563Static detection by source code 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

Definitions

  • the present invention relates to a risk code detection system and method for checking security vulnerabilities. Specifically, an analysis of security vulnerabilities is provided by detecting a source code vulnerable in advance and providing the information in a source file to check security vulnerabilities. A risk code detection system and method for minimizing time and system load are disclosed.
  • a security vulnerability checking system for checking and analyzing security vulnerabilities of software is used.
  • the security vulnerability checking system can check and analyze the security vulnerability of the software in various ways. For example, the security vulnerability checking system using symbolic execution assigns a symbol value to an input variable of the software. You can analyze whether there is a security vulnerability in the software.
  • the security vulnerability checking system using symbol execution mimics the execution process of software using symbol value rather than actual value. If a branch statement is encountered in the process, it generates the symbol value by following both paths and meets the conditions of several branch statements. At some point in the program, each variable has a value that checks for a vulnerability in the source code of the software.
  • the conventional security vulnerability check system using the symbol execution can not know in advance which source code of the vulnerability exists in the software, there is a problem that must be thoroughly inspected the entire software.
  • the conventional security vulnerability checking system using symbol execution has a problem in that the system load increases and the analysis time of the security vulnerability is excessively taken in the process of inspecting the entire software to check the security vulnerability.
  • the present invention has been made in view of the above problems, and an object thereof is to provide a risk code detection system and method for checking security vulnerabilities that can reduce the analysis time and system load of security vulnerabilities.
  • the present invention for achieving the above object is a compilation unit for compiling a source file to check the security vulnerability to generate a class file;
  • An analysis unit for analyzing a class file generated from the compilation unit and generating a hierarchical tree according to a dependency relationship between a class and a method;
  • a detection unit for detecting an analysis target method in which a risk code is estimated based on a hierarchical tree generated from the analysis unit;
  • a setting unit which classifies the analysis target method detected by the detection unit by a predetermined type, sets a check order of security vulnerabilities, and generates the priority list, thereby providing a risk code detection system for security vulnerability checking.
  • the compilation unit a source file loading module for loading the source file and the compilation library information of the source file; And a compilation module for generating a class file by compiling a source file according to the compilation library information.
  • the analysis unit a class file loading module for loading a class file; A byte code analysis module for analyzing a byte code of the loaded class file; And a hierarchy tree generation module for generating a hierarchy tree based on the analyzed byte code.
  • the detection unit may include: a first analysis target detection module configured to detect an analysis target method in which a risk code is estimated based on a position on a hierarchical tree; And a second analysis target detection module for detecting again an analysis target method matching a preset vulnerability pattern among the analysis target methods detected by the first analysis target detection module.
  • the setting unit may include: an analysis target classification module classifying the analysis target method by a parameter number and a parameter type; An analysis object list generation module for generating an analysis object list for an analysis object method classified from the analysis object classification module; And a priority list generation module for rearranging the analysis method on the analysis target list according to the complexity of the logic and generating the priority list.
  • the storage unit for storing the analysis result of the class file analyzed by the analysis unit, the analysis target method detected by the detection unit and the priority list set from the setting unit;
  • the present invention is a risk code detection method performed in a risk code detection system, comprising: (1) generating a class file by compiling a source file to check a security vulnerability by the risk code detection system; (2) the risk code detection system analyzing a class file to generate a hierarchical tree according to the dependency relationship between the class and the method; (3) the risk code detection system detecting a method to be analyzed in which a risk code is estimated based on a hierarchical tree; And (4) generating, by the risk code detection system, a method of classifying the analysis target method by a predetermined type and setting a check order of security vulnerabilities to generate a priority list. to provide.
  • the step (1) may include (1-1) loading, by the risk code detection system, a source file and compilation library information of the source file; And (1-2) generating a class file by compiling a source file according to the compilation library information by the dangerous code detection system.
  • the step (2) comprises: (2-1) the risk code detection system loading a class file; (2-2) the risk code detection system analyzing the byte code of the loaded class file; And (2-3) the risk code detection system generating a hierarchical tree based on the analyzed byte code.
  • the step (3) may include: (3-1) detecting, by the risk code detection system, a method to be analyzed in which a risk code is estimated based on a position on a hierarchical tree; And (3-2) re-detecting, by the risk code detection system, an analysis target method that matches a preset vulnerability pattern among the detected analysis target methods.
  • the step (4) may include: (4-1) classifying the method to be analyzed by the number of parameters and the parameter types by the risk code detection system; (4-2) generating, by the risk code detection system, an analysis object list for the classified analysis object method; And (4-3) generating the priority list by rearranging the analysis method on the analysis object list according to the complexity of the logic by the risk code detection system.
  • the analysis result of the class file, the method to be analyzed and the priority list are respectively stored in the database.
  • the present invention provides a compilation unit for compiling a source file and generating a class file, an analysis unit for generating a hierarchical tree by analyzing the class file, and a risk code based on the hierarchical tree.
  • FIG. 1 is a view for explaining a risk code detection system according to an embodiment of the present invention.
  • FIG. 2 is a diagram for explaining a compilation unit of a risk code detection system
  • 3 is a view for explaining an analysis unit of the risk code detection system.
  • FIG. 4 is a diagram for explaining a detection unit of a risk code detection system.
  • FIG. 5 is a diagram for explaining a setting unit of a risk code detection system.
  • FIG. 6 is a view for explaining a risk code detection method according to an embodiment of the present invention.
  • the risk code detection system and method for security vulnerability check may be implemented in hardware, but preferably, may be implemented through software operating with hardware.
  • the software may be stored in a computer-readable storage medium such as a hard disk drive, an SSD, a USB memory, and an SD card so that the computer functions by being read from the computer. It may be installed to operate in the server device.
  • a computer-readable storage medium such as a hard disk drive, an SSD, a USB memory, and an SD card so that the computer functions by being read from the computer. It may be installed to operate in the server device.
  • FIG. 1 is a view for explaining a risk code detection system according to an embodiment of the present invention
  • Figure 2 is a view for explaining the compilation of the risk code detection system
  • Figure 3 is a view for explaining the analysis of the risk code detection system 4
  • FIG. 5 is a view for explaining a setting unit of the danger code detection system.
  • the risk code detection system 100 includes a compiling unit 110, an analyzing unit 120, a detecting unit 130, a setting unit 140, and a storage unit. And 150.
  • the risk code detection system 100 may detect a risk code that is vulnerable to security from the software before performing a vulnerability analysis of the software.
  • the information of the aforementioned risk code may be provided to the security vulnerability checking system 10 using symbol execution for actually analyzing and checking the security vulnerability.
  • the compilation unit 110 performs a function of compiling a source file, which is software to check security vulnerabilities, to create a class file. As shown in FIG. 2, the compiling unit 110 includes a source file loading module 111 and a compiling module 112.
  • the source file loading module 111 loads a source file and library information of the source file.
  • the source file loading module 111 may load a source file uploaded by a user input or stored in a repository on a project basis.
  • package information including information on a directory, import information including information about a library, compilation option information, Sourcepath information, including information about the location of source files, and compilation library information for compilation can also be loaded.
  • the compilation module 112 performs a function of generating a class file by compiling a source file according to the compilation library information. To this end, the compilation module 112 analyzes the compilation library information loaded by the source file loading module 111 and applies the appropriate library to the corresponding source file to compile.
  • the above-described class file is generated.
  • the analysis is performed by the analysis unit 120 to be described later.
  • the analysis unit 120 analyzes the class file generated by the compilation unit 110 and generates a hierarchical tree according to the dependency relationship between the class and the method.
  • the analyzer 120 may include a class file loading module 121, a byte code analysis module 122, and a hierarchical tree generation module 123.
  • class file loading module 121 performs a function of loading a class file.
  • byte code analysis module 122 performs a function of analyzing the byte code of the class file loaded by the class file loading module 121.
  • the byte code analysis module 122 may collect and analyze information including a class included in a class file, a method defined in the class, a line position, a return type of a method, and whether a user class exists.
  • the byte code analysis module 122 analyzes information including a class calling or receiving another class from a class file, a method calling or receiving another method, and a line position calling or receiving another line position. .
  • the analysis result analyzed by the byte code analysis module 122 is stored in the storage unit 150 to be described later.
  • the above-described analysis result may include class-specific correlation, method-specific correlation, and information on logic in the method for generating a hierarchical tree, which will be described later.
  • the hierarchical tree generation module 123 performs a function of generating a hierarchical tree by connecting in accordance with a correlation between a class, a class, a method, and a method based on the analyzed byte code.
  • the hierarchical tree generation module 123 uses the analysis result analyzed by the byte code analysis module 122 to display a program flow according to dependency and dependency between each class or method. Create a tree.
  • the detector 130 detects an analysis target method in which a risk code is estimated based on the hierarchical tree generated from the analyzer 120.
  • the detector 130 may include a first analysis target detection module 131 and a second analysis target detection module 132.
  • the first analysis target detecting module 131 detects an analysis target method in which a risk code is estimated based on a position on the hierarchical tree.
  • the first analysis object detection module 131 detects a method of a class located at the end of the hierarchical tree, a method having no logic but a parameter, and a method having at least n logic between the start and the return. It may be provided to.
  • the second analysis target detection module 132 performs a function of detecting again the analysis target method matching the preset vulnerability pattern among the analysis target methods detected by the first analysis target detection module 131.
  • the risk pattern list for matching the vulnerability pattern may be stored in advance in the storage unit 150 to be described later.
  • the second analysis object detecting module 132 may detect an analysis object method having a thread, an analysis object method having a calculation formula for a parameter, and an analysis object method in which a parameter is a conditional clause.
  • the analysis target method finally detected by the second analysis target detection module 132 is stored in the storage unit 150 to be described later, so that the list is generated by the setting unit 140 to be described later using this. do.
  • the setting unit 140 performs a function of classifying the analysis target method detected by the detection unit 130 by a predetermined type and generating a priority list for setting a check order of security vulnerabilities.
  • the setting unit 140 may include an analysis object classification module 141, an analysis object list generation module 142, and a priority list generation module 143.
  • analysis object classification module 141 performs a function of classifying the analysis object method detected by the detection unit 130 by the number of parameters and the parameter types.
  • analysis object list generation module 142 performs a function of generating an analysis object list for an analysis object method classified from the analysis object classification module 141.
  • the priority list generation module 143 rearranges the analysis target methods on the analysis target list according to the complexity of the logic to generate a priority list.
  • the analysis target method may be sorted in the order of high complexity of method logic.
  • the priority list generation module 143 defines the complexity of the method logic as a numerical value and sets the priority using the same, for example, whether a parameter type and an argument received as a parameter of the method go through a calculation formula. And how many branch statements are affected, whether or not to use arithmetic operations, whether to determine the return value through the argument value of the parameter, and which threads affect the return value in the method. Complexity can be defined numerically depending on whether or not there is.
  • the complexity value to be defined in the priority list generation module 143 is set in advance by a user input.
  • the storage unit 150 stores the analysis result of the class file analyzed by the analysis unit 120, the analysis target method detected by the detection unit 130, and a priority list set by the setting unit 140. Do this.
  • the storage unit 150 may be implemented as a database, the detection of the analysis target method from the detection unit 130 is completed, the generation of the priority list by the setting unit 140 is completed and stored Once stored in the unit 150, the process of detecting the hazard code is terminated.
  • the risk code detection system 100 may provide information on an analysis target method and a priority of a risk code that should check a security vulnerability from a source file.
  • the analysis target method can be selectively checked according to its priority without having to perform a full inspection of the entire source file. And system load can be minimized.
  • FIG. 6 is a view for explaining a risk code detection method according to an embodiment of the present invention.
  • FIG. 6 a risk code detection method performed in a risk code detection system according to an embodiment of the present invention will be described.
  • the compilation unit generates a class file by compiling a source file to check the security vulnerability (S100).
  • the compilation unit loads the source file and the compiled library information of the corresponding source file (S110), and compiles the source file according to the compiled library information to generate a class file (S120).
  • the analysis unit analyzes the class file to generate a hierarchical tree according to the dependency relationship between the class and the method (S200).
  • the analysis unit loads the class file (S210), analyzes the byte code of the class file (S220), and generates a hierarchical tree based on the analyzed byte code information (S230).
  • the detection unit detects an analysis target method in which a risk code is present based on the hierarchical tree (S300).
  • the detection unit first detects an analysis target method in which a risk code is estimated based on a position on the hierarchical tree (S310), and then analyzes an analysis target method matching a predetermined vulnerability pattern among the detected analysis target methods. The process of detecting again is performed (S320).
  • the setting unit classifies the analysis target method by a predetermined type and sets a check order of security vulnerabilities to generate a priority list (S400).
  • the setting unit classifies the analysis target method by the number of parameters and the parameter type (S410), generates an analysis target list of the classified analysis target method (S420), and then analyzes the analysis target method on the corresponding analysis target list in logic.
  • the priority list is generated by rearranging according to the complexity (S430).
  • the analysis result of the class file, the analysis target method, and the priority list may be stored in storage units which are databases.
  • step S400 the process of detecting the risk code of the source file is terminated, and the process of selectively checking the analysis target method according to the priority is performed by the security vulnerability check system using symbol execution. Can be.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Bioethics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The present invention relates to a dangerous code detection system for checking a security vulnerability and a method thereof and, specifically, to a dangerous code detection system and a method thereof, which can previously detect a source code vulnerable to security risks from a source file to be checked for a security vulnerability and provide information on the same, thereby minimizing the time and system load required to analyze the security vulnerability. Also, the present invention comprises: a compiling unit for compiling a source file to generate a class file from the same; an analysis unit for generating a hierarchical structure tree by analyzing the class file; a detection unit for detecting a method to be analyzed where a dangerous code is assumed to exist, on the basis of the hierarchical structure tree; and a configuration unit for classifying the methods to be analyzed according to predetermined types and generating a priority list for checking a security vulnerability, whereby it is possible to check only a highly dangerous method without a total inspection of the source file. Therefore, the time and system load required to analyze the security vulnerability can be minimized.

Description

보안 취약점 점검을 위한 위험성 코드 검출 시스템 및 그 방법Risk Code Detection System and Method for Security Vulnerability Check
본 발명은 보안 취약점 점검을 위한 위험성 코드 검출 시스템 및 그 방법에 관한 것으로, 구체적으로는 보안 취약점을 점검하고자 하는 소스파일에서 보안에 취약한 소스코드를 미리 검출하고 그 정보를 제공함으로써, 보안 취약점의 분석 시간 및 시스템 부하를 최소화시킬 수 있는 위험성 코드 검출 시스템 및 그 방법에 관한 것이다.The present invention relates to a risk code detection system and method for checking security vulnerabilities. Specifically, an analysis of security vulnerabilities is provided by detecting a source code vulnerable in advance and providing the information in a source file to check security vulnerabilities. A risk code detection system and method for minimizing time and system load are disclosed.
최근, 소프트웨어의 보안 취약점(vulnerability)에 의한 보안 문제들이 지속적으로 발생하고 있으며, 이를 악용한 취약점 공격이 사회적으로 큰 문제가 되고 있다. 예컨대, 소프트웨어에 보안 취약점이 존재할 경우, 인가받지 않은 사용자가 불법적으로 특정 명령을 실행시키거나 지정된 접근 제한을 무시하고 특정 데이터에 접근하거나 정보 서비스 거부 공격을 수행할 수 있으므로, 정보 유출 및 시스템 파괴 등의 보안 사고가 발생하게 된다.Recently, security problems caused by security vulnerabilities of software have been continuously generated, and exploitation of these vulnerabilities has become a social problem. For example, if there are security vulnerabilities in the software, unauthorized users can illegally execute specific commands, bypass specified access restrictions, access certain data, or perform information denial of service attacks. Security incidents will occur.
따라서, 보안 취약점에 의한 보안 사고를 방지하기 위해서, 소프트웨어의 보안 취약점을 점검하고 분석하는 보안 취약점 점검 시스템이 사용되고 있다.Therefore, in order to prevent security incidents caused by security vulnerabilities, a security vulnerability checking system for checking and analyzing security vulnerabilities of software is used.
전술한, 보안 취약점 점검 시스템은 다양한 방식으로 소프트웨어의 보안 취약점을 점검 및 분석할 수 있으며, 일 예로서, 기호 실행(symbolic execution)을 이용하는 보안 취약점 점검 시스템은 소프트웨어의 입력 변수에 기호값을 할당하여 해당 소프트웨어에 보안 취약점이 존재하는지의 여부를 분석할 수 있다.As described above, the security vulnerability checking system can check and analyze the security vulnerability of the software in various ways. For example, the security vulnerability checking system using symbolic execution assigns a symbol value to an input variable of the software. You can analyze whether there is a security vulnerability in the software.
이때, 기호 실행을 이용한 보안 취약점 점검 시스템은 실제값이 아닌 기호값을 사용하여 소프트웨어의 실행 과정을 모방하며, 그 과정에서 분기문을 만나면 양쪽 경로를 모두 따라가면서 기호값을 생성하여 여러 분기문의 조건을 보고 프로그램의 어떤 지점에서 각 변수가 어떤 값들을 갖는지 분석하여 해당 소프트웨어의 소스코드 어느 부분에 취약점이 있는지 점검한다.At this time, the security vulnerability checking system using symbol execution mimics the execution process of software using symbol value rather than actual value. If a branch statement is encountered in the process, it generates the symbol value by following both paths and meets the conditions of several branch statements. At some point in the program, each variable has a value that checks for a vulnerability in the source code of the software.
한편, 종래의 기호 실행을 이용한 보안 취약점 점검 시스템은 소프트웨어의 어느 소스코드에 취약점이 존재하는지 사전에 알 수 없으므로, 해당 소프트웨어의 전체를 전수 검사해야 하는 문제점이 있다.On the other hand, the conventional security vulnerability check system using the symbol execution can not know in advance which source code of the vulnerability exists in the software, there is a problem that must be thoroughly inspected the entire software.
즉, 종래의 기호 실행을 이용한 보안 취약점 점검 시스템이, 보안 취약점을 점검하고자 하는 소프트웨어의 전체를 검사하는 과정에서, 시스템 부하가 증가하고 보안 취약점의 분석 시간도 과도하게 소요되는 문제점이 있었다.That is, the conventional security vulnerability checking system using symbol execution has a problem in that the system load increases and the analysis time of the security vulnerability is excessively taken in the process of inspecting the entire software to check the security vulnerability.
본 발명은 상기와 같은 문제점을 감안하여 안출된 것으로, 보안 취약점의 분석 시간 및 시스템 부하를 줄일 수 있는 보안 취약점 점검을 위한 위험성 코드 검출 시스템 및 그 방법을 제공하는데 그 목적이 있다.The present invention has been made in view of the above problems, and an object thereof is to provide a risk code detection system and method for checking security vulnerabilities that can reduce the analysis time and system load of security vulnerabilities.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects which are not mentioned will be clearly understood by those skilled in the art from the following description.
상기와 같은 목적을 달성하기 위한 본 발명은 보안 취약점을 점검하고자 하는 소스파일을 컴파일하여 클래스 파일로 생성하는 컴파일부; 상기 컴파일부로부터 생성된 클래스 파일을 분석하여 클래스 및 메소드 간의 종속 관계에 따른 계층구조 트리를 생성하는 분석부; 상기 분석부로부터 생성된 계층구조 트리를 기반으로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 검출부; 및 상기 검출부로부터 검출된 분석대상 메소드를 기설정된 타입별로 분류하고, 보안 취약점의 점검 순서를 설정하여 우선순위 리스트로 생성하는 설정부;를 포함하는 보안 취약점 점검을 위한 위험성 코드 검출 시스템을 제공한다.The present invention for achieving the above object is a compilation unit for compiling a source file to check the security vulnerability to generate a class file; An analysis unit for analyzing a class file generated from the compilation unit and generating a hierarchical tree according to a dependency relationship between a class and a method; A detection unit for detecting an analysis target method in which a risk code is estimated based on a hierarchical tree generated from the analysis unit; And a setting unit which classifies the analysis target method detected by the detection unit by a predetermined type, sets a check order of security vulnerabilities, and generates the priority list, thereby providing a risk code detection system for security vulnerability checking.
바람직한 실시예에 있어서, 상기 컴파일부는, 소스파일 및 해당 소스파일의 컴파일 라이브러리 정보를 로드하는 소스파일 로딩모듈; 및 상기 컴파일 라이브러리 정보에 따라 소스파일을 컴파일하여 클래스 파일을 생성하는 컴파일 모듈;을 포함한다.In a preferred embodiment, the compilation unit, a source file loading module for loading the source file and the compilation library information of the source file; And a compilation module for generating a class file by compiling a source file according to the compilation library information.
바람직한 실시예에 있어서, 상기 분석부는, 클래스 파일을 로드하는 클래스 파일 로딩모듈; 상기 로드된 클래스 파일의 바이트 코드를 분석하는 바이트 코드 분석모듈; 및 상기 분석된 바이트 코드를 기반으로 계층구조 트리를 생성하는 계층구조 트리 생성모듈;을 포함한다.In a preferred embodiment, the analysis unit, a class file loading module for loading a class file; A byte code analysis module for analyzing a byte code of the loaded class file; And a hierarchy tree generation module for generating a hierarchy tree based on the analyzed byte code.
바람직한 실시예에 있어서, 상기 검출부는, 계층구조 트리 상의 위치를 근거로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 제 1분석대상 검출모듈; 및 상기 제 1분석대상 검출모듈로부터 검출된 분석대상 메소드 중에서, 사전에 설정된 취약성 패턴과 매칭되는 분석대상 메소드를 다시 검출하는 제 2분석대상 검출모듈;을 포함한다.In an exemplary embodiment, the detection unit may include: a first analysis target detection module configured to detect an analysis target method in which a risk code is estimated based on a position on a hierarchical tree; And a second analysis target detection module for detecting again an analysis target method matching a preset vulnerability pattern among the analysis target methods detected by the first analysis target detection module.
바람직한 실시예에 있어서, 상기 설정부는, 분석대상 메소드를 파라미터 개수 및 파라미터 타입별로 분류하는 분석대상 분류모듈; 상기 분석대상 분류모듈로부터 분류된 분석대상 메소드에 대한 분석대상 리스트를 생성하는 분석대상 리스트 생성모듈; 및 분석대상 리스트 상의 분석대상 메소드를 로직의 복잡도에 따라 다시 정렬시켜 우선순위 리스트로 생성하는 우선순위 리스트 생성모듈;을 포함한다.In an exemplary embodiment, the setting unit may include: an analysis target classification module classifying the analysis target method by a parameter number and a parameter type; An analysis object list generation module for generating an analysis object list for an analysis object method classified from the analysis object classification module; And a priority list generation module for rearranging the analysis method on the analysis target list according to the complexity of the logic and generating the priority list.
바람직한 실시예에 있어서, 상기 분석부로부터 분석된 클래스 파일의 분석 결과와, 상기 검출부로부터 검출된 분석대상 메소드 및 상기 설정부로부터 설정된 우선순위 리스트를 저장하는 저장부;를 더 포함한다.In a preferred embodiment, the storage unit for storing the analysis result of the class file analyzed by the analysis unit, the analysis target method detected by the detection unit and the priority list set from the setting unit;
또한, 본 발명은 위험성 코드 검출 시스템에서 수행되는 위험성 코드 검출 방법으로서, (1) 상기 위험성 코드 검출 시스템이, 보안 취약점을 점검하고자 하는 소스파일을 컴파일하여 클래스 파일로 생성하는 단계; (2) 상기 위험성 코드 검출 시스템이, 클래스 파일을 분석하여 클래스 및 메소드 간의 종속 관계에 따른 계층구조 트리를 생성하는 단계; (3) 상기 위험성 코드 검출 시스템이, 계층구조 트리를 기반으로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 단계; 및 (4) 상기 위험성 코드 검출 시스템이, 분석대상 메소드를 기설정된 타입별로 분류하고 보안 취약점의 점검 순서를 설정하여 우선순위 리스트를 생성하는 단계;를 포함하는 보안 취약점 점검을 위한 위험성 코드 검출 방법을 제공한다.In addition, the present invention is a risk code detection method performed in a risk code detection system, comprising: (1) generating a class file by compiling a source file to check a security vulnerability by the risk code detection system; (2) the risk code detection system analyzing a class file to generate a hierarchical tree according to the dependency relationship between the class and the method; (3) the risk code detection system detecting a method to be analyzed in which a risk code is estimated based on a hierarchical tree; And (4) generating, by the risk code detection system, a method of classifying the analysis target method by a predetermined type and setting a check order of security vulnerabilities to generate a priority list. to provide.
바람직한 실시예에 있어서, 상기 제 (1)단계는, (1-1) 상기 위험성 코드 검출 시스템이, 소스파일 및 해당 소스파일의 컴파일 라이브러리 정보를 로드하는 단계; 및 (1-2) 상기 위험성 코드 검출 시스템이, 상기 컴파일 라이브러리 정보에 따라 소스파일을 컴파일하여 클래스 파일을 생성하는 단계;를 포함한다.In a preferred embodiment, the step (1) may include (1-1) loading, by the risk code detection system, a source file and compilation library information of the source file; And (1-2) generating a class file by compiling a source file according to the compilation library information by the dangerous code detection system.
바람직한 실시예에 있어서, 상기 제 (2)단계는, (2-1) 상기 위험성 코드 검출 시스템이, 클래스 파일을 로드하는 단계; (2-2) 상기 위험성 코드 검출 시스템이, 로드된 클래스 파일의 바이트 코드를 분석하는 단계; 및 (2-3) 상기 위험성 코드 검출 시스템이, 분석된 바이트 코드를 기반으로 계층구조 트리를 생성하는 단계;를 포함한다.In a preferred embodiment, the step (2) comprises: (2-1) the risk code detection system loading a class file; (2-2) the risk code detection system analyzing the byte code of the loaded class file; And (2-3) the risk code detection system generating a hierarchical tree based on the analyzed byte code.
바람직한 실시예에 있어서, 상기 제 (3)단계는, (3-1) 상기 위험성 코드 검출 시스템이, 계층구조 트리 상의 위치를 근거로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 단계; 및 (3-2) 상기 위험성 코드 검출 시스템이, 상기 검출된 분석대상 메소드 중에서, 사전에 설정된 취약성 패턴과 매칭되는 분석대상 메소드를 다시 검출하는 단계;를 포함한다.In a preferred embodiment, the step (3) may include: (3-1) detecting, by the risk code detection system, a method to be analyzed in which a risk code is estimated based on a position on a hierarchical tree; And (3-2) re-detecting, by the risk code detection system, an analysis target method that matches a preset vulnerability pattern among the detected analysis target methods.
바람직한 실시예에 있어서, 상기 제 (4)단계는, (4-1) 상기 위험성 코드 검출 시스템이, 분석대상 메소드를 파라미터 개수 및 파라미터 타입별로 분류하는 단계; (4-2) 상기 위험성 코드 검출 시스템이, 분류된 분석대상 메소드에 대한 분석대상 리스트를 생성하는 단계; 및 (4-3) 상기 위험성 코드 검출 시스템이, 분석대상 리스트 상의 분석대상 메소드를 로직의 복잡도에 따라 다시 정렬시켜 우선순위 리스트로 생성하는 단계;를 포함한다.In a preferred embodiment, the step (4) may include: (4-1) classifying the method to be analyzed by the number of parameters and the parameter types by the risk code detection system; (4-2) generating, by the risk code detection system, an analysis object list for the classified analysis object method; And (4-3) generating the priority list by rearranging the analysis method on the analysis object list according to the complexity of the logic by the risk code detection system.
바람직한 실시예에 있어서, 클래스 파일의 분석 결과, 분석대상 메소드 및 우선순위 리스트는 데이터베이스에 각각 저장된다.In a preferred embodiment, the analysis result of the class file, the method to be analyzed and the priority list are respectively stored in the database.
전술한 과제해결 수단에 의해 본 발명은 소스파일을 컴파일하여 클래스 파일로 생성하는 컴파일부와, 클래스 파일을 분석하여 계층구조 트리를 생성하는 분석부와, 계층구조 트리를 기반으로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 검출부 및 분석대상 메소드를 기설정된 타입별로 분류하고 보안 취약점의 점검을 위한 우선순위 리스트를 생성하는 설정부를 구비하여, 소스파일의 전수검사를 수행하지 않고 위험성이 높은 메소드만을 선택적으로 점검할 수 있게 함으로써, 보안 취약점의 분석 시간 및 시스템 부하를 최소화할 수 있는 효과가 있다.According to the above-mentioned problem solving means, the present invention provides a compilation unit for compiling a source file and generating a class file, an analysis unit for generating a hierarchical tree by analyzing the class file, and a risk code based on the hierarchical tree. A detection unit for detecting the estimated analysis target method and a setting unit for classifying the analysis target method by predetermined types and generating a priority list for checking security vulnerabilities. By selectively inspecting bays, it is possible to minimize the analysis time and system load of security vulnerabilities.
도 1은 본 발명의 일실시예에 따른 위험성 코드 검출 시스템을 설명하기 위한 도면.1 is a view for explaining a risk code detection system according to an embodiment of the present invention.
도 2는 위험성 코드 검출 시스템의 컴파일부를 설명하기 위한 도면.2 is a diagram for explaining a compilation unit of a risk code detection system;
도 3은 위험성 코드 검출 시스템의 분석부를 설명하기 위한 도면.3 is a view for explaining an analysis unit of the risk code detection system.
도 4는 위험성 코드 검출 시스템의 검출부를 설명하기 위한 도면.4 is a diagram for explaining a detection unit of a risk code detection system.
도 5는 위험성 코드 검출 시스템의 설정부를 설명하기 위한 도면.5 is a diagram for explaining a setting unit of a risk code detection system.
도 6은 본 발명의 일실시예에 따른 위험성 코드 검출 방법을 설명하기 위한 도면.6 is a view for explaining a risk code detection method according to an embodiment of the present invention.
하기의 설명에서 본 발명의 특정 상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나 있는데, 이들 특정 상세들 없이 또한 이들의 변형에 의해서도 본 발명이 용이하게 실시될 수 있다는 것은 이 기술분야에서 통상의 지식을 가진 자에게 자명할 것이다.In the following description certain details of the invention have been presented to provide a more general understanding of the invention, which is a common practice in the art that the invention may be readily practiced without these specific details and by variations thereof. It will be obvious to those who have knowledge.
먼저, 본 발명의 일실시예에 따른 보안 취약점 점검을 위한 위험성 코드 검출 시스템 및 그 방법은 하드웨어적으로 구현될 수도 있으나, 바람직하게는, 하드웨어와 함께 동작하는 소프트웨어를 통해 구현될 수 있다.First, the risk code detection system and method for security vulnerability check according to an embodiment of the present invention may be implemented in hardware, but preferably, may be implemented through software operating with hardware.
여기서, 상기 소프트웨어는 하드디스크 드라이브, SSD, USB메모리 및 SD카드와 같이 공지된 컴퓨터로 읽을 수 있는 저장매체에 저장되어 상기 컴퓨터에서 읽혀짐으로써 상기 컴퓨터가 기능하게 하는 것일 수 있으며, 소정의 클라이언트 또는 서버 장치에 설치되어 동작하도록 구비될 수 있다.Here, the software may be stored in a computer-readable storage medium such as a hard disk drive, an SSD, a USB memory, and an SD card so that the computer functions by being read from the computer. It may be installed to operate in the server device.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도 1 내지 도 6을 참조하여 상세히 설명하되, 본 발명에 따른 동작 및 작용을 이해하는데 필요한 부분을 중심으로 설명한다.Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings 1 to 6, with the focus on the parts necessary to understand the operation and action according to the present invention.
도 1은 본 발명의 일실시예에 따른 위험성 코드 검출 시스템을 설명하기 위한 도면이고, 도 2는 위험성 코드 검출 시스템의 컴파일부를 설명하기 위한 도면이며, 도 3은 위험성 코드 검출 시스템의 분석부를 설명하기 위한 도면이며, 도 4는 위험성 코드 검출 시스템의 검출부를 설명하기 위한 도면이며, 도 5는 위험성 코드 검출 시스템의 설정부를 설명하기 위한 도면이다.1 is a view for explaining a risk code detection system according to an embodiment of the present invention, Figure 2 is a view for explaining the compilation of the risk code detection system, Figure 3 is a view for explaining the analysis of the risk code detection system 4 is a view for explaining a detection unit of the risk code detection system, and FIG. 5 is a view for explaining a setting unit of the danger code detection system.
도 1 내지 도 5를 참조하면, 본 발명의 일실시예에 따른 위험성 코드 검출 시스템(100)은 컴파일부(110), 분석부(120), 검출부(130), 설정부(140) 및 저장부(150)를 포함하여 구성된다.1 to 5, the risk code detection system 100 according to an embodiment of the present invention includes a compiling unit 110, an analyzing unit 120, a detecting unit 130, a setting unit 140, and a storage unit. And 150.
여기서, 본 발명의 일실시예에 따른 위험성 코드 검출 시스템(100)은 소프트웨어의 취약점 분석을 수행하기 이전에, 그 소프트웨어로부터 보안에 취약한 위험성 코드를 사전에 검출할 수 있다. 그리고, 전술한 위험성 코드의 정보는 보안 취약점을 실제로 분석 및 점검하는 기호 실행을 이용한 보안 취약점 점검 시스템(10)에 제공될 수 있다.Here, the risk code detection system 100 according to an embodiment of the present invention may detect a risk code that is vulnerable to security from the software before performing a vulnerability analysis of the software. In addition, the information of the aforementioned risk code may be provided to the security vulnerability checking system 10 using symbol execution for actually analyzing and checking the security vulnerability.
상기 컴파일부(110)는 보안 취약점을 점검하고자 하는 소프트웨어인 소스파일을 컴파일하여 클래스 파일로 생성하는 기능을 수행한다. 도 2에서 도시된 바와 같이, 상기 컴파일부(110)는 소스파일 로딩모듈(111) 및 컴파일 모듈(112)을 포함하여 구성된다.The compilation unit 110 performs a function of compiling a source file, which is software to check security vulnerabilities, to create a class file. As shown in FIG. 2, the compiling unit 110 includes a source file loading module 111 and a compiling module 112.
또한, 상기 소스파일 로딩모듈(111)은 소스파일 및 해당 소스파일의 라이브러리 정보를 로드하는 기능을 수행한다. 예컨대, 상기 소스파일 로딩모듈(111)은 사용자 입력에 의해 업로드되거나 레파지토리에 저장된 소스파일을 프로젝트 단위로 로딩할 수 있다. In addition, the source file loading module 111 loads a source file and library information of the source file. For example, the source file loading module 111 may load a source file uploaded by a user input or stored in a repository on a project basis.
그리고, 상기 소스파일 로딩모듈(111)이 소스파일을 로딩하는 과정에서, 디렉토리에 대한 정보를 포함하는 패키지(package) 정보, 라이브러리에 대한 정보를 포함하는 임폴트(import) 정보, 컴파일 옵션 정보, 소스파일의 위치에 대한 정보를 포함하는 소스패스(sourcepath) 정보 및 컴파일을 위한 컴파일 라이브러리 정보를 함께 로딩할 수도 있다.In the process of loading the source file by the source file loading module 111, package information including information on a directory, import information including information about a library, compilation option information, Sourcepath information, including information about the location of source files, and compilation library information for compilation can also be loaded.
또한, 상기 컴파일 모듈(112)은 상기 컴파일 라이브러리 정보에 따라 소스파일을 컴파일하여 클래스 파일을 생성하는 기능을 수행한다. 이를 위해, 상기 컴파일 모듈(112)은 상기 소스파일 로딩모듈(111)에 의해 로딩된 컴파일 라이브러리 정보를 분석하고, 해당 소스파일에 적합한 라이브러리를 적용하여 컴파일을 수행한다.In addition, the compilation module 112 performs a function of generating a class file by compiling a source file according to the compilation library information. To this end, the compilation module 112 analyzes the compilation library information loaded by the source file loading module 111 and applies the appropriate library to the corresponding source file to compile.
그리고, 상기 컴파일 모듈(112)에 의한 컴파일이 완료되면 전술한 클래스 파일이 생성되게 된다. 또한, 상기 생성된 클래스 파일을 이용하여, 후술할 분석부(120)에 의한 분석이 이루어진다.When the compilation by the compilation module 112 is completed, the above-described class file is generated. In addition, by using the generated class file, the analysis is performed by the analysis unit 120 to be described later.
상기 분석부(120)는 상기 컴파일부(110)로부터 생성된 클래스 파일을 분석하여 클래스 및 메소드 간의 종속 관계에 따른 계층구조 트리를 생성하는 기능을 수행한다.The analysis unit 120 analyzes the class file generated by the compilation unit 110 and generates a hierarchical tree according to the dependency relationship between the class and the method.
도 3에서 도시된 바와 같이, 상기 분석부(120)는 클래스 파일 로딩모듈(121), 바이트 코드 분석모듈(122) 및 계층구조 트리 생성모듈(123)을 포함하여 구성될 수 있다.As shown in FIG. 3, the analyzer 120 may include a class file loading module 121, a byte code analysis module 122, and a hierarchical tree generation module 123.
또한, 상기 클래스 파일 로딩모듈(121)은 클래스 파일을 로드하는 기능을 수행한다. 그리고, 상기 바이트 코드 분석모듈(122)은 상기 클래스 파일 로딩모듈(121)에 의해 로딩된 클래스 파일의 바이트 코드를 분석하는 기능을 수행한다. In addition, the class file loading module 121 performs a function of loading a class file. In addition, the byte code analysis module 122 performs a function of analyzing the byte code of the class file loaded by the class file loading module 121.
이때, 상기 바이트 코드 분석모듈(122)은 클래스 파일에 포함된 클래스, 해당 클래스에 정의된 메소드, 라인 위치, 메소드의 리턴 타입 및 사용자 클래스 여부를 포함하는 정보들을 수집하고 분석할 수 있다.In this case, the byte code analysis module 122 may collect and analyze information including a class included in a class file, a method defined in the class, a line position, a return type of a method, and whether a user class exists.
특히, 상기 바이트 코드 분석모듈(122)은 클래스 파일로부터 다른 클래스를 호출하거나 호출받는 클래스, 다른 메소드를 호출하거나 호출받는 메소드 및 다른 라인 위치를 호출하거나 호출받는 라인 위치를 포함하는 정보들을 분석하게 된다.In particular, the byte code analysis module 122 analyzes information including a class calling or receiving another class from a class file, a method calling or receiving another method, and a line position calling or receiving another line position. .
또한, 상기 바이트 코드 분석모듈(122)에 의해 분석된 분석 결과는 후술할 저장부(150)에서 저장된다. 이때, 전술한 분석 결과는 후술할 계층구조(Hierarchy) 트리의 생성을 위한 클래스별 상관관계, 메소드별 상관관계 및 메소드 내의 로직에 대한 정보를 포함할 수 있다.In addition, the analysis result analyzed by the byte code analysis module 122 is stored in the storage unit 150 to be described later. In this case, the above-described analysis result may include class-specific correlation, method-specific correlation, and information on logic in the method for generating a hierarchical tree, which will be described later.
또한, 상기 계층구조 트리 생성모듈(123)은 상기 분석된 바이트 코드를 기반으로 클래스와 클래스, 메소드와 메소드 간의 상관 관계에 맞춰 연결함으로써 계층구조 트리를 생성하는 기능을 수행한다.In addition, the hierarchical tree generation module 123 performs a function of generating a hierarchical tree by connecting in accordance with a correlation between a class, a class, a method, and a method based on the analyzed byte code.
바람직하게, 상기 계층구조 트리 생성모듈(123)은 상기 바이트 코드 분석모듈(122)에 의해 분석된 분석 결과를 이용하여, 각각의 클래스 또는 메소드 간의 의존 및 종속 관계에 따른 프로그램 흐름이 나타나도록 계층구조 트리를 생성하게 된다.Preferably, the hierarchical tree generation module 123 uses the analysis result analyzed by the byte code analysis module 122 to display a program flow according to dependency and dependency between each class or method. Create a tree.
또한, 상기 생성된 계층구조 트리를 이용하여, 후술할 검출부(130)에 의한 위험성 코드의 검출이 이루어지게 된다.In addition, by using the generated hierarchical tree, the detection of the risk code by the detection unit 130 to be described later is made.
상기 검출부(130)는 상기 분석부(120)로부터 생성된 계층구조 트리를 기반으로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 기능을 수행한다.The detector 130 detects an analysis target method in which a risk code is estimated based on the hierarchical tree generated from the analyzer 120.
도 4에서 도시된 바와 같이, 상기 검출부(130)는 제 1분석대상 검출모듈(131) 및 제 2분석대상 검출모듈(132)을 포함하여 구성될 수 있다.As shown in FIG. 4, the detector 130 may include a first analysis target detection module 131 and a second analysis target detection module 132.
또한, 상기 제 1분석대상 검출모듈(131)은 계층구조 트리 상의 위치를 근거로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 기능을 수행한다. In addition, the first analysis target detecting module 131 detects an analysis target method in which a risk code is estimated based on a position on the hierarchical tree.
또한, 상기 제 1분석대상 검출모듈(131)은 계층구조 트리의 끝에 위치한 클래스의 메소드와, 로직이 없으나 파라미터(parameter)는 포함하는 메소드 및 시작과 리턴 사이에 n개 이상의 로직이 있는 메소드를 검출하도록 구비될 수 있다.In addition, the first analysis object detection module 131 detects a method of a class located at the end of the hierarchical tree, a method having no logic but a parameter, and a method having at least n logic between the start and the return. It may be provided to.
또한, 상기 제 2분석대상 검출모듈(132)은 상기 제 1분석대상 검출모듈(131)로부터 검출된 분석대상 메소드 중에서, 사전에 설정된 취약성 패턴과 매칭되는 분석대상 메소드를 다시 검출하는 기능을 수행한다. 이때, 취약성 패턴을 매칭하기 위한 위험성 패턴 목록은 후술할 저장부(150)에 미리 저장될 수 있다.In addition, the second analysis target detection module 132 performs a function of detecting again the analysis target method matching the preset vulnerability pattern among the analysis target methods detected by the first analysis target detection module 131. . In this case, the risk pattern list for matching the vulnerability pattern may be stored in advance in the storage unit 150 to be described later.
바람직하게, 상기 제 2분석대상 검출모듈(132)은 스레드(thread)가 있는 분석대상 메소드, 파라미터에 대한 계산식이 있는 분석대상 메소드, 파라미터가 조건절로 되어 있는 분석대상 메소드를 검출할 수 있다. Preferably, the second analysis object detecting module 132 may detect an analysis object method having a thread, an analysis object method having a calculation formula for a parameter, and an analysis object method in which a parameter is a conditional clause.
또한, 상기 제 2분석대상 검출모듈(132)에 의해 최종적으로 검출된 분석대상 메소드는 후술할 저장부(150)에 저장되며, 이를 이용하여 후술할 설정부(140)에 의한 리스트 생성이 이루어지게 된다.In addition, the analysis target method finally detected by the second analysis target detection module 132 is stored in the storage unit 150 to be described later, so that the list is generated by the setting unit 140 to be described later using this. do.
상기 설정부(140)는 상기 검출부(130)로부터 검출된 분석대상 메소드를 기설정된 타입별로 분류하고, 보안 취약점의 점검 순서를 설정하기 위한 우선순위 리스트를 생성하는 기능을 수행한다.The setting unit 140 performs a function of classifying the analysis target method detected by the detection unit 130 by a predetermined type and generating a priority list for setting a check order of security vulnerabilities.
도 5에서 도시된 바와 같이, 상기 설정부(140)는 분석대상 분류모듈(141), 분석대상 리스트 생성모듈(142) 및 우선순위 리스트 생성모듈(143)을 포함하여 구성될 수 있다.As shown in FIG. 5, the setting unit 140 may include an analysis object classification module 141, an analysis object list generation module 142, and a priority list generation module 143.
또한, 상기 분석대상 분류모듈(141)은 상기 검출부(130)에 의해 검출된 분석대상 메소드를 파라미터 개수 및 파라미터 타입별로 분류하는 기능을 수행한다.In addition, the analysis object classification module 141 performs a function of classifying the analysis object method detected by the detection unit 130 by the number of parameters and the parameter types.
또한, 상기 분석대상 리스트 생성모듈(142)은 상기 분석대상 분류모듈(141)로부터 분류된 분석대상 메소드에 대한 분석대상 리스트를 생성하는 기능을 수행한다.In addition, the analysis object list generation module 142 performs a function of generating an analysis object list for an analysis object method classified from the analysis object classification module 141.
또한, 상기 우선순위 리스트 생성모듈(143)은 분석대상 리스트 상의 분석대상 메소드를 로직의 복잡도에 따라 다시 정렬시켜 우선순위 리스트로 생성하는 기능을 수행한다. 이때, 메소드 로직의 복잡도가 높은 순서로 분석대상 메소드를 정렬시킬 수 있다.In addition, the priority list generation module 143 rearranges the analysis target methods on the analysis target list according to the complexity of the logic to generate a priority list. At this time, the analysis target method may be sorted in the order of high complexity of method logic.
바람직하게, 상기 우선순위 리스트 생성모듈(143)은 메소드 로직의 복잡도를 수치로 정의하고 이를 이용하여 우선순위를 설정하게 되는데, 예컨대, 파라미터 타입과, 메소드의 파라미터로 받은 인자가 계산식을 거치는지 여부와, 몇 개의 분기문에 영향을 주는지의 여부와, 사칙연산 중 무엇을 사용하는지의 여부와, 파라미터의 인자값을 통해 리턴값을 결정하는지의 여부와, 메소드 내 리턴값에 영향을 주는 스레드가 있는지의 여부에 따라 복잡도를 수치로 정의할 수 있다.Preferably, the priority list generation module 143 defines the complexity of the method logic as a numerical value and sets the priority using the same, for example, whether a parameter type and an argument received as a parameter of the method go through a calculation formula. And how many branch statements are affected, whether or not to use arithmetic operations, whether to determine the return value through the argument value of the parameter, and which threads affect the return value in the method. Complexity can be defined numerically depending on whether or not there is.
한편, 상기 우선순위 리스트 생성모듈(143)에서 정의할 복잡도 수치는 사용자 입력에 의해 사전에 설정되게 된다.Meanwhile, the complexity value to be defined in the priority list generation module 143 is set in advance by a user input.
상기 저장부(150)는 상기 분석부(120)로부터 분석된 클래스 파일의 분석 결과와, 상기 검출부(130)로부터 검출된 분석대상 메소드 및 상기 설정부(140)로부터 설정된 우선순위 리스트를 저장하는 기능을 수행한다.The storage unit 150 stores the analysis result of the class file analyzed by the analysis unit 120, the analysis target method detected by the detection unit 130, and a priority list set by the setting unit 140. Do this.
바람직하게, 상기 저장부(150)는 데이터베이스로 구현될 수 있으며, 상기 검출부(130)로부터 분석대상 메소드의 검출이 완료되고, 상기 설정부(140)에 의해 우선순위 리스트의 생성이 완료되어 상기 저장부(150)에 저장되면, 위험성 코드를 검출하는 과정이 종료되게 된다.Preferably, the storage unit 150 may be implemented as a database, the detection of the analysis target method from the detection unit 130 is completed, the generation of the priority list by the setting unit 140 is completed and stored Once stored in the unit 150, the process of detecting the hazard code is terminated.
따라서, 본 발명의 일실시예에 따른 위험성 코드 검출 시스템(100)은 소스파일로부터 보안 취약점을 점검해야 하는 위험성 코드가 존재하는 분석대상 메소드 및 그 우선순위에 대한 정보를 제공할 수 있다.Therefore, the risk code detection system 100 according to an exemplary embodiment of the present invention may provide information on an analysis target method and a priority of a risk code that should check a security vulnerability from a source file.
이를 이용하면, 종래의 기호 실행을 이용한 보안 취약점 점검 시스템(10)에서 소스파일의 전체를 전수검사할 필요없이 분석대상 메소드를 그 우선순위에 따라 선택적으로 점검할 수 있게 되므로, 보안 취약점의 분석 시간 및 시스템 부하를 최소화시킬 수 있다.By using this, in the security vulnerability checking system 10 using the conventional symbol execution, the analysis target method can be selectively checked according to its priority without having to perform a full inspection of the entire source file. And system load can be minimized.
도 6은 본 발명의 일실시예에 따른 위험성 코드 검출 방법을 설명하기 위한 도면이다.6 is a view for explaining a risk code detection method according to an embodiment of the present invention.
도 6을 참조하여, 본 발명의 일실시예에 따른 위험성 코드 검출 시스템에서 수행되는 위험성 코드 검출 방법을 설명한다.Referring to FIG. 6, a risk code detection method performed in a risk code detection system according to an embodiment of the present invention will be described.
다만, 도 6에 도시된 위험성 코드 검출 방법에서 수행되는 기능은 모두 도 1 내지 도 5를 참조하여 설명한 위험성 코드 검출 시스템에서 수행되므로, 명시적인 설명이 없어도, 도 1 내지 도 5를 참조하여 설명한 모든 기능은 본 발명의 바람직한 실시예에 따른 위험성 코드 검출 방법에서 수행되고, 도 6을 참조하여 설명하는 모든 기능은 본 발명의 바람직한 실시예에 따른 위험성 코드 검출 시스템에서 그대로 수행됨을 주의해야 한다.However, since all functions performed in the risk code detection method illustrated in FIG. 6 are performed in the risk code detection system described with reference to FIGS. 1 to 5, all of the functions described with reference to FIGS. 1 to 5 are not required. It should be noted that the function is performed in the risk code detection method according to the preferred embodiment of the present invention, and all the functions described with reference to FIG. 6 are performed as it is in the risk code detection system according to the preferred embodiment of the present invention.
먼저, 컴파일부가 보안 취약점을 점검하고자 하는 소스파일을 컴파일하여 클래스 파일로 생성한다(S100).First, the compilation unit generates a class file by compiling a source file to check the security vulnerability (S100).
이때, 상기 컴파일부는 소스파일 및 해당 소스파일의 컴파일 라이브러리 정보를 로드한 다음(S110), 상기 컴파일 라이브러리 정보에 따라 소스파일을 컴파일하여 클래스 파일을 생성할 수 있다(S120).In this case, the compilation unit loads the source file and the compiled library information of the corresponding source file (S110), and compiles the source file according to the compiled library information to generate a class file (S120).
다음, 분석부가 클래스 파일을 분석하여 클래스 및 메소드 간의 종속 관계에 따른 계층구조 트리를 생성한다(S200).Next, the analysis unit analyzes the class file to generate a hierarchical tree according to the dependency relationship between the class and the method (S200).
이때, 상기 분석부는 클래스 파일을 로드한 다음(S210), 그 클래스 파일의 바이트 코드를 분석하고(S220), 상기 분석된 바이트 코드의 정보를 기반으로 계층구조 트리를 생성하게 된다(S230).At this time, the analysis unit loads the class file (S210), analyzes the byte code of the class file (S220), and generates a hierarchical tree based on the analyzed byte code information (S230).
그 다음, 검출부가 계층구조 트리를 기반으로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출한다(S300).Next, the detection unit detects an analysis target method in which a risk code is present based on the hierarchical tree (S300).
이때, 상기 검출부는 계층구조 트리 상의 위치를 근거로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 먼저 검출한 다음(S310), 그 검출된 분석대상 메소드 중에서 기설정된 취약성 패턴과 매칭되는 분석대상 메소드를 다시 검출하는 과정을 수행하게 된다(S320).In this case, the detection unit first detects an analysis target method in which a risk code is estimated based on a position on the hierarchical tree (S310), and then analyzes an analysis target method matching a predetermined vulnerability pattern among the detected analysis target methods. The process of detecting again is performed (S320).
그 다음에는, 설정부가 분석대상 메소드를 기설정된 타입별로 분류하고 보안 취약점의 점검 순서를 설정하여 우선순위 리스트를 생성한다(S400).Next, the setting unit classifies the analysis target method by a predetermined type and sets a check order of security vulnerabilities to generate a priority list (S400).
이때, 상기 설정부는 분석대상 메소드를 파라미터 개수 및 파라미터 타입별로 분류하고(S410), 그 분류된 분석대상 메소드의 분석대상 리스트를 생성한 다음(S420), 해당 분석대상 리스트 상의 분석대상 메소드를 로직의 복잡도에 따라 다시 정렬시켜 우선순위 리스트를 생성하게 된다(S430).In this case, the setting unit classifies the analysis target method by the number of parameters and the parameter type (S410), generates an analysis target list of the classified analysis target method (S420), and then analyzes the analysis target method on the corresponding analysis target list in logic. The priority list is generated by rearranging according to the complexity (S430).
한편, 전술한 각 단계에서 클래스 파일의 분석 결과, 분석대상 메소드 및 우선순위 리스트는 데이터베이스인 저장부에 각각 저장될 수 있다.Meanwhile, in each of the above-described steps, the analysis result of the class file, the analysis target method, and the priority list may be stored in storage units which are databases.
또한, 상기 제 S400단계가 완료된 다음에는 소스파일의 위험성 코드를 검출하는 과정이 종료되고, 기호 실행을 이용한 보안 취약점 점검 시스템에 의해 분석대상 메소드를 그 우선순위에 따라 선택적으로 점검하는 과정이 수행될 수 있다.In addition, after the step S400 is completed, the process of detecting the risk code of the source file is terminated, and the process of selectively checking the analysis target method according to the priority is performed by the security vulnerability check system using symbol execution. Can be.
이상에서는 본 발명의 바람직한 실시예를 예시적으로 설명하였으나, 본 발명의 범위는 이와 같은 특정 실시예에만 한정되는 것은 아니며, 특허청구범위에 기재된 범주 내에서 적절하게 변경 가능한 것이다.Although the preferred embodiments of the present invention have been described above by way of example, the scope of the present invention is not limited to these specific embodiments, and may be appropriately changed within the scope described in the claims.

Claims (12)

  1. 보안 취약점을 점검하고자 하는 소스파일을 컴파일하여 클래스 파일로 생성하는 컴파일부;Compiling unit for compiling the source file to check the security vulnerability to create a class file;
    상기 컴파일부로부터 생성된 클래스 파일을 분석하여 클래스 및 메소드 간의 종속 관계에 따른 계층구조 트리를 생성하는 분석부;An analysis unit for analyzing a class file generated from the compilation unit and generating a hierarchical tree according to a dependency relationship between a class and a method;
    상기 분석부로부터 생성된 계층구조 트리를 기반으로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 검출부; 및A detection unit for detecting an analysis target method in which a risk code is estimated based on a hierarchical tree generated from the analysis unit; And
    상기 검출부로부터 검출된 분석대상 메소드를 기설정된 타입별로 분류하고, 보안 취약점의 점검 순서를 설정하여 우선순위 리스트로 생성하는 설정부;를 포함하는 보안 취약점 점검을 위한 위험성 코드 검출 시스템.And a setting unit classifying the analysis target method detected by the detection unit by a predetermined type, and setting a check order of security vulnerabilities to generate a priority list.
  2. 제 1항에 있어서, 상기 컴파일부는,The method of claim 1, wherein the compilation unit,
    소스파일 및 해당 소스파일의 컴파일 라이브러리 정보를 로드하는 소스파일 로딩모듈; 및A source file loading module for loading source files and compilation library information of the source files; And
    상기 컴파일 라이브러리 정보에 따라 소스파일을 컴파일하여 클래스 파일을 생성하는 컴파일 모듈;을 포함하는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 시스템.Compilation module for generating a class file by compiling a source file according to the compilation library information; risk code detection system for security vulnerability check, comprising a.
  3. 제 1항에 있어서, 상기 분석부는,The method of claim 1, wherein the analysis unit,
    클래스 파일을 로드하는 클래스 파일 로딩모듈;A class file loading module for loading class files;
    상기 로드된 클래스 파일의 바이트 코드를 분석하는 바이트 코드 분석모듈; 및A byte code analysis module for analyzing a byte code of the loaded class file; And
    상기 분석된 바이트 코드를 기반으로 계층구조 트리를 생성하는 계층구조 트리 생성모듈;을 포함하는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 시스템.And a hierarchy tree generation module for generating a hierarchy tree based on the analyzed byte code.
  4. 제 1항에 있어서, 상기 검출부는,The method of claim 1, wherein the detection unit,
    계층구조 트리 상의 위치를 근거로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 제 1분석대상 검출모듈; 및A first analyte detection module that detects an analyte method in which a risk code is estimated based on a position on a hierarchical tree; And
    상기 제 1분석대상 검출모듈로부터 검출된 분석대상 메소드 중에서, 사전에 설정된 취약성 패턴과 매칭되는 분석대상 메소드를 다시 검출하는 제 2분석대상 검출모듈;을 포함하는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 시스템.Risk analysis for the security vulnerability check, including; a second analysis target detection module for detecting again the analysis target method matching a predetermined vulnerability pattern among the analysis target method detected from the first analysis target detection module; Code detection system.
  5. 제 1항에 있어서, 상기 설정부는,The method of claim 1, wherein the setting unit,
    분석대상 메소드를 파라미터 개수 및 파라미터 타입별로 분류하는 분석대상 분류모듈;An analysis object classification module that classifies the analysis object method according to the number of parameters and the parameter types;
    상기 분석대상 분류모듈로부터 분류된 분석대상 메소드에 대한 분석대상 리스트를 생성하는 분석대상 리스트 생성모듈; 및An analysis object list generation module for generating an analysis object list for an analysis object method classified from the analysis object classification module; And
    분석대상 리스트 상의 분석대상 메소드를 로직의 복잡도에 따라 다시 정렬시켜 우선순위 리스트로 생성하는 우선순위 리스트 생성모듈;을 포함하는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 시스템.And a priority list generation module for rearranging the analysis target methods on the analysis target list according to the complexity of the logic to generate a priority list.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서, The method according to any one of claims 1 to 5,
    상기 분석부로부터 분석된 클래스 파일의 분석 결과와, 상기 검출부로부터 검출된 분석대상 메소드 및 상기 설정부로부터 설정된 우선순위 리스트를 저장하는 저장부;를 더 포함하는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 시스템.And a storage unit for storing an analysis result of the class file analyzed by the analysis unit, an analysis target method detected by the detection unit, and a priority list set by the setting unit. Code detection system.
  7. 위험성 코드 검출 시스템에서 수행되는 위험성 코드 검출 방법으로서,A risk code detection method performed in a risk code detection system,
    (1) 상기 위험성 코드 검출 시스템이, 보안 취약점을 점검하고자 하는 소스파일을 컴파일하여 클래스 파일로 생성하는 단계;(1) the dangerous code detection system generating a class file by compiling a source file to check a security vulnerability;
    (2) 상기 위험성 코드 검출 시스템이, 클래스 파일을 분석하여 클래스 및 메소드 간의 종속 관계에 따른 계층구조 트리를 생성하는 단계;(2) the risk code detection system analyzing a class file to generate a hierarchical tree according to the dependency relationship between the class and the method;
    (3) 상기 위험성 코드 검출 시스템이, 계층구조 트리를 기반으로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 단계; 및(3) the risk code detection system detecting a method to be analyzed in which a risk code is estimated based on a hierarchical tree; And
    (4) 상기 위험성 코드 검출 시스템이, 분석대상 메소드를 기설정된 타입별로 분류하고 보안 취약점의 점검 순서를 설정하여 우선순위 리스트를 생성하는 단계;를 포함하는 보안 취약점 점검을 위한 위험성 코드 검출 방법.(4) generating a priority list by the risk code detection system, classifying the analysis target method by a predetermined type and setting a check order of security vulnerabilities.
  8. 제 7항에 있어서, 상기 제 (1)단계는,The method of claim 7, wherein the step (1),
    (1-1) 상기 위험성 코드 검출 시스템이, 소스파일 및 해당 소스파일의 컴파일 라이브러리 정보를 로드하는 단계; 및(1-1) the dangerous code detection system loading a source file and compiled library information of the source file; And
    (1-2) 상기 위험성 코드 검출 시스템이, 상기 컴파일 라이브러리 정보에 따라 소스파일을 컴파일하여 클래스 파일을 생성하는 단계;를 포함하는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 방법.(1-2) generating a class file by compiling a source file according to the compilation library information by the risk code detection system.
  9. 제 7항에 있어서, 상기 제 (2)단계는,The method of claim 7, wherein the (2) step,
    (2-1) 상기 위험성 코드 검출 시스템이, 클래스 파일을 로드하는 단계;(2-1) the risk code detection system loading a class file;
    (2-2) 상기 위험성 코드 검출 시스템이, 로드된 클래스 파일의 바이트 코드를 분석하는 단계; 및(2-2) the risk code detection system analyzing the byte code of the loaded class file; And
    (2-3) 상기 위험성 코드 검출 시스템이, 분석된 바이트 코드를 기반으로 계층구조 트리를 생성하는 단계;를 포함하는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 방법.(2-3) the risk code detection system, generating a hierarchical tree based on the analyzed byte code.
  10. 제 7항에 있어서, 상기 제 (3)단계는,The method of claim 7, wherein the step (3),
    (3-1) 상기 위험성 코드 검출 시스템이, 계층구조 트리 상의 위치를 근거로 위험성 코드가 존재할 것으로 추정되는 분석대상 메소드를 검출하는 단계; 및(3-1) detecting, by the risk code detection system, a method to be analyzed in which a risk code is estimated based on a position on a hierarchical tree; And
    (3-2) 상기 위험성 코드 검출 시스템이, 상기 검출된 분석대상 메소드 중에서, 사전에 설정된 취약성 패턴과 매칭되는 분석대상 메소드를 다시 검출하는 단계;를 포함하는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 방법.(3-2) the risk code detection system, further detecting, from among the detected analysis target methods, an analysis target method matching a preset vulnerability pattern; Code detection method.
  11. 제 7항에 있어서, 상기 제 (4)단계는,The method of claim 7, wherein the (4) step,
    (4-1) 상기 위험성 코드 검출 시스템이, 분석대상 메소드를 파라미터 개수 및 파라미터 타입별로 분류하는 단계;(4-1) classifying, by the risk code detection system, a method to be analyzed by a parameter number and a parameter type;
    (4-2) 상기 위험성 코드 검출 시스템이, 분류된 분석대상 메소드에 대한 분석대상 리스트를 생성하는 단계; 및(4-2) generating, by the risk code detection system, an analysis object list for the classified analysis object method; And
    (4-3) 상기 위험성 코드 검출 시스템이, 분석대상 리스트 상의 분석대상 메소드를 로직의 복잡도에 따라 다시 정렬시켜 우선순위 리스트로 생성하는 단계;를 포함하는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 방법.(4-3) a risk code for security vulnerability check, wherein the risk code detection system includes generating a priority list by rearranging the analysis method on the analysis target list according to the complexity of logic; Detection method.
  12. 제 7항 내지 제 11항 중 어느 한 항에 있어서,The method according to any one of claims 7 to 11,
    클래스 파일의 분석 결과, 분석대상 메소드 및 우선순위 리스트는 데이터베이스에 각각 저장되는 것을 특징으로 하는 보안 취약점 점검을 위한 위험성 코드 검출 방법.The result of analyzing the class file, the method and priority list of the analysis target are stored in the database, respectively.
PCT/KR2016/008749 2016-07-20 2016-08-09 Dangerous code detection system for checking security vulnerability and method thereof WO2018016671A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160092147A KR20180010053A (en) 2016-07-20 2016-07-20 Extraction system and method of risk code for vulnerability analysis
KR10-2016-0092147 2016-07-20

Publications (2)

Publication Number Publication Date
WO2018016671A2 true WO2018016671A2 (en) 2018-01-25
WO2018016671A3 WO2018016671A3 (en) 2018-03-08

Family

ID=60993132

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/008749 WO2018016671A2 (en) 2016-07-20 2016-08-09 Dangerous code detection system for checking security vulnerability and method thereof

Country Status (2)

Country Link
KR (1) KR20180010053A (en)
WO (1) WO2018016671A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110011986A (en) * 2019-03-20 2019-07-12 中山大学 A kind of source code leak detection method based on deep learning

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102117012B1 (en) 2018-07-17 2020-05-29 단국대학교 산학협력단 System and Method for Supporting Secure Programming for PLC based on Coding Rule
KR101963752B1 (en) * 2018-11-02 2019-03-29 세종대학교산학협력단 Apparatus and method for analyzing software vulnerability
CN109829298A (en) * 2018-11-26 2019-05-31 努比亚技术有限公司 RAM leakage risk checking method, terminal and computer readable storage medium
KR102067733B1 (en) 2019-05-15 2020-01-17 세종대학교산학협력단 Method for detecting format string vulnerability and apparatus for executing the method
KR102160950B1 (en) * 2020-03-30 2020-10-05 주식회사 이글루시큐리티 Data Distribution System and Its Method for Security Vulnerability Inspection

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784553A (en) * 1996-01-16 1998-07-21 Parasoft Corporation Method and system for generating a computer program test suite using dynamic symbolic execution of JAVA programs
JP2007241906A (en) * 2006-03-11 2007-09-20 Hitachi Software Eng Co Ltd Web application vulnerability dynamic inspection method and system
JP5042315B2 (en) * 2006-10-19 2012-10-03 チェックマークス リミテッド Detect security vulnerabilities in source code
KR101507469B1 (en) * 2015-01-06 2015-04-03 (주)싸이버텍 Method for providing source code analysis service
KR101674895B1 (en) * 2015-11-30 2016-11-11 인하대학교 산학협력단 Java Security Analysis Device Based On Java Method Call Graph

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110011986A (en) * 2019-03-20 2019-07-12 中山大学 A kind of source code leak detection method based on deep learning
CN110011986B (en) * 2019-03-20 2021-04-02 中山大学 Deep learning-based source code vulnerability detection method

Also Published As

Publication number Publication date
WO2018016671A3 (en) 2018-03-08
KR20180010053A (en) 2018-01-30

Similar Documents

Publication Publication Date Title
WO2018016671A2 (en) Dangerous code detection system for checking security vulnerability and method thereof
Habib et al. How many of all bugs do we find? a study of static bug detectors
US7849509B2 (en) Detection of security vulnerabilities in computer programs
CN109992970B (en) JAVA deserialization vulnerability detection system and method
WO2014035043A1 (en) Apparatus and method for diagnosing malicious applications
WO2013089340A1 (en) Apparatus and method for detecting similarity between applications
WO2013077538A1 (en) Device and method for analyzing api-based application
Ferreira et al. Do# ifdefs influence the occurrence of vulnerabilities? an empirical study of the linux kernel
WO2016111525A1 (en) Source code transfer control method, computer program therefor, and recording medium therefor
CN101183414A (en) Program detection method, device and program analyzing method
WO2019054613A1 (en) Method and system for identifying open source software package on basis of binary file
CN110363004A (en) A kind of code vulnerabilities detection method, device, medium and equipment
WO2019066222A1 (en) Method and system for identifying open source software package on basis of binary file
WO2019135425A1 (en) Open source software license verification method and system
CN107526970B (en) Method for detecting runtime program bugs based on dynamic binary platform
WO2022124720A1 (en) Method for detecting error of operating system kernel memory in real time
US20220058260A1 (en) Binary image stack cookie protection
Chen et al. Brick: A binary tool for run-time detecting and locating integer-based vulnerability
WO2022107994A1 (en) Big data augmented analysis profiling system
WO2018199366A1 (en) Method and system for detecting whether obfuscation has been applied to dex file and evaluating security
WO2020111482A1 (en) Reverse engineering method and system utilizing big data based on program execution context
EP3765965B1 (en) Static software analysis tool approach to determining breachable common weakness enumerations violations
WO2016085273A1 (en) Method for classifying alarm types in detecting source code error, computer program therefor, recording medium thereof
US20130152053A1 (en) Computer memory access monitoring and error checking
KR102299640B1 (en) Method and system for similarity analysis among kernel system calls using fuzz testing

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: 16909586

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 14/05/2019)

122 Ep: pct application non-entry in european phase

Ref document number: 16909586

Country of ref document: EP

Kind code of ref document: A2