KR102092192B1 - Apparatus and method for summarizing function information - Google Patents

Apparatus and method for summarizing function information Download PDF

Info

Publication number
KR102092192B1
KR102092192B1 KR1020180002260A KR20180002260A KR102092192B1 KR 102092192 B1 KR102092192 B1 KR 102092192B1 KR 1020180002260 A KR1020180002260 A KR 1020180002260A KR 20180002260 A KR20180002260 A KR 20180002260A KR 102092192 B1 KR102092192 B1 KR 102092192B1
Authority
KR
South Korea
Prior art keywords
function
virtual machine
machine code
information
security
Prior art date
Application number
KR1020180002260A
Other languages
Korean (ko)
Other versions
KR20190084468A (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 국방과학연구소
Priority to KR1020180002260A priority Critical patent/KR102092192B1/en
Publication of KR20190084468A publication Critical patent/KR20190084468A/en
Application granted granted Critical
Publication of KR102092192B1 publication Critical patent/KR102092192B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Abstract

본 발명의 일 실시예에 따른 함수 정보 요약 장치는 가상 기계 코드에 대한 보안 약점의 종류, 종류에 따른 가상 기계 코드 내의 분석 대상 및 종류에 따른 보안 약점을 검사하는 데에 필요한 정보를 입력할 수 있는 자료 구조가 기 정의되어 있는 보안 약점 명세 정보를 저장하고 있는 저장부, 타겟 가상 기계 코드를 입력 받는 입력부, 타겟 가상 기계 코드를 함수 단위로 분할하는 함수 분할부, 분할된 함수 각각에 대하여, 함수 내 종류에 따른 분석 대상을 특정하는 함수 분석부 및 분할된 함수 각각에 대하여, 함수 내에 특정된 분석 대상을 기초로 보안 약점을 검사하는 데에 필요한 정보를 자료 구조에 따라 입력하여 함수 요약 정보를 생성하는 자료 구조 생성부를 포함한다. The function information summarizing apparatus according to an embodiment of the present invention can input information necessary to check security weaknesses according to the analysis targets and types in the virtual machine codes according to types and types of security weaknesses for the virtual machine codes. For each of the divided functions, the storage unit that stores security weakness specification information with a predefined data structure, the input unit that receives the target virtual machine code, the function division unit that divides the target virtual machine code into function units, and each of the divided functions. For each of the function analysis unit and the divided function that specifies the analysis target according to the type, the function summary information is generated by inputting information necessary for checking the security weakness based on the analysis target specified in the function according to the data structure Includes data structure generator.

Description

함수 정보 요약 장치 및 방법{APPARATUS AND METHOD FOR SUMMARIZING FUNCTION INFORMATION}Function information summary device and method {APPARATUS AND METHOD FOR SUMMARIZING FUNCTION INFORMATION}

본 발명은 함수 정보 요약 장치 및 방법에 관한 것으로서, 보다 자세하게는 가상 기계 코드 내의 보안 약점을 검사하는 데에 필요한 요약 정보를 제공하는 함수 정보 요약 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for summarizing function information, and more particularly, to an apparatus and method for summarizing function information, which provides summary information necessary for examining security weaknesses in virtual machine code.

가상 기계 코드는 소스 코드와 바이너리 코드 사이의 중간 표현 중 하나로서 가상 기계에서 동작하는 명령어를 포함하는 코드이다. Virtual machine code is one of the intermediate representations between source code and binary code, and is code that contains instructions that operate on the virtual machine.

이러한 가상 기계 코드의 보안 약점 분석을 위해, 가상 기계 코드를 그대로 분석하는 기법은 일반적으로 많은 시간이 소요된다. 또한 가상 기계 코드는 소수의 명령어를 가지는 RISC(reduced instruction set computer) 방식이기 때문에, 가상 기계 코드를 소스 코드로 변환하여 보안 약점을 분석하는 경우에도 전체적인 코드의 크기가 증가하여 분석 단계가 늘어나기 때문에, 가상 기계 코드에 대한 새로운 보안 약점 분석 기법이 요구되고 있다. In order to analyze the security weakness of the virtual machine code, a technique of analyzing the virtual machine code as it is generally takes a lot of time. Also, because the virtual machine code is a reduced instruction set computer (RISC) method with a small number of instructions, even when analyzing security weaknesses by converting the virtual machine code into source code, the overall code size increases and the analysis step increases. In addition, new security weakness analysis technique for virtual machine code is required.

본 발명의 실시예에서 해결하고자 하는 과제는 가상 기계 코드의 보안 약점 분석 시에 가상 기계 코드 내에서 분석해야 할 분석 대상을 특정하고 이를 기초로 보안 약점을 검사하는 데에 반드시 필요한 요약 정보를 제공하는 기술을 제공하는 것이다. The problem to be solved in the embodiment of the present invention is to provide the summary information necessary for analyzing the security weakness of the virtual machine code to analyze the security target to be analyzed within the virtual machine code, and checking the security weakness based on this. Is to provide technology.

다만, 본 발명의 실시예가 이루고자 하는 기술적 과제는 이상에서 언급한 과제로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 기술적 과제가 도출될 수 있다.However, the technical problems to be achieved by the embodiments of the present invention are not limited to the above-mentioned problems, and various technical problems can be derived within a range obvious to a person skilled in the art from the contents described below.

본 발명의 일 실시예에 따른 함수 정보 요약 장치는 가상 기계 코드에 대한 보안 약점의 종류, 상기 종류에 따른 상기 가상 기계 코드 내의 분석 대상 및 상기 종류에 따른 보안 약점을 검사하는 데에 필요한 정보를 입력할 수 있는 자료 구조가 기 정의되어 있는 보안 약점 명세 정보를 저장하고 있는 저장부, 타겟 가상 기계 코드를 입력 받는 입력부, 상기 타겟 가상 기계 코드를 함수 단위로 분할하는 함수 분할부, 상기 분할된 함수 각각에 대하여, 상기 함수 내 상기 종류에 따른 상기 분석 대상을 특정하는 함수 분석부 및 상기 분할된 함수 각각에 대하여, 상기 함수 내에 상기 특정된 분석 대상을 기초로 상기 보안 약점을 검사하는 데에 필요한 정보를 상기 자료 구조에 따라 입력하여 함수 요약 정보를 생성하는 자료 구조 생성부를 포함한다. The function information summarizing apparatus according to an embodiment of the present invention inputs information required to check the types of security weaknesses for the virtual machine code, the analysis target in the virtual machine codes according to the types, and the security weaknesses according to the type A storage unit that stores security weakness specification information with a predefined data structure, an input unit that receives a target virtual machine code, a function division unit that divides the target virtual machine code into functional units, and each of the divided functions. With respect to each function analysis unit for specifying the analysis target according to the type in the function and each of the divided functions, information necessary for examining the security weakness based on the specified analysis target in the function is provided. And a data structure generation unit for generating function summary information by input according to the data structure.

또한, 상기 분석 대상은 상기 함수 내의 매개 변수, 상기 함수 내의 반환값 및 상기 함수 내의 호출 함수 중 적어도 하나를 포함할 수 있다. In addition, the analysis target may include at least one of parameters in the function, a return value in the function, and a calling function in the function.

또한, 상기 함수 요약 정보는 상기 함수의 제어 흐름 그래프, 상기 함수의 자료 흐름 그래프, 상기 함수가 포함하는 소정의 변수에 대한 정보 및 상기 타겟 가상 기계 코드의 함수 호출 그래프 중 적어도 하나를 포함할 수 있다. Further, the function summary information may include at least one of a control flow graph of the function, a data flow graph of the function, information on a predetermined variable included in the function, and a function call graph of the target virtual machine code. .

또한, 상기 함수 요약 정보는 상기 함수 내의 가상 기계 코드에 대한 정보를 더 포함할 수 있다. Further, the function summary information may further include information about a virtual machine code in the function.

본 발명의 일 실시예에 따른 함수 정보 요약 방법은 가상 기계 코드에 대한 보안 약점의 종류, 상기 종류에 따른 상기 가상 기계 코드 내의 분석 대상 및 상기 종류에 따른 보안 약점을 검사하는 데에 필요한 정보를 입력할 수 있는 자료 구조가 기 정의되어 있는 보안 약점 명세 정보를 저장하는 단계, 타겟 가상 기계 코드를 입력 받는 단계, 상기 타겟 가상 기계 코드를 함수 단위로 분할하는 단계, 상기 분할된 함수 각각에 대하여, 상기 함수 내 상기 종류에 따른 상기 분석 대상을 특정하는 단계 및 상기 분할된 함수 각각에 대하여, 상기 함수 내에 상기 특정된 분석 대상을 기초로 상기 보안 약점을 검사하는 데에 필요한 정보를 상기 자료 구조에 따라 입력하여 함수 요약 정보를 생성하는 단계를 포함한다. The method of summarizing function information according to an embodiment of the present invention inputs information required to check a type of security weakness for a virtual machine code, an analysis target in the virtual machine code according to the type, and a security weakness according to the type. Storing security weakness specification information in which a data structure capable of being previously defined, receiving a target virtual machine code, dividing the target virtual machine code into function units, and for each of the divided functions, the Entering information required to check the security weakness based on the specified analysis object in the function for each of the divided functions and the step of specifying the analysis object according to the type in the function according to the data structure And generating function summary information.

또한, 상기 분석 대상은 상기 함수 내의 매개 변수, 상기 함수 내의 반환값 및 상기 함수 내의 호출 함수 중 적어도 하나를 포함할 수 있다. In addition, the analysis target may include at least one of parameters in the function, a return value in the function, and a calling function in the function.

또한, 상기 함수 요약 정보는 상기 함수의 제어 흐름 그래프, 상기 함수의 자료 흐름 그래프, 상기 함수가 포함하는 소정의 변수에 대한 정보 및 상기 타겟 가상 기계 코드의 함수 호출 그래프 중 적어도 하나를 포함할 수 있다. Further, the function summary information may include at least one of a control flow graph of the function, a data flow graph of the function, information on a predetermined variable included in the function, and a function call graph of the target virtual machine code. .

또한, 상기 함수 요약 정보는 상기 함수 내의 가상 기계 코드에 대한 정보를 더 포함할 수 있다. Further, the function summary information may further include information about a virtual machine code in the function.

본 발명의 실시예에 따르면, 가상 기계 코드 내 보안 약점을 검사하기 위해 분석할 분석 대상을 특정하고 기 정의된 자료 구조를 기초로 보안 약점을 검사하는 데에 반드시 필요한 요약 정보를 생성 및 제공함으로써, 가상 기계 코드의 보안 약점을 신속하고 효과적으로 분석할 수 있게 한다. According to an embodiment of the present invention, by specifying an analysis target to be analyzed to check for security weaknesses in virtual machine code and generating and providing summary information necessary for inspecting security weaknesses based on a predefined data structure, It enables quick and effective analysis of security weaknesses in virtual machine code.

도 1은 본 발명의 일 실시예에 따른 함수 정보 요약 장치의 기능 블럭도이다.
도 2는 본 발명의 일 실시예에 따른 함수 정보 요약 장치의 구성의 동작을 설명하기 위한 예시도이다.
도 3은 본 발명의 일 실시예에 따른 함수 정보 요약 방법의 프로세스를 도시하는 흐름도이다.
1 is a functional block diagram of a device for summarizing function information according to an embodiment of the present invention.
2 is an exemplary view for explaining the operation of the configuration of the function information summary device according to an embodiment of the present invention.
3 is a flowchart illustrating a process of a method for summarizing function information according to an embodiment of the present invention.

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

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명은 본 발명의 실시예들을 설명함에 있어 실제로 필요한 경우 외에는 생략될 것이다.  그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.  그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, detailed descriptions of known functions or configurations will be omitted except when actually necessary in describing the embodiments of the present invention. In addition, terms to be described later are terms defined in consideration of functions in an embodiment of the present invention, which may vary according to a user's or operator's intention or practice. Therefore, the definition should be made based on the contents throughout this specification.

도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.The functional blocks shown in the drawings and described below are only examples of possible implementations. Other functional blocks may be used in other implementations without departing from the spirit and scope of the detailed description. Also, although one or more functional blocks of the present invention are represented as individual blocks, one or more of the functional blocks of the present invention may be a combination of various hardware and software configurations that perform the same function.

또한 어떤 구성 요소들을 포함한다는 표현은 개방형의 표현으로서 해당 구성 요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성 요소들을 배제하는 것으로 이해되어서는 안 된다.In addition, the expression of including certain components is an open expression and simply refers to the existence of the components, and should not be understood as excluding additional components.

나아가 어떤 구성 요소가 다른 구성 요소에 연결되어 있다거나 접속되어 있다고 언급될 때에는, 그 다른 구성 요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 한다. Furthermore, when it is mentioned that a component is connected to or connected to another component, it should be understood that other components may exist in the middle, although they may be directly connected or connected to the other component.

또한 '제1, 제2' 등과 같은 표현은 복수의 구성들을 구분하기 위한 용도로만 사용된 표현으로써, 구성들 사이의 순서나 기타 특징들을 한정하지 않는다. In addition, expressions such as 'first, second', etc. are expressions used only for distinguishing a plurality of components, and do not limit the order or other features between components.

가상 기계 코드는 소스 코드와 바이너리 코드 사이의 중간 표현 중 하나로서 가상 기계에서 동작하는 명령어를 포함하는 코드이다. Virtual machine code is one of the intermediate representations between source code and binary code, and is code that contains instructions that operate on the virtual machine.

이러한 가상 기계 코드의 보안 약점 분석을 위해, 가상 기계 코드를 그대로 분석하는 기법은 일반적으로 많은 시간이 소요된다. 또한 가상 기계 코드는 소수의 명령어를 가지는 RISC(reduced instruction set computer) 방식이기 때문에, 가상 기계 코드를 소스 코드로 변환하여 보안 약점을 분석하는 경우에도 전체적인 코드의 크기가 증가하여 분석 단계가 늘어나기 때문에, 가상 기계 코드에 대한 새로운 보안 약점 분석 기법이 요구되고 있다. In order to analyze the security weakness of the virtual machine code, a technique of analyzing the virtual machine code as it is generally takes a lot of time. Also, because the virtual machine code is a reduced instruction set computer (RISC) method with a small number of instructions, even when analyzing security weaknesses by converting the virtual machine code into source code, the overall code size increases and the analysis step increases. In addition, new security weakness analysis technique for virtual machine code is required.

이에 따라, 본 발명의 일 실시예는 가상 기계 코드에 대해 검사하기 위한 보안 약점의 종류 마다 실질적으로 분석해야 하는 대상이 다르며, 반드시 모든 코드에 대해 검사를 수행해야 할 필요가 없다는 점에 착안하여, 보안 약점의 종류에 따라 분석에 필요한 정보만을 요약하고, 이와 같이 요약된 정보를 제공하여 효과적으로 보안 약점의 분석을 가능하게 하고자 한다. 이하에서는 도면들을 참조하여 본 발명의 실시예들에 대해 설명하도록 한다. Accordingly, according to an embodiment of the present invention, in view of the fact that objects to be analyzed are substantially different for each type of security weakness for inspecting the virtual machine code, it is not necessary to perform inspection for all codes, According to the types of security weaknesses, only information necessary for analysis is summarized, and by providing such summarized information, it is possible to effectively analyze security weaknesses. Hereinafter, embodiments of the present invention will be described with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 함수 정보 요약 장치(100)의 기능 블럭도이고, 도 2는 본 발명의 일 실시예에 따른 함수 정보 요약 장치(100)의 구성의 동작을 설명하기 위한 예시도이다. 1 is a functional block diagram of a function information summarizing apparatus 100 according to an embodiment of the present invention, and FIG. 2 is a view for explaining an operation of the configuration of the function information summarizing apparatus 100 according to an embodiment of the present invention This is an example.

도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 함수 정보 요약 장치(100)는 저장부(110), 입력부(120), 함수 분할부(130), 함수 분석부(140) 및 자료 구조 생성부(150)를 포함한다. 1 and 2, the function information summarizing apparatus 100 according to an embodiment of the present invention includes a storage unit 110, an input unit 120, a function division unit 130, a function analysis unit 140, and It includes a data structure generating unit 150.

저장부(110)는 보안 약점 명세 정보를 저장한다. 보안 약점 명세 정보란, 가상 기계 코드의 보안 약점을 검사하기 위해 필요한 정보를 요약하기 위해 필요한 정보를 의미한다. 본 발명의 일 실시예에 따른 함수 정보 요약 장치(100)는 보안 약점 명세 정보를 이용하여 가상 기계 코드의 보안 약점 분석 시에 가상 기계 코드 내에서 분석해야 할 분석 대상을 특정하고 이를 기초로 보안 약점을 검사하는 데에 반드시 필요한 요약 정보를 제공하는 기술을 제공한다. The storage unit 110 stores security weakness specification information. The security weakness specification information means information necessary for summarizing the information necessary to check the security weakness of the virtual machine code. The function information summarizing apparatus 100 according to an embodiment of the present invention uses security weakness specification information to identify an analysis target to be analyzed within the virtual machine code when analyzing the security weakness of the virtual machine code, and based on this, the security weakness It provides a technique that provides summary information that is essential to inspecting a product.

이를 위해, 보안 약점 명세 정보는 가상 기계 코드에 대한 보안 약점의 종류에 대한 정보를 포함할 수 있다. 이때 보안 약점에 대한 종류에 대한 정보는 가상 기계 코드 내에서 검사해야 할 보안 약점 명칭을 포함할 수 있다.To this end, the security weakness specification information may include information on the type of security weakness for the virtual machine code. At this time, the information on the type of the security weakness may include the name of the security weakness to be checked in the virtual machine code.

예를 들어, 보안 약점에 대한 종류는 버퍼 오버 플로우(buffer overflow), 더블 프리 버그(double free bug), 힙 오버 플로우(heap overflow), 메모리 해제 후 사용(use after free) 등을 포함할 수 있으나, 이러한 예시에 한정되는 것은 아니다. For example, types of security weaknesses may include buffer overflow, double free bug, heap overflow, use after free, etc. , It is not limited to these examples.

또한 보안 약점 명세 정보는 보안 약점의 종류 마다, 해당 보안 약점을 분석하기 위해 특정해야 할 분석 대상이 무엇인지를 정의하는 분석 대상에 대한 정보를 저장할 수 있다. 예를 들어, 분석 대상에 대한 정보는 가상 기계 코드 내의 매개 변수를 분석해야 하는 지 여부, 가상 기계 코드 내의 반환값을 분석해야 하는 지 여부 및 가상 기계 코드 내에 포함될 경우 보안을 취약하게 하는 블랙리스트 호출 함수에 대한 정보를 포함할 수 있다. In addition, the security weakness specification information may store information on an analysis target that defines what an analysis target needs to be specified to analyze the security weakness for each type of security weakness. For example, information about what to analyze needs to parse parameters within the virtual machine code, whether return values within the virtual machine code need to be analyzed, and blacklist calls that compromise security if included within the virtual machine code. It can contain information about the function.

가령 일 예로, 보안 약점의 종류 중 버퍼 오버 플로우를 검사해야 하는 경우, 보안 약점 명세는 가상 기계 코드 내 매개 변수가 무엇인지 여부, 가상 기계 코드의 함수 내 반환값이 무엇인지 여부, 및 가상 기계 코드 내에 포함될 경우 버퍼 오버플로우를 발생시키는 블랙리스트 호출 함수가 존재하는지를 여부를, 버퍼 오버 플로우에 대한 보안 약점을 분석하기 위해 특정해야 할 분석 대상으로서 포함할 수 있다. For example, if you need to check the buffer overflow among the types of security weaknesses, the security weakness specification determines what parameters are in the virtual machine code, what are the return values in the functions of the virtual machine code, and the virtual machine code. Whether included therein, whether or not a blacklist call function that causes a buffer overflow exists may be included as an analysis target to be specified in order to analyze security weaknesses for the buffer overflow.

더하여 보안 약점 명세 정보는 보안 약점의 종류에 따라 보안 약점을 검사하는 데에 필요한 정보를 입력할 수 있는 자료 구조에 대한 정보를 포함할 수 있다. 이때 보안 약점을 검사하는 데에 필요한 정보는 함수의 제어 흐름 그래프 (control flow graph), 자료 흐름 그래프(data flow graph), 특정 변수에 대한 정보 및 함수 호출 그래프(call graph) 중 적어도 하나를 포함할 수 있다. In addition, the security weakness specification information may include information on a data structure capable of inputting information necessary to inspect the security weakness according to the type of the security weakness. At this time, the information required to check for security weaknesses may include at least one of a control flow graph of a function, a data flow graph, information about a specific variable, and a function call graph. You can.

여기서, 제어 흐름 그래프는 코드의 기본 블록(basic block)을 하나의 노드라고 할 때, 가상 기계 코드가 실행되는 도중 횡단할 수 있는 모든 경로를 표기한 그래프를 말한다. 또한 자료 흐름 그래프(data flow graph)는 가상 기계 코드가 실행되는 도중 특정 값이 매개 변수를 통해 이동하고 변하는 모든 경로를 표기한 그래프를 말한다. 특정 변수에 대한 정보는 특정 보안 약점을 검사하기 위해 검사해야 할 변수를 의미한다. 함수 호출 그래프(call graph)는 가상 기계 코드 내에서 함수 간의 호출 관계를 나타내는 그래프를 의미한다. Here, the control flow graph refers to a graph indicating all paths that can be traversed while the virtual machine code is being executed when the basic block of code is a node. In addition, a data flow graph is a graph showing all paths where a specific value moves and changes through parameters while virtual machine code is being executed. Information about a specific variable means a variable to be checked in order to check a specific security weakness. The function call graph refers to a graph showing a call relationship between functions in virtual machine code.

한편, 보안 약점의 종류에 따라 보안 약점을 검사하는 데에 필요한 정보, 즉, 제어 흐름 그래프, 자료 흐름 그래프, 특정 변수에 대한 정보 및 함수 호출 그래프는 이를 생성하는 데에 사용되는 함수 내 특정 대상이 무엇인지에 따라 생성되는 정보가 변할 수 있다. 따라서 약점 보안 명세 정보에는 보안 약점의 종류마다 보안 약점을 검사하는 데에 필요한 정보와 이에 사용되는 특정 대상이 매핑되어 저장될 수 있다. On the other hand, depending on the type of security weakness, the information required to check the security weakness, that is, the control flow graph, data flow graph, information about a specific variable, and function call graph, is a specific target within the function used to generate it. The generated information may change depending on what it is. Therefore, the weak security specification information may be stored by mapping information necessary for checking the security weakness for each type of security weakness and a specific target used therein.

한편, 저장부(110)는 컴퓨터 판독 기록 매체로서 구현될 수 있으며, 이러한 컴퓨터 판독 기록 매체의 예로는 ROM, RAM, 플래쉬 메모리 등과 같은 프로그램 명령어들을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 들 수 있다.Meanwhile, the storage unit 110 may be implemented as a computer-readable recording medium, and examples of the computer-readable recording medium include a hardware device specially configured to store and execute program instructions such as ROM, RAM, and flash memory.

입력부(120)는 보안 약점의 종류에 따라 분석에 필수적으로 필요한 정보를 요약한 함수 요약 정보를 생성하기 위한 타겟 가상 기계 코드를 입력 받는다. The input unit 120 receives target virtual machine code for generating function summary information summarizing information necessary for analysis according to types of security weaknesses.

함수 분할부(130)는 입력부(120)가 입력 받은 타겟 가상 기계 코드를 함수 단위로 분할한다. The function division unit 130 divides the target virtual machine code input by the input unit 120 into function units.

함수 분석부(140)는 함수 분할부(130)가 분할한 각각의 함수에 포함된 코드에 대해, 보안 약점 명세 정보를 기초로 함수 내에서 보안 약점의 종류에 따른 분석 대상을 특정한다. The function analysis unit 140 specifies an analysis target according to the type of security weakness in the function, based on the security weakness specification information, for the code included in each function divided by the function division unit 130.

가령 일 예로, 보안 약점 명세에 버퍼 오버 플로우를 검사하는 것으로 지정되어 있고, 버퍼 오버 플로우를 검사하기 위한 분석 대상은 가상 기계 코드 내 매개 변수가 무엇인지 여부, 가상 기계 코드의 함수 내 반환값이 무엇인지 여부, 및 가상 기계 코드 내에 포함될 경우 버퍼 오버플로우를 발생시키게 하는 블랙리스트 호출 함수가 존재하는지를 여부를 특정해야 하는 것으로 저장되어 있다면, 함수 분석부(140)는 함수 분할부(130)가 분할한 각각의 함수마다 매개 변수가 무엇인지, 반환값이 무엇인지, 및 함수 내에 포함될 경우 보안을 취약하게 하는 블랙리스트 호출 함수가 무엇인지를 특정할 수 있다. For example, in the security weakness specification, it is specified to check the buffer overflow, and the analysis target for checking the buffer overflow is what is the parameter in the virtual machine code, what is the return value in the function of the virtual machine code If it is stored as whether it is recognized and whether a blacklist call function that causes a buffer overflow when included in the virtual machine code needs to be specified, the function analysis unit 140 is divided by the function division unit 130 For each function, you can specify what the parameters are, what the return value is, and which blacklist calling functions compromise security if included within the function.

자료 구조 생성부(150)는 함수 분할부(130)가 분할한 각각의 함수에 포함된 코드에 대해, 보안 약점 명세 정보와 함수 분석부(140)가 특정한 분석 대상을 기초로 보안 약점을 검사하는 데에 필요한 정보를 자료 구조에 따라 입력하여 함수 요약 정보를 생성한다. The data structure generation unit 150 checks security weaknesses based on specific weaknesses of the security weakness specification information and the function analysis unit 140 for code included in each function divided by the function division unit 130. Function summary information is generated by inputting the necessary information according to the data structure.

가령 일 예로, 보안 약점 명세에 버퍼 오버 플로우를 검사하는 것으로 지정되어 있고, 함수 분석부(140)가 함수마다 매개 변수가 무엇인지, 반환값이 무엇인지, 및 함수 내에 포함될 경우 버퍼 오버플로우를 발생시키게 하는 블랙리스트 호출 함수가 무엇인지를 특정한 경우, 자료 구조 생성부(150)는 함수 분석부(140)가 특정한 정보를 기초로 보안 약점을 검사하는 데에 필요한 정보(함수의 제어 흐름 그래프, 함수의 자료 흐름 그래프, 함수가 포함하는 소정의 변수에 대한 정보 및 타겟 가상 기계 코드의 함수 호출 그래프 중 적어도 하나)를 자료 구조에 따라 입력하여 함수 요약 정보를 생성할 수 있다. 이때 자료 구조 생성부(150)는 함수 내의 가상 기계 코드에 대한 정보를 함수 요약 정보에 더 포함시켜 추후 코드에 대해 참조할 수 있도록 할 수 있다. For example, as an example, the security weakness specification is designated to check the buffer overflow, and the function analysis unit 140 generates a buffer overflow when the function includes parameters, return values, and functions. When a specific blacklist call function to be specified is specified, the data structure generation unit 150 requires information necessary for the function analysis unit 140 to check the security weakness based on the specific information (function control flow graph, function Function summary information may be generated by inputting a data flow graph of at least one of a function call graph of a target virtual machine code and information on a predetermined variable included in a function according to a data structure. In this case, the data structure generation unit 150 may further include information on the virtual machine code in the function in the function summary information so that it can be referred to for future code.

따라서, 상술한 실시예에 따른 함수 정보 요약 장치(100)는 가상 기계 코드 내 보안 약점을 검사하기 위해 분석할 분석 대상을 특정하여 보안 약점을 검사하는 데에 필요한 정보를 포함하는 자료 구조를 생성 및 제공함으로써, 가상 기계 코드의 보안 약점을 신속하고 효과적으로 분석할 수 있게 한다. Therefore, the function information summarizing apparatus 100 according to the above-described embodiment generates a data structure including information necessary to check security weaknesses by specifying an analysis target to be analyzed in order to check security weaknesses in the virtual machine code, and By providing, it is possible to quickly and effectively analyze the security weaknesses of the virtual machine code.

한편 상술한 실시예가 포함하는 입력부(120), 함수 분할부(130), 함수 분석부(140) 및 자료 구조 생성부(150)는 이들의 기능을 수행하도록 프로그램된 명령어를 포함하는 메모리, 및 이들 명령어를 수행하는 마이크로프로세서를 포함하는 연산 장치에 의해 구현될 수 있다. Meanwhile, the input unit 120, the function division unit 130, the function analysis unit 140, and the data structure generation unit 150 included in the above-described embodiment include a memory including instructions programmed to perform their functions, and It may be implemented by a computing device including a microprocessor for performing instructions.

도 3은 본 발명의 일 실시예에 따른 함수 정보 요약 방법의 프로세스를 도시하는 흐름도이다. 도 3에 따른 함수 정보 요약 방법의 각 단계는 도 1 및 도 2를 통해 설명된 함수 정보 요약 장치(100)에 의해 수행될 수 있으며, 각 단계를 설명하면 다음과 같다.3 is a flowchart illustrating a process of a method for summarizing function information according to an embodiment of the present invention. Each step of the method for summarizing function information according to FIG. 3 may be performed by the apparatus 100 for summarizing function information described with reference to FIGS. 1 and 2, and each step is as follows.

우선, 저장부(110)는 가상 기계 코드에 대한 보안 약점의 종류, 종류에 따른 가상 기계 코드 내의 분석 대상 및 종류에 따른 보안 약점을 검사하는 데에 필요한 정보를 입력할 수 있는 자료 구조가 기 정의되어 있는 보안 약점 명세 정보를 저장한다(S310). 이후, 입력부(120)는 타겟 가상 기계 코드를 입력 받는다(S320). 다음으로, 함수 분할부(130)는 타겟 가상 기계 코드를 함수 단위로 분할한다(S330). 이에 따라, 함수 분석부(140)는 분할된 함수 각각에 대하여 함수 내 종류에 따른 분석 대상을 특정한다(S340). 마지막으로, 분할된 함수 각각에 대하여, 함수 내에 특정된 분석 대상을 기초로 보안 약점을 검사하는 데에 필요한 정보를 자료 구조에 따라 입력하여 함수 요약 정보를 생성한다(S350).First, the storage unit 110 defines a data structure capable of inputting information necessary to check security weaknesses according to the analysis targets and types in the virtual machine codes according to types and types of security weaknesses for the virtual machine codes. The stored security weakness specification information is stored (S310). Thereafter, the input unit 120 receives a target virtual machine code (S320). Next, the function division unit 130 divides the target virtual machine code into function units (S330). Accordingly, the function analysis unit 140 specifies the analysis target according to the type in the function for each divided function (S340). Finally, for each of the divided functions, function summary information is generated by inputting information necessary to check security weakness based on an analysis target specified in the function according to a data structure (S350).

한편, 상술한 각 단계의 주체인 구성 요소들이 해당 단계를 실시하기 위한 과정은 도 1 및 도 2와 함께 설명하였으므로 중복된 설명은 생략한다.On the other hand, the process for the components that are the subjects of each step described above to perform the corresponding step has been described with reference to FIGS. 1 and 2, a duplicate description is omitted.

상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.The above-described embodiments of the present invention can be implemented through various means. For example, embodiments of the present invention may be implemented by hardware, firmware, software, or a combination thereof.

하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.For implementation by hardware, the method according to embodiments of the present invention includes one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs) , Field Programmable Gate Arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, and the like.

펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드 등이 기록된 컴퓨터 프로그램은 컴퓨터 판독 가능 기록 매체 또는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 메모리 유닛은 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 프로세서와 데이터를 주고 받을 수 있다.In the case of implementation by firmware or software, the method according to embodiments of the present invention may be implemented in the form of a module, procedure, or function that performs the functions or operations described above. A computer program in which software code or the like is recorded may be stored in a computer-readable recording medium or memory unit and driven by a processor. The memory unit is located inside or outside the processor, and can exchange data with the processor by various known means.

또한 본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방법으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Also, combinations of each block of the block diagram and each step of the flowchart attached to the present invention may be performed by computer program instructions. Since these computer program instructions may be mounted on an encoding processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, the instructions performed through the encoding processor of a computer or other programmable data processing equipment may include each block in the block diagram or In each step of the flowchart, means are created to perform the functions described. These computer program instructions can also be stored in computer readable or computer readable memory that can be oriented to a computer or other programmable data processing equipment to implement a function in a particular way, so that computer readable or computer readable memory The instructions stored in it are also possible to produce an article of manufacture containing instructions means for performing the functions described in each block or flowchart step of the block diagram. Since computer program instructions may be mounted on a computer or other programmable data processing equipment, a series of operational steps are performed on the computer or other programmable data processing equipment to create a process that is executed by the computer to generate a computer or other programmable data. It is also possible for instructions to perform processing equipment to provide steps for executing the functions described in each block of the block diagram and in each step of the flowchart.

더불어 각 블록 또는 각 단계는 특정된 논리적 기능을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block or step may represent a module, segment, or portion of code that includes one or more executable instructions for executing a specified logical function. It should also be noted that in some alternative embodiments it is possible that the functions mentioned in blocks or steps occur out of order. For example, two blocks or steps shown in succession may in fact be executed substantially simultaneously, or it is also possible that the blocks or steps are sometimes performed in reverse order depending on the corresponding function.

이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As such, those skilled in the art to which the present invention pertains will appreciate that the present invention may be implemented in other specific forms without changing its technical spirit or essential features. Therefore, the embodiments described above should be understood as illustrative in all respects and not restrictive. The scope of the present invention is indicated by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and equivalent concepts should be interpreted to be included in the scope of the present invention. .

100: 함수 정보 요약 장치
110: 저장부
120: 입력부
130: 함수 분할부
140: 함수 분석부
150: 자료 구조 생성부
100: function information summary device
110: storage unit
120: input unit
130: function division
140: function analysis unit
150: data structure generation unit

Claims (10)

가상 기계 코드에 대한 보안 약점의 종류, 상기 종류에 따른 상기 가상 기계 코드 내의 분석 대상 및 상기 종류에 따른 보안 약점을 검사하는 데에 필요한 정보를 입력할 수 있는 자료 구조가 기 정의되어 있는 보안 약점 명세 정보를 저장하고 있는 저장부;
타겟 가상 기계 코드를 입력 받는 입력부;
상기 타겟 가상 기계 코드를 함수 단위로 분할하는 함수 분할부;
상기 분할된 함수 각각에 대하여, 상기 함수 내 상기 종류에 따른 상기 분석 대상을 특정하는 함수 분석부; 및
상기 분할된 함수 각각에 대하여, 상기 함수 내에 상기 특정된 분석 대상을 기초로 상기 보안 약점을 검사하는 데에 필요한 정보를 상기 자료 구조에 따라 입력하여 함수 요약 정보를 생성하는 자료 구조 생성부를 포함하고,
상기 보안 약점 명세 정보는 상기 가상 기계 코드 내의 분석 대상을 특정하는데 이용되며,
상기 함수 요약 정보는,
상기 가상 기계 코드가 실행되는 도중 횡단 가능한 모든 경로를 표기한 그래프, 상기 가상 기계 코드가 실행되는 도중 특정 값이 매개 변수를 통해 이동하고 변하는 모든 경로를 표기한 그래프, 특정 보안 약점의 검사를 위해 검사해야 하는 변수, 및 상기 가상 기계 코드 내에서의 함수 간의 호출 관계를 나타내는 그래프를 포함하는
함수 정보 요약 장치.
Security weakness specification in which a data structure capable of inputting information required to examine a security weakness type for the virtual machine code, an analysis target in the virtual machine code according to the type, and a security weakness according to the type is predefined. A storage unit that stores information;
An input unit that receives a target virtual machine code;
A function divider for dividing the target virtual machine code into function units;
A function analysis unit for specifying the analysis target according to the type in the function for each of the divided functions; And
For each of the divided functions, a data structure generation unit for generating function summary information by inputting information required to check the security weakness based on the specified analysis target in the function according to the data structure,
The security weakness specification information is used to specify an analysis target in the virtual machine code,
The function summary information,
A graph showing all paths that can be traversed while the virtual machine code is running, a graph showing all paths where a specific value moves and changes through parameters while the virtual machine code is running, and checks for inspection of specific security weaknesses And a graph showing the relationship between the variables to be performed and the calls between functions in the virtual machine code.
Function summary device.
제1항에 있어서,
상기 분석 대상은,
상기 함수 내의 매개 변수, 상기 함수 내의 반환값 및 상기 함수 내의 호출 함수 중 적어도 하나를 포함하는
함수 정보 요약 장치.
According to claim 1,
The analysis target,
At least one of a parameter in the function, a return value in the function, and a calling function in the function
Function summary device.
삭제delete 제1항에 있어서,
상기 함수 요약 정보는,
상기 함수 내의 가상 기계 코드에 대한 정보를 더 포함하는
함수 정보 요약 장치.
According to claim 1,
The function summary information,
Further comprising information about the virtual machine code in the function
Function summary device.
가상 기계 코드에 대한 보안 약점의 종류, 상기 종류에 따른 상기 가상 기계 코드 내의 분석 대상 및 상기 종류에 따른 보안 약점을 검사하는 데에 필요한 정보를 입력할 수 있는 자료 구조가 기 정의되어 있는 보안 약점 명세 정보를 저장하는 단계;
타겟 가상 기계 코드를 입력 받는 단계;
상기 타겟 가상 기계 코드를 함수 단위로 분할하는 단계;
상기 분할된 함수 각각에 대하여, 상기 함수 내 상기 종류에 따른 상기 분석 대상을 특정하는 단계; 및
상기 분할된 함수 각각에 대하여, 상기 함수 내에 상기 특정된 분석 대상을 기초로 상기 보안 약점을 검사하는 데에 필요한 정보를 상기 자료 구조에 따라 입력하여 함수 요약 정보를 생성하는 단계를 포함하고,
상기 보안 약점 명세 정보는 상기 가상 기계 코드 내의 분석 대상을 특정하는데 이용되며,
상기 함수 요약 정보는,
상기 가상 기계 코드가 실행되는 도중 횡단 가능한 모든 경로를 표기한 그래프, 상기 가상 기계 코드가 실행되는 도중 특정 값이 매개 변수를 통해 이동하고 변하는 모든 경로를 표기한 그래프, 특정 보안 약점의 검사를 위해 검사해야 하는 변수, 및 상기 가상 기계 코드 내에서의 함수 간의 호출 관계를 나타내는 그래프를 포함하는
함수 정보 요약 방법.
Security weakness specification in which a data structure capable of inputting information required to examine a security weakness type for the virtual machine code, an analysis target in the virtual machine code according to the type, and a security weakness according to the type is predefined. Storing information;
Receiving a target virtual machine code;
Dividing the target virtual machine code into functional units;
Specifying, for each of the divided functions, the analysis target according to the type in the function; And
For each of the divided functions, generating function summary information by inputting information required to check the security weakness based on the specified analysis target in the function according to the data structure,
The security weakness specification information is used to specify an analysis target in the virtual machine code,
The function summary information,
A graph showing all paths that can be traversed while the virtual machine code is running, a graph showing all paths where a specific value moves and changes through parameters while the virtual machine code is running, and checks for inspection of specific security weaknesses And a graph showing the relationship between the variables to be performed and the calls between functions in the virtual machine code.
How to summarize function information.
제5항에 있어서,
상기 분석 대상은,
상기 함수 내의 매개 변수, 상기 함수 내의 반환값 및 상기 함수 내의 호출 함수 중 적어도 하나를 포함하는
함수 정보 요약 방법.
The method of claim 5,
The analysis target,
At least one of a parameter in the function, a return value in the function, and a calling function in the function
How to summarize function information.
삭제delete 제5항에 있어서,
상기 함수 요약 정보는,
상기 함수 내의 가상 기계 코드에 대한 정보를 더 포함하는
함수 정보 요약 방법.
The method of claim 5,
The function summary information,
Further comprising information about the virtual machine code in the function
How to summarize function information.
제5항, 제6항 및 제8항 중 어느 한 항의 방법을 프로세서가 수행하게 하는 명령어를 포함하는 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능 기록매체.A computer-readable recording medium in which a computer program is recorded, comprising instructions for causing a processor to perform the method of any one of claims 5, 6 and 8. 제5항, 제6항 및 제8항 중 어느 한 항의 방법을 프로세서가 수행하도록 하는 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램. A computer program stored on a computer-readable recording medium for causing a processor to perform the method of any one of claims 5, 6 and 8.
KR1020180002260A 2018-01-08 2018-01-08 Apparatus and method for summarizing function information KR102092192B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180002260A KR102092192B1 (en) 2018-01-08 2018-01-08 Apparatus and method for summarizing function information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180002260A KR102092192B1 (en) 2018-01-08 2018-01-08 Apparatus and method for summarizing function information

Publications (2)

Publication Number Publication Date
KR20190084468A KR20190084468A (en) 2019-07-17
KR102092192B1 true KR102092192B1 (en) 2020-03-23

Family

ID=67512739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180002260A KR102092192B1 (en) 2018-01-08 2018-01-08 Apparatus and method for summarizing function information

Country Status (1)

Country Link
KR (1) KR102092192B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102392394B1 (en) * 2020-11-09 2022-05-02 동국대학교 산학협력단 Security vulnerability analysis method for generating function abstract information and electronic device including the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010507165A (en) * 2006-10-19 2010-03-04 チェックマークス リミテッド Detect security vulnerabilities in source code
KR101563494B1 (en) 2015-05-28 2015-10-27 소프트포럼 주식회사 Real-time source code security weaknesses detection apparatus and method according to the file changes
KR101645019B1 (en) * 2016-01-15 2016-08-02 지티원 주식회사 Rule description language for software vulnerability detection
KR101780233B1 (en) 2016-04-26 2017-09-21 고려대학교 산학협력단 Apparatus and method for deteting code cloning of software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010507165A (en) * 2006-10-19 2010-03-04 チェックマークス リミテッド Detect security vulnerabilities in source code
KR101563494B1 (en) 2015-05-28 2015-10-27 소프트포럼 주식회사 Real-time source code security weaknesses detection apparatus and method according to the file changes
KR101645019B1 (en) * 2016-01-15 2016-08-02 지티원 주식회사 Rule description language for software vulnerability detection
KR101780233B1 (en) 2016-04-26 2017-09-21 고려대학교 산학협력단 Apparatus and method for deteting code cloning of software

Also Published As

Publication number Publication date
KR20190084468A (en) 2019-07-17

Similar Documents

Publication Publication Date Title
US10657025B2 (en) Systems and methods for dynamically identifying data arguments and instrumenting source code
US10025696B2 (en) System and method for equivalence class analysis-based automated requirements-based test case generation
US9471470B2 (en) Automatically recommending test suite from historical data based on randomized evolutionary techniques
JP7172435B2 (en) Representation of software using abstract code graphs
US9811446B2 (en) Method and apparatus for providing test cases
JP7218793B2 (en) Control flow system, non-transitory readable medium, and method for enhancing program functionality
CN111221566B (en) Method and device for combining multiple and changeable versions of software code
US9836379B2 (en) Method and system for generating a memory trace of a program code executable on a programmable target
JP6142705B2 (en) Iterative generation of symbolic test drivers for object-oriented languages
US20140298297A1 (en) Automatic feature-driven testing and quality checking of applications
US10296311B2 (en) Finding uninitialized variables outside the local scope
US10037260B2 (en) System for expression evaluation at debug time
US9043746B2 (en) Conducting verification in event processing applications using formal methods
CN107665167B (en) Program debugging method and device and program development equipment
US20210405980A1 (en) Long method autofix engine
US11237943B2 (en) Generating inputs for computer-program testing
KR102092192B1 (en) Apparatus and method for summarizing function information
US9772931B2 (en) Determining a valid input for an unknown binary module
WO2016000547A1 (en) Method, apparatus and mobile terminal for triggering widget in application
US20180260306A1 (en) Unexpected Path Debugging
US20140089738A1 (en) System and method for identifying source of run-time execution failure
US9563540B2 (en) Automated defect positioning based on historical data
US11902105B2 (en) Interactive graphical user interface for visualizing flow data in a programmable network switch
JP5024252B2 (en) Trace information acquisition device, trace information acquisition program, and trace information acquisition method
CN111566625B (en) Test case generating device, test case generating method, and computer-readable recording medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant