KR101563494B1 - 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법 - Google Patents

파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법 Download PDF

Info

Publication number
KR101563494B1
KR101563494B1 KR1020150075038A KR20150075038A KR101563494B1 KR 101563494 B1 KR101563494 B1 KR 101563494B1 KR 1020150075038 A KR1020150075038 A KR 1020150075038A KR 20150075038 A KR20150075038 A KR 20150075038A KR 101563494 B1 KR101563494 B1 KR 101563494B1
Authority
KR
South Korea
Prior art keywords
file
source code
information
database
hash value
Prior art date
Application number
KR1020150075038A
Other languages
English (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 KR1020150075038A priority Critical patent/KR101563494B1/ko
Application granted granted Critical
Publication of KR101563494B1 publication Critical patent/KR101563494B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법은 개발자가 파일을 생성하면, 상기 파일의 해시 값을 생성하고, 상기 파일을 구성하는 소스코드로부터 적어도 하나의 메소드 및 상기 적어도 하나의 메소드의 실행에 따라 호출되는 다른 메소드를 추출하여 데이터베이스 상에 상기 해시 값, 상기 적어도 하나의 메소드 및 상기 다른 메소드를 저장해 둔 후 상기 개발자가 상기 파일을 수정하는 등으로 인해 상기 파일에 대한 저장 이벤트가 발생하면, 상기 파일을 구성하는 소스코드 전체에 대해서 보안 약점 탐지를 수행하는 것이 아니라, 상기 파일에 대한 해시 값 비교를 통해 상기 파일의 변경 여부를 먼저 확인하고, 상기 파일이 변경된 것으로 확인되면, 상기 데이터베이스를 참조하여 상기 파일을 구성하는 상기 적어도 하나의 메소드에 대한 변경 여부를 확인한 후 변경된 메소드와 해당 메소드의 실행에 따라 호출되는 다른 메소드에 대해서만 보안 약점 탐지를 수행함으로써, 파일 변경이 발생함에 따라 수행해야 하는 보안 약점 탐지에 따른 시간을 단축시킬 수 있고, 이로 인해 파일 변경에 따라 실시간으로 해당 파일의 소스코드에 대한 보안 약점 탐지를 수행할 수 있다.

Description

파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법{REAL-TIME SOURCE CODE SECURITY WEAKNESSES DETECTION APPARATUS AND METHOD ACCORDING TO THE FILE CHANGES}
본 발명의 실시예들은 프로그램의 소스코드(source code) 상에 내재하는 보안상 취약한 부분을 탐지하여 해당 부분에 대한 탐지 결과를 사용자에게 제공하는 기법에 대한 것이다.
최근, 데스크탑 PC, 스마트폰, 태블릿 PC 등과 같이, 마이크로 프로세서가 내장된 다양한 기기가 보급됨에 따라, 이러한 기기들에서 사용할 수 있는 다양한 종류의 프로그램들이 등장하고 있다.
아울러, 최근에는 프로그램 제작을 위한 다양한 프로그래밍 언어들도 등장함에 따라, 프로그램 개발자의 선택폭이 증가하게 되었고, 이로 인해, 프로그램의 양적 증가뿐만 아니라 질적 수준까지 높아지고 있다.
보통, 프로그램들은 컴퓨터 프로그램을 기록하고 있는 텍스트 파일인 소스코드(source code)로 제작되어 있고, 프로그램 개발자들은 소정의 프로그램 동작 알고리즘을 자신이 선택한 프로그래밍 언어에 따른 소스코드로 표현함으로써 프로그램을 개발할 수 있다.
일반적으로 프로그램 개발자들은 프로그램을 개발하면서, 자신이 작성한 소스코드에 오류가 없는지 여부를 확인하는 과정을 수행함으로써, 소스코드의 오류를 수정해 가고, 이렇게 소스코드의 오류를 수정해 가는 작업을 통해 완성도가 높은 프로그램을 개발하려고 노력한다.
하지만, 최근에는 정보의 노출 등 보안 이슈가 강화되고 있다는 점에서 프로그램 개발자들은 프로그램을 개발할 때, 단순히 소스코드의 오류여부만을 체크하는 것이 아니라, 자신이 작성한 소스코드 내에 보안상 약점으로 작용할 수 있는 부분이 있는지 여부를 확인해야 할 필요성이 증대되고 있다.
예컨대, 프로그램의 소스코드 내에서 사용되는 특정 명령어가 소정의 데이터를 변수로 참조할 때, 상기 특정 명령어는 해당 프로그램이 구동되는 시스템이 아닌 외부의 시스템으로부터 유입된 외부 데이터를 변수로 참조할 경우, 상기 특정 명령어의 실행에 따라 시스템 내의 주요 정보가 손쉽게 노출될 수 있는 특징을 갖는 명령어임에도 불구하고, 상기 소스코드 내에서 상기 특정 명령어가 외부 데이터를 참조하도록 작성되어 있다면, 해당 프로그램은 보안상 취약점을 갖는 프로그램이기 때문에 상기 프로그램의 사용자에게 큰 피해를 입힐 수 있다.
따라서, 프로그램의 소스코드 내에 존재하는 보안 약점을 정확하게 탐지하고, 그에 대한 결과를 프로그램 개발자에게 제공해 줌으로써, 프로그램 개발자가 소스코드 내에 존재하는 보안 약점을 제거할 수 있도록 지원하는 기법에 대한 연구가 필요하다.
또한, 프로그램의 소스코드 내에 존재하는 보안 약점을 탐지할 때, 프로그램 개발자가 소스코드의 수정 등을 이유로 파일을 수정하게 되면, 해당 소스코드에 대한 보안 약점을 재탐지해야 할 필요가 있는데, 소스코드 전체에 대해서 보안 약점 재탐지를 수행하게 되면, 많은 시간이 소요될 수 있다는 점에서, 파일에 대한 수정이 발생할 때, 상기 파일을 구성하는 소스코드 중에서 변경이 발생한 소스코드에 대해서만 선별적으로 보안 약점 재탐지를 수행함으로써, 실시간으로 빠르게 파일 수정에 따른 소스코드의 보안 약점을 탐지할 수 있도록 지원하는 기술에 대한 연구가 필요하다.
본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법은 개발자가 파일을 생성하면, 상기 파일의 해시 값을 생성하고, 상기 파일을 구성하는 소스코드로부터 적어도 하나의 메소드 및 상기 적어도 하나의 메소드의 실행에 따라 호출되는 다른 메소드를 추출하여 데이터베이스 상에 상기 해시 값, 상기 적어도 하나의 메소드 및 상기 다른 메소드를 저장해 둔 후 상기 개발자가 상기 파일을 수정하는 등으로 인해 상기 파일에 대한 저장 이벤트가 발생하면, 상기 파일을 구성하는 소스코드 전체에 대해서 보안 약점 탐지를 수행하는 것이 아니라, 상기 파일에 대한 해시 값 비교를 통해 상기 파일의 변경 여부를 먼저 확인하고, 상기 파일이 변경된 것으로 확인되면, 상기 데이터베이스를 참조하여 상기 파일을 구성하는 상기 적어도 하나의 메소드에 대한 변경 여부를 확인한 후 변경된 메소드와 해당 메소드의 실행에 따라 호출되는 다른 메소드에 대해서만 보안 약점 탐지를 수행함으로써, 파일 변경이 발생함에 따라 수행해야 하는 보안 약점 탐지에 따른 시간을 단축시킬 수 있고, 이로 인해 파일 변경에 따라 실시간으로 해당 파일의 소스코드에 대한 보안 약점 탐지를 수행할 수 있도록 한다.
본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치는 제1 프로그래밍 언어를 기반으로 제작된 파일을 선정된(predetermined) 해시 함수에 입력으로 인가하여 생성된 제1 해시 값과 상기 파일을 구성하는 소스코드(source code)에 포함되어 있는 적어도 하나의 메소드(method)에 대한 정보가 대응되어 저장되어 있는 데이터베이스, 상기 파일에 대한 저장 명령이 입력되어, 상기 파일에 대한 저장 이벤트가 발생하면, 상기 저장 이벤트가 발생한 이후의 파일을 상기 선정된 해시 함수에 입력으로 인가하여 제2 해시 값을 생성하고, 상기 제2 해시 값과 상기 데이터베이스에 저장되어 있는 상기 제1 해시 값 간의 일치여부를 비교하는 해시 값 비교부, 상기 제2 해시 값과 상기 제1 해시 값이 일치하지 않는 경우, 상기 데이터베이스에 저장되어 있는 상기 적어도 하나의 메소드에 대한 정보에 기초하여 상기 적어도 하나의 메소드 중 상기 저장 이벤트가 발생한 이후의 파일을 구성하는 소스코드 상에서 정보가 변경된 메소드를 확인하는 메소드 확인부 및 상기 적어도 하나의 메소드 중 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 상기 적어도 하나의 제1 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지하는 보안 약점 탐지부를 포함한다.
또한, 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법은 제1 프로그래밍 언어를 기반으로 제작된 파일을 선정된 해시 함수에 입력으로 인가하여 생성된 제1 해시 값과 상기 파일을 구성하는 소스코드에 포함되어 있는 적어도 하나의 메소드에 대한 정보가 대응되어 저장되어 있는 데이터베이스를 유지하는 단계, 상기 파일에 대한 저장 명령이 입력되어, 상기 파일에 대한 저장 이벤트가 발생하면, 상기 저장 이벤트가 발생한 이후의 파일을 상기 선정된 해시 함수에 입력으로 인가하여 제2 해시 값을 생성하고, 상기 제2 해시 값과 상기 데이터베이스에 저장되어 있는 상기 제1 해시 값 간의 일치여부를 비교하는 단계, 상기 제2 해시 값과 상기 제1 해시 값이 일치하지 않는 경우, 상기 데이터베이스에 저장되어 있는 상기 적어도 하나의 메소드에 대한 정보에 기초하여 상기 적어도 하나의 메소드 중 상기 저장 이벤트가 발생한 이후의 파일을 구성하는 소스코드 상에서 정보가 변경된 메소드를 확인하는 단계 및 상기 적어도 하나의 메소드 중 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 상기 적어도 하나의 제1 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지하는 단계를 포함한다.
본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법은 개발자가 파일을 생성하면, 상기 파일의 해시 값을 생성하고, 상기 파일을 구성하는 소스코드로부터 적어도 하나의 메소드 및 상기 적어도 하나의 메소드의 실행에 따라 호출되는 다른 메소드를 추출하여 데이터베이스 상에 상기 해시 값, 상기 적어도 하나의 메소드 및 상기 다른 메소드를 저장해 둔 후 상기 개발자가 상기 파일을 수정하는 등으로 인해 상기 파일에 대한 저장 이벤트가 발생하면, 상기 파일을 구성하는 소스코드 전체에 대해서 보안 약점 탐지를 수행하는 것이 아니라, 상기 파일에 대한 해시 값 비교를 통해 상기 파일의 변경 여부를 먼저 확인하고, 상기 파일이 변경된 것으로 확인되면, 상기 데이터베이스를 참조하여 상기 파일을 구성하는 상기 적어도 하나의 메소드에 대한 변경 여부를 확인한 후 변경된 메소드와 해당 메소드의 실행에 따라 호출되는 다른 메소드에 대해서만 보안 약점 탐지를 수행함으로써, 파일 변경이 발생함에 따라 수행해야 하는 보안 약점 탐지에 따른 시간을 단축시킬 수 있고, 이로 인해 파일 변경에 따라 실시간으로 해당 파일의 소스코드에 대한 보안 약점 탐지를 수행할 수 있다.
도 1은 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법을 도시한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 실시간 소스코드 보안 약점 탐지 장치(110)는 데이터베이스(111), 해시 값 비교부(112), 메소드(method) 확인부(113) 및 보안 약점 탐지부(114)를 포함한다.
데이터베이스(111)에는 제1 프로그래밍 언어를 기반으로 제작된 파일을 선정된(predetermined) 해시 함수에 입력으로 인가하여 생성된 제1 해시 값과 상기 파일을 구성하는 소스코드(source code)에 포함되어 있는 적어도 하나의 메소드에 대한 정보가 대응되어 저장되어 있다.
예컨대, 데이터베이스(111)에는 하기의 표 1과 같이, 정보가 저장되어 있을 수 있다.
파일에 대한 해시 값 파일의 소스코드에 포함되어 있는 메소드에 대한 정보
해시 값 1 메소드 1에 대한 정보
메소드 2에 대한 정보
메소드 3에 대한 정보
...
여기서 메소드란 메시지에 따라 실행시킬 프로시저 또는 함수를 지칭한다.
또한, 상기 적어도 하나의 메소드에 대한 정보란 상기 소스코드 상에서 해당 메소드의 실행과 관련된 명령어 또는 코드 값들을 모아둔 것을 의미한다.
만약, 프로그램 개발자가 상기 파일의 소스코드를 수정한 후 상기 파일에 대한 저장 명령을 입력함에 따라, 상기 파일에 대한 저장 이벤트가 발생하면, 해시 값 비교부(112)는 상기 저장 이벤트가 발생한 이후의 파일을 상기 선정된 해시 함수에 입력으로 인가하여 제2 해시 값을 생성하고, 상기 제2 해시 값과 데이터베이스(111)에 저장되어 있는 상기 제1 해시 값 간의 일치여부를 비교한다.
만약, 상기 제2 해시 값과 상기 제1 해시 값이 일치하지 않는 경우, 메소드 확인부(113)는 상기 파일이 상기 저장 이벤트가 발생한 이후에 변경된 것으로 판단하여 데이터베이스(111)에 저장되어 있는 상기 적어도 하나의 메소드에 대한 정보에 기초로 상기 적어도 하나의 메소드 중 상기 저장 이벤트가 발생한 이후의 파일을 구성하는 소스코드 상에서 정보가 변경된 메소드를 확인할 수 있다.
만약, 상기 적어도 하나의 메소드 중에서 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 보안 약점 탐지부(114)는 상기 적어도 하나의 제1 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지할 수 있다.
본 발명의 일실시예에 따르면, 데이터베이스(111)에는 상기 적어도 하나의 메소드에 대한 정보 각각에 대해, 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보가 추가로 대응되어 저장되어 있을 수 있다.
여기서, 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드란 상기 적어도 하나의 메소드의 실행에 따라서 호출되는 관련 메소드를 의미하는 것으로, 예컨대, 상기 파일이 실행됨에 따라, 상기 소스코드 상에서 소정의 메소드 1이 실행되면, 상기 메소드 1의 실행에 따라서 상기 소스코드 상에 존재하는 메소드들 중 메소드 2가 호출되어 실행되는 경우가 발생할 수 있는데, 이때, 상기 메소드 1의 실행에 따라서 호출되어 실행되는 상기 메소드 2를 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드로 볼 수 있다.
이때, 데이터베이스(111)에는 하기의 표 2과 같이, 정보가 저장되어 있을 수 있다.
파일에 대한 해시 값 파일의 소스코드에 포함되어 있는 메소드에 대한 정보 호출 관계에 따른 다른 메소 드에 대한 정보
해시 값 1 메소드 1에 대한 정보 메소드 3에 대한 정보
메소드 4에 대한 정보
메소드 2에 대한 정보 메소드 1에 대한 정보
메소드 3에 대한 정보 메소드 1에 대한 정보
메소드 4에 대한 정보
메소드 4에 대한 정보 메소드 1에 대한 정보
메소드 3에 대한 정보
... ...
이러한 상황 하에서, 메소드 확인부(113)에서 상기 적어도 하나의 메소드 중 상기 저장 이벤트가 발생한 이후의 파일을 구성하는 소스코드 상에서 정보가 변경된 메소드를 확인한 결과, 상기 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 보안 약점 탐지부(114)는 데이터베이스(111)로부터 상기 적어도 하나의 제1 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보를 추출하고, 상기 적어도 하나의 제1 메소드와 상기 추출된 다른 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지할 수 있다.
예컨대, 상기 표 2와 같이 데이터베이스(111) 상에 정보가 저장되어 있는 상태에서, 상기 파일이 변경됨에 따라, 메소드 1에 대한 정보가 변경된 것으로 확인되면, 보안 약점 탐지부(114)는 데이터베이스(111)로부터 상기 메소드 1이 실행됨에 따라 호출될 다른 메소드로 메소드 3과 메소드 4에 대한 정보를 추출한 후 상기 메소드 1과 상기 메소드 3 및 4를 구성하는 소스코드에 대해 보안 약점 탐지를 수행할 수 있다.
본 발명의 일실시예에 따르면, 보안 약점 탐지부(114)는 상기 파일의 변경에 따라 변경된 메소드를 구성하는 소스코드에 대한 보안 약점 탐지를 수행하기 위해, 보안 약점 데이터베이스(118), 속성 정보 확인부(119), 명령어 추출부(120) 및 보안 약점 디스플레이부(121)를 포함할 수 있다.
보안 약점 데이터베이스(118)에는 상기 제1 프로그래밍 언어에 기초하여 제작된 소스코드에서 사용 가능한 복수의 명령어들 각각에 대해, 보안 약점으로 미리 지정된 참조 데이터에 대한 속성 정보가 저장되어 있다.
예컨대, 상기 제1 프로그래밍 언어가 '자바(Java)'라는 프로그래밍 언어라고 가정하면, 보안 약점 데이터베이스(118)에는 하기의 표 3과 같은 형태로 '자바'기반의 프로그래밍 언어에 기초한 소스코드에서 사용할 수 있는 복수의 명령어들 각각에 대해, 각 명령어들이 참조 데이터를 변수로 참조할 경우, 보안상 약점으로 적용될 수 있을 것으로 판단되는 참조 데이터에 대한 속성 정보가 개발자에 의해 미리 지정되어 있을 수 있다.
복수의 명령어들 보안 약점으로 지정된 참조 데이터의 속성 정보
File 외부 데이터 속성
null 속성
...
ServerSocket 외부 데이터 속성
명령어 1 속성 1
속성 2
...
명령어 2 외부 데이터 속성
... ...
속성 정보 확인부(119)는 상기 적어도 하나의 제1 메소드와 상기 추출된 다른 메소드를 구성하는 소스코드 상에 포함되어 있는 적어도 하나의 명령어 각각이 변수로 참조하는 참조 데이터의 속성 정보를 확인한다.
명령어 추출부(120)는 보안 약점 데이터베이스(118)를 참조하여 상기 적어도 하나의 명령어 중 상기 보안 약점으로 미리 지정된 속성 정보를 갖는 참조 데이터를 변수로 참조하는 적어도 하나의 제1 명령어를 추출한다.
보안 약점 디스플레이부(121)는 상기 파일을 구성하는 소스코드로부터 상기 적어도 하나의 제1 명령어가 기록되어 있는 라인(line)에 대한 위치 정보를 추출하여 상기 적어도 하나의 제1 명령어가 기록되어 있는 라인에 대한 위치 정보를 보안 약점 탐지 결과로 디스플레이한다.
이하에서는 보안 약점 탐지부(114)의 동작에 대해 예를 들어 상세히 설명하기로 한다.
먼저, 보안 약점 데이터베이스(118) 상에는 상기 표 3과 같은 형태로 정보가 저장되어 있고, 상기 파일은 '자바' 기반의 프로그래밍 언어를 기반으로 제작되었으며, 메소드 확인부(113)에서 상기 파일의 변경에 따라, 상기 적어도 하나의 메소드 중 변경된 메소드에 대한 정보를 확인한 결과, 하기의 표 4에서 나타낸 소스코드로 구성된 메소드에 대한 정보가 변경되었다고 가정하자.
String name = request.getProperty("filename");
if(name != null)
{
File file = new File("/usr/local/download/" + name);
if (file != null)
}
이때, 속성 정보 확인부(119)는 상기 표 4에서 나타낸 소스코드 상에 포함되어 있는 적어도 하나의 명령어 각각이 변수로 참조하는 참조 데이터의 속성 정보를 확인할 수 있다.
그러고 나서, 명령어 추출부(120)는 보안 약점 데이터베이스(118)를 참조하여 상기 적어도 하나의 명령어 중 상기 보안 약점으로 미리 지정된 속성 정보를 갖는 참조 데이터를 변수로 참조하는 적어도 하나의 제1 명령어를 추출할 수 있다.
만약, 상기 표 4에서 나타낸 소스코드 상에서 "File"에 해당하는 명령어가 변수로 참조하는 참조데이터인 ""/usr/local/download/" + name"이 외부 데이터 속성인 경우, 명령어 추출부(120)는 보안 약점 데이터베이스(118) 상에 "File"이라는 명령어에 대해 "외부 데이터 속성"이라는 속성 정보가 보안 약점으로 지정되어 있기 때문에 상기 표 4에서 나타낸 소스코드 상에 존재하는 명령어들 중 "File"이라는 명령어를 보안 약점에 해당되는 명령어로 추출할 수 있다.
그러고 나서, 보안 약점 디스플레이부(121)는 상기 파일을 구성하는 소스코드로부터 상기 추출된 "File"이라는 명령어가 기록되어 있는 라인에 대한 위치 정보를 추출하여 상기 추출된 라인에 대한 위치 정보를 보안 약점 탐지 결과로 디스플레이할 수 있다.
관련하여, 보안 약점 디스플레이부(121)는 하기의 표 5와 같이, 상기 파일을 구성하는 소스코드가 표시되는 화면 상에서 "File"이라는 명령어가 기록되어 있는 라인인 "File file = new File("/usr/local/download/" + name);"을 굵게 표시하면서, 해당 라인을 기울임체로 변경하는 등의 방식으로 표시함으로써, 개발자가 보안 약점 탐지 결과를 쉽게 확인할 수 있도록 보조할 수 있다.
String name = request.getProperty("filename");
if(name != null)
{
File file = new File("/ usr /local/download/" + name);
if (file != null)
}
본 발명의 일실시예에 따르면, 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치(110)는 상기 파일이 최초로 작성되어 생성될 경우, 데이터베이스(111) 상에 상기 제1 해시 값, 상기 적어도 하나의 메소드에 대한 정보 및 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보를 저장해 두기 위해, 해시 값 생성부(115), 메소드 저장부(116) 및 호출 관계 저장부(117)를 더 포함할 수 있다.
해시 값 생성부(115)는 상기 제1 프로그래밍 언어를 기반으로 제작된 상기 파일이 생성되면, 상기 파일을 상기 선정된 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성하고, 상기 제1 해시 값을 데이터베이스(111)에 저장한다.
메소드 저장부(116)는 상기 파일을 구성하는 소스코드로부터 상기 적어도 하나의 메소드를 추출하여 상기 적어도 하나의 메소드에 대한 정보를 데이터베이스(111)에 저장한다.
호출 관계 저장부(117)는 상기 파일의 실행에 따른 상기 적어도 하나의 메소드 간의 호출 관계를 분석하여 데이터베이스(111) 상의 상기 적어도 하나의 메소드에 대한 정보 각각에 대해, 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보를 대응시켜 저장한다.
이를 통해, 개발자가 상기 파일을 최초로 생성하면, 상기 파일의 변경에 따라, 변경된 메소드에 대한 보안 약점 탐지를 위한 상기 제1 해시 값, 상기 적어도 하나의 메소드에 대한 정보 및 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보가 데이터베이스(111)에 저장될 수 있다.
결국, 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치(110)는 개발자가 파일을 생성하면, 상기 파일의 해시 값을 생성하고, 상기 파일을 구성하는 소스코드로부터 적어도 하나의 메소드 및 상기 적어도 하나의 메소드의 실행에 따라 호출되는 다른 메소드를 추출하여 데이터베이스(111) 상에 상기 해시 값, 상기 적어도 하나의 메소드 및 상기 다른 메소드를 저장해 둔 후 상기 개발자가 상기 파일을 수정하는 등으로 인해 상기 파일에 대한 저장 이벤트가 발생하면, 상기 파일을 구성하는 소스코드 전체에 대해서 보안 약점 탐지를 수행하는 것이 아니라, 상기 파일에 대한 해시 값 비교를 통해 상기 파일의 변경 여부를 먼저 확인하고, 상기 파일이 변경된 것으로 확인되면, 데이터베이스(111)를 참조하여 상기 파일을 구성하는 상기 적어도 하나의 메소드에 대한 변경 여부를 확인한 후 변경된 메소드와 해당 메소드의 실행에 따라 호출되는 다른 메소드에 대해서만 보안 약점 탐지를 수행함으로써, 파일 변경이 발생함에 따라 수행해야 하는 보안 약점 탐지에 따른 시간을 단축시킬 수 있고, 이로 인해 파일 변경에 따라 실시간으로 해당 파일의 소스코드에 대한 보안 약점 탐지를 수행할 수 있다.
도 2는 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법을 도시한 순서도이다.
단계(S210)에서는 제1 프로그래밍 언어를 기반으로 제작된 파일을 선정된 해시 함수에 입력으로 인가하여 생성된 제1 해시 값과 상기 파일을 구성하는 소스코드에 포함되어 있는 적어도 하나의 메소드에 대한 정보가 대응되어 저장되어 있는 데이터베이스를 유지한다.
단계(S220)에서는 상기 파일에 대한 저장 명령이 입력되어, 상기 파일에 대한 저장 이벤트가 발생하면, 상기 저장 이벤트가 발생한 이후의 파일을 상기 선정된 해시 함수에 입력으로 인가하여 제2 해시 값을 생성하고, 상기 제2 해시 값과 상기 데이터베이스에 저장되어 있는 상기 제1 해시 값 간의 일치여부를 비교한다.
단계(S230)에서는 상기 제2 해시 값과 상기 제1 해시 값이 일치하지 않는 경우, 상기 데이터베이스에 저장되어 있는 상기 적어도 하나의 메소드에 대한 정보에 기초하여 상기 적어도 하나의 메소드 중 상기 저장 이벤트가 발생한 이후의 파일을 구성하는 소스코드 상에서 정보가 변경된 메소드를 확인한다.
단계(S240)에서는 상기 적어도 하나의 메소드 중 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 상기 적어도 하나의 제1 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지한다.
이때, 본 발명의 일실시예에 따르면, 상기 데이터베이스에는 상기 적어도 하나의 메소드에 대한 정보 각각에 대해, 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보가 추가로 대응되어 저장되어 있을 수 있다.
이때, 단계(S240)에서는 상기 적어도 하나의 메소드 중 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 상기 데이터베이스로부터 상기 적어도 하나의 제1 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보를 추출하고, 상기 적어도 하나의 제1 메소드와 상기 추출된 다른 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법은 단계(S210)이전에 상기 제1 프로그래밍 언어를 기반으로 제작된 상기 파일이 생성되면, 상기 파일을 상기 선정된 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성하고, 상기 제1 해시 값을 상기 데이터베이스에 저장하는 단계, 상기 파일을 구성하는 소스코드로부터 상기 적어도 하나의 메소드를 추출하여 상기 적어도 하나의 메소드에 대한 정보를 상기 데이터베이스에 저장하는 단계 및 상기 파일의 실행에 따른 상기 적어도 하나의 메소드 간의 호출 관계를 분석하여 상기 데이터베이스 상의 상기 적어도 하나의 메소드에 대한 정보 각각에 대해, 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보를 대응시켜 저장하는 단계를 포함한다.
또한, 본 발명의 일실시예에 따르면, 단계(S240)에서는 상기 제1 프로그래밍 언어에 기초하여 제작된 소스코드에서 사용 가능한 복수의 명령어들 각각에 대해, 보안 약점으로 미리 지정된 참조 데이터에 대한 속성 정보가 저장되어 있는 보안 약점 데이터베이스를 유지하는 단계, 상기 적어도 하나의 제1 메소드와 상기 추출된 다른 메소드를 구성하는 소스코드 상에 포함되어 있는 적어도 하나의 명령어 각각이 변수로 참조하는 참조 데이터의 속성 정보를 확인하는 단계, 상기 보안 약점 데이터베이스를 참조하여 상기 적어도 하나의 명령어 중 상기 보안 약점으로 미리 지정된 속성 정보를 갖는 참조 데이터를 변수로 참조하는 적어도 하나의 제1 명령어를 추출하는 단계 및 상기 파일을 구성하는 소스코드로부터 상기 적어도 하나의 제1 명령어가 기록되어 있는 라인에 대한 위치 정보를 추출하여 상기 적어도 하나의 제1 명령어가 기록되어 있는 라인에 대한 위치 정보를 보안 약점 탐지 결과로 디스플레이하는 단계를 포함할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법은 도 1을 이용하여 설명한 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치
111: 데이터베이스 112: 해시 값 비교부
113: 메소드 확인부 114: 보안 약점 탐지부
115: 해시 값 생성부 116: 메소드 저장부
117: 호출 관계 저장부 118: 보안 약점 데이터베이스
119: 속성 정보 확인부 120: 명령어 추출부
121: 보안 약점 디스플레이부

Claims (10)

  1. 제1 프로그래밍 언어를 기반으로 제작된 파일을 선정된(predetermined) 해시 함수에 입력으로 인가하여 생성된 제1 해시 값과 상기 파일을 구성하는 소스코드(source code)에 포함되어 있는 적어도 하나의 메소드(method)에 대한 정보가 대응되어 저장되어 있는 데이터베이스;
    상기 파일에 대한 저장 명령이 입력되어, 상기 파일에 대한 저장 이벤트가 발생하면, 상기 저장 이벤트가 발생한 이후의 파일을 상기 선정된 해시 함수에 입력으로 인가하여 제2 해시 값을 생성하고, 상기 제2 해시 값과 상기 데이터베이스에 저장되어 있는 상기 제1 해시 값 간의 일치여부를 비교하는 해시 값 비교부;
    상기 제2 해시 값과 상기 제1 해시 값이 일치하지 않는 경우, 상기 데이터베이스에 저장되어 있는 상기 적어도 하나의 메소드에 대한 정보에 기초하여 상기 적어도 하나의 메소드 중 상기 저장 이벤트가 발생한 이후의 파일을 구성하는 소스코드 상에서 정보가 변경된 메소드를 확인하는 메소드 확인부; 및
    상기 적어도 하나의 메소드 중 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 상기 적어도 하나의 제1 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지하는 보안 약점 탐지부
    를 포함하고,
    상기 데이터베이스에는
    상기 적어도 하나의 메소드에 대한 정보 각각에 대해, 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보가 추가로 대응되어 저장되어 있고,
    상기 보안 약점 탐지부는
    상기 적어도 하나의 메소드 중 상기 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 상기 데이터베이스로부터 상기 적어도 하나의 제1 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보를 추출하고, 상기 적어도 하나의 제1 메소드와 상기 추출된 다른 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지하는 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 프로그래밍 언어를 기반으로 제작된 상기 파일이 생성되면, 상기 파일을 상기 선정된 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성하고, 상기 제1 해시 값을 상기 데이터베이스에 저장하는 해시 값 생성부;
    상기 파일을 구성하는 소스코드로부터 상기 적어도 하나의 메소드를 추출하여 상기 적어도 하나의 메소드에 대한 정보를 상기 데이터베이스에 저장하는 메소드 저장부; 및
    상기 파일의 실행에 따른 상기 적어도 하나의 메소드 간의 호출 관계를 분석하여 상기 데이터베이스 상의 상기 적어도 하나의 메소드에 대한 정보 각각에 대해, 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보를 대응시켜 저장하는 호출 관계 저장부
    를 더 포함하는 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치.
  4. 제1항에 있어서,
    상기 보안 약점 탐지부는
    상기 제1 프로그래밍 언어에 기초하여 제작된 소스코드에서 사용 가능한 복수의 명령어들 각각에 대해, 보안 약점으로 미리 지정된 참조 데이터에 대한 속성 정보가 저장되어 있는 보안 약점 데이터베이스;
    상기 적어도 하나의 제1 메소드와 상기 추출된 다른 메소드를 구성하는 소스코드 상에 포함되어 있는 적어도 하나의 명령어 각각이 변수로 참조하는 참조 데이터의 속성 정보를 확인하는 속성 정보 확인부;
    상기 보안 약점 데이터베이스를 참조하여 상기 적어도 하나의 명령어 중 상기 보안 약점으로 미리 지정된 속성 정보를 갖는 참조 데이터를 변수로 참조하는 적어도 하나의 제1 명령어를 추출하는 명령어 추출부; 및
    상기 파일을 구성하는 소스코드로부터 상기 적어도 하나의 제1 명령어가 기록되어 있는 라인(line)에 대한 위치 정보를 추출하여 상기 적어도 하나의 제1 명령어가 기록되어 있는 라인에 대한 위치 정보를 보안 약점 탐지 결과로 디스플레이하는 보안 약점 디스플레이부
    를 포함하는 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치.
  5. 제1 프로그래밍 언어를 기반으로 제작된 파일을 선정된(predetermined) 해시 함수에 입력으로 인가하여 생성된 제1 해시 값과 상기 파일을 구성하는 소스코드(source code)에 포함되어 있는 적어도 하나의 메소드(method)에 대한 정보가 대응되어 저장되어 있는 데이터베이스를 유지하는 단계;
    상기 파일에 대한 저장 명령이 입력되어, 상기 파일에 대한 저장 이벤트가 발생하면, 상기 저장 이벤트가 발생한 이후의 파일을 상기 선정된 해시 함수에 입력으로 인가하여 제2 해시 값을 생성하고, 상기 제2 해시 값과 상기 데이터베이스에 저장되어 있는 상기 제1 해시 값 간의 일치여부를 비교하는 단계;
    상기 제2 해시 값과 상기 제1 해시 값이 일치하지 않는 경우, 상기 데이터베이스에 저장되어 있는 상기 적어도 하나의 메소드에 대한 정보에 기초하여 상기 적어도 하나의 메소드 중 상기 저장 이벤트가 발생한 이후의 파일을 구성하는 소스코드 상에서 정보가 변경된 메소드를 확인하는 단계; 및
    상기 적어도 하나의 메소드 중 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 상기 적어도 하나의 제1 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지하는 단계
    를 포함하고,
    상기 데이터베이스에는
    상기 적어도 하나의 메소드에 대한 정보 각각에 대해, 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보가 추가로 대응되어 저장되어 있고,
    상기 보안 약점을 탐지하는 단계는
    상기 적어도 하나의 메소드 중 상기 적어도 하나의 제1 메소드에 대한 정보가 변경된 것으로 확인된 경우, 상기 데이터베이스로부터 상기 적어도 하나의 제1 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보를 추출하고, 상기 적어도 하나의 제1 메소드와 상기 추출된 다른 메소드를 구성하는 소스코드에 대한 보안 약점을 탐지하는 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법.
  6. 삭제
  7. 제5항에 있어서,
    상기 제1 프로그래밍 언어를 기반으로 제작된 상기 파일이 생성되면, 상기 파일을 상기 선정된 해시 함수에 입력으로 인가하여 상기 제1 해시 값을 생성하고, 상기 제1 해시 값을 상기 데이터베이스에 저장하는 단계;
    상기 파일을 구성하는 소스코드로부터 상기 적어도 하나의 메소드를 추출하여 상기 적어도 하나의 메소드에 대한 정보를 상기 데이터베이스에 저장하는 단계; 및
    상기 파일의 실행에 따른 상기 적어도 하나의 메소드 간의 호출 관계를 분석하여 상기 데이터베이스 상의 상기 적어도 하나의 메소드에 대한 정보 각각에 대해, 상기 적어도 하나의 메소드가 실행됨에 따라 호출될 다른 메소드에 대한 정보를 대응시켜 저장하는 단계
    를 더 포함하는 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법.
  8. 제5항에 있어서,
    상기 보안 약점을 탐지하는 단계는
    상기 제1 프로그래밍 언어에 기초하여 제작된 소스코드에서 사용 가능한 복수의 명령어들 각각에 대해, 보안 약점으로 미리 지정된 참조 데이터에 대한 속성 정보가 저장되어 있는 보안 약점 데이터베이스를 유지하는 단계;
    상기 적어도 하나의 제1 메소드와 상기 추출된 다른 메소드를 구성하는 소스코드 상에 포함되어 있는 적어도 하나의 명령어 각각이 변수로 참조하는 참조 데이터의 속성 정보를 확인하는 단계;
    상기 보안 약점 데이터베이스를 참조하여 상기 적어도 하나의 명령어 중 상기 보안 약점으로 미리 지정된 속성 정보를 갖는 참조 데이터를 변수로 참조하는 적어도 하나의 제1 명령어를 추출하는 단계; 및
    상기 파일을 구성하는 소스코드로부터 상기 적어도 하나의 제1 명령어가 기록되어 있는 라인(line)에 대한 위치 정보를 추출하여 상기 적어도 하나의 제1 명령어가 기록되어 있는 라인에 대한 위치 정보를 보안 약점 탐지 결과로 디스플레이하는 단계
    를 포함하는 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 방법.
  9. 제5항, 제7항 또는 제8항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  10. 제5항, 제7항 또는 제8항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020150075038A 2015-05-28 2015-05-28 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법 KR101563494B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150075038A KR101563494B1 (ko) 2015-05-28 2015-05-28 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150075038A KR101563494B1 (ko) 2015-05-28 2015-05-28 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101563494B1 true KR101563494B1 (ko) 2015-10-27

Family

ID=54428646

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150075038A KR101563494B1 (ko) 2015-05-28 2015-05-28 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101563494B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180119962A (ko) * 2017-04-26 2018-11-05 주식회사 평화이즈 소스 코드 변경이 미치는 영향도를 분석하기 위한 시스템
KR101984294B1 (ko) 2017-12-19 2019-05-30 광운대학교 산학협력단 동적 분석을 기반으로 하는 소스 코드 분석을 위한 분석 시스템 및 방법
KR20190084468A (ko) * 2018-01-08 2019-07-17 국방과학연구소 함수 정보 요약 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006518508A (ja) * 2003-02-21 2006-08-10 カリンゴ・インコーポレーテッド コンテンツベースのアドレシングにおける追加ハッシュ関数
JP2010049419A (ja) * 2008-08-20 2010-03-04 Internatl Business Mach Corp <Ibm> 開発支援プログラム、開発支援方法及び開発支援システム
KR101479516B1 (ko) * 2014-03-05 2015-01-07 소프트포럼 주식회사 소스코드 보안 약점 탐지 장치 및 방법
KR101507469B1 (ko) 2015-01-06 2015-04-03 (주)싸이버텍 소스 코드 분석 서비스 제공 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006518508A (ja) * 2003-02-21 2006-08-10 カリンゴ・インコーポレーテッド コンテンツベースのアドレシングにおける追加ハッシュ関数
JP2010049419A (ja) * 2008-08-20 2010-03-04 Internatl Business Mach Corp <Ibm> 開発支援プログラム、開発支援方法及び開発支援システム
KR101479516B1 (ko) * 2014-03-05 2015-01-07 소프트포럼 주식회사 소스코드 보안 약점 탐지 장치 및 방법
KR101507469B1 (ko) 2015-01-06 2015-04-03 (주)싸이버텍 소스 코드 분석 서비스 제공 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180119962A (ko) * 2017-04-26 2018-11-05 주식회사 평화이즈 소스 코드 변경이 미치는 영향도를 분석하기 위한 시스템
KR102015545B1 (ko) * 2017-04-26 2019-08-28 주식회사 평화이즈 소스 코드 변경이 미치는 영향도를 분석하기 위한 시스템
KR101984294B1 (ko) 2017-12-19 2019-05-30 광운대학교 산학협력단 동적 분석을 기반으로 하는 소스 코드 분석을 위한 분석 시스템 및 방법
KR20190084468A (ko) * 2018-01-08 2019-07-17 국방과학연구소 함수 정보 요약 장치 및 방법
KR102092192B1 (ko) 2018-01-08 2020-03-23 국방과학연구소 함수 정보 요약 장치 및 방법

Similar Documents

Publication Publication Date Title
CN102736978B (zh) 一种检测应用程序的安装状态的方法及装置
US8627296B1 (en) Unified unit and integration test with automatic mock creation
US9098500B1 (en) Revision history storage and maintenance
US20160142437A1 (en) Method and system for preventing injection-type attacks in a web based operating system
US10268568B2 (en) System and method for data element tracing
JP2014507029A (ja) 類例によるデーターのフォーマット処理
US9384020B2 (en) Domain scripting language framework for service and system integration
CN106991104B (zh) 数据库脚本部署装置和数据库脚本部署方法
CN107346284B (zh) 一种应用程序的检测方法及检测装置
US20140208169A1 (en) Domain scripting language framework for service and system integration
US11042464B2 (en) Log record analysis based on reverse engineering of log record formats
US9465591B2 (en) Syntax language generator for compiler validation
US20110321012A1 (en) Non-Intrusive Measurement of Content Quality Using Dry Runs with Roll-back
JP5303795B2 (ja) アプリケーションの解析方法、解析システム及び解析プログラム
KR101563494B1 (ko) 파일 변경에 따른 실시간 소스코드 보안 약점 탐지 장치 및 방법
CN112241370B (zh) 一种api接口类的校验方法、系统及装置
KR101479516B1 (ko) 소스코드 보안 약점 탐지 장치 및 방법
US9477582B2 (en) Executable software specification generation
US20170337112A1 (en) Code update based on detection of change in runtime code during debugging
CN108196975B (zh) 基于多校验和的数据验证方法、装置及存储介质
KR101946904B1 (ko) 소스코드 보안 약점 탐지 및 자동 수정 지원 장치와 그 동작 방법
KR101534493B1 (ko) 구조 변환에 기초한 소스코드 보안 약점 탐지 장치 및 방법
JP2011215838A (ja) 操作内容管理装置、操作内容管理方法、及び操作内容管理プログラム
JP6451417B2 (ja) デバッグ支援装置、デバッグ支援システム、デバッグ支援方法、および、デバッグ支援プログラム
JP2014164677A (ja) 仕様検証支援装置、仕様検証支援方法及びプログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181004

Year of fee payment: 4