KR20170086926A - Apparatus for security vulnerabilities evaluation of application and control method of the same - Google Patents

Apparatus for security vulnerabilities evaluation of application and control method of the same Download PDF

Info

Publication number
KR20170086926A
KR20170086926A KR1020160006571A KR20160006571A KR20170086926A KR 20170086926 A KR20170086926 A KR 20170086926A KR 1020160006571 A KR1020160006571 A KR 1020160006571A KR 20160006571 A KR20160006571 A KR 20160006571A KR 20170086926 A KR20170086926 A KR 20170086926A
Authority
KR
South Korea
Prior art keywords
api
application
degree
vulnerability
information
Prior art date
Application number
KR1020160006571A
Other languages
Korean (ko)
Other versions
KR102443766B1 (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 KR1020160006571A priority Critical patent/KR102443766B1/en
Publication of KR20170086926A publication Critical patent/KR20170086926A/en
Application granted granted Critical
Publication of KR102443766B1 publication Critical patent/KR102443766B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Alarm Systems (AREA)

Abstract

본 발명은 애플리케이션의 정량적 수치를 제공해 줌으로써 보안 취약성에 대한 객관적인 데이터를 제공하는 애플리케이션의 보안 취약성 평가기기 및 그 평가방법이 제공된다. 본 발명의 애플리케이션의 보안 취약성 평가방법은, 평가 대상인 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하는 단계와; 상기 결정된API의 특성정보에 기초하여 상기 API 에 대한 배타적 정보에의 접근 정도를 결정하는 단계와; 상기 결정된API의 배타적 정보에의 접근 정도에 기초하여 상기 애플리케이션의 보안 취약성을 평가하는 단계를 포함하는 것을 특징으로 한다. The present invention provides an apparatus for evaluating security vulnerability of an application that provides objective data on security vulnerability by providing a quantitative value of an application and an evaluation method thereof. A security vulnerability evaluation method of an application of the present invention includes: determining at least one application programming interface (API) used in an application to be evaluated; Determining the degree of access to the exclusive information for the API based on the determined property information of the API; And evaluating the security vulnerability of the application based on the determined degree of access to the exclusive information of the API.

Description

애플리케이션의 보안 취약성 평가기기 및 그 평가방법{APPARATUS FOR SECURITY VULNERABILITIES EVALUATION OF APPLICATION AND CONTROL METHOD OF THE SAME}FIELD OF THE INVENTION [0001] The present invention relates to a security vulnerability assessment apparatus,

본 발명은 애플리케이션에서 사용되는 API(APPLICATION PROGRAMING INTERFACE)에 대한 분석에 기초하여 애플리케이션의 정량적 수치를 제공해 줌으로써 보안 취약성에 대한 객관적인 데이터를 제공하는 애플리케이션의 보안 취약성 평가기기 및 그 평가방법이다.The present invention is a security vulnerability assessment apparatus and evaluation method for an application that provides objective data on security vulnerability by providing quantitative values of an application based on an analysis of APPLICATION PROGRAMING INTERFACE used in an application.

본 발명과 관련된 응용 프로그램의 취약성 평가 기법은 애플리케이션의 퍼미션(permission)이나 데이터 유출 여부 등을 이용하여 취약성을 평가 하였다. 또한 정량적인 취약성 수치를 제공해 주지 못하였다. 이와 같은 방법으로 평가된 결과물은 평가기법 개발자의 주관적 의도가 들어있고 그렇기 때문에 객관적인 수치를 제공해주지 못하며, 정량적인 수치를 제공하는데 어려움이 있었다. The vulnerability evaluation technique of the application program related to the present invention evaluates the vulnerability using an application's permission or data leakage. They also did not provide quantitative vulnerability figures. The results evaluated in this way contain the subjective intent of the evaluation technique developer and therefore do not provide objective numerical values and have difficulty in providing quantitative figures.

또한, 상기 퍼미션을 이용하는 방법은 애플리케이션의 퍼미션을 통하여 취약성을 평가하는데, 이는 정상적인 동작을 위한 퍼미션 사용에도 불구하고, 취약성을 밝히는 등의 평가의 오류 가능성을 지니고 있다.In addition, the method using the above-mentioned permission evaluates the vulnerability through the permission of the application, which has the possibility of evaluation error such as revealing the vulnerability despite the use of the permission for the normal operation.

본 발명의 목적은 애플리케이션에서 사용되는 API(APPLICATION PROGRAMING INTERFACE)는 항상 명확하게 분석할 수 있으므로 이에 대한 분석에 기초하여 애플리케이션의 정량적 수치를 제공해 줌으로써 애플리케이션의 보안 취약성에 대한 객관적인 데이터를 제공할 수 있는 애플리케이션의 보안 취약성 평가기기 및 그 평가방법을 제공함에 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide an AP application programming interface (API) which can always analyze clearly and thus provides quantitative values of an application based on an analysis thereof, And an evaluation method thereof.

상기 본 발명의 해결과제를 달성하기 위한 애플리케이션의 보안 취약성 평가방법은, 평가 대상인 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하는 단계와; 상기 결정된API의 특성정보에 기초하여 상기 API 에 대한 배타적 정보에의 접근 정도를 결정하는 단계와; 상기 결정된API의 배타적 정보에의 접근 정도에 기초하여 상기 애플리케이션의 보안 취약성을 평가하는 단계를 포함하는 애플리케이션의 보안 취약성 평가방법에 의해 달성된다.According to another aspect of the present invention, there is provided a method for evaluating security vulnerabilities of an application, comprising: determining at least one application programming interface (API) used in an application to be evaluated; Determining the degree of access to the exclusive information for the API based on the determined property information of the API; And evaluating the security vulnerability of the application based on the determined degree of access to the exclusive information of the API.

여기서, 네트워크로부터 상기 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하는 단계를 더 포함할 수 있다.Here, the method may further include acquiring characteristic information corresponding to the at least one API used from the network.

그리고, 상기 배타적 정보에의 접근 정도를 결정하는 단계는, 상기 API의 특성정보 중 상기 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 상기 배타적 정보에의 접근 정도를 산출하는 단계를 포함할 수 있다.The step of determining the degree of access to the exclusive information may include calculating a degree of access to the exclusive information by using a probability of a word included in the name of the at least one API among the property information of the API .

여기서, 상기 애플리케이션의 보안 취약성을 평가하는 단계는, 상기 API의 특성정보 중 상기 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 상기 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 단계를 포함할 수 있다.The step of evaluating the security vulnerability of the application may include calculating a degree of vulnerability of evaluating the security vulnerability of the application by using a probability of the name of the API whose degree of access to the exclusive information among the characteristic information of the API is determined Step < / RTI >

그리고, 상기 배타적 정보에의 접근 정도가 결정된 API 및 상기 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 상기 애플리케이션의 취약성 평가에 대한 결과정보를 제공하는 단계를 더 포함할 수 있다.And providing the result information on the vulnerability evaluation of the application based on at least one of the API for which the degree of access to the exclusive information is determined and the API for which the security vulnerability of the application is evaluated.

여기서, 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 단계를 더 포함할 수 있다.Here, the method may further include calculating a degree of access to the exclusive information for at least one API used in at least one of malicious application and normal application, and degree of vulnerability evaluating security vulnerability of the application can do.

그리고, 상기 배타적 정보에의 접근 정도를 결정하는 단계는, 상기 평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도가 상기 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단하는 단계를 포함할 수 있다.The step of determining the degree of access to the exclusive information may include determining whether the degree of access to the exclusive information for at least one API used in the evaluation target application satisfies the calculated malicious behavior, And the degree of access to the exclusive information with respect to at least one API to be used among the plurality of APIs.

여기서, 상기 애플리케이션의 보안 취약성을 평가하는 단계는, 상기 평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 상기 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단하는 단계를 포함할 수 있다.The step of evaluating the security vulnerability of the application may include evaluating the security vulnerability of the application to be evaluated based on the calculated malicious behavior and the vulnerability evaluating security vulnerability Value of the input signal.

그리고, 상기 API의 특성정보는 상기 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함할 수 있다.The property information of the API may include at least one of a package, a class, a name, a parameter type, a return value, and a description of the API.

여기서, 상기 배타적 정보에의 접근 정도가 결정된 API는 개인 및 단체 중 적어도 하나의 정보 및 권리 중 적어도 하나를 침해할 가능성이 있는 API를 포함할 수 있다.Here, the API for which the degree of access to the exclusive information is determined may include an API that may infringe at least one of information and rights of at least one of an individual and a group.

한편, 상기 본 발명의 해결과제를 달성하기 위한 애플리케이션의 보안 취약성 평가기기는, 애플리케이션에 대한 데이터를 수신할 수 있는 통신부와; 평가 대상인 상기 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하며, 상기 결정된API의 특성정보에 기초하여 상기 API 에 대한 배타적 정보에의 접근 정도를 결정하고, 상기 결정된API의 배타적 정보에의 접근 정도에 기초하여 상기 애플리케이션의 보안 취약성을 평가하는 제어부를 포함하는 애플리케이션의 보안 취약성 평가기기에 의해 달성된다.According to another aspect of the present invention, there is provided an apparatus for evaluating vulnerability of an application, comprising: a communication unit capable of receiving data on an application; Determining at least one APPLICATION PROGRAMING INTERFACE used for the application to be evaluated, determining an access degree to the exclusive information for the API based on the determined property information of the API, And evaluating a security vulnerability of the application based on the degree of access of the application.

여기서, 상기 제어부는 네트워크로부터 상기 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하도록 상기 통신부를 제어할 수 있다.Here, the control unit may control the communication unit to acquire characteristic information corresponding to the at least one API used from the network.

그리고, 상기 제어부는 상기 API의 특성정보 중 상기 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 상기 배타적 정보에의 접근 정도를 산출할 수 있다.The control unit may calculate a degree of access to the exclusive information by using a probability of a word included in the name of the at least one API among the property information of the API.

여기서, 상기 제어부는 상기 API의 특성정보 중 상기 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 상기 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출할 수 있다.Here, the control unit may calculate the degree of vulnerability that evaluates the security vulnerability of the application using the probability of the name of the API for which the degree of access to the exclusive information among the characteristic information of the API is determined.

그리고, 상기 애플리케이션의 취약성 평가에 대한 결과정보를 표시하는 디스플레이부를 더 포함하고, 상기 제어부는 상기 배타적 정보에의 접근 정도가 결정된 API 및 상기 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 상기 애플리케이션의 취약성 평가에 대한 결과정보를 제공하도록 상기 디스플레이부를 제어할 수 있다.And a display unit for displaying result information on the vulnerability evaluation of the application, wherein the control unit is configured to display the result of the vulnerability evaluation based on at least one of the API for which the degree of access to the exclusive information is determined and the API for which the security vulnerability of the application is evaluated, The display unit can be controlled to provide the result information on the vulnerability evaluation of the application.

여기서, 상기 제어부는 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출할 수 있다.Here, the control unit may calculate a degree of access to the exclusive information of at least one API used in at least one of an application that performs a malicious action and an application that performs a normal action, and a degree of vulnerability that evaluates a security vulnerability of the application have.

그리고, 상기 산출된 상기 배타적 정보에의 접근 정도 및 취약성정도를 저장하는 저장부를 더 포함하고, 상기 제어부는 상기 평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도가 산출되어 상기 저장부에 저장된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단할 수 있다.The control unit may further include a storage unit that stores the degree of access to the exclusive information and the degree of vulnerability, and the control unit calculates the degree of access to the exclusive information for at least one API used in the application to be evaluated A degree of access to the exclusive information for at least one API used in an application for malicious activity stored in the storage unit and an application for performing a normal operation.

여기서, 상기 산출된 상기 배타적 정보에의 접근 정도 및 취약성정도를 저장하는 저장부를 더 포함하고, 상기 제어부는 상기 평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 산출되어 상기 저장부에 저장된 상기 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단할 수 있다.The control unit may further include a storage unit that stores the degree of access to the calculated exclusive information and the degree of vulnerability, and the control unit calculates a degree of vulnerability of the vulnerability of the application to be evaluated, It is possible to determine which of the malicious application and the malicious application is vulnerable to the security vulnerability.

그리고, 상기 API의 특성정보는 상기 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함할 수 있다.The property information of the API may include at least one of a package, a class, a name, a parameter type, a return value, and a description of the API.

여기서, 상기 배타적 정보에의 접근 정도가 결정된 API는 개인 및 단체 중 적어도 하나의 정보 및 권리 중 적어도 하나를 침해할 가능성이 있는 API를 포함할 수 있다.Here, the API for which the degree of access to the exclusive information is determined may include an API that may infringe at least one of information and rights of at least one of an individual and a group.

본 발명에 의하면, 애플리케이션에서 사용되는 API(APPLICATION PROGRAMING INTERFACE)는 항상 명확하게 분석할 수 있으므로 이에 대한 분석에 기초하여 애플리케이션의 정량적 수치를 제공해 줌으로써 애플리케이션의 보안 취약성에 대한 객관적인 데이터를 제공할 수 있는 효과가 있다.According to the present invention, APPLICATION PROGRAMING INTERFACE (APPLICATION PROGRAMING INTERFACE) used in an application can always be analyzed clearly. Therefore, it is possible to provide objective data on the security vulnerability of an application by providing a quantitative value of the application based on the analysis .

도 1은 본 발명에 따른 평가기기의 구성을 나타내는 블록도이며,
도 2는 본 발명의 일 실시 예에 따른 평가기기의 구성을 나타내는 블록도이고,
도3 은 본 발명에 따른 평가기기의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이며,
도 4 는 본 발명의 일 실시 예에 따른 평가기기의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이고,
도 5는 본 발명의 일 실시 예에 따른 평가기기를 나타내는 개략도이며,
도 6은 본 발명의 다른 실시 예에 따른 평가기기를 구체적으로 나타내는 개략구조도이고,
도 7은 본 발명의 다른 실시 예에 따른 평가기기의 평가방법에 대하여 전체적인 순서흐름을 나타내는 제어흐름도이며,
도 8과 9는 본 발명의 다른 실시 예에 따른 평가기기에서 나이브 베이즈 분류 (Naive Bayes Classification) 공식을 이용하여 API에 대한 조건부 확률을 나타내는 예시표이다.
1 is a block diagram showing the configuration of an evaluation device according to the present invention,
2 is a block diagram showing a configuration of an evaluation device according to an embodiment of the present invention,
3 is a control flowchart showing a security vulnerability evaluation method of an application of an evaluation device according to the present invention,
4 is a control flowchart showing a security vulnerability evaluation method of an application of an evaluation device according to an embodiment of the present invention,
5 is a schematic diagram showing an evaluation device according to an embodiment of the present invention,
FIG. 6 is a schematic structure diagram specifically showing an evaluation device according to another embodiment of the present invention,
7 is a control flowchart showing an overall flow of an evaluation method of an evaluation device according to another embodiment of the present invention,
8 and 9 are exemplary tables showing the conditional probabilities for the API using the Naive Bayes Classification formula in the evaluation device according to another embodiment of the present invention.

이하에서는 첨부한 도면을 참조하여 본 발명에 대해 상세히 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 평가기기(10)의 구성을 나타내는 블록도이다. 본 발명에 따른 평가기기(10)는 통신부(110)와 제어부(100)를 포함할 수 있다.1 is a block diagram showing a configuration of an evaluation device 10 according to the present invention. The evaluation device 10 according to the present invention may include a communication unit 110 and a control unit 100. [

통신부(110)는 외부입력에 의한 신호를 수신하여 제어부(100)에 전달할 수 있다. 통신부(110)는 다양한 외부입력 케이블이 접속됨으로써 해당 외부입력으로부터의 신호를 유선으로 수신하며, 또는 무선으로 수신되는 신호를 미리 정해진 무선통신규격에 따라서 수신할 수 있다.The communication unit 110 may receive a signal from an external input and transmit the signal to the control unit 100. The communication unit 110 can receive a signal from the external input through a wired connection by connecting various external input cables or can receive a wirelessly received signal according to a predetermined wireless communication standard.

통신부(110)는 각 케이블이 개별적으로 접속되는 복수의 커넥터(미도시)를 포함할 수 있다. 통신부(110)는 접속된 외부입력으로부터의 신호, 예를 들면 HDMI, USB, 컴포넌트(component) 규격에 따른 방송신호, 영상신호, 데이터신호 등을 수신하거나, 또는 통신 네트워크를 통한 통신데이터를 수신할 수 있다.The communication unit 110 may include a plurality of connectors (not shown) to which the respective cables are individually connected. The communication unit 110 receives a signal from an external input, for example, a HDMI, a USB, a component standard, a video signal, a data signal, or the like, or receives communication data through a communication network .

통신부(110)는 외부입력으로부터의 신호/데이터를 수신하는 구성뿐 아니라, 평가기기(10)의 설계 방식에 따라서, 무선 통신을 위한 무선통신모듈(미도시)이나 방송신호의 튜닝을 위한 튜너(미도시)와 같은 다양한 부가적인 구성을 더 포함할 수 있다. 통신부(110)는 외부장치로부터 신호를 수신하는 것 이외에도, 평가기기(10)의 정보/데이터/신호를 외부장치에 전송할 수도 있다. 즉, 통신부(110)는 외부장치로 신호를 수신하는 구성으로만 한정할 수 없으며, 양방향 통신이 가능한 인터페이스(interface)로 구현될 수 있다. 통신부(110)는 복수의 제어장치로부터 UI를 선택하기 위한 제어신호를 수신할 수 있다. 통신부(110)는 블루투스(Bluetooth), IR(Infrared), UWB(Ultra Wideband), 지그비(Zigbee) 등 공지의 근거리 무선통신을 위한 통신모듈로 구성될 수 있으며, 유선통신을 위한 공지의 통신포트로 구성될 수도 있다. 통신부(110)는 UI를 선택하기 위한 제어신호 이외에, 디스플레이의 조작을 위한 명령, 데이터의 송수신 등 다양한 목적으로 활용될 수 있다. 통신부(110)는 애플리케이션에 대한 데이터를 수신할 수 있다.The communication unit 110 may include a wireless communication module (not shown) for wireless communication and a tuner (not shown) for tuning a broadcast signal, according to a design method of the evaluation device 10 (Not shown), and the like. In addition to receiving a signal from an external device, the communication unit 110 may also transmit the information / data / signal of the evaluation device 10 to an external device. That is, the communication unit 110 can not be limited to a configuration for receiving a signal to an external device, and can be implemented as an interface capable of bidirectional communication. The communication unit 110 can receive a control signal for selecting a UI from a plurality of control devices. The communication unit 110 may be a communication module for publicly known short range wireless communication such as Bluetooth, IR, UWB (Ultra Wideband), ZigBee, etc. and may be a known communication port for wired communication . The communication unit 110 may be used for various purposes such as a command for operating a display, transmission / reception of data, etc., in addition to a control signal for selecting a UI. The communication unit 110 can receive data for the application.

제어부(100)는 평가 대상인 상기 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하며, 결정된API의 특성정보에 기초하여 API 에 대한 배타적 정보에의 접근 정도를 결정하고, 결정된API의 배타적 정보에의 접근 정도에 기초하여 애플리케이션의 보안 취약성을 평가할 수 있다.The control unit 100 determines at least one application programming interface (API) used in the application to be evaluated. The control unit 100 determines the degree of access to the exclusive information on the API based on the determined property information of the API, The security vulnerability of an application can be evaluated based on the degree of access to information.

도 2는 본 발명의 일 실시 예에 따른 평가기기(10)의 구성을 나타내는 블록도이다. 본 발명의 일 실시 예에 따른 평가기기(10)는 도 1의 구성을 포함할 수 있으며, 추가로 영상처리부(120), 디스플레이부(130), 사용자입력부(140), 저장부(150), 촬상부(160), UI생성부(170)를 포함할 수 있다.2 is a block diagram showing a configuration of an evaluation device 10 according to an embodiment of the present invention. 1 and may further include an image processing unit 120, a display unit 130, a user input unit 140, a storage unit 150, An image pickup unit 160, and a UI generation unit 170. [

영상처리부(120)가 수행하는 영상처리 프로세스의 종류는 한정되지 않으며, 예를 들면 소정 신호를 각 특성별 신호로 분배하는 디멀티플렉싱(de-multiplexing), 영상신호의 영상 포맷에 대응하는 디코딩(decoding), 인터레이스(interlace) 방식의 영상신호를 프로그레시브(progressive) 방식으로 변환하는 디인터레이싱(de-interlacing), 영상 화질 개선을 위한 노이즈 감소(noise reduction), 디테일 강화(detail enhancement), 프레임 리프레시 레이트(frame refresh rate) 변환 등을 포함할 수 있으며, 인코딩된 소스영상의 영상 포맷에 대응하여 소스 영상을 디코딩하는 디코더(미도시) 및 디코딩된 소스영상을 프레임단위로 저장하는 프레임버퍼(미도시)를 포함할 수 있다.The type of the image processing process performed by the image processing unit 120 is not limited. For example, the image processing unit 120 may perform de-multiplexing for distributing a predetermined signal to each characteristic signal, decoding corresponding to the image format of the image signal, De-interlacing for converting an interlaced video signal into a progressive mode, noise reduction for improving image quality, detail enhancement, frame refresh rate (frame refresh rate) (not shown) for decoding a source image corresponding to an image format of an encoded source image, and a frame buffer (not shown) for storing a decoded source image on a frame basis can do.

영상처리부(120)는 이러한 여러 기능을 통합시킨 SOC(system-on-chip), 또는 이러한 각 프로세스를 독자적으로 수행할 수 있는 개별적인 구성들이 인쇄회로기판 상에 장착됨으로써 영상처리보드(미도시)로 구현되어 평가기기(10)에 내장될 수 있다.The image processor 120 may be a system-on-a-chip (SOC) that integrates various functions, or an individual configuration capable of independently performing each of the processes, And can be embodied in the evaluation device 10.

영상처리부(120)는 통신부(110)로부터 수신되는 영상신호를 포함하는 방송신호 및 영상공급원(미도시)으로부터 제공받은 영상신호를 포함하는 소스영상에 대해 기 설정된 다양한 영상처리 프로세스를 수행한다. 영상처리부(120)는 이러한 프로세스가 수행된 영상신호를 디스플레이부(130)에 출력함으로써, 디스플레이부(130)에 처리된 소스영상이 표시될 수 있다.The image processing unit 120 performs predetermined image processing processes on a source image including a broadcast signal including a video signal received from the communication unit 110 and a video signal supplied from a video source (not shown). The image processor 120 outputs the processed image signal to the display unit 130 so that the processed source image can be displayed on the display unit 130.

디스플레이부(130)는 영상처리부(120)로부터 출력되는 영상신호에 기초하여 영상을 표시할 수 있다. 디스플레이부(130)의 구현 방식은 한정되지 않는 바, 액정(liquid crystal), 플라즈마(plasma), 발광 다이오드(light-emitting diode), 유기발광 다이오드(organic light-emitting diode), 면전도 전자총(surface-conduction electron-emitter), 탄소 나노 튜브(carbon nano-tube), 나노 크리스탈(nano-crystal) 등의 다양한 디스플레이 방식으로 구현될 수 있다.The display unit 130 can display an image based on the image signal output from the image processing unit 120. [ The display unit 130 may be implemented in various forms including, but not limited to, a liquid crystal, a plasma, a light-emitting diode, an organic light-emitting diode, electron conduction electron-emitter, carbon nano-tube, nano-crystal, and the like.

디스플레이부(130)는 그 구현 방식에 따라서 부가적인 구성을 추가적으로 포함할 수 있다. 예를 들면, 디스플레이부(130)가 액정 방식인 경우, 디스플레이 액정 디스플레이 패널(미도시)과, 이에 광을 공급하는 백라이트유닛(미도시)과, 패널(미도시)을 구동시키는 패널구동기판(미도시)을 포함할 수 있다.The display unit 130 may further include an additional configuration depending on the implementation method. For example, when the display unit 130 is a liquid crystal type, the display unit 130 may include a display liquid crystal display panel (not shown), a backlight unit (not shown) for supplying light thereto, and a panel drive substrate Not shown).

디스플레이부(130)는 영상처리부(120)에 의해 처리된 영상신호에 기초하여 영상을 표시한다. 디스플레이부(130)가 영상을 표시하는 방식에는 제한이 없으나, LCD, PDP, OLED 등의 방식을 포함한다. 이 경우, 디스플레이부(130)는 LCD패널, PDP패널, OLED패널 등을 포함할 수 있다.The display unit 130 displays an image based on the image signal processed by the image processing unit 120. There is no limitation on the manner in which the display unit 130 displays an image, but includes a method of an LCD, a PDP, and an OLED. In this case, the display unit 130 may include an LCD panel, a PDP panel, an OLED panel, and the like.

디스플레이부(130)는 영상 및 색보정 과정을 표시할 수 있다. 디스플레이부(130)는 영상이 표시되는 디스플레이패널과 입력되는 영상신호를 처리하여 디스플레이패널에 영상이 표시되게 하는 패널구동부를 포함할 수 있으며, 자세한 구현 방식에 있어 한정되지 않는다. 인터페이스를 통해 외부의 입력소스로부터 수신된 영상신호는 디코딩(decoding), 디인터레이싱(deinterlacing), 스케일링(scaling) 등의 영상 처리 과정을 거쳐 디스플레이부(130)에 표시될 수 있다. 사용자의 명령에 따라, 후술할 제어부가 색보정을 수행하는 경우, 디스플레이부(130)에는 컬러 패치와 색보정 상태 창 등을 포함한 색보정 과정이 표시될 수 있다. 디스플레이부(130)는 애플리케이션의 취약성 평가에 대한 결과정보를 표시할 수 있다.The display unit 130 may display an image and a color correction process. The display unit 130 may include a display panel for displaying an image and a panel driver for displaying an image on the display panel by processing an input image signal. An image signal received from an external input source through an interface may be displayed on the display unit 130 through an image processing process such as decoding, deinterlacing, and scaling. When a control unit, which will be described later, performs color correction according to a user's command, the display unit 130 may display a color correction process including a color patch and a color correction status window. The display unit 130 may display the result information on the vulnerability evaluation of the application.

사용자입력부(140)는 사용자의 조작 및 입력에 따라서 기 설정된 다양한 제어 커맨드 또는 정보를 제어부(100)에 전달할 수 있다. 사용자입력부(140)는 평가기기(10) 외측에 설치된 메뉴 키(menu-key) 또는 입력 패널(panel)이나, 평가기기(10)와 분리 이격된 리모트 컨트롤러(remote controller) 등으로 구현될 수 있다. 또는, 사용자입력부(140)는 디스플레이부(130)와 일체형으로 구현될 수 있는 바, 디스플레이부(130)가 터치스크린(touch-screen)인 경우에 사용자는 디스플레이부(130)에 표시된 입력메뉴(미도시)를 터치함으로써 기 설정된 커맨드를 제어부(100)에 전달할 수 있다.The user input unit 140 may transmit various preset control commands or information to the control unit 100 according to a user's operation and input. The user input unit 140 may be realized by a menu-key or an input panel installed outside the evaluation device 10 or a remote controller separated from the evaluation device 10 . Alternatively, the user input unit 140 may be integrated with the display unit 130, and when the display unit 130 is a touch screen, the user may select the input menu 130 displayed on the display unit 130 (Not shown) to the control unit 100 by touching the predetermined command.

사용자입력부(140)는 사용자의 모션 및 음성을 수신할 수 있다. 사용자의 모션은 터치입력을 포함할 수 있다. 사용자입력부(140)는 사용자의 모션 및 음성을 직접 수신할 수도 있고, 혹은 사용자의 모션 및 음성에 관한 정보를 외부장치로부터 수신할 수도 있다.The user input unit 140 may receive the user's motion and voice. The user's motion may include a touch input. The user input unit 140 may directly receive the user's motion and voice, or may receive information about the user's motion and voice from an external device.

저장부(150)는 평가기기(10)에 전원이 차단되더라도 데이터들이 남아있어야 하며, 사용자의 변동 사항을 반영할 수 있도록 쓰기 가능한 비휘발성 메모리(Writable ROM)로 마련되는 것이 바람직하다. 즉, 저장부(150)는 플래쉬 메모리(Flash Memory) 또는 EPROM 또는 EEPROM 중 어느 하나로 마련될 수 있다. 저장부(150)는 산출된 상기 배타적 정보에의 접근 정도 및 취약성정도를 저장할 수 있다.Preferably, the storage unit 150 is provided with a writable nonvolatile memory (Writable ROM) so that data may remain in the evaluation device 10 even when the power is turned off, and may reflect changes of the user. That is, the storage unit 150 may be a flash memory, an EPROM, or an EEPROM. The storage unit 150 may store the degree of access to the calculated exclusive information and the degree of vulnerability.

촬상부(160)는 카메라로 마련되어 외부를 촬상하여 제어부(100)의 제어에 의해 저장부(150)에 저장할 수 있다.The image pickup unit 160 may be provided by a camera and may take an image of the outside and store it in the storage unit 150 under the control of the control unit 100. [

UI생성부(170)는 실행되는 응용프로그램을 동작하기 위한 UI를 생성할 수 있다. 생성되는 UI는 아이콘, 텍스트 등의 형태로 제공되는 복수의 서브 UI를 포함하며, 사용자가 평가기기(10)를 통해 특정 서브UI를 선택하면 선택된 서브UI에 대응하여 응용프로그램이 동작될 수 있다. 즉, 각각의 서브UI는 평가기기(10)에서 실행 중인 응용프로그램을 동작할 수 있는 복수의 기능 또는 이벤트 단위로 생성될 수 있다.The UI generation unit 170 may generate a UI for operating an application program to be executed. The generated UI includes a plurality of sub-UIs provided in the form of an icon, text, and the like. When a user selects a specific sub-UI through the evaluation device 10, the application program can be operated corresponding to the selected sub-UI. That is, each of the sub-UIs can be generated in units of a plurality of functions or events capable of operating an application program being executed in the evaluation device 10. [

UI생성부(170)는 디스플레이부(130)에 표시되는 UI를 생성하고 제어하는 소프트웨어 또는 하드웨어 적 기능을 의미하는 것으로, 제어부(100)에 의해 그 기능이 수행될 수 있을 것이다. 다시 말하면, UI생성부(170)가 별도의 칩셋으로 구성되거나, 별도의 마이크로프로세서에 의해 구현될 수도 있다.The UI generating unit 170 means a software function or a hardware function for generating and controlling the UI displayed on the display unit 130, and the function of the UI generating unit 170 can be performed by the control unit 100. [ In other words, the UI generating unit 170 may be implemented by a separate chipset or by a separate microprocessor.

API의 특성정보는 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함할 수 있다.The property information of the API may include at least one of a package, a class, a name, a parameter type, a return value, and a description of the API.

배타적 정보에의 접근 정도가 결정된 API는 개인 및 단체 중 적어도 하나의 정보 및 권리 중 적어도 하나를 침해할 가능성이 있는 API를 포함할 수 있다.An API for which the degree of access to exclusive information is determined may include an API that may infringe at least one of the information and rights of at least one of an individual and a group.

제어부(100)는 네트워크로부터 애플리케이션에 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하도록 통신부(110)를 제어할 수 있다. 제어부(100)는 네트워크를 무작위로 검색하여 애플리케이션에 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하여 계속적으로 업데이트를 할 수 있다.The control unit 100 may control the communication unit 110 to acquire characteristic information corresponding to at least one API used for the application from the network. The control unit 100 may randomly search the network to acquire characteristic information corresponding to at least one API used in the application and continuously update the information.

제어부(100)는 API의 특성정보 중 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 배타적 정보에의 접근 정도를 산출할 수 있다. The control unit 100 may calculate the degree of access to the exclusive information by using the probability of a word included in the name of at least one API used in the characteristic information of the API.

제어부(100)는 API의 특성정보 중 상기 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출할 수 있다.The control unit 100 can calculate the degree of vulnerability that evaluates the security vulnerability of the application by using the probability of the name of the API for which the degree of access to the exclusive information is determined among the characteristics information of the API.

제어부(100)는 배타적 정보에의 접근 정도가 결정된 API 및 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 애플리케이션의 취약성 평가에 대한 결과정보를 제공하도록 디스플레이부(130)를 제어할 수 있다.The control unit 100 can control the display unit 130 to provide the result information on the vulnerability evaluation of the application based on at least one of the API for which the degree of access to the exclusive information is determined and the API for which the security vulnerability of the application is evaluated .

제어부(100)는 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출할 수 있다.The control unit 100 may calculate the degree of access to the exclusive information for at least one API used in at least one of the malicious application and the malicious application and the degree of vulnerability evaluating the security vulnerability of the application .

제어부(100)는 평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도가 산출되어 저장부(150)에 저장된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단할 수 있다. The control unit 100 determines whether the access to the exclusive information for at least one API used in the application to be evaluated is calculated and stored in the application for performing the malicious action stored in the storage unit 150 and at least one The degree of access to the exclusive information on the API can be determined.

제어부(100)는 평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 산출되어 저장부(150에 저장된 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단할 수 있다.The control unit 100 calculates the degree of vulnerability evaluating the security vulnerability of the application to be evaluated and calculates the degree of vulnerability assessing the vulnerability among the applications that perform the malicious action and the applications that perform normal actions stored in the storage unit 150 It is possible to judge whether it is close.

도3 은 본 발명에 따른 평가기기(10)의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이다.3 is a control flowchart showing a security vulnerability evaluation method of an application of the evaluation device 10 according to the present invention.

평가 대상인 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정한다(S11).(APPLICATION PROGRAMING INTERFACE) to be used in the evaluation target application (S11).

결정된API의 특성정보에 기초하여 API 에 대한 배타적 정보에의 접근 정도를 결정한다(S12).The degree of access to the exclusive information on the API is determined based on the determined property information of the API (S12).

결정된API의 배타적 정보에의 접근 정도에 기초하여 애플리케이션의 보안 취약성을 평가한다(S13).The security vulnerability of the application is evaluated based on the degree of access to the determined exclusive information of the API (S13).

도 4 는 본 발명의 일 실시 예에 따른 평가기기(10)의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이다.4 is a control flowchart showing a security vulnerability evaluation method of an application of the evaluation device 10 according to an embodiment of the present invention.

네트워크로부터 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득한다(S21). 접근 가능한 복수의 주소에 공개되어 있는 API를 지속적으로 수집하여 저장할 수 있고 업데이트할 수 있다. 공개되어 있지 않는 API는 수신할 수도 있다.And acquires characteristic information corresponding to at least one API used from the network (S21). It is possible to continuously collect, store, and update APIs that are open to multiple accessible addresses. Unpublished APIs may be received.

악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출한다(S22). 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API의 명칭 및 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출한다.The degree of access to the exclusive information for at least one API used in at least one of the malicious application and the malicious application and the degree of vulnerability evaluating the vulnerability of the application are calculated (S22). Evaluating the degree of access to the exclusive information and the security vulnerability of the application using the probability of the word contained in the name and the name of at least one API used in at least one of malicious application and normal application The degree of vulnerability is calculated.

평가 대상인 애플리케이션을 수신하면, 평가 대상인 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정한다(S23).Upon receiving the application to be evaluated, at least one application programming interface (API) used for the application to be evaluated is determined (S23).

API의 특성정보 중 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 배타적 정보에의 접근 정도를 산출한다(S24).The degree of access to the exclusive information is calculated using the probability of a word included in the name of at least one API used in the characteristic information of the API (S24).

평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도가 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단한다(S25).A degree of access to exclusive information for at least one API used in an application to be evaluated and a degree of access to exclusive information for at least one API used for an application that performs malicious action and an application that performs a normal action (S25).

API의 특성정보 중 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출한다(S26).The degree of vulnerability evaluating the security vulnerability of the application is calculated using the probability of the name of the API for which the degree of access to the exclusive information is determined in the characteristic information of the API (S26).

평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단한다(S27).(S27) whether the degree of the vulnerability evaluating the security vulnerability of the application to be evaluated is close to the calculated value of the calculated malicious behavior and the vulnerability evaluating the security vulnerability among the applications performing the normal operation.

배타적 정보에의 접근 정도가 결정된 API 및 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 애플리케이션의 보안 취약성 평가에 대한 결과정보를 제공한다(S28).And provides the result information on the vulnerability assessment of the application based on at least one of the API for which the degree of access to the exclusive information is determined and the API for which the vulnerability of the application is evaluated (S28).

도 5는 본 발명의 일 실시 예에 따른 평가기기(10)를 나타내는 개략도이다.5 is a schematic diagram showing an evaluation device 10 according to an embodiment of the present invention.

도 5의 평가기기(10)는 보안적 취약성의 검증을 원하는 모바일 애플리케이션을 검증 및 평가하여 생성된 데이터를 이용하여 애플리케이션 취약성 평가 수치를 제공할 수 있다. 도 5의 평가기기(10)는 API학습기(200), API검증기(210), 데이터베이스(230) 및 실시간 API정보수집기(220)를 포함할 수 있다.The evaluating device 10 of FIG. 5 may verify and evaluate a mobile application that desires verification of a security vulnerability and provide the application vulnerability evaluation value using the generated data. 5 may include an API learning device 200, an API verifier 210, a database 230, and a real-time API information collector 220.

데이터베이스(230)는 프레임워크가 제공하는 API 특성정보를 기반으로 한 API 데이터베이스와 API 가 배타적 정보에 접근 가능한지 아닌지에 대해 저장하고 있는 Sensitive API 데이터베이스와, 악성행위의 API Dataset을 저장하고 있는 API Dataset Database로 구성할 수 있다. 데이터베이스(230)는 도 2의 저장부(150)에 대응할 수 있다.The database 230 includes an API database based on API property information provided by the framework, a Sensitive API database storing whether or not the API can access exclusive information, an API Dataset Database . The database 230 may correspond to the storage unit 150 of FIG.

실시간 API정보수집기(220)는 모바일 플랫폼 등의 참조 가능한 웹 페이지로부터 API 특성 정보를 획득할 수 있다. 획득한 API 특성 정보를 이용하여 데이터 구조를 생성하고 API 데이터베이스를 구성할 수 있다. 실시간 API정보수집기(220)는 도 2의 통신부(110)와 제어부(100)에 대응할 수 있다.The real-time API information collector 220 can obtain API property information from a referable web page such as a mobile platform. Using the obtained API property information, a data structure can be created and an API database can be constructed. The real-time API information collector 220 may correspond to the communication unit 110 and the control unit 100 of FIG.

API학습기(200)는 학습 대상인 애플리케이션을 기반으로 API를 추출하여 API 특성정보와 Dataset을 이용하여 애플리케이션의 보안 취약성 평가방법으로 학습할 수 있다. 학습 후 Sensitive API 와 API Dataset 데이터베이스를 생성할 수 있다. API학습기(200)는 제어부(100)에 대응할 수 있다.The API learning machine 200 can extract the API based on the application to be learned and learn it by using the API characteristic information and Dataset in the method of evaluating the security vulnerability of the application. After learning, Sensitive API and API Dataset database can be created. The API learning machine 200 may correspond to the control unit 100. [

API검증기(210)는 검증 대상의 애플리케이션을 수신하고 Sensitive API 데이터베이스와 API Dataset의 데이터 베이스를 이용하여 수신된 애플리케이션을 검증할 수 있다. API검증기(210)는 제어부(100)에 대응할 수 있다.The API verifier 210 receives the application to be verified and can verify the received application using the Sensitive API database and the API Dataset database. The API verifier 210 may correspond to the control unit 100. [

도 6은 본 발명의 다른 실시 예에 따른 평가기기(10)를 구체적으로 나타내는 개략구조도이다.FIG. 6 is a schematic structural diagram specifically showing an evaluation device 10 according to another embodiment of the present invention.

도 6에서는 도 5의 구성을 자세하게 나타내고 있다. Fig. 6 shows the configuration of Fig. 5 in detail.

데이터베이스(230)는 API데이터베이스(232), Sensitive API 데이터베이스(234) 및 API Dataset(236)를 포함할 수 있다. The database 230 may include an API database 232, a Sensitive API database 234, and an API Dataset 236.

API데이터베이스(232)는 프레임워크에서 제공하는 API에 대한 정보에 대한 내용을 제어부(100)의 제어에 의해 수집하고 데이터 베이스를 구성할 수 있다. API데이터베이스(232)에는 API 각각이 속하는 패키지명, 클래스명, API 메소드명, 파라미터, 리턴값, 해당 API의 디스크립션과 같은 API의 특성 정보를 가지고 있을 수 있다.The API database 232 can collect the information about the API provided by the framework by the control of the control unit 100 and configure the database. The API database 232 may have API property information such as a package name, a class name, an API method name, a parameter, a return value, and a description of the corresponding API to which each API belongs.

Sensitive API 데이터베이스(234)는 API 특성 분류 모듈(204)로부터 머신러닝 알고리즘(애플리케이션의 보안 취약성 평가방법)을 통해 학습된 배타적 정보에 접근 가능한 API들의 데이터베이스이다. 학습 후 데이터를 저장하고 프레임워크 상에서 제공하고 있는 API 각각이 배타적 정보에 접근 가능한지 아닌지에 대한 정보를 저장할 수 있다.Sensitive API database 234 is a database of APIs accessible from the API property classification module 204 for accessing exclusive information learned through a machine learning algorithm (a method for evaluating security vulnerability of an application). Store the post-learning data, and store information about whether or not each of the APIs provided on the framework can access the exclusive information.

API Dataset(236)는 API Dataset 분류 모듈(206)로부터 Sensitive API의 학습 후 데이터를 저장하고 있는 데이터베이스일 수 있다.The API Dataset 236 may be a database storing post-learning data of the Sensitive API from the API Dataset classification module 206.

실시간 API정보수집기(220)는 웹파싱모듈(222), 데이터 구조 생성모듈(224) 및 데이터 관리모듈(226)을 포함할 수 있다. The real-time API information collector 220 may include a web parsing module 222, a data structure generation module 224, and a data management module 226.

웹파싱모듈(222)은 참조사이트로부터 API 특성정보의 데이터를 실시간으로 획득할 수 있다. 참조사이트는 API 특성정보로 구성되어 있을 수 있으며 웹파싱모듈(222)은 HTML, XML등의 태그로 구성되어 있을 수 있는 웹 데이터를 파싱하여 필요한 API 특성정보만을 획득할 수 있다.The web parsing module 222 can obtain the data of the API characteristic information from the reference site in real time. The reference site may be composed of API property information, and the web parsing module 222 may obtain only the necessary API property information by parsing web data that may be composed of tags such as HTML and XML.

데이터 구조 생성모듈(224)은 웹파싱모듈(222)에서 생성된 API 특성정보를 이용하여 데이터 구조를 생성할 수 있다.The data structure generation module 224 can generate a data structure using API property information generated by the web parsing module 222. [

데이터 관리모듈(226)은 데이터 구조 생성모듈(224)에서 생성된 데이터 구조를 이용하여 API데이터베이스(232)를 생성할 수 있다.The data management module 226 may generate the API database 232 using the data structure generated by the data structure generation module 224. [

API학습기(200)는 애플리케이션 입력모듈(202), API 특성 분류 모듈(204), API Dataset 분류 모듈(206) 및 데이터 관리 모듈(208)를 포함할 수 있다.The API learning machine 200 may include an application input module 202, an API property classification module 204, an API Dataset classification module 206, and a data management module 208.

애플리케이션 입력모듈(202)은 학습대상으로 선정된 애플리케이션을 수신한다. 학습대상으로 선정된 애플리케이션은 악성행위를 하는 애플리케이션과 정상적으로 일반 작업을 수행하는 애플리케이션이다. 애플리케이션 입력모듈(202)은 상기 두 애플리케이션(악성행위, 일반행위 애플리케이션)을 수신하여 각각의 애플리케이션에서 사용하는 API를 추출할 수 있다. 추출 후 학습을 위한 데이터 구조를 생성할 수 있다.The application input module 202 receives an application selected for learning. An application selected for learning is an application that performs malicious acts and an application that performs normal tasks normally. The application input module 202 may receive the two applications (malicious action, general action application) and extract APIs used by each application. A data structure for post-extraction learning can be generated.

API 특성 분류 모듈(204)은 상기 애플리케이션 입력모듈(202)에서 생성한 데이터 구조를 기반으로 배타적 정보에의 접근 가능한 API 의 여부를 머신러닝 알고리즘을 이용해 학습할 수 있다. 머신러닝 알고리즘을 이용한 학습 시 API 데이터베이스(232)의 정보를 활용할 수 있는데 API 데이터베이스(232)의 패키지, 클래스, API 이름, 디스크립션과 같은 API 특성을 이용할 수 있다.The API property classifying module 204 can learn whether APIs that can access the exclusive information based on the data structure generated by the application input module 202 using a machine learning algorithm. It is possible to utilize the information of the API database 232 at the time of learning using the machine learning algorithm, and the API characteristics such as the package, class, API name, and description of the API database 232 can be used.

API Dataset 분류 모듈(206)은 애플리케이션 입력 모듈(202)에서 생성된 데이터 구조와 Sensitive API 데이터베이스(234)를 이용하여 머신러닝 알고리즘을 통해 Dataset을 학습한다. Dataset 분류 시 학습대상으로 선정된 애플리케이션이 사용하고 있는 배타적 정보에의 접근 가능한 API중 어떤 API를 사용하고 있는 지를 학습 소스로 사용하고 학습 후 데이터를 생성할 수 있다.The API Dataset classification module 206 learns a dataset through a machine learning algorithm using the data structure generated by the application input module 202 and the Sensitive API database 234. [ In Dataset classification, it is possible to use the API which is accessible to the exclusive information used by the selected application as the learning source, and generate the post-learning data.

데이터 관리 모듈(208)은 데이터베이스를 생성하고 데이터베이스 내용을 조회하는 등의 데이터 베이스를 관리하는 역할을 할 수 있다. API 특성 분류모듈(204)과 API Dataset 분류모듈(206)로부터 학습된 데이터를 기반으로 데이터베이스를 생성할 수 있다. 다른 모듈의 요청에 따라 특정 데이터베이스를 조회할 수도 있다. API 검증기(210)와 API 학습기(200) 사이의 중간자 역할을 할 수 있다.The data management module 208 can manage a database, such as creating a database and inquiring database contents. The database can be generated based on the data learned from the API property classifying module 204 and the API Dataset classifying module 206. [ You can query specific databases at the request of other modules. And can serve as an intermediary between the API verifier 210 and the API learning machine 200.

API검증기(210)는 애플리케이션 입력모듈(211), API 특성 검증 모듈(213), API Dataset 검증 모듈(214), 데이터 관리 모듈(215) 및 결과 출력 모듈(212)을 포함할 수 있다.The API verifier 210 may include an application input module 211, an API property verification module 213, an API Dataset verification module 214, a data management module 215, and a result output module 212.

애플리케이션 입력모듈(211)은 검증대상의 애플리케이션을 수신하여 사용하고 있는 API를 추출하여 데이터 구조를 생성할 수 있다.The application input module 211 receives an application to be verified and extracts an API used to generate a data structure.

API 특성 검증 모듈(213)은 API 특성 분류 모듈(204)을 통해 학습된 데이터가 저장되어있는 Sensitive API 데이터베이스(234)에서 데이터를 조회해 검증 대상의 애플리케이션이 사용하고 있는 배타적 정보에 접근 가능한 API를 검증한다. 검증 완료 후 배타적 정보에 접근 가능한 API 인지의 여부와 해당 API의 특성정보(패키지명, 클래스명, 메소드명, 디스크립션) 등의 결과 데이터를 생성할 수 있다.The API property verification module 213 inquires the data in the sensitive API database 234 in which the learned data is stored through the API property classification module 204 to obtain an API that can access the exclusive information used by the application to be verified Verify. After completing the verification, it is possible to generate the result data such as whether the API is accessible to the exclusive information and characteristic information (package name, class name, method name, description) of the API.

API Dataset 검증 모듈(214)은 API Dataset 분류 모듈(206)을 통해 학습된 데이터가 저장되어 있는 API Dataset 데이터베이스(236)에서 데이터를 조회해 검증대상의 애플리케이션이 사용하고 있는 Dataset을 검증할 수 있다. 여기서 Dataset은 악성행위를 할 수 있는 API 의 그룹일 수 있다. 검증완료 후 배타적 정보에 접근 가능한 Dataset 인지의 결과 데이터를 생성할 수 있다.The API Dataset validation module 214 can verify the Dataset used by the application to be verified by querying the data in the API Dataset database 236 in which the learned data is stored through the API Dataset classification module 206. [ Here, Dataset can be a group of APIs capable of malicious behavior. After the verification is completed, the result data can be generated as a Dataset that can access the exclusive information.

데이터 관리 모듈(215)은 API 검증기(210) 상에서 데이터베이스와 통신 시 총괄하는 모듈이다. API 특성검증모듈(213), API Dataset 검증모듈(214), 결과출력모듈(212)에서 데이터베이스의 데이터를 조회 할 수 있도록 할 수 있다. API 학습기(200)와 API 검증기(210)의 중간 역할을 할 수 있다.The data management module 215 is an overall module for communicating with the database on the API verifier 210. The API property verification module 213, the API Dataset verification module 214, and the result output module 212 can inquire data of the database. And can play an intermediate role between the API learning device 200 and the API verifier 210.

결과 출력 모듈(212)은 API 특성 검증모듈(213)과, API Dataset 검증모듈(214)에서 생성된 결과데이터를 기반으로 정량적 취약성 측정치의 결과를 출력할 수 있다. 또한 검증대상 애플리케이션의 배타적 정보에 접근 가능하다고 검증된 API의 디스크립션 정보와 Dataset을 표시할 수 있다. 결과 출력 모듈(212)은 도 2의 디스플레이부(130)에 대응할 수 있다.The result output module 212 may output the results of the quantitative vulnerability measurement based on the result data generated by the API property verification module 213 and the API Dataset verification module 214. [ It is also possible to display the description information and the Dataset of the API which are verified to be accessible to the exclusive information of the verification target application. The result output module 212 may correspond to the display unit 130 of FIG.

도 7은 본 발명의 다른 실시 예에 따른 평가기기(10)의 평가방법에 대하여 전체적인 순서흐름을 나타내는 제어흐름도이다.FIG. 7 is a control flowchart showing the overall procedure flow for the evaluation method of the evaluation device 10 according to another embodiment of the present invention.

레퍼런스 사이트로부터 API 특성정보의 데이터를 실시간으로 획득한다(S31).Data of the API characteristic information is acquired in real time from the reference site (S31).

HTML, XML등의 태그로 구성되어 있는 웹 데이터를 파싱하여 필요한 API 특성정보만을 획득한다(S32).HTML, XML, or the like, and acquires only necessary API property information (S32).

웹 파싱 모듈(222)에서 생성된 API 특성정보를 이용하여 데이터 구조를 생성한다(S33).The data structure is generated using the API characteristic information generated by the web parsing module 222 (S33).

데이터 구조 생성 모듈(224)에서 생성된 데이터 구조를 이용하여 API 데이터베이스(232)를 생성한다(S34).The API database 232 is created using the data structure generated by the data structure generation module 224 (S34).

학습대상인 애플리케이션을 수신한다(S35). 학습대상으로 선정된 애플리케이션은 악성 행위를 하는 애플리케이션과 일반 작업을 수행하는 애플리케이션이다.The application to be learned is received (S35). Applications selected for learning are applications that perform malicious acts and applications that perform common tasks.

학습대상인 애플리케이션 상에서 사용하고 있는 API의 명칭 및 특성정보를 추출한다(S36).And extracts the name and characteristic information of the API used on the application to be learned (S36).

API 데이터베이스(232)에 저장하고 있는 API 정보를 이용하여 학습대상의 애플리케이션에서 추출한 API에 대응하는 학습 데이터를 생성하고 머신러닝 알고리즘을 통해 학습을 수행하며 API의 특성을 분류한다(S37).The learning data corresponding to the API extracted from the application to be learned is generated using the API information stored in the API database 232, the learning is performed through the machine learning algorithm, and the characteristics of the API are classified (S37).

학습을 통해 생성된 Sensitive API 데이터베이스(234)를 생성한다(S38).And generates a Sensitive API database 234 generated through learning (S38).

Sensitive API 데이터베이스(234)에 있는 데이터와 학습대상의 애플리케이션 상에서 추출된 API를 이용하여 머신러닝 알고리즘을 통해 학습 후 API Dataset(236)를 생성한다(S39).The post-learning API Dataset 236 is generated through the machine learning algorithm using the data in the sensitive API database 234 and the API extracted on the learning target application (S39).

학습된 데이터로 API Dataset(236)의 데이터베이스를 구성한다(S40).The database of the API Dataset 236 is configured with the learned data (S40).

검증 대상 애플리케이션을 수신한다(S41).The verification target application is received (S41).

검증 대상 애플리케이션으로부터 사용하고 있는 AP정보를 추출한다(S42).AP information used by the verification target application is extracted (S42).

검증 대상 애플리케이션이 사용하고 있는 배타적 정보에 접근 가능한 API를 검증한다(S43).The API that can access the exclusive information used by the verification target application is verified (S43).

검증 대상 애플리케이션이 사용하고 있는 악성행위의 Dataset을 검증한다(S44).The Dataset of the malicious action used by the verification target application is verified (S44).

API 특성 기반 검증과 API Dataset 기반 검증 상에서 생성된 결과데이터를 기반으로 사용된 배타적 정보에 접근 가능한 API 의 API 특성정보와 배타적 정보에 접근 가능한 API Dataset(236)의 여부를 제공하고 정량적 취약성 측정치의 결과를 출력한다(S45).Based on API property-based verification and API Dataset-based verification, it provides API property information of API which can access exclusive information used based on result data generated, and API Dataset (236) which can access exclusive information, and provides the result of quantitative vulnerability measurement (S45).

도 8과 9는 본 발명의 다른 실시 예에 따른 평가기기(10)에서 나이브 베이즈 분류 (Naive Bayes Classification) 공식을 이용하여 API에 대한 조건부 확률을 나타내는 예시표이다.8 and 9 are exemplary tables showing conditional probabilities for the API using the Naive Bayes Classification formula in the evaluation device 10 according to another embodiment of the present invention.

나이브 베이즈 분류 (Naive Bayes Classification)는 나이브 베이즈 정리를 근거로 각 속성들의 확률을 파라미터로 하여 부류를 결정하는 기법이다. 나이브 베이즈 분류에서는 모든 속성 값은 서로 독립임을 가정하며 파라미터의 추정은 최대 우도 방법(Maximum Likelihood Estimation)을 사용한다.Naive Bayes Classification is a technique that determines the class based on the Naive Bayes theorem with the probability of each property as a parameter. In the Naive Bay classification, it is assumed that all attribute values are independent from each other, and the estimation of the parameters uses Maximum Likelihood Estimation.

Figure pat00001
Figure pat00001

[표 1]은 나이브 베이즈 분류의 공식을 나타내고 있으며 (1)은 나이브 베이즈 정리에 의해 특정 n개의 속성(x)이 있을 때 어떤 부류(c)일 확률을 공식으로 나타낸 것이다. (2)에서는 (1)의 공식의 각각이 무엇을 의미하는지 나타내고 있다. 사후 확률(Posterior), 관찰 값(Evidence), 우도(Likelihood), 사전 확률(Prior)을 나타내고 있다. (3)은 부류의 결과 선택을 나타낸 공식이며 나이브 베이즈 분류는 최대 우도 방법을 사용한다고 하였으므로 우도(Likelihood)값이 최대가 되는 부류를 결과 값으로 선택한다.Table 1 shows the formula for the Naive Bayes classification (1), which is a formula for the probability of a certain class (c) when there are n properties (x) by Naive Bayes theorem. (2) shows what each of the formulas in (1) means. Posterior, Evidence, Likelihood, and Prior (Prior). (3) is the formula for selecting the results of the class, and since the Naive Bay classification uses the maximum likelihood method, the class that maximizes the Likelihood value is selected as the result.

도 8은 API 학습기(200)의 API 특성 분류 모듈(204)이 머신러닝 알고리즘을 이용하기 위하여 각 부류 일 때 (배타적 정보에 접근 가능한 부류 혹은 일반 부류)일 때의 조건부 확률을 구한 것이다. 여기서, 조건부확률을 구하는 속성(x) 값은 API 특성정보 (API가 속한 패키지, 클래스, API의 이름, 파라미터의 형태, 리턴 값, API의 설명 등)값을 이용할 수 있다. 이후 해당 조건부 확률을 이용하여 API 데이터베이스 내의 API 들을 분류할 수 있다. 부류가 분류된 API를 이용하여 Sensitive API 데이터베이스(234)를 생성한다.FIG. 8 shows the conditional probability when the API property classifying module 204 of the API learning machine 200 uses each class to use the machine learning algorithm (a class that can access the exclusive information or a general class). Here, the value of the attribute (x) for obtaining the conditional probability can use the API property information (the name of the package, the class, the API to which the API belongs, the type of parameter, return value, API description, etc.). Then, APIs in the API database can be classified using the conditional probability. The Sensitive API database 234 is created by using the API classified as a class.

이를 테면 다음과 같이 조건부 확률을 구할 수 있다.For example, the conditional probability can be obtained as follows.

예제) API 데이터 베이스 내의 getLine1Number API 학습Example) Learning getLine1Number API in API database

1) API 특성정보 로딩 : getLine1Number API의 부류를 결정하기 위해 API 데이터 베이스로부터 해당 API의 특성정보를 로딩한다.1) Loading the API property information: getLine1Number Loads the property information of the API from the API database to determine the API class.

API 이름API name getLine1NumbergetLine1Number API가 속한 패키지Packages that the API belongs to android.Telephonyandroid.Telephony API가 속한 클래스The class to which the API belongs TelephonyManagerTelephonyManager API의 디스크립션Descriptions of the API Returns the phone number string for line 1Returns the phone number string for line 1 ... ...

2) 전처리 : 특성정보는 위와 같으며 디스크립션의 경우 판단하는데 필요 없는 관사나 전치사 숫자등과 같은 부분(the,for,1)을 제외시킨다. API 이름과 패키지 이름 같은 경우 다수의 단어로 구성되어있을 경우 각 단어로 분리한다. 분리 후 디스크립션과 마찬가지로 필요 없는 부분을 제외시킨다. (getLine1Number => get + line + number)2) Preprocessing: The characteristics information is as above, and excludes the part (the, for, 1) such as article or preposition number which is not necessary to judge in case of description. If the API name and package name are composed of multiple words, separate them by each word. Remove the unnecessary parts as described after the detachment. (getLine1Number => get + line + number)

3) 벡터 구성 : 이후 특성 정보 등을 파싱하고 중복된 항목이 없도록 벡터를 구성한다.3) Vector configuration: Parses the characteristic information and constructs the vector so that there are no duplicated items.

{x1, x2, x3,…,x9} = {get, line, number, android, telephony, manager, returns, phone, string}{x1, x2, x3, ... , x9} = {get, line, number, android, telephony, manager, returns, phone, string}

4) 검증 : 해당 벡터를 머신러닝 알고리즘(여기서는 나이브 베이즈 분류를 사용)을 이용한다.4) Verification: Use the machine learning algorithm (using the Naive Bay classification in this case) for the vector in question.

(1) 해당 API가 배타적 정보에 접근 가능한 API에 속할 확률 (P(Sensitive API) = 0.5로 가정)(1) The probability that the API belongs to an API that can access exclusive information (assuming P (Sensitive API) = 0.5)

Figure pat00002
Figure pat00002

(2) 해당 API가 일반 API에 속할 확률(P(Normal API) = 0.5로 가정)(2) probability that the corresponding API belongs to the general API (assuming P (Normal API) = 0.5)

Figure pat00003
Figure pat00003

(1)의 가정에서 getLine1Number API 는 Sensitive API 일 확률이 0.000395136으로 Normal API 일 확률 0.00000504 일 확률보다 크므로 최대 우도 방법에 의하여 Sensitive API로 판단.(1), the probability of the getLine1Number API being a sensitive API is 0.000395136, which is greater than the probability of a normal API being 0.00000504, so it is judged as a Sensitive API by the maximum likelihood method.

5) Sensitive API 데이터베이스(234)에 입력 : 판단된 부류정보를 이용해 Sensitive API 데이터베이스(234)에 입력한다. 5) Sensitive API database 234 using the entered class information.

6) Sensitive API 검증 : 입력받은 API 가 배타적 정보에 접근 가능한 API 인지 Sensitive API 데이터베이스(234)에 있는 내용을 이용해 판단한다. 6) Sensitive API verification: Judged using the contents in the Sensitive API database 234, whether the input API is an API that can access exclusive information.

도 9는 API 학습기(200)의 API Dataset 분류 모듈(206)이 머신러닝 알고리즘을 이용하기 위하여 각 부류 일 때 (배타적 정보에 접근 가능한 Dataset 부류 혹은 일반 Dataset 부류)일 때의 조건부 확률을 구한 것이다. 이때 조건부확률을 구하는 속성(x) 값은 앞서 API 특성분류 과정을 통해 획득한 Sensitive API데이터베이스(234)로 구성한다. 이후 해당 조건부 확률을 이용하여 API Dataset 데이터 베이스(236)를 구성한다.9 shows the conditional probabilities when the API Dataset classifying module 206 of the API learning machine 200 uses each class to use the machine learning algorithm (Dataset class or general Dataset class accessible to exclusive information). At this time, the attribute (x) value for obtaining the conditional probability is configured as the Sensitive API database 234 obtained through the API property classification process. Thereafter, the API Dataset database 236 is configured using the conditional probability.

API Dataset 데이터베이스(236)를 이용하여 API 검증기(210)의 API Dataset 검증모듈(214)은 머신러닝 알고리즘으로 입력받은 애플리케이션인지 배타적 정보에 접근 가능한 Dataset 을 포함하고 있는지 아닌지에 대한 판단을 한다.The API Dataset verification module 214 of the API verifier 210 uses the API Dataset database 236 to determine whether or not the API Dataset verification module 214 includes a Dataset that is accessible to the application or exclusive information input by the machine learning algorithm.

이를 테면 다음과 같이 조건부 확률을 구할 수 있다.For example, the conditional probability can be obtained as follows.

예제) {getLine1Number, sendTextMessage, getDeviceID, moveToNext} Dataset 판단Example) {getLine1Number, sendTextMessage, getDeviceID, moveToNext} Dataset judgment

1) 애플리케이션 내 배타적 정보에 접근 가능한 API 추출 : 애플리케이션에서 사용하는 API 중 Sensitive API 데이터베이스(234)에 있는 배타적 정보에 접근 가능한 API 만을 추출 한다.1) Extraction of an API that can access exclusive information in the application: Extracts only the APIs that are accessible to the exclusive information in the sensitive API database 234 among the APIs used in the application.

2) 벡터 구성 : 그 후 중복된 항목이 없도록 벡터를 구성한다.2) Vector composition: Then construct a vector so that there are no duplicated items.

{x1, x2....} = {getLine1Number, sendTextMessage, getDeviceID, movetoNext}{x1, x2 ....} = {getLine1Number, sendTextMessage, getDeviceID, movetoNext}

3) 검증 : 해당 벡터를 머신러닝 알고리즘(여기서는 나이브 베이즈 분류를 사용)을 이용한다.3) Verification: Use the machine learning algorithm (using the Naive Bay classification in this case) for that vector.

(1) 해당 Dataset이 Sensitive Dataset에 속할 확률 (P(Sensitive Dataset) = 0.5로 가정)(1) The probability that the corresponding dataset belongs to a sensitive dataset (assuming P (Sensitive Dataset) = 0.5)

Figure pat00004
Figure pat00004

(2) 해당 API가 Normal API에 속할 확률(P(Normal API) = 0.5로 가정)(2) The probability that the corresponding API belongs to the normal API (assuming P (Normal API) = 0.5)

Figure pat00005
Figure pat00005

(1)의 가정에서 {getLine1Number, sendTextMessage, getDeviceID, moveToNext} 는 Sensitive Dataset 일 확률이 0.0576으로 Normal Dataset 일 확률 0.0036 일 확률보다 큼으로 최대 우도 방법에 의하여 Sensitive Dataset로 판단한다.{GetLine1Number, sendTextMessage, getDeviceID, moveToNext} in the assumption of (1) is larger than the probability of Sensitive Dataset being 0.0576 and probability of Normal Dataset being 0.0036, and it is determined as Sensitive Dataset by the maximum likelihood method.

다음은 정량적 수치 결과를 나타내는 것이다.The following is a quantitative numerical result.

API 검증기(210)의 결과 출력 모듈(212)에서 앞서 검증된 값을 기반으로 정량적 수치 결과를 제공한다. Sensitive API와 Sensitive API Dataset의 부류 판단을 통한 사후 확률(Posterior) 값을 이용한다. 예를 들어 어떠한 애플리케이션 내에 {getLine1Number, sendTextMessage, getDeviceID,…, moveToNext}의 Dataset을 사용했다고 할 때 다음과 같은 사후 확률이 주어졌다고 가정하자.And provides a quantitative numerical result based on the previously verified value in the result output module 212 of the API verifier 210. Sensitive APIs and Sensitive APIs Use posterior values through class judgment of Dataset. For example, {getLine1Number, sendTextMessage, getDeviceID, ... , moveToNext} Dataset, it is assumed that the following posterior probability is given.

Sensitive APISensitive API

Figure pat00006
Figure pat00006
getLine1NumbergetLine1Number
Figure pat00007
Figure pat00007
sendTextMessagesendTextMessage
Figure pat00008
Figure pat00008
getDeviceIDgetDeviceID
Figure pat00009
Figure pat00009
... moveToNextmoveToNext
Figure pat00010
Figure pat00010

또한 {getLine1Number, sendTextMessage, getDeviceID, … , moveToNext}의 Dataset의 사후 확률을

Figure pat00011
Figure pat00012
라고 할 수 있다. Also, {getLine1Number, sendTextMessage, getDeviceID, ... , moveToNext} Dataset's posterior probability
Figure pat00011
Figure pat00012
.

이때 평가대상의 애플리케이션이 소유하고 있는 Sensitive API 사후확률과 Sensitive Dataset의 사후확률을 파라미터로 하는 어떤 특정한 연산에 의해 정량적 수치(Evaluation)를 제공할 수 있다.At this time, it is possible to provide the quantitative value Evaluation by a specific operation using the Sensitive API posterior probability possessed by the evaluation target application and the posterior probability of the Sensitive Dataset as a parameter.

애플리케이션은 사용자가 작성한 방법과 API의 흐름으로 구성된다고 할 수 있는데 사용자가 작성한 방법과 API를 사용하는 방법에 따라 특정 애플리케이션의 특성이나 기능이 정의될 수 있다. 이중 실제적인 기능을 나타내는 것은 API 이며 사용자가 작성한 방법 역시 최종적으로 API를 호출하며 기능적 특징을 나타낸다.An application can be said to consist of a user-created method and a flow of an API. The characteristics and functions of a specific application can be defined according to the method that the user has created and how to use the API. The actual function is the API and the user-created method finally calls the API and shows the functional characteristics.

상기의 평가기기(10)로 인하여, 프레임워크상에서 제공하는 API의 실시간으로 추출된 특성 정보를 이용하여 악성 애플리케이션에서 사용하는 API를 분석하고, 애플리케이션의 취약성을 머신러닝 알고리즘을 통해 정량적으로 평가할 수 있다. 애플리케이션을 검증하고 결과적으로 도출된 정량적 수치를 이용하여 현재 사용되고 있는 분석 대상의 애플리케이션을 검증할 수 있고 어떤 부분이 취약한지, 어떤 악성 행위를 할 수 있는지에 대한 정보의 획득이 가능하다. 또한, 실시간으로 추출된 특성정보를 이용하므로 최신 경향의 API 특성정보를 이용할 수 있으므로 API 구성변동이나 API 정보 변경에 쉽게 대응하여 최신버전의 모바일 플랫폼이더라도 항상 유효하게 해당 기법을 적용 할 수 있다.Due to the above evaluation device 10, the API used in the malicious application can be analyzed using the characteristic information extracted in real time of the API provided on the framework, and the vulnerability of the application can be quantitatively evaluated through the machine learning algorithm . The application can be verified and the resulting quantitative figures can be used to validate the application being analyzed currently, and to obtain information on what parts are vulnerable and what malicious actions can be taken. In addition, since the API feature information of the latest trend can be used because the feature information extracted in real time is used, it can be applied effectively even in the latest version of mobile platform.

지금까지 본 발명의 실시 예가 도시되고 설명되었지만, 본 발명이 속하는 기술분야의 통상의 지식을 가진 당업자라면 본 발명의 원칙이나 정신에서 벗어나지 않으면서 실시 예를 변형할 수 있을 것이다. 따라서, 발명의 범위는 지금까지 설명된 실시 예로 정해지는 것이 아니라 첨부된 청구항과 그 균등물에 의해 정해질 것이다.While the embodiments of the present invention have been shown and described, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope or spirit of this invention. Accordingly, the scope of the present invention should not be construed as being limited to the embodiments described so far, but rather by the appended claims and their equivalents.

10 : 평가기기 100 : 제어부
110 : 통신부 120 : 영상처리부
130 : 디스플레이부 140 : 사용자입력부
150 : 저장부 160 : 촬상부
170 : UI생성부 200 : API학습기
210 : API검증기 220 : 실시간API정보수집기
230 : 데이터베이스
10: Evaluation device 100:
110: communication unit 120: image processing unit
130: display unit 140: user input unit
150: storage unit 160:
170: UI generation unit 200: API learning device
210: API verifier 220: Real-time API information collector
230: Database

Claims (20)

애플리케이션의 보안 취약성 평가방법에 있어서,
평가 대상인 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하는 단계와;
상기 결정된API의 특성정보에 기초하여 상기 API 에 대한 배타적 정보에의 접근 정도를 결정하는 단계와;
상기 결정된API의 배타적 정보에의 접근 정도에 기초하여 상기 애플리케이션의 보안 취약성을 평가하는 단계를 포함하는 애플리케이션의 보안 취약성 평가방법.
In an application security vulnerability assessment method,
Determining at least one APPLICATION PROGRAMING INTERFACE to be used in the application being evaluated;
Determining the degree of access to the exclusive information for the API based on the determined property information of the API;
And evaluating the security vulnerability of the application based on the determined degree of access to the exclusive information of the API.
제1항에 있어서,
네트워크로부터 상기 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하는 단계를 더 포함하는 애플리케이션의 보안 취약성 평가방법.
The method according to claim 1,
Further comprising obtaining characteristic information corresponding to the at least one API used from the network.
제1항에 있어서,
상기 배타적 정보에의 접근 정도를 결정하는 단계는,
상기 API의 특성정보 중 상기 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 상기 배타적 정보에의 접근 정도를 산출하는 단계를 포함하는 애플리케이션의 보안 취약성 평가방법.
The method according to claim 1,
Wherein determining the degree of access to the exclusive information comprises:
And calculating a degree of access to the exclusive information by using a probability of a word included in a name of at least one API among the property information of the API.
제1항에 있어서,
상기 애플리케이션의 보안 취약성을 평가하는 단계는,
상기 API의 특성정보 중 상기 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 상기 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 단계를 포함하는 애플리케이션의 보안 취약성 평가방법.
The method according to claim 1,
Wherein evaluating the security vulnerability of the application comprises:
Calculating a degree of vulnerability of the application by evaluating a security vulnerability of the application using a probability of a name of an API for which an access degree to the exclusive information is determined among characteristics information of the API.
제1항에 있어서,
상기 배타적 정보에의 접근 정도가 결정된 API 및 상기 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 상기 애플리케이션의 취약성 평가에 대한 결과정보를 제공하는 단계를 더 포함하는 애플리케이션의 보안 취약성 평가방법.
The method according to claim 1,
And providing result information on the vulnerability evaluation of the application based on at least one of an API for which the degree of access to the exclusive information is determined and an API for which the vulnerability of the application is evaluated.
제1항에 있어서,
악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 단계를 더 포함하는 애플리케이션의 보안 취약성 평가방법.
The method according to claim 1,
Calculating an extent of access to said exclusive information for at least one API used in at least one of malicious and normal applications and the degree of vulnerability evaluating security vulnerabilities of said application, Security vulnerability assessment method.
제6항에 있어서,
상기 배타적 정보에의 접근 정도를 결정하는 단계는,
상기 평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도가 상기 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단하는 단계를 포함하는 애플리케이션의 보안 취약성 평가방법.
The method according to claim 6,
Wherein determining the degree of access to the exclusive information comprises:
Wherein the degree of access to the exclusive information for at least one API used in the application to be evaluated is less than the accessibility to the exclusive information for at least one API used in the application Of the security vulnerability of the application.
제6항에 있어서,
상기 애플리케이션의 보안 취약성을 평가하는 단계는,
상기 평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 상기 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단하는 단계를 포함하는 애플리케이션의 보안 취약성 평가방법.
The method according to claim 6,
Wherein evaluating the security vulnerability of the application comprises:
Determining whether the degree of vulnerability evaluating the security vulnerability of the application to be evaluated is close to a value of the calculated malicious behavior and the degree of vulnerability evaluating security vulnerability among the applications performing normal operation; Vulnerability assessment method.
제1항에 있어서,
상기 API의 특성정보는 상기 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함하는 애플리케이션의 보안 취약성 평가방법.
The method according to claim 1,
Wherein the characteristic information of the API includes at least one of a package, a class, a name, a parameter type, a return value, and a description of the API.
제1항에 있어서,
상기 배타적 정보에의 접근 정도가 결정된 API는 개인 및 단체 중 적어도 하나의 정보 및 권리 중 적어도 하나를 침해할 가능성이 있는 API를 포함하는 애플리케이션의 보안 취약성 평가방법.
The method according to claim 1,
Wherein the API whose degree of access to the exclusive information is determined includes an API that may infringe at least one of information and rights of at least one of an individual and a group.
애플리케이션의 보안 취약성 평가기기에 있어서,
애플리케이션에 대한 데이터를 수신할 수 있는 통신부와;
평가 대상인 상기 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하며, 상기 결정된API의 특성정보에 기초하여 상기 API 에 대한 배타적 정보에의 접근 정도를 결정하고, 상기 결정된API의 배타적 정보에의 접근 정도에 기초하여 상기 애플리케이션의 보안 취약성을 평가하는 제어부를 포함하는 애플리케이션의 보안 취약성 평가기기.
An application security vulnerability assessment device comprising:
A communication unit capable of receiving data for an application;
Determining at least one APPLICATION PROGRAMING INTERFACE used for the application to be evaluated, determining an access degree to the exclusive information for the API based on the determined property information of the API, And a control unit for evaluating a security vulnerability of the application based on the access degree of the application.
제11항에 있어서,
상기 제어부는 네트워크로부터 상기 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하도록 상기 통신부를 제어하는 애플리케이션의 보안 취약성 평가기기.
12. The method of claim 11,
Wherein the control unit controls the communication unit to acquire characteristic information corresponding to the at least one API used from the network.
제11항에 있어서,
상기 제어부는 상기 API의 특성정보 중 상기 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 상기 배타적 정보에의 접근 정도를 산출하는 애플리케이션의 보안 취약성 평가기기.
12. The method of claim 11,
Wherein the control unit calculates a degree of access to the exclusive information by using a probability of a word included in the name of the at least one API among the property information of the API.
제11항에 있어서,
상기 제어부는 상기 API의 특성정보 중 상기 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 상기 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 애플리케이션의 보안 취약성 평가기기.
12. The method of claim 11,
Wherein the control unit calculates a degree of vulnerability in which a security vulnerability of the application is evaluated by using a probability of a name of an API whose degree of access to the exclusive information is determined among characteristics information of the API.
제11항에 있어서,
상기 애플리케이션의 취약성 평가에 대한 결과정보를 표시하는 디스플레이부를 더 포함하고,
상기 제어부는 상기 배타적 정보에의 접근 정도가 결정된 API 및 상기 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 상기 애플리케이션의 취약성 평가에 대한 결과정보를 제공하도록 상기 디스플레이부를 제어하는 애플리케이션의 보안 취약성 평가기기.
12. The method of claim 11,
Further comprising a display unit for displaying result information on the vulnerability evaluation of the application,
Wherein the control unit controls the display unit to provide the result information on the vulnerability evaluation of the application based on at least one of the API for which the degree of access to the exclusive information is determined and the API for which the vulnerability of the application is evaluated, Evaluation device.
제11항에 있어서,
상기 제어부는 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 애플리케이션의 보안 취약성 평가기기.
12. The method of claim 11,
Wherein the control unit controls the security of the application that calculates the degree of access to the exclusive information for at least one API used in at least one of the malicious application and the malicious application and the degree of vulnerability evaluating the security vulnerability of the application Vulnerability Assessment Instrument.
제16항에 있어서,
상기 산출된 상기 배타적 정보에의 접근 정도 및 취약성정도를 저장하는 저장부를 더 포함하고,
상기 제어부는 상기 평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도가 산출되어 상기 저장부에 저장된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단하는 애플리케이션의 보안 취약성 평가기기.
17. The method of claim 16,
And a storage unit for storing the degree of access to the calculated exclusive information and the degree of vulnerability,
Wherein the control unit calculates at least one API used for the at least one API used in the application to be evaluated and calculates at least one API used for an application for performing a malicious action stored in the storage unit and an application for performing a normal operation The degree of access to the exclusive information of the application.
제16항에 있어서,
상기 산출된 상기 배타적 정보에의 접근 정도 및 취약성정도를 저장하는 저장부를 더 포함하고,
상기 제어부는 상기 평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 산출되어 상기 저장부에 저장된 상기 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단하는 애플리케이션의 보안 취약성 평가기기.
17. The method of claim 16,
And a storage unit for storing the degree of access to the calculated exclusive information and the degree of vulnerability,
Wherein the control unit calculates a degree of vulnerability evaluating a security vulnerability of the application to be evaluated and calculates a degree of vulnerability of the application that performs the malicious action calculated in the storage unit and evaluates the security vulnerability The security vulnerability assessment apparatus of the present invention determines the security vulnerability of the application.
제11항에 있어서,
상기 API의 특성정보는 상기 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함하는 애플리케이션의 보안 취약성 평가기기.
12. The method of claim 11,
The characteristic information of the API includes at least one of a package, a class, a name, a parameter type, a return value, and a description of the API.
제11항에 있어서,
상기 배타적 정보에의 접근 정도가 결정된 API는 개인 및 단체 중 적어도 하나의 정보 및 권리 중 적어도 하나를 침해할 가능성이 있는 API를 포함하는 애플리케이션의 보안 취약성 평가기기.
12. The method of claim 11,
Wherein the API whose degree of access to the exclusive information is determined includes an API that may infringe at least one of information and rights of at least one of an individual and a group.
KR1020160006571A 2016-01-19 2016-01-19 Apparatus for security vulnerabilities evaluation of application and control method of the same KR102443766B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160006571A KR102443766B1 (en) 2016-01-19 2016-01-19 Apparatus for security vulnerabilities evaluation of application and control method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160006571A KR102443766B1 (en) 2016-01-19 2016-01-19 Apparatus for security vulnerabilities evaluation of application and control method of the same

Publications (2)

Publication Number Publication Date
KR20170086926A true KR20170086926A (en) 2017-07-27
KR102443766B1 KR102443766B1 (en) 2022-09-19

Family

ID=59428039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160006571A KR102443766B1 (en) 2016-01-19 2016-01-19 Apparatus for security vulnerabilities evaluation of application and control method of the same

Country Status (1)

Country Link
KR (1) KR102443766B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102046748B1 (en) * 2019-04-25 2019-11-19 숭실대학교산학협력단 Method of application security vulnerability evaluation based on tree boosting, readable medium and apparatus for performing the method
US20220114271A1 (en) * 2020-10-14 2022-04-14 International Business Machines Corporation Secure data storage device access control and sharing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110128632A (en) * 2010-05-24 2011-11-30 충남대학교산학협력단 Method and device for detecting malicious action of application program for smartphone
KR20120073018A (en) * 2010-12-24 2012-07-04 한국인터넷진흥원 System and method for detecting malicious code
KR101461051B1 (en) * 2013-06-11 2014-11-13 (주) 에스에스알 Method for detecting malignant code through web function analysis, and recording medium thereof
KR20150123543A (en) * 2014-04-25 2015-11-04 코드마인드(주) Device and method of analyzing information drain of application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110128632A (en) * 2010-05-24 2011-11-30 충남대학교산학협력단 Method and device for detecting malicious action of application program for smartphone
KR20120073018A (en) * 2010-12-24 2012-07-04 한국인터넷진흥원 System and method for detecting malicious code
KR101461051B1 (en) * 2013-06-11 2014-11-13 (주) 에스에스알 Method for detecting malignant code through web function analysis, and recording medium thereof
KR20150123543A (en) * 2014-04-25 2015-11-04 코드마인드(주) Device and method of analyzing information drain of application

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102046748B1 (en) * 2019-04-25 2019-11-19 숭실대학교산학협력단 Method of application security vulnerability evaluation based on tree boosting, readable medium and apparatus for performing the method
US10796005B1 (en) 2019-04-25 2020-10-06 Foundation Of Soongsil University-Industry Cooperation Method of application security vulnerability evaluation based on tree boosting, and readable medium and apparatus for performing the method
US20220114271A1 (en) * 2020-10-14 2022-04-14 International Business Machines Corporation Secure data storage device access control and sharing
US11907405B2 (en) * 2020-10-14 2024-02-20 International Business Machines Corporation Secure data storage device access control and sharing

Also Published As

Publication number Publication date
KR102443766B1 (en) 2022-09-19

Similar Documents

Publication Publication Date Title
US11778270B2 (en) Automatically loading user profile to show recently watched channels
US9697412B2 (en) Method of executing function of electronic device and electronic device using the same
US9864612B2 (en) Techniques to customize a user interface for different displays
US7376590B2 (en) Union remote controller, union remote controller information providing system and method for using the same
US9971748B2 (en) Method and apparatus for outputting digital content
US20150007309A1 (en) Display apparatus using key signals and control method thereof
US9367144B2 (en) Methods, systems, and media for providing a remote control interface for a media playback device
CN105678073A (en) Medical image checking method, device and system
CN107909466A (en) Customer relationship network display method, apparatus, equipment and readable storage medium storing program for executing
KR20170086926A (en) Apparatus for security vulnerabilities evaluation of application and control method of the same
US20200348799A1 (en) Implementation method and apparatus of system user interface
WO2020135241A1 (en) Voice-based data transmission control method, smart television and storage medium
KR102144554B1 (en) personalized living service apparatus and system for providing personalized living services
US20190124398A1 (en) Methods and apparatuses for obtaining and providing information
US9921728B2 (en) Service providing device, and method of providing a user interface
CN112147964A (en) Device management method, device, electronic device and medium
CN109491730A (en) A kind of data display method, apparatus and system
KR20150091904A (en) Calibration device, display system and control method thereof
CN110852649A (en) Resource management method, terminal, device and readable storage medium
US20200349262A1 (en) Terminal apparatus and control method of terminal apparatus
KR101608940B1 (en) User scan type of remote controller for smart tv and operating method of the same
US9552468B2 (en) Image processing apparatus and control method thereof
US20140136702A1 (en) Method and apparatuses for sharing data in a data sharing system
CN116719969B (en) Intelligent home interaction data analysis method and system based on Internet of things
CN113761009A (en) Personnel selection method, system, device and computer readable storage medium

Legal Events

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