KR102021383B1 - 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치 - Google Patents

동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치 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
English (en)
Other versions
KR20190020363A (ko
Inventor
진민식
조만기
Original Assignee
주식회사 스패로우
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 스패로우 filed Critical 주식회사 스패로우
Priority to KR1020170105209A priority Critical patent/KR102021383B1/ko
Publication of KR20190020363A publication Critical patent/KR20190020363A/ko
Application granted granted Critical
Publication of KR102021383B1 publication Critical patent/KR102021383B1/ko

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법이 개시된다. 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함한다. 따라서, 동적 분석과 정적 분석에 따른 결함을 서로 연관지음으로써 소프트웨어의 오류를 더 정확하고 빠르게 해결할 수 있다.

Description

동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치{METHOD AND APPARATUS FOR ANALYZING PROGRAM BY ASSOCIATING DYNAMIC ANALYSIS WITH STATIC ANALYSIS}
본 발명은 동적 분석과 정적 분석을 연계한 프로그램 분석 방법 및 장치에 관한 것으로, 더욱 상세하게는 정적 분석에서 URL을 추가로 파악하고, 파악된 URL을 기초로 동적 분석과 연계시킴으로써, 프로그램을 효율적으로 분석하고 오류를 검출하기 위한 방법 및 장치에 관한 것이다.
소프트웨어의 결함(또는 오류)를 검출하는 테스트 방법에는 정적 분석과 동적 분석이 있다.
여기서, 정적 분석은 소프트웨어를 실행시키지 않고 결함을 검출하는 테스트 방법으로서, 소프트웨어 오류에 대한 기준을 정하고 검사 결과와 기준을 비교해 오류를 검출하는 방식이다. 예를 들어, 정적 분석은 소스 코드를 대상으로 잠재적인 구문 결함, 의미 결함 등을 검출할 수 있다.
이때, 정적 분석은 그 분석 결과로서 소스 코드에서 결함이 있는 위치를 파악할 수 있으나, 결함을 유발하는 테스트 케이스를 파악하기 어려운 문제가 있다.
한편, 동적 분석은 소프트웨어를 직접 실행하여 실행 과정에 존재하는 결함을 검출해내는 테스트 방법으로, 특정 데이터를 소프트웨어에 입력한 후 실제 결과값과 기대했던 결과값이 일치하는지 여부를 판단하는 방식이다.
이때, 동적 분석은 그 분석 결과로서 소프트웨어의 결함을 유발할 수 있는 테스트 케이스를 생성하는데, 소프트웨어의 결함이 발생한 소스 코드 위치를 파악하기 어려워 결함을 신속하게 수정하기 어렵다.
따라서, 동적 분석과 정적 분석을 연계하여 소프트웨어의 결함을 더 용이하게 파악하고 수정할 수 있는 방안이 필요한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법을 제공한다.
여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함할 수 있다.
여기서, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 적어도 하나로 분류하는 단계, 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.
여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 포함할 수 있다.
여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면은, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치를 제공한다.
여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치는, 적어도 하나의 프로세서(processor) 및 상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함할 수 있다.
여기서, 상기 적어도 하나의 단계는, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함할 수 있다.
여기서, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계, 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.
여기서, 상기 명령어들은 상기 적어도 하나의 프로세서가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 수행하도록 지시할 수 있다.
여기서, 상기 명령어들은 상기 적어도 하나의 프로세서가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 수행하도록 지시할 수 있다.
상기와 같은 본 발명에 따른 동적 분석과 정적 분석을 연관시켜 프로그램을 분석하기 위한 방법 및 장치를 이용할 경우에는 동적 이슈(결함)과 정적 이슈(결함) 사이에 연관성이 있는 연관 이슈를 파악할 수 있다.
또한, 동적 이슈가 발생한 소스 코드의 위치를 쉽게 파악할 수 있어, 동적 이슈에 따른 보수가 용이한 장점이 있다.
또한, 정적 이슈에 따른 테스트 케이스를 쉽게 파악할 수 있으므로, 정적 이슈의 보수와 테스트를 편리하게 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 동적 분석과 정적 분석을 연관시켜 프로그램을 분석하기 위한 방법이 수행되는 전체 시스템 구성의 예시도이다.
도 2는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 방법에 대한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 웹 애플리케이션의 소스 코드에서 URL 주소를 획득하는 과정을 구체화한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 정적 이슈와 동적 이슈 사이의 연관 이슈를 판단하는 예시도이다.
도 5는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 장치에 대한 구성도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 동적 분석과 정적 분석을 연관시켜 프로그램을 분석하기 위한 방법이 수행되는 전체 시스템 구성의 예시도이다.
도 1을 참조하면, 전체 시스템은 웹 애플리케이션(10) 및 웹 애플리케이션(10)의 소스 코드(11)를 대상으로 하여, 정적 분석 모듈(20), 동적 분석 모듈(30) 및 분석 장치(40) 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 프로그램 분석 방법은 개발 중이거나 완성되어 구동되는 웹 애플리케이션(10) 및 그 소스 코드(11)를 대상으로 수행될 수 있다.
여기서, 정적 분석 모듈(20)은 자동으로 소스 코드를 분석하여 소스 코드 상의 결함을 검색하는 소프트웨어 모듈이거나, 소프트웨어 모듈이 구동되는 장치일 수 있다.
구체적으로 정적 분석 모듈(20)은, Null 포인터에 대해 어떤 값을 대입하거나 참조하는 결함, 함수 또는 메소드에서 생성된 데이터리소스가 반환되지 않고 종료되는 결함, 메소드에서 생성된 스트림이 닫히지 않고 종료되는 결함, 예외 처리와 관련된 결함 또는 연산자나 함수의 잘못된 사용에 따른 결함과 같이 소스 코드상에 존재하는 각종 결함이나 오류를 발견 및 분석할 수 있다. 이때, 발견되는 각종 결함이나 오류를 정적 이슈로 지칭하거나, 각종 결함이나 오류가 발생한 소스 코드의 위치 또는 소스 코드 내용을 정적 이슈로 지칭할 수도 있다.
여기서, 동적 분석 모듈(30)은 웹 애플리케이션에 대하여 미리 설정된 각종 문자열을 URL 파라미터로 하여, 웹 애플리케이션에 웹상으로 접근하여 웹 애플리케이션을 구동시키는 소프트웨어 모듈 또는 소프트웨어 모듈이 구동되는 장치일 수 있다.
구체적으로, 동적 분석 모듈(30)은 웹 애플리케이션을 동작시킴으로써 웹 애플리케이션이 오작동하거나 보안에 취약한 반응을 보이는 경우, 그러한 오작동이나 반응을 보이는 입력값 또는 테스트케이스를 생성할 수 있다. 이때, 테스트 케이스는 웹 애플리케이션에 접근하는 특정 URL 주소 및 URL 파라미터로 구성될 수 있다. 또한, 테스트 케이스는 이하에서 동적 이슈로 지칭될 수 있다.
여기서, 분석 장치(40)는 정적 분석 모듈(20)과 동적 분석 모듈(30) 사이를 상호 중개하여 정적 이슈와 동적 이슈를 저장할 수 있다. 또한, 분석 장치(40)는 정적 이슈와 동적 이슈 상호간을 매칭함으로써, 매칭 관계에 있는 연관 이슈를 파악할 수 있다.
여기서, 정적 분석 모듈(20), 동적 분석 모듈(30) 및 분석 장치(40)는 하나의 통합 분석 장치(50)로 구현될 수도 있다.
여기서, 분석 장치(40) 또는 통합 분석 장치(50)는, 이하에서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치로 지칭될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 방법에 대한 흐름도이다. 도 3은 본 발명의 일 실시예에 따른 웹 애플리케이션의 소스 코드에서 URL 주소를 획득하는 과정을 구체화한 흐름도이다.
도 2를 참조하면, 프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계(S100), 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계(S200), 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계(S300) 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계(S400)를 포함할 수 있다.
여기서, 정적 분석이나 동적 분석은 상기 단계들에서 직접 수행될 수도 있으나, 외부의 다른 장치에서 수행될 수도 있다. 외부의 다른 장치에서 수행되는 경우에는 외부의 다른 장치로부터 정적 이슈와 동적 이슈를 수신받아 획득할 수도 있다.
여기서 도 3을 참조하면, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계(S200)를 좀 더 상세히 설명할 수 있다.
구체적으로 도 3을 참조하였을 때, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계(S100)는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계(S110), 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계(S120) 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계(S130)를 포함할 수 있다.
여기서, 소스 코드의 위치에 따른 소스 코드는 정적 분석 결과 결함이 있는 소스 코드의 위치상에 있는 소스 코드를 지시할 수 있다. 이때, 위치상에 있는 소스 코드는 해당 위치를 포함하는 메소드, 함수 또는 경우에 따라서는 클래스 전체를 지시할 수도 있다.
여기서, 컨트롤러 코드는 웹 애플리케이션의 구동 및 동작을 제어하는 소스 코드 부분이고, 뷰 코드는 웹 애플리케이션에서 화면에 표시되는 웹 페이지를 구성하는 소스 코드가 될 수 있다.
여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계(S130)는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다. 여기서, 서픽스 URL은 포스트픽스 URL(postfix URL)로 지칭될 수도 있다.
여기서, 웹 애플리케이션은 프리픽스 URL이 아니라 서픽스 URL 에 따라 세부 동작이 결정될 수 있고, 동적 분석에 따른 테스트케이스 또한 이러한 URL을 포함하여 도출되므로, 매칭의 용이함을 위하여 프리픽스 URL을 제거할 수 있다.
여기서 도 2와 도3을 참조하면, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계(S120)는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계(S122) 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계(S124)를 포함할 수 있다.
여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계(S120)는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계(S126) 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계(S128)를 포함할 수 있다.
여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계(S400)는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.
여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 포함할 수 있다.
이처럼 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출함으로써, 동적 이슈와 상응하는 소스 코드 위치를 신속히 파악하여 보수할 수 있다.
여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 포함할 수 있다.
즉, 정적 이슈와 대응되는 동적 이슈를 도출할 수 있기 때문에, 정적 이슈의 문제점을 해결할 때 동적 이슈에 따른 테스트케이스를 시험하여 정확히 보수되었는지 판단할 수 있다.
도 4는 본 발명의 일 실시예에 따른 정적 이슈와 동적 이슈 사이의 연관 이슈를 판단하는 예시도이다.
도 4를 참조하면, 정적 이슈(22)와 동적 이슈(32) 사이의 연관성이 있는 연관 이슈(42)를 파악하고, 후보군(44) 선정에 대한 것을 설명할 수 있다.
구체적으로, 정적 분석의 결과로서, 하나 이상의 정적 이슈(22)가 도출될 수 있는데, 정적 이슈(22)에는 오류나 결함이 발견된 소스 코드의 위치 정보가 각각 존재(예를 들면 org.path1.path3, org.path2.path2 등)할 수 있고, 하나의 정적 이슈에 대하여 복수의 소스 코드 위치 정보가 발견될 수 있다.
다음으로, 소스 코드의 위치 정보를 기초로 소스 코드의 위치상에 있는 소스 코드를 직접 분석함으로써, 해당 소스 코드와 관련된 URL 주소를 획득할 수 있다.
또한, 동적 분석의 결과로서, 하나 이상의 URL 주소들(예를 들면 url/url2 등) 이 하나 이상의 동적 이슈(32)로서 도출될 수 있다.
다음으로, URL 주소가 일치 또는 프리픽스 URL(예를 들면, http와 같은 프로토콜, www.***.com 과 같은 서버나 컴퓨터의 인터넷상 도메인 이름 등)을 제외한 부분 상호간의 일치 여부를 기초로, 일치하는 정적 이슈와 동적 이슈를 매칭시킴으로써, 매칭되는 이슈들을 연관 이슈로 지칭할 수 있다.
한편, 연관 이슈를 파악하기 위하여 동적 이슈와 정적 이슈를 매칭시키려면 수많은 이슈들 상호간을 서로 비교해야 하기 때문에 매우 큰 연산 과정에 따른 성능 저하가 발생할 수 있다.
특히, 일반적으로 동적 이슈나 정적 이슈는 수백만개씩 발생할 수 있고, 여러 동적 이슈나 정적 이슈를 한번에 조회하는 경우가 빈번하기 때문에 더더욱 성능 저하 우려가 있다.
따라서, 모든 동적 이슈와 정적 이슈를 조회하는 것이 아니라, 정적 이슈와 동적 이슈 일부를 서로 묶어 하나의 후보군으로 만들고, 하나의 후보군마다 개별적으로 동적 이슈와 정적 이슈를 매칭함으로써 성능 저하를 줄일 수 있다.
구체적으로 도 4를 참조하면, 하나의 후보군(44)으로서, 이슈 번호 1, 2인 정적 이슈와 이슈 번호 1인 동적 이슈를 포함할 수 있다.
그 후, 연관 이슈를 조회시 하나의 후보군별로 매칭을 수행하여 한번에 모든 매칭이 이루어짐에 따라 발생하는 성능 저하를 방지할 수 있다.
구체적으로 후보군이 있는 경우 조회(또는 분석) 비용은 후보군 수와 후보군 하나에 대한 조회 비용이 될 수 있다. 반면, 후보군을 구성하지 않는 경우의 조회 비용은, 다음의 수학식 1과 같을 수 있다.
Figure 112017080216795-pat00001
여기서, 소스코드 URL 정보는 정적 이슈에 따른 소스 코드 위치로부터 도출되는 URL 주소를 포함하는 정보일 수 있다.
도 5는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 장치에 대한 구성도이다.
도 5를 참조하면, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는, 적어도 하나의 프로세서(processor, 110) 및 상기 적어도 하나의 프로세서(110)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory, 120)를 포함할 수 있다.
여기서, 상기 적어도 하나의 단계는, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함할 수 있다.
여기서, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계, 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.
여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.
여기서, 상기 명령어들은 상기 적어도 하나의 프로세서(110)가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 수행하도록 지시할 수 있다.
여기서, 상기 명령어들은 상기 적어도 하나의 프로세서(110)가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 수행하도록 지시할 수 있다.
여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는 외부의 정적 분석 장치 또는 동적 분석 장치로부터 정적 분석이나 동적 분석이 수행된 결과물인 정적 이슈 또는 동적 이슈를 수신받는 통신 모듈(130)을 더 포함할 수 있다.
여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는 동적 이슈와 정적 이슈를 저장하고, 동적 이슈와 정적 이슈를 매칭한 연관 이슈를 저장하는 저장소(storage, 140)를 더 포함할 수 있다.
여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(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) 등일 수 있다.
여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는 도 2 및 3에 따른 프로그램 분석 방법 또는 그와 상응하는 방법을 수행할 수 있으며, 중복 서술은 생략하였다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (16)

  1. 프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법에서,
    웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계;
    상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제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 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
  2. 청구항 1에서,
    상기 기본 URL 주소를 획득하는 단계는,
    상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계; 및
    분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
  3. 삭제
  4. 청구항 2에서,
    상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
    상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계; 및
    상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
  5. 청구항 2에서,
    상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
    상기 뷰 코드에 대한 파일 경로를 획득하는 단계; 및
    상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
  6. 청구항 1에서,
    상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는,
    상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계; 및
    생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
  7. 청구항 1에서,
    상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
  8. 청구항 1에서,
    상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
  9. 적어도 하나의 프로세서(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 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
  10. 청구항 9에서,
    상기 기본 URL 주소를 획득하는 단계는,
    상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계; 및
    분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
  11. 삭제
  12. 청구항 10에서,
    상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
    상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계; 및
    상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
  13. 청구항 10에서,
    상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
    상기 뷰 코드에 대한 파일 경로를 획득하는 단계; 및
    상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
  14. 청구항 9에서,
    상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는,
    상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계; 및
    생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
  15. 청구항 9에서,
    상기 명령어들은 상기 적어도 하나의 프로세서가,
    상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 수행하도록 지시하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
  16. 청구항 9에서,
    상기 명령어들은 상기 적어도 하나의 프로세서가,
    상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 수행하도록 지시하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
KR1020170105209A 2017-08-21 2017-08-21 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치 KR102021383B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170105209A KR102021383B1 (ko) 2017-08-21 2017-08-21 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170105209A KR102021383B1 (ko) 2017-08-21 2017-08-21 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치

Publications (2)

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

Family

ID=65759999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170105209A KR102021383B1 (ko) 2017-08-21 2017-08-21 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102021383B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416292B1 (ko) 2021-01-29 2022-07-01 숭실대학교 산학협력단 안드로이드 앱 동적 분석 방법, 이를 수행하기 위한 기록 매체 및 장치
KR20240066072A (ko) 2022-11-02 2024-05-14 한국과학기술원 프로그램 정적 분석 방법 및 시스템

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 (ja) * 2011-12-30 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ターゲットを絞ったセキュリティ・テストのための、コンピュータにより実施される方法、コンピュータ・プログラム製品、システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031584A (ja) * 1996-07-16 1998-02-03 Toshiba Corp ソフトウエアの検証自動化装置
KR102415971B1 (ko) * 2015-12-10 2022-07-05 한국전자통신연구원 악성 모바일 앱 감지 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015503789A (ja) * 2011-12-30 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ターゲットを絞ったセキュリティ・テストのための、コンピュータにより実施される方法、コンピュータ・プログラム製品、システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416292B1 (ko) 2021-01-29 2022-07-01 숭실대학교 산학협력단 안드로이드 앱 동적 분석 방법, 이를 수행하기 위한 기록 매체 및 장치
KR20240066072A (ko) 2022-11-02 2024-05-14 한국과학기술원 프로그램 정적 분석 방법 및 시스템

Also Published As

Publication number Publication date
KR20190020363A (ko) 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 (zh) 一种代码提交方法和设备
US8387017B2 (en) Black box testing optimization using information from white box testing
US20120192279A1 (en) Malware detection using external call characteristics
US10049031B2 (en) Correlation of violating change sets in regression testing of computer software
US10331441B2 (en) Source code mapping through context specific key word indexes and fingerprinting
CN107133165B (zh) 浏览器兼容性检测方法及装置
CN111367595B (zh) 数据处理方法、程序运行方法、装置及处理设备
KR102505127B1 (ko) 소프트웨어 취약점을 검출하는 전자 장치 및 그 동작 방법
KR102021383B1 (ko) 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치
US9733906B2 (en) User interface area coverage
US10489124B2 (en) Method and system for providing software containers supporting executable code created from computational algorithms described in printed publications
US20150095305A1 (en) Detecting multistep operations when interacting with web applications
US8862556B2 (en) Difference analysis in file sub-regions
US20160124795A1 (en) Evaluation method and apparatus
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
AU2019279950A1 (en) Web application adjustment for different browsers
CN111654495B (zh) 用于确定流量产生来源的方法、装置、设备及存储介质
US20120054724A1 (en) Incremental static analysis
US10685298B2 (en) Mobile application compatibility testing
CN106055567A (zh) 提供app商店搜索结果
US8751508B1 (en) Contextual indexing of applications
Lavoie et al. A case study of TTCN-3 test scripts clone analysis in an industrial telecommunication setting
JP6497199B2 (ja) プログラム試験優先順位決定システム

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