KR102021383B1 - Method and apparatus for analyzing program by associating dynamic analysis with static analysis - Google Patents

Method and apparatus for analyzing program by associating dynamic analysis with static analysis Download PDF

Info

Publication number
KR102021383B1
KR102021383B1 KR1020170105209A KR20170105209A KR102021383B1 KR 102021383 B1 KR102021383 B1 KR 102021383B1 KR 1020170105209 A KR1020170105209 A KR 1020170105209A KR 20170105209 A KR20170105209 A KR 20170105209A KR 102021383 B1 KR102021383 B1 KR 102021383B1
Authority
KR
South Korea
Prior art keywords
issue
url address
static
dynamic
analysis
Prior art date
Application number
KR1020170105209A
Other languages
Korean (ko)
Other versions
KR20190020363A (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 KR1020170105209A priority Critical patent/KR102021383B1/en
Publication of KR20190020363A publication Critical patent/KR20190020363A/en
Application granted granted Critical
Publication of KR102021383B1 publication Critical patent/KR102021383B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management

Abstract

프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법이 개시된다. 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함한다. 따라서, 동적 분석과 정적 분석에 따른 결함을 서로 연관지음으로써 소프트웨어의 오류를 더 정확하고 빠르게 해결할 수 있다.Disclosed is a program analysis method that combines static and dynamic analysis performed by a program analysis device. Program analysis method that combines static analysis and dynamic analysis, as a result of performing a static analysis of the source code of the web application, obtaining a static issue including the location of the defective source code, according to the location of the source code Parsing the source code to obtain at least one first Uniform Resource Locator (URL) address mapped to the static issue; performing dynamic analysis on the web application; Obtaining a dynamic issue that includes and matching the at least one first URL address with the at least one second URL address to determine an association issue between the dynamic issue and the static issue. As a result, software errors can be resolved more accurately and quickly by associating defects resulting from dynamic and static analysis.

Description

동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치{METHOD AND APPARATUS FOR ANALYZING PROGRAM BY ASSOCIATING DYNAMIC ANALYSIS WITH STATIC ANALYSIS}METHOD AND APPARATUS FOR ANALYZING PROGRAM BY ASSOCIATING DYNAMIC ANALYSIS WITH STATIC ANALYSIS}

본 발명은 동적 분석과 정적 분석을 연계한 프로그램 분석 방법 및 장치에 관한 것으로, 더욱 상세하게는 정적 분석에서 URL을 추가로 파악하고, 파악된 URL을 기초로 동적 분석과 연계시킴으로써, 프로그램을 효율적으로 분석하고 오류를 검출하기 위한 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for analyzing a program that combines dynamic analysis and static analysis. More specifically, the program is efficiently analyzed by additionally identifying a URL in the static analysis and linking it with dynamic analysis based on the identified URL. And a method and apparatus for detecting errors.

소프트웨어의 결함(또는 오류)를 검출하는 테스트 방법에는 정적 분석과 동적 분석이 있다.Test methods for detecting software defects (or errors) include static analysis and dynamic analysis.

여기서, 정적 분석은 소프트웨어를 실행시키지 않고 결함을 검출하는 테스트 방법으로서, 소프트웨어 오류에 대한 기준을 정하고 검사 결과와 기준을 비교해 오류를 검출하는 방식이다. 예를 들어, 정적 분석은 소스 코드를 대상으로 잠재적인 구문 결함, 의미 결함 등을 검출할 수 있다.In this case, the static analysis is a test method for detecting a defect without executing the software. The static analysis is a method of determining a criterion for a software error and comparing the test result with a criterion to detect the error. For example, static analysis can detect potential syntax defects, semantic defects, and the like in the source code.

이때, 정적 분석은 그 분석 결과로서 소스 코드에서 결함이 있는 위치를 파악할 수 있으나, 결함을 유발하는 테스트 케이스를 파악하기 어려운 문제가 있다.At this time, the static analysis can determine the location of the defect in the source code as the analysis result, there is a problem that it is difficult to identify the test case causing the defect.

한편, 동적 분석은 소프트웨어를 직접 실행하여 실행 과정에 존재하는 결함을 검출해내는 테스트 방법으로, 특정 데이터를 소프트웨어에 입력한 후 실제 결과값과 기대했던 결과값이 일치하는지 여부를 판단하는 방식이다.Dynamic analysis, on the other hand, is a test method that detects defects in the execution process by directly executing the software. After inputting specific data into the software, it is a method of determining whether the actual result and the expected result match.

이때, 동적 분석은 그 분석 결과로서 소프트웨어의 결함을 유발할 수 있는 테스트 케이스를 생성하는데, 소프트웨어의 결함이 발생한 소스 코드 위치를 파악하기 어려워 결함을 신속하게 수정하기 어렵다.At this time, the dynamic analysis generates a test case that can cause a software defect as a result of the analysis, it is difficult to determine the source code location where the software defect occurs, it is difficult to fix the defect quickly.

따라서, 동적 분석과 정적 분석을 연계하여 소프트웨어의 결함을 더 용이하게 파악하고 수정할 수 있는 방안이 필요한 실정이다.Therefore, there is a need for a method of linking dynamic analysis and static analysis to more easily identify and correct software defects.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법을 제공하는 데 있다.An object of the present invention for solving the above problems is to provide a program analysis method incorporating static analysis and dynamic analysis.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치를 제공하는 데 있다.Another object of the present invention for solving the above problems is to provide a program analysis device incorporating static analysis and dynamic analysis.

상기 목적을 달성하기 위한 본 발명의 일 측면은, 프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법을 제공한다.One aspect of the present invention for achieving the above object, there is provided a program analysis method incorporating static analysis and dynamic analysis performed by the program analysis device.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함할 수 있다.Here, the program analysis method that combines static analysis and dynamic analysis, as a result of performing a static analysis of the source code of the web application, obtaining a static issue including the location of the defective source code, the location of the source code Acquiring at least one first Uniform Resource Locator (URL) address mapped to the static issue by analyzing the source code according to the at least one second URL, and performing at least one second URL as a result of performing dynamic analysis on the web application. Obtaining a dynamic issue including an address and matching the at least one first URL address and the at least one second URL address with each other to determine an association issue between the dynamic issue and the static issue; can do.

여기서, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 적어도 하나로 분류하는 단계, 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.The acquiring of the at least one first Uniform Resource Locator (URL) address may include classifying a source code according to a location of the source code into at least one of a controller code and a view code. The method may include obtaining a base URL address using a classified code, and processing the base URL address to obtain the first URL address.

여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.The processing of the base URL address and obtaining the first URL address may include analyzing a configuration file of the web application to determine a prefix URL and a suffix URL associated with the base URL address. Verifying and removing the prefix URL from the base URL, and adding the suffix URL to obtain the first URL address.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The acquiring the base URL address by using the classified code may include analyzing the controller code to obtain first additional information included in the controller code or a second related to the controller code in the configuration file. Obtaining the additional information and obtaining the base URL address from the first additional information or the second additional information.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The acquiring the base URL address by using the classified code may include obtaining a file path for the view code and processing the file path to obtain the base URL address.

여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.The determining of an association issue between the dynamic issue and the static issue may include selecting at least one of the dynamic issues and at least one of the static issues to generate a first candidate group and generating the first candidate group. And matching the at least one first URL address with the at least one second URL address, and determining the related issue.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 포함할 수 있다.Here, the program analysis method linking the static analysis and the dynamic analysis, source code location of the static issue corresponding to the dynamic issue, based on a matching relationship between the at least one first URL address and the at least one second URL address. It may further comprise the step of deriving.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 포함할 수 있다.Here, the program analysis method that combines static analysis and dynamic analysis, deriving a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address. It may further include.

상기 목적을 달성하기 위한 본 발명의 다른 측면은, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치를 제공한다.Another aspect of the present invention for achieving the above object, there is provided a program analysis device that combines static analysis and dynamic analysis.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치는, 적어도 하나의 프로세서(processor) 및 상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함할 수 있다.Here, the program analysis device incorporating static analysis and dynamic analysis may include at least one processor and a memory storing instructions for instructing the at least one processor to perform at least one step. It may include.

여기서, 상기 적어도 하나의 단계는, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함할 수 있다.The at least one step may include obtaining a static issue including a location of a defective source code as a result of performing a static analysis of the source code of the web application, and extracting the source code according to the location of the source code. Analyzing and obtaining at least one first Uniform Resource Locator (URL) address mapped to the static issue; performing dynamic analysis on the web application, wherein the dynamic includes at least one second URL address Obtaining an issue and matching the at least one first URL address and the at least one second URL address with each other to determine an association issue between the dynamic issue and the static issue.

여기서, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계, 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.The acquiring of the at least one first Uniform Resource Locator (URL) address may include classifying a source code according to a location of the source code into one of a controller code and a view code; The method may include obtaining a base URL address using a classified code, and processing the base URL address to obtain the first URL address.

여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.The processing of the base URL address and obtaining the first URL address may include analyzing a configuration file of the web application to determine a prefix URL and a suffix URL associated with the base URL address. Verifying and removing the prefix URL from the base URL, and adding the suffix URL to obtain the first URL address.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The acquiring the base URL address by using the classified code may include analyzing the controller code to obtain first additional information included in the controller code or a second related to the controller code in the configuration file. Obtaining the additional information and obtaining the base URL address from the first additional information or the second additional information.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The acquiring the base URL address by using the classified code may include obtaining a file path for the view code and processing the file path to obtain the base URL address.

여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.The determining of an association issue between the dynamic issue and the static issue may include selecting at least one of the dynamic issues and at least one of the static issues to generate a first candidate group and generating the first candidate group. And matching the at least one first URL address with the at least one second URL address, and determining the related issue.

여기서, 상기 명령어들은 상기 적어도 하나의 프로세서가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 수행하도록 지시할 수 있다.Here, the instructions may be derived by the at least one processor, the source code location of the static issue corresponding to the dynamic issue, based on a matching relationship between the at least one first URL address and the at least one second URL address. May be instructed to perform further steps.

여기서, 상기 명령어들은 상기 적어도 하나의 프로세서가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 수행하도록 지시할 수 있다.The instructions may further include, by the at least one processor, deriving a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address. Can be instructed to perform.

상기와 같은 본 발명에 따른 동적 분석과 정적 분석을 연관시켜 프로그램을 분석하기 위한 방법 및 장치를 이용할 경우에는 동적 이슈(결함)과 정적 이슈(결함) 사이에 연관성이 있는 연관 이슈를 파악할 수 있다.When using the method and apparatus for analyzing a program by associating a dynamic analysis with a static analysis according to the present invention as described above, it is possible to identify a related issue between a dynamic issue (defect) and a static issue (defect).

또한, 동적 이슈가 발생한 소스 코드의 위치를 쉽게 파악할 수 있어, 동적 이슈에 따른 보수가 용이한 장점이 있다.In addition, it is possible to easily determine the location of the source code where the dynamic issue occurs, there is an advantage that can be easily repaired according to the dynamic issue.

또한, 정적 이슈에 따른 테스트 케이스를 쉽게 파악할 수 있으므로, 정적 이슈의 보수와 테스트를 편리하게 수행할 수 있다.In addition, the test case according to the static issue can be easily identified, so that the maintenance and testing of the static issue can be performed conveniently.

도 1은 본 발명의 일 실시예에 따른 동적 분석과 정적 분석을 연관시켜 프로그램을 분석하기 위한 방법이 수행되는 전체 시스템 구성의 예시도이다.
도 2는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 방법에 대한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 웹 애플리케이션의 소스 코드에서 URL 주소를 획득하는 과정을 구체화한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 정적 이슈와 동적 이슈 사이의 연관 이슈를 판단하는 예시도이다.
도 5는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 장치에 대한 구성도이다.
1 is an exemplary diagram of an overall system configuration in which a method for analyzing a program in association with dynamic analysis and static analysis according to an embodiment of the present invention is performed.
2 is a flowchart illustrating a program analysis method in which static analysis and dynamic analysis are combined according to an embodiment of the present invention.
3 is a flowchart illustrating a process of obtaining a URL address from source code of a web application according to an embodiment of the present invention.
4 is an exemplary diagram for determining an association issue between a static issue and a dynamic issue according to an embodiment of the present invention.
5 is a block diagram of a program analysis apparatus in which static analysis and dynamic analysis are linked according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for similar elements.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

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

도 1은 본 발명의 일 실시예에 따른 동적 분석과 정적 분석을 연관시켜 프로그램을 분석하기 위한 방법이 수행되는 전체 시스템 구성의 예시도이다.1 is an exemplary diagram of an overall system configuration in which a method for analyzing a program by associating a dynamic analysis with a static analysis according to an embodiment of the present invention is performed.

도 1을 참조하면, 전체 시스템은 웹 애플리케이션(10) 및 웹 애플리케이션(10)의 소스 코드(11)를 대상으로 하여, 정적 분석 모듈(20), 동적 분석 모듈(30) 및 분석 장치(40) 중 적어도 하나를 포함할 수 있다.Referring to FIG. 1, the entire system targets the web application 10 and the source code 11 of the web application 10, such as the static analysis module 20, the dynamic analysis module 30, and the analysis device 40. It may include at least one of.

본 발명의 일 실시예에 따른 프로그램 분석 방법은 개발 중이거나 완성되어 구동되는 웹 애플리케이션(10) 및 그 소스 코드(11)를 대상으로 수행될 수 있다.The program analysis method according to an embodiment of the present invention may be performed on the web application 10 and its source code 11 that are being developed or completed and run.

여기서, 정적 분석 모듈(20)은 자동으로 소스 코드를 분석하여 소스 코드 상의 결함을 검색하는 소프트웨어 모듈이거나, 소프트웨어 모듈이 구동되는 장치일 수 있다.Here, the static analysis module 20 may be a software module that automatically analyzes the source code to search for defects in the source code, or may be a device in which the software module is driven.

구체적으로 정적 분석 모듈(20)은, Null 포인터에 대해 어떤 값을 대입하거나 참조하는 결함, 함수 또는 메소드에서 생성된 데이터리소스가 반환되지 않고 종료되는 결함, 메소드에서 생성된 스트림이 닫히지 않고 종료되는 결함, 예외 처리와 관련된 결함 또는 연산자나 함수의 잘못된 사용에 따른 결함과 같이 소스 코드상에 존재하는 각종 결함이나 오류를 발견 및 분석할 수 있다. 이때, 발견되는 각종 결함이나 오류를 정적 이슈로 지칭하거나, 각종 결함이나 오류가 발생한 소스 코드의 위치 또는 소스 코드 내용을 정적 이슈로 지칭할 수도 있다. Specifically, the static analysis module 20 includes a defect that assigns or references a value to a null pointer, a defect that terminates without returning the data resource generated by the function or method, or a defect that terminates without closing the stream generated by the method. For example, it is possible to detect and analyze various defects or errors in the source code, such as defects related to exception handling or defects caused by misuse of operators or functions. In this case, various defects or errors found may be referred to as static issues, or locations or source code contents of source codes in which various defects or errors occur may be referred to as static issues.

여기서, 동적 분석 모듈(30)은 웹 애플리케이션에 대하여 미리 설정된 각종 문자열을 URL 파라미터로 하여, 웹 애플리케이션에 웹상으로 접근하여 웹 애플리케이션을 구동시키는 소프트웨어 모듈 또는 소프트웨어 모듈이 구동되는 장치일 수 있다.Here, the dynamic analysis module 30 may be a software module or a device on which the software module for driving the web application by accessing the web application on the web using various character strings set in advance for the web application as the URL parameter.

구체적으로, 동적 분석 모듈(30)은 웹 애플리케이션을 동작시킴으로써 웹 애플리케이션이 오작동하거나 보안에 취약한 반응을 보이는 경우, 그러한 오작동이나 반응을 보이는 입력값 또는 테스트케이스를 생성할 수 있다. 이때, 테스트 케이스는 웹 애플리케이션에 접근하는 특정 URL 주소 및 URL 파라미터로 구성될 수 있다. 또한, 테스트 케이스는 이하에서 동적 이슈로 지칭될 수 있다.In detail, the dynamic analysis module 30 may generate an input value or a test case showing the malfunction or response when the web application malfunctions or exhibits a weak security response by operating the web application. In this case, the test case may be configured with a specific URL address and URL parameters to access the web application. Test cases may also be referred to as dynamic issues below.

여기서, 분석 장치(40)는 정적 분석 모듈(20)과 동적 분석 모듈(30) 사이를 상호 중개하여 정적 이슈와 동적 이슈를 저장할 수 있다. 또한, 분석 장치(40)는 정적 이슈와 동적 이슈 상호간을 매칭함으로써, 매칭 관계에 있는 연관 이슈를 파악할 수 있다. Here, the analysis device 40 may store a static issue and a dynamic issue by mediating between the static analysis module 20 and the dynamic analysis module 30. In addition, the analysis device 40 may identify the related issues in the matching relationship by matching the static issues with the dynamic issues.

여기서, 정적 분석 모듈(20), 동적 분석 모듈(30) 및 분석 장치(40)는 하나의 통합 분석 장치(50)로 구현될 수도 있다.Here, the static analysis module 20, the dynamic analysis module 30, and the analysis device 40 may be implemented as one integrated analysis device 50.

여기서, 분석 장치(40) 또는 통합 분석 장치(50)는, 이하에서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치로 지칭될 수도 있다.Here, the analysis device 40 or the integrated analysis device 50 may be referred to as a program analysis device in which static analysis and dynamic analysis are linked below.

도 2는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 방법에 대한 흐름도이다. 도 3은 본 발명의 일 실시예에 따른 웹 애플리케이션의 소스 코드에서 URL 주소를 획득하는 과정을 구체화한 흐름도이다.2 is a flowchart illustrating a program analysis method in which static analysis and dynamic analysis are combined according to an embodiment of the present invention. 3 is a flowchart illustrating a process of obtaining a URL address from source code of a web application according to an embodiment of the present invention.

도 2를 참조하면, 프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계(S100), 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계(S200), 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계(S300) 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계(S400)를 포함할 수 있다.Referring to FIG. 2, a program analysis method incorporating static analysis and dynamic analysis performed by a program analysis device is a result of performing a static analysis on a source code of a web application, and includes a static source including a location of a defective source code. Obtaining an issue (S100), analyzing source code according to the location of the source code, and obtaining at least one first Uniform Resource Locator (URL) address mapped to the static issue (S200); As a result of performing dynamic analysis on the application, obtaining a dynamic issue including at least one second URL address (S300) and the at least one first URL address and the at least one second URL address are mutually different. Matching may include determining an association issue between the dynamic issue and the static issue (S400).

여기서, 정적 분석이나 동적 분석은 상기 단계들에서 직접 수행될 수도 있으나, 외부의 다른 장치에서 수행될 수도 있다. 외부의 다른 장치에서 수행되는 경우에는 외부의 다른 장치로부터 정적 이슈와 동적 이슈를 수신받아 획득할 수도 있다.Here, the static analysis or the dynamic analysis may be performed directly in the above steps, or may be performed in another external device. When executed in another external device, the static and dynamic issues may be received and obtained from another external device.

여기서 도 3을 참조하면, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계(S200)를 좀 더 상세히 설명할 수 있다.Here, referring to FIG. 3, an operation (S200) of obtaining the at least one first Uniform Resource Locator (URL) address may be described in more detail.

구체적으로 도 3을 참조하였을 때, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계(S100)는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계(S110), 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계(S120) 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계(S130)를 포함할 수 있다.In detail, referring to FIG. 3, in the obtaining of the at least one first Uniform Resource Locator (URL) address (S100), the source code according to the location of the source code may be a controller code and a view code. classifying into one of the view codes (S110), obtaining a base URL address using the classified code (S120), and processing the base URL address to obtain the first URL address (S130). It may include.

여기서, 소스 코드의 위치에 따른 소스 코드는 정적 분석 결과 결함이 있는 소스 코드의 위치상에 있는 소스 코드를 지시할 수 있다. 이때, 위치상에 있는 소스 코드는 해당 위치를 포함하는 메소드, 함수 또는 경우에 따라서는 클래스 전체를 지시할 수도 있다.Here, the source code according to the position of the source code may indicate the source code on the position of the defective source code as a result of the static analysis. At this time, the source code on the location may indicate a method, a function, or in some cases, the entire class including the location.

여기서, 컨트롤러 코드는 웹 애플리케이션의 구동 및 동작을 제어하는 소스 코드 부분이고, 뷰 코드는 웹 애플리케이션에서 화면에 표시되는 웹 페이지를 구성하는 소스 코드가 될 수 있다.Here, the controller code is a part of the source code for controlling the operation and operation of the web application, the view code may be the source code constituting the web page displayed on the screen in the web application.

여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계(S130)는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다. 여기서, 서픽스 URL은 포스트픽스 URL(postfix URL)로 지칭될 수도 있다.In operation S130, the processing of the base URL address to obtain the first URL address may include analyzing a configuration file of the web application to fix a prefix URL and a suffix URL associated with the base URL address. URL) and removing the prefix URL from the base URL, and adding the suffix URL to obtain the first URL address. Here, the suffix URL may be referred to as a postfix URL.

여기서, 웹 애플리케이션은 프리픽스 URL이 아니라 서픽스 URL 에 따라 세부 동작이 결정될 수 있고, 동적 분석에 따른 테스트케이스 또한 이러한 URL을 포함하여 도출되므로, 매칭의 용이함을 위하여 프리픽스 URL을 제거할 수 있다.Here, the web application can determine the detailed operation according to the suffix URL, not the prefix URL, and the test case according to the dynamic analysis is also derived including the URL, so that the prefix URL can be removed for easy matching.

여기서 도 2와 도3을 참조하면, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계(S120)는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계(S122) 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계(S124)를 포함할 수 있다.2 and 3, in step S120 of obtaining a base URL address using the classified code, analyzing the controller code to obtain first additional information included in the controller code, or The method may include obtaining second additional information related to the controller code from a configuration file (S122) and obtaining the base URL address from the first additional information or the second additional information (S124).

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계(S120)는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계(S126) 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계(S128)를 포함할 수 있다.Here, the obtaining of the base URL address using the classified code (S120) may include obtaining the file path for the view code (S126) and processing the file path to obtain the base URL address. It may include (S128).

여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계(S400)는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.Here, the determining of the association issue between the dynamic issue and the static issue (S400) may include generating a first candidate group by selecting at least one of the dynamic issue and at least one of the static issue, and generating the first candidate group. In the candidate group, the at least one first URL address and the at least one second URL address may be matched with each other to determine the related issue.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 포함할 수 있다.Here, the program analysis method linking the static analysis and the dynamic analysis, source code location of the static issue corresponding to the dynamic issue, based on a matching relationship between the at least one first URL address and the at least one second URL address. It may further comprise the step of deriving.

이처럼 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출함으로써, 동적 이슈와 상응하는 소스 코드 위치를 신속히 파악하여 보수할 수 있다.By deriving the source code location of the static issue corresponding to the dynamic issue, the source code location corresponding to the dynamic issue can be quickly identified and repaired.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 포함할 수 있다.Here, the program analysis method that combines static analysis and dynamic analysis, deriving a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address. It may further include.

즉, 정적 이슈와 대응되는 동적 이슈를 도출할 수 있기 때문에, 정적 이슈의 문제점을 해결할 때 동적 이슈에 따른 테스트케이스를 시험하여 정확히 보수되었는지 판단할 수 있다.That is, since dynamic issues corresponding to static issues can be derived, it is possible to determine whether they have been correctly repaired by testing test cases according to dynamic issues when solving problems of static issues.

도 4는 본 발명의 일 실시예에 따른 정적 이슈와 동적 이슈 사이의 연관 이슈를 판단하는 예시도이다.4 is an exemplary diagram for determining an association issue between a static issue and a dynamic issue according to an embodiment of the present invention.

도 4를 참조하면, 정적 이슈(22)와 동적 이슈(32) 사이의 연관성이 있는 연관 이슈(42)를 파악하고, 후보군(44) 선정에 대한 것을 설명할 수 있다.Referring to FIG. 4, it is possible to identify a related issue 42 having a relation between the static issue 22 and the dynamic issue 32, and to explain the selection of the candidate group 44.

구체적으로, 정적 분석의 결과로서, 하나 이상의 정적 이슈(22)가 도출될 수 있는데, 정적 이슈(22)에는 오류나 결함이 발견된 소스 코드의 위치 정보가 각각 존재(예를 들면 org.path1.path3, org.path2.path2 등)할 수 있고, 하나의 정적 이슈에 대하여 복수의 소스 코드 위치 정보가 발견될 수 있다.Specifically, as a result of the static analysis, one or more static issues 22 may be derived, each of which has location information of source code in which an error or a defect is found (for example, org.path1.path3). , org.path2.path2, etc.), and a plurality of source code location information can be found for one static issue.

다음으로, 소스 코드의 위치 정보를 기초로 소스 코드의 위치상에 있는 소스 코드를 직접 분석함으로써, 해당 소스 코드와 관련된 URL 주소를 획득할 수 있다.Next, by directly analyzing the source code on the location of the source code based on the location information of the source code, it is possible to obtain a URL address associated with the source code.

또한, 동적 분석의 결과로서, 하나 이상의 URL 주소들(예를 들면 url/url2 등) 이 하나 이상의 동적 이슈(32)로서 도출될 수 있다. In addition, as a result of the dynamic analysis, one or more URL addresses (eg url / url2, etc.) may be derived as one or more dynamic issues 32.

다음으로, URL 주소가 일치 또는 프리픽스 URL(예를 들면, http와 같은 프로토콜, www.***.com 과 같은 서버나 컴퓨터의 인터넷상 도메인 이름 등)을 제외한 부분 상호간의 일치 여부를 기초로, 일치하는 정적 이슈와 동적 이슈를 매칭시킴으로써, 매칭되는 이슈들을 연관 이슈로 지칭할 수 있다.Next, based on whether the URL addresses match or exclude partial URLs (e.g. protocols such as http, domain names on the Internet of the server or computer such as www. ***. Com, etc.), By matching the matching static and dynamic issues, matching issues can be referred to as association issues.

한편, 연관 이슈를 파악하기 위하여 동적 이슈와 정적 이슈를 매칭시키려면 수많은 이슈들 상호간을 서로 비교해야 하기 때문에 매우 큰 연산 과정에 따른 성능 저하가 발생할 수 있다.On the other hand, in order to identify the related issues, dynamic and static issues can be matched with each other, so many issues must be compared with each other.

특히, 일반적으로 동적 이슈나 정적 이슈는 수백만개씩 발생할 수 있고, 여러 동적 이슈나 정적 이슈를 한번에 조회하는 경우가 빈번하기 때문에 더더욱 성능 저하 우려가 있다.In particular, in general, millions of dynamic issues or static issues may occur, and many dynamic issues or static issues are frequently viewed at a time, which may further deteriorate performance.

따라서, 모든 동적 이슈와 정적 이슈를 조회하는 것이 아니라, 정적 이슈와 동적 이슈 일부를 서로 묶어 하나의 후보군으로 만들고, 하나의 후보군마다 개별적으로 동적 이슈와 정적 이슈를 매칭함으로써 성능 저하를 줄일 수 있다.Therefore, rather than querying all dynamic issues and static issues, it is possible to reduce the performance degradation by combining static issues and some dynamic issues into one candidate group and matching dynamic issues and static issues individually for each candidate group.

구체적으로 도 4를 참조하면, 하나의 후보군(44)으로서, 이슈 번호 1, 2인 정적 이슈와 이슈 번호 1인 동적 이슈를 포함할 수 있다. Specifically, referring to FIG. 4, one candidate group 44 may include a static issue having issue numbers 1 and 2 and a dynamic issue having issue number 1.

그 후, 연관 이슈를 조회시 하나의 후보군별로 매칭을 수행하여 한번에 모든 매칭이 이루어짐에 따라 발생하는 성능 저하를 방지할 수 있다.Subsequently, when searching for related issues, matching is performed for one candidate group to prevent performance degradation caused by all matching at once.

구체적으로 후보군이 있는 경우 조회(또는 분석) 비용은 후보군 수와 후보군 하나에 대한 조회 비용이 될 수 있다. 반면, 후보군을 구성하지 않는 경우의 조회 비용은, 다음의 수학식 1과 같을 수 있다.Specifically, when there is a candidate group, the inquiry (or analysis) cost may be an inquiry cost for the number of candidate groups and one candidate group. On the other hand, the inquiry cost when the candidate group is not configured may be as shown in Equation 1 below.

Figure 112017080216795-pat00001
Figure 112017080216795-pat00001

여기서, 소스코드 URL 정보는 정적 이슈에 따른 소스 코드 위치로부터 도출되는 URL 주소를 포함하는 정보일 수 있다.Here, the source code URL information may be information including a URL address derived from the source code location according to the static issue.

도 5는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 장치에 대한 구성도이다.5 is a block diagram of a program analysis apparatus in which static analysis and dynamic analysis are linked according to an embodiment of the present invention.

도 5를 참조하면, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는, 적어도 하나의 프로세서(processor, 110) 및 상기 적어도 하나의 프로세서(110)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory, 120)를 포함할 수 있다.Referring to FIG. 5, the program analysis apparatus 100 that combines static analysis and dynamic analysis may include instructions for instructing at least one processor 110 and the at least one processor 110 to perform at least one step. It may include a memory (120) for storing the instructions (memory).

여기서, 상기 적어도 하나의 단계는, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함할 수 있다.The at least one step may include obtaining a static issue including a location of a defective source code as a result of performing a static analysis of the source code of the web application, and extracting the source code according to the location of the source code. Analyzing and obtaining at least one first Uniform Resource Locator (URL) address mapped to the static issue; performing dynamic analysis on the web application, wherein the dynamic includes at least one second URL address Obtaining an issue and matching the at least one first URL address and the at least one second URL address with each other to determine an association issue between the dynamic issue and the static issue.

여기서, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계, 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.The acquiring of the at least one first Uniform Resource Locator (URL) address may include classifying a source code according to a location of the source code into one of a controller code and a view code; The method may include obtaining a base URL address using a classified code, and processing the base URL address to obtain the first URL address.

여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.The processing of the base URL address and obtaining the first URL address may include analyzing a configuration file of the web application to determine a prefix URL and a suffix URL associated with the base URL address. Verifying and removing the prefix URL from the base URL, and adding the suffix URL to obtain the first URL address.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The acquiring the base URL address by using the classified code may include analyzing the controller code to obtain first additional information included in the controller code or a second related to the controller code in the configuration file. Obtaining the additional information and obtaining the base URL address from the first additional information or the second additional information.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The acquiring the base URL address by using the classified code may include obtaining a file path for the view code and processing the file path to obtain the base URL address.

여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.The determining of an association issue between the dynamic issue and the static issue may include selecting at least one of the dynamic issues and at least one of the static issues to generate a first candidate group and generating the first candidate group. And matching the at least one first URL address with the at least one second URL address, and determining the related issue.

여기서, 상기 명령어들은 상기 적어도 하나의 프로세서(110)가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 수행하도록 지시할 수 있다.In this case, the instructions may be generated by the at least one processor 110 based on a matching relationship between the at least one first URL address and the at least one second URL address. It may be instructed to further perform the step of deriving the position.

여기서, 상기 명령어들은 상기 적어도 하나의 프로세서(110)가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 수행하도록 지시할 수 있다.Herein, the instructions may be generated by the at least one processor 110 to derive a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address. You may be instructed to perform further steps.

여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는 외부의 정적 분석 장치 또는 동적 분석 장치로부터 정적 분석이나 동적 분석이 수행된 결과물인 정적 이슈 또는 동적 이슈를 수신받는 통신 모듈(130)을 더 포함할 수 있다.Herein, the program analysis device 100 linking the static analysis and the dynamic analysis further includes a communication module 130 that receives a static issue or a dynamic issue that is a result of performing the static analysis or the dynamic analysis from an external static analysis device or the dynamic analysis device. It may include.

여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는 동적 이슈와 정적 이슈를 저장하고, 동적 이슈와 정적 이슈를 매칭한 연관 이슈를 저장하는 저장소(storage, 140)를 더 포함할 수 있다.Here, the program analysis apparatus 100 integrating the static analysis and the dynamic analysis may further include a storage 140 for storing the dynamic issue and the static issue and storing the related issue matching the dynamic issue and the static issue.

여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.Examples of the program analysis apparatus 100 that combines static analysis and dynamic analysis include a desktop computer, a laptop computer, a notebook, a smartphone, a tablet PC ( tablet PC), mobile phone, smart watch, smart glass, e-book reader, portable multimedia player, portable game console, navigation device, digital camera camera, digital multimedia broadcasting (DMB) player, digital audio recorder, digital audio player, digital video recorder, digital video player, personal digital assistant (PDA) Digital Assistant).

여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는 도 2 및 3에 따른 프로그램 분석 방법 또는 그와 상응하는 방법을 수행할 수 있으며, 중복 서술은 생략하였다.Here, the program analysis apparatus 100 in which the static analysis and the dynamic analysis are linked may perform the program analysis method or a method corresponding thereto according to FIGS. 2 and 3, and redundant description is omitted.

본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to the invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium. Computer-readable media may include, alone or in combination with the program instructions, data files, data structures, and the like. The program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention, or may be known and available to those skilled in computer software.

컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer readable media may include hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter, as well as machine code such as produced by a compiler. The hardware device described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.

또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있In addition, the method or apparatus described above may be implemented by combining all or part of the configuration or function, or may be implemented separately.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although described above with reference to a preferred embodiment of the present invention, those skilled in the art will be variously modified and changed within the scope of the invention without departing from the spirit and scope of the invention described in the claims below I can understand that you can.

Claims (16)

프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법에서,
웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계;
상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계;
상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계; 및
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함하고,
상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는,
상기 소스 코드에서 기본 URL 주소를 획득하는 단계;
상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계; 및
상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In the program analysis method that combines static analysis and dynamic analysis performed by the program analysis device,
Obtaining a static issue including a location of the defective source code as a result of performing a static analysis on the source code of the web application;
Analyzing the source code according to the location of the source code to obtain at least one first Uniform Resource Locator (URL) address mapped to the static issue;
Obtaining a dynamic issue including at least one second URL address as a result of performing the dynamic analysis on the web application; And
Matching the at least one first URL address and the at least one second URL address with each other to determine an association issue between the dynamic issue and the static issue,
Obtaining the at least one first Uniform Resource Locator (URL) address,
Obtaining a base URL address from the source code;
Analyzing a configuration file of the web application to identify a prefix URL and a suffix URL associated with the base URL address; And
Removing the prefix URL from the base URL, and adding the suffix URL to obtain the first URL address.
청구항 1에서,
상기 기본 URL 주소를 획득하는 단계는,
상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계; 및
분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 1,
Obtaining the base URL address,
Classifying the source code according to the location of the source code into one of a controller code and a view code; And
A program analysis method incorporating static analysis and dynamic analysis, comprising obtaining a base URL address using the classified code.
삭제delete 청구항 2에서,
상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계; 및
상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 2,
Obtaining a base URL address using the classified code,
Analyzing the controller code to obtain first additional information included in the controller code or to obtain second additional information related to the controller code from the configuration file; And
And acquiring the base URL address from the first additional information or the second additional information.
청구항 2에서,
상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
상기 뷰 코드에 대한 파일 경로를 획득하는 단계; 및
상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 2,
Obtaining a base URL address using the classified code,
Obtaining a file path for the view code; And
Processing the file path to obtain the base URL address.
청구항 1에서,
상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는,
상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계; 및
생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 1,
The determining of the association issue between the dynamic issue and the static issue may include:
Selecting at least one of the dynamic issues and at least one of the static issues to generate a first candidate group; And
In the generated first candidate group, matching the at least one first URL address and the at least one second URL address with each other, and determining the association issue. Way.
청구항 1에서,
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 1,
Deriving a source code location of a static issue corresponding to the dynamic issue based on a matching relationship between the at least one first URL address and the at least one second URL address. Program analysis method linked to.
청구항 1에서,
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 1,
And deriving a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address. Way.
적어도 하나의 프로세서(processor); 및
상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치로서,
상기 적어도 하나의 단계는,
웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계;
상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계;
상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계; 및
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함하고,
상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는,
상기 소스 코드에서 기본 URL 주소를 획득하는 단계;
상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계; 및
상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
At least one processor; And
A program analysis device incorporating static analysis and dynamic analysis, comprising: a memory for storing instructions instructing the at least one processor to perform at least one step;
The at least one step,
Obtaining a static issue including a location of the defective source code as a result of performing a static analysis on the source code of the web application;
Analyzing the source code according to the location of the source code to obtain at least one first Uniform Resource Locator (URL) address mapped to the static issue;
Obtaining a dynamic issue including at least one second URL address as a result of performing the dynamic analysis on the web application; And
Matching the at least one first URL address and the at least one second URL address with each other to determine an association issue between the dynamic issue and the static issue,
Obtaining the at least one first Uniform Resource Locator (URL) address,
Obtaining a base URL address from the source code;
Analyzing a configuration file of the web application to identify a prefix URL and a suffix URL associated with the base URL address; And
And removing the prefix URL from the base URL, and adding the suffix URL to obtain the first URL address.
청구항 9에서,
상기 기본 URL 주소를 획득하는 단계는,
상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계; 및
분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 9,
Obtaining the base URL address,
Classifying the source code according to the location of the source code into one of a controller code and a view code; And
A program analysis device incorporating static analysis and dynamic analysis, comprising obtaining a base URL address using the classified code.
삭제delete 청구항 10에서,
상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계; 및
상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 10,
Obtaining a base URL address using the classified code,
Analyzing the controller code to obtain first additional information included in the controller code or to obtain second additional information related to the controller code from the configuration file; And
And obtaining the base URL address from the first additional information or the second additional information.
청구항 10에서,
상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
상기 뷰 코드에 대한 파일 경로를 획득하는 단계; 및
상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 10,
Obtaining a base URL address using the classified code,
Obtaining a file path for the view code; And
And processing the file path to obtain the base URL address.
청구항 9에서,
상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는,
상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계; 및
생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 9,
The determining of the association issue between the dynamic issue and the static issue may include:
Selecting at least one of the dynamic issues and at least one of the static issues to generate a first candidate group; And
In the generated first candidate group, matching the at least one first URL address and the at least one second URL address with each other, and determining the association issue. Device.
청구항 9에서,
상기 명령어들은 상기 적어도 하나의 프로세서가,
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 수행하도록 지시하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 9,
The instructions may include the at least one processor,
And based on a matching relationship between the at least one first URL address and the at least one second URL address, deriving a source code location of a static issue corresponding to the dynamic issue. Program analysis device incorporating dynamic analysis.
청구항 9에서,
상기 명령어들은 상기 적어도 하나의 프로세서가,
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 수행하도록 지시하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 9,
The instructions may be generated by the at least one processor,
Linking the static analysis with the dynamic analysis, further instructing to derive a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address. Program analysis device.
KR1020170105209A 2017-08-21 2017-08-21 Method and apparatus for analyzing program by associating dynamic analysis with static analysis KR102021383B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170105209A KR102021383B1 (en) 2017-08-21 2017-08-21 Method and apparatus for analyzing program by associating dynamic analysis with static analysis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170105209A KR102021383B1 (en) 2017-08-21 2017-08-21 Method and apparatus for analyzing program by associating dynamic analysis with static analysis

Publications (2)

Publication Number Publication Date
KR20190020363A KR20190020363A (en) 2019-03-04
KR102021383B1 true KR102021383B1 (en) 2019-09-16

Family

ID=65759999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170105209A KR102021383B1 (en) 2017-08-21 2017-08-21 Method and apparatus for analyzing program by associating dynamic analysis with static analysis

Country Status (1)

Country Link
KR (1) KR102021383B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416292B1 (en) 2021-01-29 2022-07-01 숭실대학교 산학협력단 Dynamic analysis method for android applications, recording medium and device for performing the method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11874688B2 (en) * 2021-07-23 2024-01-16 Hewlett Packard Enterprise Development Lp Identification of diagnostic messages corresponding to exceptions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015503789A (en) * 2011-12-30 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer-implemented methods, computer program products, and systems for targeted security testing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031584A (en) * 1996-07-16 1998-02-03 Toshiba Corp Automatic device for verification of software
KR102415971B1 (en) * 2015-12-10 2022-07-05 한국전자통신연구원 Apparatus and Method for Recognizing Vicious Mobile App

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015503789A (en) * 2011-12-30 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer-implemented methods, computer program products, and systems for targeted security testing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416292B1 (en) 2021-01-29 2022-07-01 숭실대학교 산학협력단 Dynamic analysis method for android applications, recording medium and device for performing the method

Also Published As

Publication number Publication date
KR20190020363A (en) 2019-03-04

Similar Documents

Publication Publication Date Title
US9621571B2 (en) Apparatus and method for searching for similar malicious code based on malicious code feature information
WO2017036335A1 (en) Code submitting method and device
US9262132B1 (en) Incremental local source code analysis
US10353702B2 (en) Source code element signatures
US8387017B2 (en) Black box testing optimization using information from white box testing
US20120192279A1 (en) Malware detection using external call characteristics
CN111367595B (en) Data processing method, program running method, device and processing equipment
KR102505127B1 (en) Electronic device for detecting vulnerability of software and operation method thereof
US10331441B2 (en) Source code mapping through context specific key word indexes and fingerprinting
CN107133165B (en) Browser compatibility detection method and device
US20160162385A1 (en) Correlation of violating change sets in regression testing of computer software
US9733906B2 (en) User interface area coverage
US20160171104A1 (en) Detecting multistep operations when interacting with web applications
US9026612B2 (en) Generating a custom parameter rule based on a comparison of a run-time value to a request URL
US20140115720A1 (en) License verification method and apparatus
US20160124795A1 (en) Evaluation method and apparatus
US9965256B2 (en) Method and system for evaluating computational algorithms described in printed publications
AU2019279950A1 (en) Web application adjustment for different browsers
US8862556B2 (en) Difference analysis in file sub-regions
KR102021383B1 (en) Method and apparatus for analyzing program by associating dynamic analysis with static analysis
US20120054724A1 (en) Incremental static analysis
US10685298B2 (en) Mobile application compatibility testing
AU2012203538A1 (en) Systems and methods for inter-object pattern matching
US8751508B1 (en) Contextual indexing of applications
US20150178075A1 (en) Enhancing understandability of code using code clones

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant