KR102275635B1 - Apparatus and method for detecting anomaly through function call pattern analysis - Google Patents

Apparatus and method for detecting anomaly through function call pattern analysis Download PDF

Info

Publication number
KR102275635B1
KR102275635B1 KR1020200077367A KR20200077367A KR102275635B1 KR 102275635 B1 KR102275635 B1 KR 102275635B1 KR 1020200077367 A KR1020200077367 A KR 1020200077367A KR 20200077367 A KR20200077367 A KR 20200077367A KR 102275635 B1 KR102275635 B1 KR 102275635B1
Authority
KR
South Korea
Prior art keywords
function call
call
function
data
application
Prior art date
Application number
KR1020200077367A
Other languages
Korean (ko)
Inventor
정해건
강경태
Original Assignee
한양대학교 에리카산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 에리카산학협력단 filed Critical 한양대학교 에리카산학협력단
Priority to KR1020200077367A priority Critical patent/KR102275635B1/en
Priority to PCT/KR2021/007857 priority patent/WO2021261901A1/en
Application granted granted Critical
Publication of KR102275635B1 publication Critical patent/KR102275635B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The present invention relates to an apparatus and a method for detecting an anomaly through function call pattern analysis. An embodiment of the present invention provides an apparatus for detecting an anomaly through function call pattern analysis comprises: a data collection unit collecting function call data about functions called in accordance with the execution of an application; a data analysis unit which forms function call automata for a plurality of functions forming the application, and which inputs the function call data into the function call automata to analyze whether the anomaly of the function call data occurs; and an output unit outputting error situation information including a call location and a call time for the function in which an anomaly has occurred, if it is determined that the anomaly has occurred in the function call data. The present invention can more accurately provide information on the call location and the call time in which the anomaly has occurred during the execution of the application.

Description

함수 호출 패턴 분석을 통한 이상 검출 장치 및 방법{APPARATUS AND METHOD FOR DETECTING ANOMALY THROUGH FUNCTION CALL PATTERN ANALYSIS}Anomaly detection device and method through function call pattern analysis {APPARATUS AND METHOD FOR DETECTING ANOMALY THROUGH FUNCTION CALL PATTERN ANALYSIS}

본 개시는 애플리케이션의 실행 시 호출되는 함수들에 대하여 함수 호출의 패턴 분석을 통하여 이상(anomaly) 여부를 검출하는 장치 및 방법에 관한 것이다.The present disclosure relates to an apparatus and method for detecting whether there is an anomaly through a pattern analysis of a function call with respect to functions called when an application is executed.

컴퓨터 시스템에 대한 일반적인 모니터링 시스템은 해당 컴퓨터 시스템에 내장된 센서 등을 이용하여 온도 및 사용량 등을 감지하여 임시 데이터로 저장하고, 관리자가 확인할 수 있도록 데이터를 시각화하여 표출한다. 이때 사용량 또는 온도의 상승이 소정의 임계값보다 높아져서 과다하다 판단되는 경우, 관리자에게 해당 사실을 통보하게 된다.A general monitoring system for a computer system detects temperature and usage by using a sensor built into the computer system, stores it as temporary data, and visualizes the data so that the administrator can check it. At this time, if it is determined that the amount of use or the increase in temperature is excessive because it is higher than a predetermined threshold value, a corresponding fact is notified to the manager.

이러한 종래의 모니터링 시스템은 컴퓨터 시스템 전체에 대한 대략적인 모니터링만 가능하게 할 뿐, 특정 애플리케이션에 문제가 발생했을 경우 어떤 문제가 어느 시점에서 발생했는지를 특정하기 어려울 수 있다. 또한, 종래의 모니터링 시스템에 의하면, 컴퓨터 시스템에 대한 버퍼 오버플로우(buffer overflow)와 같은 공격을 감지하기가 어려울 수 있다.Such a conventional monitoring system only enables rough monitoring of the entire computer system, and when a problem occurs in a specific application, it may be difficult to specify which problem occurred at which point. In addition, according to the conventional monitoring system, it may be difficult to detect an attack such as a buffer overflow on a computer system.

따라서, 컴퓨터 시스템에서 특정 애플리케이션의 실행 중에 발생하는 이상 여부에 대하여 발생 위치 및 발생 시간 등의 보다 구체적인 정보를 제공할 수 있는 모니터링 방법에 대한 요구가 증대되고 있다.Accordingly, there is an increasing demand for a monitoring method capable of providing more specific information, such as an occurrence location and occurrence time, with respect to whether an abnormality occurs during execution of a specific application in a computer system.

전술한 배경에서 본 개시는 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 패턴을 생성하고, 함수 호출 오토마타를 이용하여 생성된 함수 호출 패턴에 대한 이상 여부를 판단함으로써, 애플리케이션의 실행 중 이상이 발생한 호출 위치 및 호출 시간에 대한 정보를 보다 정확하게 제공할 수 있는 함수 호출 패턴 분석을 통한 이상 검출 방법 및 장치를 제안하고자 한다.In the background described above, the present disclosure generates a function call pattern for functions called according to the execution of the application, and determines whether there is an abnormality in the function call pattern generated by using the function call automata, so that abnormality during the execution of the application is An objection detection method and apparatus through function call pattern analysis that can more accurately provide information on the location of the call and the time of the call are proposed.

전술한 과제를 해결하기 위해서 안출된 본 개시는 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 데이터를 수집하는 데이터 수집부, 애플리케이션을 구성하는 복수의 함수들에 대한 함수 호출 오토마타(automata)를 구성하고, 함수 호출 데이터를 함수 호출 오토마타에 입력하여 함수 호출 데이터의 이상(anomaly) 여부를 분석하는 데이터 분석부 및 함수 호출 데이터에 이상이 발생한 것으로 판단되는 경우, 이상이 발생된 함수에 대한 호출 위치 및 호출 시간을 포함하는 오류 상황 정보를 출력하는 출력부를 포함하는 함수 호출 패턴 분석을 통한 이상 검출 장치를 제공할 수 있다.The present disclosure, devised to solve the above-described problems, provides a data collection unit that collects function call data for functions called according to the execution of an application, and a function call automata for a plurality of functions constituting the application. When it is determined that an abnormality has occurred in the data analysis unit and function call data that configures and inputs the function call data to the function call automata to analyze whether the function call data is anomaly or not, the call location for the function in which the abnormality occurs And it is possible to provide an apparatus for detecting an abnormality through function call pattern analysis including an output unit for outputting error condition information including a call time.

또한, 본 개시는 애플리케이션을 구성하는 복수의 함수들에 대한 함수 호출 오토마타(automata)를 구성하는 단계, 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 데이터를 수집하는 단계 및 함수 호출 데이터를 함수 호출 오토마타에 입력하여 함수 호출 데이터의 이상(anomaly) 여부를 분석하는 단계를 포함하는 함수 호출 패턴 분석을 통한 이상 검출 방법을 제공할 수 있다.In addition, the present disclosure provides the steps of configuring a function call automata for a plurality of functions constituting an application, collecting function call data for functions called according to the execution of the application, and converting the function call data into a function It is possible to provide an anomaly detection method through function call pattern analysis, including the step of inputting into the call automata and analyzing whether the function call data is anomaly.

본 개시에 따르면, 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 패턴을 생성하고, 함수 호출 오토마타를 이용하여 생성된 함수 호출 패턴에 대한 이상 여부를 판단함으로써, 애플리케이션의 실행 중 이상이 발생한 호출 위치 및 호출 시간에 대한 정보를 보다 정확하게 제공할 수 있다.According to the present disclosure, by generating a function call pattern for functions called according to the execution of the application, and determining whether the generated function call pattern is abnormal by using the function call automata, an abnormal call occurs during the execution of the application It can provide more accurate information about location and call time.

도 1은 본 개시의 일 실시예에 따른 함수 호출 패턴 분석을 통한 이상 검출 장치에 대한 블록도이다.
도 2 내지 도 4는 본 개시의 일 실시예에 따른 함수 호출 관계도 및 함수 호출 오토마타(automata)를 구성하는 것을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 시스템콜 호출에 따른 함수 호출 데이터를 수집하는 것을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 복수의 함수에 대응하도록 구성된 비트맵을 이용하여 함수 호출 데이터를 수집하는 것을 설명하기 위한 도면이다.
도 7 내지 도 9는 본 개시의 일 실시예에 따른 함수 호출 오토마타를 이용한 함수 호출 데이터의 이상 발생 여부를 판단하는 것을 설명하기 위한 도면이다.
도 10은 본 개시의 일 실시예에 따른 함수 호출 패턴 분석을 통한 이상 검출 방법에 대한 흐름도이다.
1 is a block diagram of an apparatus for detecting abnormality through function call pattern analysis according to an embodiment of the present disclosure.
2 to 4 are diagrams for explaining a function call relation diagram and configuration of a function call automata according to an embodiment of the present disclosure.
5 is a diagram for explaining collecting function call data according to a system call call according to an embodiment of the present disclosure.
6 is a diagram for explaining collecting function call data using a bitmap configured to correspond to a plurality of functions according to an embodiment of the present disclosure.
7 to 9 are diagrams for explaining determining whether an abnormality occurs in function call data using a function call automata according to an embodiment of the present disclosure.
10 is a flowchart of an abnormality detection method through function call pattern analysis according to an embodiment of the present disclosure.

이하, 본 개시의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present disclosure will be described in detail with reference to exemplary drawings. In adding reference numerals to the components of each drawing, it should be noted that the same components are given the same reference numerals as much as possible even though they are indicated on different drawings. In addition, in describing the present disclosure, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present disclosure, the detailed description thereof will be omitted.

또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, in describing the components of the present disclosure, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only for distinguishing the component from other components, and the essence, order, or order of the component is not limited by the term. When a component is described as being “connected”, “coupled” or “connected” to another component, the component may be directly connected or connected to the other component, but another component is between each component. It should be understood that elements may be “connected,” “coupled,” or “connected.”

이하에서는, 관련 도면을 참조하여 본 개시의 실시예들에 따른 함수 호출 패턴 분석을 통한 이상 검출 방법 및 장치에 대하여 설명하기로 한다.Hereinafter, an abnormality detection method and apparatus through function call pattern analysis according to embodiments of the present disclosure will be described with reference to related drawings.

도 1은 본 개시의 일 실시예에 따른 함수 호출 패턴 분석을 통한 이상 검출 장치에 대한 블록도이다.1 is a block diagram of an apparatus for detecting abnormality through function call pattern analysis according to an embodiment of the present disclosure.

도 1을 참조하면, 함수 호출 패턴 분석을 통한 이상 검출 장치(100)는 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 데이터를 수집하는 데이터 수집부(110), 애플리케이션을 구성하는 복수의 함수들에 대한 함수 호출 오토마타(automata)를 구성하고, 함수 호출 데이터를 함수 호출 오토마타에 입력하여 함수 호출 데이터의 이상(anomaly) 여부를 분석하는 데이터 분석부(130) 및 함수 호출 데이터에 이상이 발생한 것으로 판단되는 경우, 이상이 발생된 함수에 대한 호출 위치 및 호출 시간을 포함하는 오류 상황 정보를 출력하는 출력부(150)를 포함할 수 있다.Referring to FIG. 1 , the apparatus 100 for detecting abnormality through function call pattern analysis includes a data collection unit 110 that collects function call data for functions called according to the execution of an application, and a plurality of functions constituting the application. A data analysis unit 130 that configures a function call automata for the functions, inputs the function call data to the function call automata, and analyzes whether the function call data is anomaly and that an abnormality has occurred in the function call data When it is determined, the output unit 150 may include an output unit 150 for outputting error status information including a call location and a call time for the function in which the abnormality occurred.

본 개시에서 설명되는 함수 호출 패턴 분석을 통한 이상 검출 장치(100)는 위에서 열거된 구성요소들 이외에 함수 호출 패턴 분석을 통한 이상 검출 장치의 동작을 수행하기 위하여 다른 구성요소들을 더 포함할 수 있다.The apparatus 100 for detecting anomaly through function call pattern analysis described in the present disclosure may further include other components in addition to the above-listed components to perform an operation of the abnormality detection apparatus through function call pattern analysis.

데이터 수집부(110)는 애플리케이션이 실행되면, 애플리케이션의 실행에 따라 호출되는 함수(function)들에 대한 함수 호출 데이터를 수집할 수 있다. 사용자 애플리케이션은 함수들의 집합으로 구성되며, 애플리케이션이 제공하는 작업들 중 어느 하나의 실행이 지시되면, 해당 작업의 실행을 위하여 필요한 함수들이 순차적으로 호출될 수 있다.When the application is executed, the data collection unit 110 may collect function call data for functions called according to the execution of the application. A user application is composed of a set of functions, and when the execution of any one of the tasks provided by the application is instructed, functions necessary for the execution of the corresponding task may be called sequentially.

일 예에 따라, 데이터 수집부(110)는 커널(kernel) 영역에서의 모니터링 모듈을 포함하고, 이를 이용하여 시스템 콜(system call) 데이터를 수집할 수 있다. 기존의 시스템 콜은 애플리케이션이 해당 함수를 호출할 경우 시스템 콜 테이블에서 해당 함수를 찾아 실행해주게 된다. 데이터 수집부(110)는 시스템 콜과 동등한 권한을 갖는 모니터링 모듈을 이용하여, 동작은 완전히 동일하나 호출 위치와 호출 시간을 기록하는 수집코드가 추가된 시스템 콜이 호출되도록 시스템 콜 테이블을 수정할 수 있다. 여기서, 호출 위치는 애플리케이션에서 해당 시스템 콜이 호출된 위치를 의미한다. 또한, 호출 시간은 해당 시스템 콜이 호출된 시간을 의미한다. 데이터 수집부(110)는 호출된 시스템 콜로부터 호출 위치 및 호출 시간을 수집할 수 있다.According to an example, the data collection unit 110 may include a monitoring module in a kernel area, and collect system call data using the monitoring module. In the existing system call, when the application calls the function, it finds the function in the system call table and executes it. The data collection unit 110 uses a monitoring module having the same authority as the system call, and the operation is exactly the same, but the system call table can be modified so that the system call to which the collection code that records the call location and call time is added is called. . Here, the call location means the location where the corresponding system call is called in the application. In addition, the call time means the time when the corresponding system call is called. The data collection unit 110 may collect a call location and a call time from the called system call.

또는, 일 예에 따라, 데이터 수집부(110)는 애플리케이션에서 호출되는 함수 앞에서 비트맵 카운터(bitmap counter)를 호출할 수 있다. 데이터 수집부(110)는 복수의 함수들 각각에 각 비트가 대응하도록 구성된 비트맵에서 호출되고 있는 함수에 대응하는 비트의 값을 변경하여, 호출 시간과 함께 호출된 함수에 대한 정보를 수집할 수 있다.Alternatively, according to an example, the data collection unit 110 may call a bitmap counter in front of a function called by an application. The data collection unit 110 changes the value of the bit corresponding to the function being called in the bitmap configured so that each bit corresponds to each of the plurality of functions, so as to collect information about the called function along with the call time. have.

데이터 수집부(110)는 수집된 시스템 콜 또는 호출된 함수에 대한 정보에 기초하여 함수 호출 패턴을 함수 호출 데이터로서 생성할 수 있다. 즉, 함수 호출 패턴은 애플리케이션에서 제공되는 복수의 작업들 중에서 현재 실행 중인 작업을 수행하는데 필요한 함수들이 호출되는 순서 및 시간 정보를 포함할 수 있다. The data collection unit 110 may generate a function call pattern as function call data based on the collected system call or information about the called function. That is, the function call pattern may include information about the order and time in which functions required to perform a currently executing task among a plurality of tasks provided by the application are called.

데이터 수집부(110)는 생성된 함수 호출 데이터를 데이터 분석부(130)로 출력할 수 있다.The data collection unit 110 may output the generated function call data to the data analysis unit 130 .

데이터 분석부(130)는 애플리케이션을 구성하는 복수의 함수들이 호출되는 정상적인 패턴에 대한 함수 호출 오토마타를 구성할 수 있다. 전술한 것과 같이, 애플리케이션은 복수의 함수들로 구성되어 있으며, 애플리케이션에서 특정 작업을 제공하기 위해서는, 복수의 함수들 중 필요한 함수들이 순차적으로 호출되도록 설정된다.The data analysis unit 130 may configure a function call automata for a normal pattern in which a plurality of functions constituting an application are called. As described above, the application is composed of a plurality of functions, and in order to provide a specific task in the application, necessary functions among the plurality of functions are set to be called sequentially.

데이터 분석부(130)는 함수들이 호출되는 순서에 기초하여 애플리케이션을 구성하는 복수의 함수들에 대한 함수 호출 관계도를 구성할 수 있다. 데이터 분석부(130)는 함수 호출 관계도에 기초하여 복수의 함수들에 대한 함수 호출 오토마타를 구성할 수 있다.The data analysis unit 130 may configure a function call relation diagram for a plurality of functions constituting an application based on the order in which the functions are called. The data analyzer 130 may configure a function call automata for a plurality of functions based on the function call relationship diagram.

일 예에 따라, 함수 호출 오토마타는 유한 오토마타(finite automata)로 구성될 수 있다. 유한 오토마타 M={Q, Σ, q, F, δ}로 정의되며, 여기서, Q는 유한한 개수의 상태들의 집합, Σ은 입력 심볼의 집합, q는 초기 상태, F는 최종 상태의 집합, δ는 전이 함수를 의미할 수 있다.According to an example, the function call automata may consist of a finite automata. A finite automata is defined as M={Q, Σ, q, F, δ}, where Q is a set of a finite number of states, Σ is a set of input symbols, q is an initial state, F is a set of final states, δ may mean a transition function.

데이터 분석부(130)는 애플리케이션에서 실행되는 작업들에 기초하여 애플리케이션의 상태를 유한한 개수의 집합(Q)으로 결정할 수 있다. 일 예에 따라, 애플리케이션의 상태는 애플리케이션 전체의 작업에 대하여 결정될 수 있다. 다만, 이는 일 예로서, 이에 한정되는 것은 아니며, 애플리케이션의 상태는 애플리케이션이 제공하는 복수의 작업들 각각에 대하여 결정될 수 있다. 결정된 상태들은 초기 상태(q)와 최종 상태(F)를 가질 수 있다. 초기 상태는 하나로 결정되나, 최종 상태는 복수 개로 결정될 수 있다.The data analyzer 130 may determine the state of the application as a finite number of sets Q based on tasks executed in the application. According to an example, the state of the application may be determined with respect to the operation of the entire application. However, this is an example, and the present invention is not limited thereto, and the state of the application may be determined for each of a plurality of tasks provided by the application. The determined states may have an initial state (q) and a final state (F). One initial state may be determined, but a plurality of final states may be determined.

데이터 분석부(130)는 함수 호출 관계도에 기초하여, 복수의 함수들 각각에 대응하는 심볼을 설정할 수 있다. 예를 들어, 해당 심볼은 각 함수에 대응하는 자연수들로 설정될 수 있다. 다만, 이는 일 예로서, 이에 한정되는 것은 아니며, 알파벳 등으로 설정될 수도 있다. 복수의 함수들 각각에 대응하는 심볼들은 함수 호출 오토마타에 대한 입력 심볼의 집합(Σ)으로 결정될 수 있다.The data analyzer 130 may set a symbol corresponding to each of the plurality of functions based on the function call relationship diagram. For example, the corresponding symbol may be set to natural numbers corresponding to each function. However, this is an example, not limited thereto, and may be set to an alphabet or the like. Symbols corresponding to each of the plurality of functions may be determined as a set of input symbols (Σ) for the function call automata.

데이터 분석부(130)는 애플리케이션에서 실행되는 작업들에 따라 호출되는 함수들의 순서들 및 해당 함수의 실행으로 인한 상태 변화에 기초하여 전이 함수(δ)를 결정할 수 있다. 이를 통하여, 데이터 분석부(130)는 애플리케이션의 실행에 따른 정상 범위의 함수 호출 패턴에 대한 오토마타를 구성할 수 있다.The data analyzer 130 may determine the transition function δ based on the order of functions called according to tasks executed in the application and a state change due to the execution of the corresponding function. Through this, the data analysis unit 130 may configure the automata for the function call pattern in the normal range according to the execution of the application.

데이터 분석부(130)는 구성된 함수 호출 오토마타를 소정의 저장부에 저장할 수 있다. 데이터 분석부(130)는 함수 호출 데이터의 이상 여부를 분석하기 위하여 해당 저장부에서 함수 호출 오토마타를 독출할 수 있다.The data analysis unit 130 may store the constructed function call automata in a predetermined storage unit. The data analysis unit 130 may read the function call automata from the corresponding storage unit in order to analyze whether the function call data is abnormal.

데이터 분석부(130)는 애플리케이션의 실행에 따라 수집된 함수 호출 데이터를 함수 호출 오토마타에 입력하여 함수 호출 데이터의 이상 여부를 분석할 수 있다. 여기서 이상 여부는, 애플리케이션의 실행 중에 발생할 수 있는 오류나 외부로부터의 공격 등을 의미하며, 정해진 정상 범위의 함수 호출 패턴을 벗어난 함수가 호출되는 경우 등이 이에 해당할 수 있다.The data analysis unit 130 may analyze whether the function call data is abnormal by inputting the function call data collected according to the execution of the application into the function call automata. Here, the abnormality means an error that may occur during the execution of an application or an attack from the outside, and may correspond to a case in which a function is called outside of a function call pattern within a predetermined normal range.

데이터 분석부(130)는 데이터 수집부(110)에서 생성된 함수 호출 데이터를 함수 호출 오토마타에 입력 심볼로서 입력할 수 있다. 즉, 데이터 수집부(110)에서 생성된 함수 호출 데이터에 따라, 호출된 함수들에 대응하는 입력 심볼들을 함수 호출 오토마타에 입력할 수 있다. The data analysis unit 130 may input the function call data generated by the data collection unit 110 as an input symbol to the function call automata. That is, input symbols corresponding to the called functions may be input to the function call automata according to the function call data generated by the data collection unit 110 .

만약, 데이터 수집부(110)에서 생성된 함수 호출 데이터에 따른 함수들의 호출 패턴이 해당 애플리케이션의 실행에 대하여 설정된 정상 범위의 함수 호출 패턴과 일치하는 경우, 해당 입력은 함수 호출 오토마타에 의해 허용(accept)된다. 이 경우, 데이터 분석부(130)는 함수들의 호출 패턴이 정상이라고 판단할 수 있다.If the function call pattern according to the function call data generated by the data collection unit 110 matches the function call pattern of the normal range set for the execution of the corresponding application, the corresponding input is accepted by the function call automata. )do. In this case, the data analysis unit 130 may determine that the calling pattern of the functions is normal.

이와 반대로, 데이터 수집부(110)에서 생성된 함수 호출 데이터에 따른 함수들의 호출 패턴이 해당 애플리케이션의 실행에 대하여 설정된 정상 범위의 함수 호출 패턴과 일치하지 않는 경우, 해당 입력은 함수 호출 오토마타에 의해 거절(reject)된다. 이 경우, 데이터 분석부(130)는 함수들의 호출 패턴에 이상이 발생했다고 판단할 수 있다.On the contrary, when the function call pattern according to the function call data generated by the data collection unit 110 does not match the function call pattern of the normal range set for the execution of the corresponding application, the corresponding input is rejected by the function call automata. (rejected) In this case, the data analysis unit 130 may determine that an abnormality has occurred in the calling pattern of the functions.

데이터 분석부(130)는 이상이 발생했다고 판단된 경우, 함수 호출 오토마타에서 이상이 발생한 전이 함수를 확인할 수 있다. 즉, 데이터 분석부(130)는 다른 상태로의 전이가 미리 정해진 설정 이외의 상태로 발생된 분기점을 찾고, 해당 분기점에 대응하는 함수에 대한 호출 위치 및 호출 시간 정보를 획득할 수 있다.When it is determined that an abnormality has occurred, the data analysis unit 130 may identify a transition function in which an abnormality has occurred in the function call automata. That is, the data analysis unit 130 may find a branch point at which the transition to another state occurs in a state other than a predetermined setting, and obtain call location and call time information for a function corresponding to the branch point.

데이터 분석부(130)는 획득된 이상이 발생한 함수에 대한 호출 위치 및 호출 시간 정보에 대한 오류 상황 정보를 생성하여, 출력부(150)로 전송할 수 있다.The data analyzer 130 may generate error condition information on the call location and call time information for the acquired abnormal function and transmit it to the output unit 150 .

출력부(150)는 애플리케이션의 실행 동안 데이터 수집부(110)에서 수집되는 함수 호출 데이터를 실시간으로 또는 요청이 있는 경우 출력할 수 있다. 수집된 함수 호출 데이터를 출력하는 일 예는 후술할 도 7에 도시되어 있다.The output unit 150 may output the function call data collected by the data collection unit 110 during the execution of the application in real time or upon request. An example of outputting the collected function call data is illustrated in FIG. 7 to be described later.

또한, 출력부(150)는 애플리케이션의 실행 동안 함수 호출 데이터에 이상이 발생하는 경우, 이상이 발생한 함수에 대한 호출 위치 및 호출 시간을 포함하는 오류 상황 정보를 실시간으로 출력할 수 있다. 일 예에 따라, 출력부(150)는 웹 기반 대시보드(dashboard)의 형태로 오류 상황 정보를 출력할 수 있다.In addition, when an abnormality occurs in the function call data during the execution of the application, the output unit 150 may output error status information including a call position and a call time for the function in which the abnormality occurs in real time. According to an example, the output unit 150 may output error situation information in the form of a web-based dashboard.

일 예에 따라, 함수 호출 패턴 분석을 통한 이상 검출 장치(100)는 전술한 함수 호출 데이터의 수집 등과 같이 함수 호출 데이터의 이상 여부 판단에 필요한 동작을 수행함에 있어서, 해당 애플리케이션이 실행되는 시스템에서의 관리자 권한을 이용할 수 있도록 설정될 수 있다. According to an example, the abnormality detection apparatus 100 through function call pattern analysis performs an operation necessary for determining whether the function call data is abnormal, such as the collection of the above-described function call data, in the system in which the application is executed. It can be set to use administrator privileges.

이에 따르면, 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 패턴을 생성하고, 함수 호출 오토마타를 이용하여 생성된 함수 호출 패턴에 대한 이상 여부를 판단함으로써, 애플리케이션의 실행 중 이상이 발생한 호출 위치 및 호출 시간에 대한 정보를 보다 정확하게 제공할 수 있다.According to this, by generating function call patterns for functions called according to the execution of the application, and determining whether there is an abnormality in the function call pattern generated using the function call automata, the call location where the abnormality occurred during the execution of the application and Information about the call time can be provided more accurately.

이하에서는, 관련 도면을 참조하여, 함수 호출 패턴 분석을 통한 이상 검출 장치(100)의 동작에 관하여 구체적으로 설명하기로 한다.Hereinafter, with reference to the related drawings, the operation of the abnormality detection apparatus 100 through the function call pattern analysis will be described in detail.

도 2 내지 도 4는 본 개시의 일 실시예에 따른 함수 호출 관계도 및 함수 호출 오토마타(automata)를 구성하는 것을 설명하기 위한 도면이다. 2 to 4 are diagrams for explaining a function call relation diagram and configuration of a function call automata according to an embodiment of the present disclosure.

도 2를 참조하면, 애플리케이션에서 수행되는 소정의 작업에 대한 함수 호출의 일 예가 도시되어 있다. 애플리케이션은 작업을 수행함에 있어 특정 함수 호출 흐름을 따르게 된다. 예를 들어, 도 2에는 main, add, sub 함수로 구성된 간단한 애플리케이션이 도시되어 있다. 해당 애플리케이션은 main 함수로부터 시작되어, add 함수와 sub 함수를 호출하여 3+5 및 3-5를 연산하고 결과 값을 출력하는 작업을 수행하게 된다. 다만, 이는 일 예로서, 웹서버 등과 같이 서비스를 제공하는 규모가 크고 복잡한 애플리케이션의 경우에는 다수의 함수들로 구성되는 것은 당연할 것이다.Referring to FIG. 2 , an example of a function call for a predetermined operation performed in an application is illustrated. An application follows a specific function call flow to perform a task. For example, Fig. 2 shows a simple application composed of main, add, and sub functions. The application starts from the main function, calls the add function and the sub function to calculate 3+5 and 3-5, and outputs the result value. However, this is an example, and in the case of a large and complex application that provides a service, such as a web server, it will be natural to consist of a plurality of functions.

함수 호출 패턴 분석을 통한 이상 검출 장치(100)의 데이터 분석부(130)는 이상 여부 검출 대상이 되는 애플리케이션을 정적 분석(static analysis)할 수 있다. 데이터 분석부(130)는 정적 분석의 결과에 기초하여 복수의 함수들에 대한 함수 호출 관계도를 획득할 수 있다. 이 경우, 데이터 분석부(130)는 모든 애플리케이션은 main 함수로부터 시작된다는 점에 기초하여 어셈블리 함수 호출(call assembly function)을 정적 분석하여 함수 호출 관계도를 획득할 수 있다.The data analysis unit 130 of the abnormality detection apparatus 100 through function call pattern analysis may statically analyze an application that is an abnormality detection target. The data analyzer 130 may obtain a function call relation diagram for a plurality of functions based on a result of the static analysis. In this case, the data analyzer 130 may obtain a function call relation diagram by statically analyzing a call assembly function based on the fact that all applications are started from the main function.

도 3을 참조하면, 도 2의 애플리케이션에 대하여 획득된 함수 호출 관계도의 일 예가 도시되어 있다. 해당 애플리케이션은 main 함수로부터 시작하여, add 함수나 sub 함수를 호출하여 원하는 결과값을 획득한 이후, 결과값을 출력(printf)하는 함수 호출의 흐름을 따르게 된다.Referring to FIG. 3 , an example of a function call relation diagram obtained for the application of FIG. 2 is shown. The application starts from the main function, obtains the desired result by calling the add function or sub function, and then follows the flow of the function call that prints the result value (printf).

데이터 분석부(130)는 획득된 함수 호출 관계도에 기초하여 해당 애플리케이션에서 수행되는 함수 호출 패턴에 대한 함수 호출 오토마타를 구성할 수 있다. 도 4를 참조하면, 도 3에 기초하여 구성된 함수 호출 오토마타의 일 예가 도시되어 있다. 전술한 것과 같이, 함수 호출 오토마타 M은 M={Q, Σ, q, F, δ}과 같이 구성될 수 있다. 이 경우, Q는 2 개의 상태들 S1, S2의 집합, Σ은 입력 심볼인 main, add, sub, printf의 집합, q는 초기 상태인 S1, F는 최종 상태인 S2, δ는 전이 함수로 화살표에 해당할 수 있다.The data analysis unit 130 may configure a function call automata for a function call pattern performed in a corresponding application based on the obtained function call relationship diagram. Referring to FIG. 4 , an example of a function call automata constructed based on FIG. 3 is shown. As described above, the function call automata M may be configured as M = {Q, Σ, q, F, δ}. In this case, Q is the set of two states S1 and S2, Σ is the set of input symbols main, add, sub, and printf, q is the initial state S1, F is the final state S2, and δ is the transition function arrow may correspond to

즉, main 입력에 의하여 초기 상태인 S1이 되고, 이후 add, sub 입력에 의해 S1과 S2에서 전이되고, printf 입력이 주어지면 최종 상태 S2로 전이되게 된다. 즉, 최종 상태로 종결되게 되므로, 해당 입력은 함수 호출 오토마타에 의해 허용(accept)되게 된다.That is, it becomes the initial state S1 by the main input, then transitions from S1 and S2 by the add and sub inputs, and transitions to the final state S2 when the printf input is given. That is, since the final state is terminated, the corresponding input is accepted by the function call automata.

일 예에 따라, 데이터 분석부(130)는 이상 여부 검출의 대상이 되는 애플리케이션의 전체 작업에 대하여 함수 호출 오토마타를 구성할 수 있다. 이 경우, 애플리케이션의 전체 작업에 대하여 하나의 함수 호출 오토마타가 구성될 수 있다. 다만, 다른 일 예에 따라, 함수 호출 오토마타는 애플리케이션에서 수행되는 작업들 각각에 대하여 별도의 함수 호출 오토마타가 구성될 수도 있다.According to an example, the data analysis unit 130 may configure a function call automata for all tasks of an application that is a target of abnormality detection. In this case, one function call automata can be configured for the entire task of the application. However, according to another example, as for the function call automata, a separate function call automata may be configured for each of the tasks performed in the application.

일 예에 따라, 함수 호출 오토마타는, 애플리케이션에 의해 제공되는 복수의 작업들 각각에 대응하는 결정적 유한 오토마타(Deterministic Finite Automata; DFA)로 구성될 수 있다. 여기서, 결정적 유한 오토마타는 하나의 상태에서 하나의 입력이 주어지면, 하나의 상태로 전이하는 것을 의미한다. 다만, 이에 한정되는 것은 아니며, 필요에 따라, 함수 호출 오토마타는 하나의 입력에 대하여 여러 전이가 가능한 비결정적 유한 오토마타(Non-deterministic Finite Automata) 또는 ε-전이가 있는 비결정적 유한 오토마타(Non-deterministic Finite Automata with ε-transitions)로 구성될 수도 있다.According to an example, the function call automata may consist of a deterministic finite automata (DFA) corresponding to each of a plurality of tasks provided by an application. Here, the deterministic finite automata means that when one input is given in one state, it transitions to one state. However, the present invention is not limited thereto, and if necessary, the function call automata can be either a non-deterministic finite automata with multiple transitions for one input or a non-deterministic non-deterministic automata with ε-transitions. Finite Automata with ε-transitions).

일반적으로 악용되는 해킹의 경우 애플리케이션에 사용자의 입력을 받는 부분이 있으며, 해당 통로를 이용해 버퍼 오버플로우(buffer overflow)를 일으켜 권한을 탈취하거나 비정상 동작을 하도록 유도한다. 이와 같이, 규모가 큰 애플리케이션은, 공격자들의 공격 대상이 되는 경우 해당 공격의 검출이 쉽지 않다. 이와 관련, 본 개시에 따르면, 애플리케이션에서 작업들이 정상적으로 수행되는 경우의 함수 호출 오토마타를 구성함으로써, 애플리케이션의 실행 시 수집되는 함수의 호출 패턴을 함수 호출 오토마타에 입력하여, 규모가 큰 애플리케이션에 대해서도 이상 발생 여부를 실시간으로 쉽고 정확하게 판단할 수 있게 된다. 이하에서는, 함수의 호출 패턴의 수집 및 이상 여부 판단에 대하여, 관련 설명을 참조하여 설명하기로 한다.In the case of hacking that is commonly used, there is a part in the application that receives the user's input, and it causes a buffer overflow by using the corresponding channel to seize privileges or induce abnormal operation. As such, when a large-scale application becomes an attack target by attackers, it is difficult to detect the corresponding attack. In this regard, according to the present disclosure, by configuring the function call automata when tasks are normally performed in the application, the function call pattern collected when the application is executed is input to the function call automata, and an abnormality occurs even for a large-scale application It can be easily and accurately judged in real time. Hereinafter, the collection of the function call pattern and the determination of whether there is an abnormality will be described with reference to the related description.

도 5는 본 개시의 일 실시예에 따른 시스템콜 호출에 따른 함수 호출 데이터를 수집하는 것을 설명하기 위한 도면이다. 도 6은 본 개시의 일 실시예에 따른 복수의 함수에 대응하도록 구성된 비트맵을 이용하여 함수 호출 데이터를 수집하는 것을 설명하기 위한 도면이다. 도 7 내지 도 9는 본 개시의 일 실시예에 따른 함수 호출 오토마타를 이용한 함수 호출 데이터의 이상 발생 여부를 판단하는 것을 설명하기 위한 도면이다.5 is a diagram for explaining collecting function call data according to a system call call according to an embodiment of the present disclosure. 6 is a diagram for explaining collecting function call data using a bitmap configured to correspond to a plurality of functions according to an embodiment of the present disclosure. 7 to 9 are diagrams for explaining determining whether an abnormality occurs in function call data using a function call automata according to an embodiment of the present disclosure.

일 예에 따라, 데이터 수집부(110)는 애플리케이션에서 복수의 시스템 콜(system call) 중 어느 하나가 호출되는 경우, 호출된 시스템 콜에 호출 위치와 호출 시간을 기록하는 수집코드가 추가된 시스템 콜을 수집할 수 있다.According to an example, when any one of a plurality of system calls is called in the application, the data collection unit 110 is a system call to which a collection code for recording the call location and call time is added to the called system call. can be collected.

도 5를 참조하면, 기존의 시스템 콜의 경우, 애플리케이션(20)이 실행 중에 수행되는 작업에 필요한 함수를 호출하면, 시스템 콜 테이블(210)에서 해당 함수를 찾아 실행해주게 된다. 예를 들어, 애플리케이션(20)이 시스템 콜 3번(syscall3)을 호출(a)한 경우, 시스템 콜 테이블(210)에서 시스템 콜 3번(syscall3)이 호출(b)되게 된다.Referring to FIG. 5 , in the case of an existing system call, when the application 20 calls a function necessary for a task to be performed during execution, the corresponding function is found in the system call table 210 and executed. For example, when the application 20 calls the system call number 3 (syscall3) (a), the system call number 3 (syscall3) is called (b) in the system call table 210 .

이와 달리, 본 개시에서는, 데이터 수집부(110)는 커널(kernel, 200) 영역에서 시스템 콜과 동등한 권한을 갖는 모니터링 모듈(220)을 이용하여 시스템 콜 데이터를 수집할 수 있다. 즉, 데이터 수집부(110)는 모니터링 모듈(220)을 이용하여 시스템 콜 테이블을 수정(c)하여 시스템 콜 3'번(syscall3')이 대신 호출(d)되도록 시스템 콜 테이블을 수정할 수 있다.Contrary to this, in the present disclosure, the data collection unit 110 may collect system call data by using the monitoring module 220 having the same authority as the system call in the kernel 200 area. That is, the data collection unit 110 may modify the system call table by using the monitoring module 220 to modify the system call table (c) so that the system call number 3' (syscall3') is called (d) instead.

이 경우, 시스템 콜 3'번(syscall3')은 시스템 콜 3번(syscall3)과 동작은 완전히 동일하나 호출 위치와 호출 시간을 기록하는 수집코드가 추가되도록 구성될 수 있다. 데이터 수집부(110)는 호출된 시스템 콜 3'번(syscall3')으로부터 해당 시스템 콜에 대한 호출 위치 및 호출 시간을 수집할 수 있다.In this case, the system call number 3' (syscall3') has the same operation as the system call number 3 (syscall3), but may be configured to add a collection code for recording the call location and the call time. The data collection unit 110 may collect a call position and a call time for the corresponding system call from the called system call number 3' (syscall3').

다른 일 예에 따라, 데이터 수집부(110)는 애플리케이션을 구성하는 복수의 함수들 각각에 각 비트가 대응하도록 구성된 비트맵(bitmap)을 이용하여 함수 호출 데이터를 수집할 수 있다. 데이터 수집부(110)는 복수의 함수들 중에서 소정의 함수가 호출되는 경우, 비트맵에서 호출된 함수에 대응하는 비트의 값을 변경하여 호출 시간과 함께 호출된 함수에 대한 정보를 수집할 수 있다.According to another example, the data collection unit 110 may collect function call data using a bitmap configured so that each bit corresponds to each of a plurality of functions constituting an application. When a predetermined function is called from among a plurality of functions, the data collection unit 110 may change the value of a bit corresponding to the called function in the bitmap to collect information about the called function along with the call time. .

도 6을 참조하면, 데이터 수집부(110)는 애플리케이션(20)에서 호출되는 함수에 앞서 비트맵 카운터(bitmap counter)를 호출하도록 할 수 있다. 비트맵 카운터가 관리하는 비트맵(30)의 각 비트들은 애플리케이션(20)을 구성하는 복수의 함수들에 각각 대응하도록 설정될 수 있다. 예를 들어, 애플리케이션(20)을 구성하는 복수의 함수들이 도 6에 도시된 것과 같이 10개인 경우, 비트맵(30)은 10비트로 구성될 수 있다.Referring to FIG. 6 , the data collection unit 110 may call a bitmap counter prior to a function called by the application 20 . Each bit of the bitmap 30 managed by the bitmap counter may be set to respectively correspond to a plurality of functions constituting the application 20 . For example, when the plurality of functions constituting the application 20 is 10 as shown in FIG. 6 , the bitmap 30 may be composed of 10 bits.

일 예에 따라, 비트맵은 애플리케이션에서 수행되는 복수의 작업들 각각에 대하여 설정될 수 있다. 예를 들어, 애플리케이션에서 수행되는 작업의 수가 n개인 경우, n개의 비트맵이 구성될 수 있다. 이 경우, 비트맵들의 최초 m비트는 대응하는 작업을 구분하기 위한 작업 식별 영역으로 설정되고, 이후의 l 비트들이 각 작업에서 호출되는 함수들에 대응하는 함수 식별 영역으로 구성될 수 있다. 여기서, m, n은 자연수이고, m은 2m > n을 만족하는 최솟값으로 설정될 수 있다. 예를 들어, 작업의 수인 n이 100인 경우, 최초 비트 수 m은 7로 설정될 수 있다. 또한, l값은 복수의 작업들 중에서 가장 많은 함수를 호출하는 작업을 기준으로 설정될 수 있다.According to an example, the bitmap may be set for each of a plurality of tasks performed in the application. For example, when the number of operations performed in the application is n, n bitmaps may be configured. In this case, the first m bits of the bitmaps may be set as a task identification area for identifying a corresponding task, and subsequent l bits may be configured as a function identification area corresponding to functions called in each task. Here, m and n are natural numbers, and m may be set to a minimum value satisfying 2 m > n. For example, when n, which is the number of operations, is 100, the initial number of bits m may be set to 7. Also, the l value may be set based on the task that calls the most functions among the plurality of tasks.

비트맵 카운터는 호출된 함수의 위치를 ON 한 뒤에 로거(logger, 300)를 호출하여 현재 호출되고 있는 함수의 호출 시간과 함께 수집될 수 있다. 즉, 도 6에 도시된 것과 같이, 데이터 수집부(110)는 비트맵 카운터를 통하여 호출된 함수인 function2에 대응하는 두 번째 비트의 값을 1로 변경(ON)하여, 호출 시간과 함께 호출된 함수에 대한 정보를 수집할 수 있다. 이에 따라, 애플리케이션이 실행되는 동안, 호출된 함수별로 대응하는 비트맵이 호출 시간과 함께 수집될 수 있다.The bitmap counter can be collected together with the call time of the function currently being called by calling the logger 300 after turning on the location of the called function. That is, as shown in FIG. 6 , the data collection unit 110 changes (ON) the value of the second bit corresponding to function2, which is a function called through the bitmap counter, to 1, and is called with the call time. You can collect information about functions. Accordingly, while the application is running, a bitmap corresponding to each called function may be collected along with the call time.

도 7을 참조하면, 데이터 수집부(110)에 의해 수집된 함수 호출 데이터의 일 예가 도시되어 있다. 표시된 함수 호출 데이터의 각 행은 호출된 함수에 대한 정보를 나타낸다.Referring to FIG. 7 , an example of function call data collected by the data collection unit 110 is illustrated. Each row of displayed function call data represents information about the called function.

호출 번호(40)는 호출된 함수에 부여된 번호에 해당한다. 예를 들어, open 함수에 0번이 부여된 경우, 첫 행은 open 함수가 호출되었다는 것을 의미한다. 호출 시간(41)은 애플리케이션의 실행에 따라 해당 함수가 호출된 시간을 의미한다. 호출 프로세스(42)는 해당 함수가 호출된 프로세스를 의미한다.The call number 40 corresponds to a number assigned to the called function. For example, if 0 is assigned to the open function, the first line means that the open function is called. The call time 41 means the time at which the corresponding function is called according to the execution of the application. The calling process 42 means a process in which the corresponding function is called.

데이터 수집부(110)는 수집된 시스템 콜과 호출된 함수에 대한 정보에 기초하여 함수 호출 패턴을 생성할 수 있다. 즉, 함수 호출 패턴은 애플리케이션에서 제공되는 복수의 작업들 중에서 현재 실행 중인 작업을 수행하는데 필요한 함수들이 호출되는 순서 및 시간 정보를 포함할 수 있다.The data collection unit 110 may generate a function call pattern based on the collected system call and information on the called function. That is, the function call pattern may include information about the order and time in which functions required to perform a currently executing task among a plurality of tasks provided by the application are called.

예를 들어, 도 7을 참조하면, 해당 함수 호출 패턴은 011211213으로 생성될 수 있다. 이는, 해당 애플리케이션이 실행되는 동안, 0, 1, 2, 3번에 대응하는 총 4개의 함수가 호출되었으며, 순서는 011211213의 순서로 호출되었다는 것을 의미한다. 이하에서는, 설명의 편의를 위하여, 일 예에 따라, 0번은 open 함수, 1번은 read 함수, 2번은 write 함수, 3번은 close 함수에 각각 부여되어 있는 경우를 가정한다.For example, referring to FIG. 7 , a corresponding function call pattern may be generated as 011211213. This means that while the corresponding application was running, a total of 4 functions corresponding to 0, 1, 2, and 3 were called, and the sequence was called 011211213. Hereinafter, for convenience of description, it is assumed that, according to an example, 0 is assigned to an open function, 1 is a read function, 2 is a write function, and 3 is a close function, respectively.

도 8을 참조하면, 애플리케이션에서 수행되는 웹페이지의 호출 작업에 대하여 구성된 함수 호출 오토마타의 일 예가 도시되어 있다. 웹페이지 호출 작업에 대하여 웹 서버는 파일을 열고(open), 읽어서(read), 사용자에게 전달(write)하는 일련의 흐름으로 설정되며, 이에 기초하여 함수 호출 오토마타가 미리 구성되어 저장될 수 있다.Referring to FIG. 8 , an example of a function call automata configured for a call operation of a web page performed in an application is illustrated. For the web page call operation, the web server is set as a series of flows for opening, reading, and writing a file, and based on this, a function call automata may be pre-configured and stored.

데이터 분석부(130)는 애플리케이션의 실행에 따라 수집된 함수 호출 데이터를 함수 호출 오토마타에 입력 심볼로서 입력하여 함수 호출 데이터의 이상 여부를 분석할 수 있다. 데이터 분석부(130)는 함수 호출 패턴을 함수 호출 오토마타에 입력하고, 해당 입력이 허용(accept)되거나 거절(reject)되는지 여부에 따라, 함수 호출 데이터에 이상의 발생 여부를 판단할 수 있다.The data analysis unit 130 may analyze whether the function call data is abnormal by inputting the function call data collected according to the execution of the application as an input symbol to the function call automata. The data analysis unit 130 may input a function call pattern into the function call automata, and determine whether an abnormality occurs in the function call data according to whether the input is accepted or rejected.

예를 들어, 전술한 것과 같이, 해당 애플리케이션이 실행되어, 웹페이지 호출 작업이 수행될 때, 함수 호출 패턴이 011211213로 수집된 경우를 가정한다. 0번이 부여된 open 함수가 호출되어 초기 상태 S1이 된다. 이후, 1번이 부여된 read 함수가 호출되어 S2 상태로 전이된다. 다시, 1번이 부여된 read 함수가 호출되어 S2 상태가 유지된다. 이후, 2번이 부여된 write 함수가 호출되어 S3 상태로 전이된다. 계속하여, 1번이 부여된 read 함수가 호출되어 S2 상태로 전이된다. 다시, 1번이 부여된 read 함수가 호출되어 S2 상태가 유지된다. 이후, 2번이 부여된 write 함수가 호출되어 S3 상태로 전이된다. 이후, 1번이 부여된 read 함수가 호출되어 S2 상태로 전이된다. 마지막으로, 3번이 부여된 close 함수가 호출되어, 최종 상태인 S4 상태로 전이된다.For example, as described above, it is assumed that a function call pattern is collected as 011211213 when a corresponding application is executed and a web page call operation is performed. The open function assigned with number 0 is called and the initial state is S1. Thereafter, the read function assigned to No. 1 is called and transitions to the S2 state. Again, the read function assigned No. 1 is called and the S2 state is maintained. After that, the write function assigned No. 2 is called and it transitions to the S3 state. Subsequently, the read function assigned to No. 1 is called and transitions to the S2 state. Again, the read function assigned No. 1 is called and the S2 state is maintained. After that, the write function assigned No. 2 is called and it transitions to the S3 state. Thereafter, the read function assigned to No. 1 is called and transitions to the S2 state. Finally, the close function given No. 3 is called, and it transitions to the final state, S4 state.

이와 같이, 해당 함수 호출 패턴이 입력된 결과 함수 호출 오토마타는 최종 상태에 있게 된다. 따라서, 해당 함수 호출 패턴은 함수 호출 오토마타를 구성한 규칙을 만족하게 되어, 허용(accept)되게 된다. 즉, 웹페이지 호출 작업의 정상적인 함수 호출 패턴에 기초하여 구성된 함수 호출 오토마타에, 현재 실행된 웹페이지 호출 작업에 따라 수집된 함수 호출 패턴이 입력되어 허용(accept)되었으므로, 정상적으로 웹페이지 호출 작업이 수행되었다는 것을 알 수 있다. 따라서, 데이터 분석부(130)는 수집된 함수 호출 데이터를 정상으로 판단할 수 있다.As such, the function call automata are in the final state as a result of inputting the corresponding function call pattern. Accordingly, the corresponding function call pattern satisfies the rules constituting the function call automata and is accepted. In other words, the function call automata configured based on the normal function call pattern of the web page call job was entered and accepted according to the currently executed web page call job, so the web page calling job is normally performed. it can be seen that Accordingly, the data analysis unit 130 may determine that the collected function call data is normal.

도 9를 참조하면, 도 7과 동일한 웹페이지 호출 작업을 수행 중에 수집된 다른 함수 호출 데이터가 도시되어 있다. 예를 들어, 해당 애플리케이션이 실행되어, 웹페이지 호출 작업이 수행될 때, 함수 호출 패턴이 011211413로 수집된 경우를 가정한다. 해당 함수 호출 패턴 중 011211까지는 동일하므로, 함수 호출 오토마타는 S2 상태에 해당한다. 이후, 4번이 부여된 소정의 함수가 호출되었으므로 해당 함수 호출 오토마타에서 다른 상태로의 전이가 불가하게 된다. 따라서, 최종적으로 최종 상태인 S4 상태로 전이되지 않는다.Referring to FIG. 9 , other function call data collected while performing the same web page call operation as in FIG. 7 is shown. For example, it is assumed that the function call pattern is collected as 011211413 when the corresponding application is executed and a web page call operation is performed. Since 011211 among the corresponding function call patterns is the same, the function call automata corresponds to the S2 state. Thereafter, since the predetermined function assigned No. 4 is called, the transition from the function call automata to another state is impossible. Therefore, it does not finally transition to the final state, S4 state.

이와 같이, 해당 함수 호출 패턴이 입력된 결과 함수 호출 오토마타는 최종 상태에 있지 않게 된다. 따라서, 해당 함수 호출 패턴은 함수 호출 오토마타를 구성한 규칙을 만족하지 않게 되어, 거절(reject)되게 된다. 즉, 웹페이지 호출 작업의 정상적인 함수 호출 패턴에 기초하여 구성된 함수 호출 오토마타에, 현재 실행된 웹페이지 호출 작업에 따라 수집된 함수 호출 패턴이 입력되어 거절(reject)되었으므로, 웹페이지 호출 작업이 정상적으로 수행되지 못했다는 것을 알 수 있다. 따라서, 데이터 분석부(130)는 수집된 함수 호출 데이터에 이상이 발생한 것으로 판단할 수 있다.As such, the function call automata are not in the final state as a result of inputting the corresponding function call pattern. Accordingly, the corresponding function call pattern does not satisfy the rules constituting the function call automata, and is rejected. In other words, the function call automata configured based on the normal function call pattern of the web page call job was inputted and rejected according to the currently executed web page call job, so the web page calling job is normally performed. It can be seen that it did not Accordingly, the data analysis unit 130 may determine that an abnormality has occurred in the collected function call data.

데이터 분석부(130)는 이상이 발생했다고 판단된 경우, 함수 호출 오토마타에서 이상이 발생한 전이 함수를 확인할 수 있다. 즉, 함수 호출 패턴 011211413 중 011211까지는 정상적으로 상태 전이가 수행되었으므로, 데이터 분석부(130)는 함수 호출 패턴 011211413 중 호출된 4번 함수의 호출 위치 및 호출 시간에 대한 정보를 획득할 수 있다.When it is determined that an abnormality has occurred, the data analysis unit 130 may identify a transition function in which an abnormality has occurred in the function call automata. That is, since the state transition was normally performed up to 011211 in the function call pattern 011211413, the data analysis unit 130 may obtain information on the call location and call time of the fourth function called in the function call pattern 011211413.

데이터 분석부(130)는 획득된 이상이 발생한 함수에 대한 호출 위치 및 호출 시간 정보에 대한 오류 상황 정보를 생성하여, 출력부(150)로 전송할 수 있다.The data analyzer 130 may generate error condition information on the call location and call time information for the acquired abnormal function and transmit it to the output unit 150 .

출력부(150)는 이상이 발생한 함수에 대한 호출 위치 및 호출 시간을 포함하는 오류 상황 정보를 실시간으로 출력할 수 있다. 일 예에 따라, 출력부(150)는 웹 기반 대시보드(dashboard)의 형태로 오류 상황 정보를 출력하여 사용자에게 제공할 수 있다.The output unit 150 may output error status information including a call position and a call time for the function in which the abnormality occurred in real time. According to an example, the output unit 150 may output error situation information in the form of a web-based dashboard and provide it to the user.

이에 따르면, 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 패턴을 생성하고, 함수 호출 오토마타를 이용하여 생성된 함수 호출 패턴에 대한 이상 여부를 판단함으로써, 애플리케이션의 실행 중 이상이 발생한 호출 위치 및 호출 시간에 대한 정보를 보다 정확하게 제공할 수 있다. 또한, 기존 종래기술과 같이 애플리케이션의 실행 시의 이상 여부 판단을 위하여 시스템의 온도 등을 감지한 센서 데이터를 이용하는 것이 아닌, 애플리케이션의 함수 호출 패턴을 모니터링함으로써, 쉽게 이상 발생 여부 판단 및 이상이 발생한 함수의 호출 위치 및 호출 시간을 정확하게 확인할 수 있다.According to this, by generating function call patterns for functions called according to the execution of the application, and determining whether there is an abnormality in the function call pattern generated using the function call automata, the call location where the abnormality occurred during the execution of the application and Information about the call time can be provided more accurately. In addition, as in the prior art, by monitoring the function call pattern of the application, rather than using sensor data that sensed the temperature of the system, etc. to determine whether there is an abnormality when the application is executed, it is easy to determine whether an abnormality occurs and the function where the abnormality occurs You can check the exact call location and call time.

본 개시에 따른 함수 호출 패턴 분석을 통한 이상 검출 방법은, 도 1을 참조하여 설명한 함수 호출 패턴 분석을 통한 이상 검출 장치(100)에서 구현될 수 있다. 이하 필요한 도면들을 참조하여, 본 개시에 따른 함수 호출 패턴 분석을 통한 이상 검출 방법과, 이를 구현하기 위한 함수 호출 패턴 분석을 통한 이상 검출 장치(100)의 동작을 설명하기로 한다. The abnormality detection method through function call pattern analysis according to the present disclosure may be implemented in the apparatus 100 for abnormality detection through function call pattern analysis described with reference to FIG. 1 . Hereinafter, an abnormality detection method through function call pattern analysis according to the present disclosure and an operation of the abnormality detection apparatus 100 through function call pattern analysis for implementing the method will be described with reference to necessary drawings.

도 10은 본 개시의 일 실시예에 따른 함수 호출 패턴 분석을 통한 이상 검출 방법에 대한 흐름도이다.10 is a flowchart of an abnormality detection method through function call pattern analysis according to an embodiment of the present disclosure.

도 10을 참조하면, 함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션을 구성하는 복수의 함수들에 대한 함수 호출 오토마타(automata)를 구성할 수 있다[S110].Referring to FIG. 10 , the apparatus for detecting abnormality through function call pattern analysis may configure a function call automata for a plurality of functions constituting an application [S110].

함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션을 구성하는 복수의 함수들이 호출되는 정상적인 패턴에 대한 함수 호출 오토마타를 구성할 수 있다. 함수 호출 패턴 분석을 통한 이상 검출 장치는 함수들이 호출되는 순서에 기초하여 애플리케이션을 구성하는 복수의 함수들에 대한 함수 호출 관계도를 구성할 수 있다. 함수 호출 패턴 분석을 통한 이상 검출 장치는 함수 호출 관계도에 기초하여 복수의 함수들에 대한 함수 호출 오토마타를 구성할 수 있다.The abnormality detection apparatus through function call pattern analysis may configure a function call automata for a normal pattern in which a plurality of functions constituting an application are called. The apparatus for detecting abnormality through function call pattern analysis may configure a function call relationship diagram for a plurality of functions constituting an application based on the order in which the functions are called. The apparatus for detecting abnormality through function call pattern analysis may configure function call automata for a plurality of functions based on the function call relationship diagram.

일 예에 따라, 함수 호출 오토마타는 유한 오토마타(finite automata)로 구성될 수 있다. 유한 오토마타 M={Q, Σ, q, F, δ}로 정의되며, 여기서, Q는 유한한 개수의 상태들의 집합, Σ은 입력 심볼의 집합, q는 초기 상태, F는 최종 상태의 집합, δ는 전이 함수를 의미할 수 있다.According to an example, the function call automata may consist of a finite automata. A finite automata is defined as M={Q, Σ, q, F, δ}, where Q is a set of a finite number of states, Σ is a set of input symbols, q is an initial state, F is a set of final states, δ may mean a transition function.

함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션에서 실행되는 동작들에 기초하여 애플리케이션의 상태를 유한한 개수의 집합(Q)으로 결정할 수 있다. 결정된 상태들은 초기 상태(q)와 최종 상태(F)를 가질 수 있다. 초기 상태는 하나로 결정되나, 최종 상태는 복수 개로 결정될 수 있다.The apparatus for detecting abnormality through function call pattern analysis may determine the state of the application as a finite number of sets (Q) based on operations executed in the application. The determined states may have an initial state (q) and a final state (F). One initial state may be determined, but a plurality of final states may be determined.

함수 호출 패턴 분석을 통한 이상 검출 장치는 함수 호출 관계도에 기초하여, 복수의 함수들 각각에 대응하는 심볼을 설정할 수 있다. 복수의 함수들 각각에 대응하는 심볼들은 함수 호출 오토마타에 대한 입력 심볼의 집합(Σ)으로 결정될 수 있다.The apparatus for detecting abnormality through function call pattern analysis may set a symbol corresponding to each of the plurality of functions based on the function call relationship diagram. Symbols corresponding to each of the plurality of functions may be determined as a set of input symbols (Σ) for the function call automata.

함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션에서 실행되는 동작들에 따라 호출되는 함수들의 순서들 및 해당 함수의 실행으로 인한 상태 변화에 기초하여 전이 함수(δ)를 결정할 수 있다. 이를 통하여, 함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션의 실행에 따른 정상 범주의 함수 호출 패턴에 대한 오토마타를 구성할 수 있다.The apparatus for detecting abnormality through function call pattern analysis may determine the transition function δ based on the order of functions called according to operations executed in the application and a state change due to the execution of the corresponding function. Through this, the apparatus for detecting abnormality through function call pattern analysis may configure an automata for a function call pattern of a normal category according to the execution of the application.

다시, 도 10을 참조하면, 함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 데이터를 수집할 수 있다[S120]. Again, referring to FIG. 10 , the apparatus for detecting abnormality through function call pattern analysis may collect function call data for functions called according to the execution of the application [S120].

함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션이 실행되면, 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 데이터를 수집할 수 있다. 사용자 애플리케이션은 함수들의 집합으로 구성되며, 애플리케이션이 제공하는 동작들 중 어느 하나의 실행이 지시되면, 해당 동작의 실행을 위하여 필요한 함수들이 순차적으로 호출될 수 있다.When an application is executed, the apparatus for detecting abnormality through function call pattern analysis may collect function call data for functions called according to the execution of the application. A user application is composed of a set of functions, and when the execution of any one of the operations provided by the application is instructed, functions necessary for the execution of the corresponding operation may be called sequentially.

일 예에 따라, 사용자 애플리케이션은 함수들의 집합으로 구성되면 커널(kernel) 영역에서의 모니터링 모듈을 이용하여 시스템 콜(system call) 데이터를 수집할 수 있다. 함수 호출 패턴 분석을 통한 이상 검출 장치는 시스템 콜과 동등한 권한을 갖는 모니터링 모듈을 이용하여, 동작은 완전히 동일하나 호출 위치와 호출 시간을 기록하는 수집코드가 추가된 시스템 콜이 호출되도록 시스템 콜 테이블을 수정할 수 있다. 함수 호출 패턴 분석을 통한 이상 검출 장치는 호출된 시스템 콜로부터 호출 위치 및 호출 시간을 수집할 수 있다.According to an example, when the user application is composed of a set of functions, system call data may be collected by using a monitoring module in a kernel area. The abnormal detection device through function call pattern analysis uses a monitoring module with the same authority as the system call, and the operation is exactly the same, but the system call table is created so that the system call with the collection code that records the call location and call time is called. Can be modified. An anomaly detection device through function call pattern analysis may collect a call position and a call time from the called system call.

또는, 일 예에 따라, 함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션에서 호출되는 함수 앞에서 비트맵 카운터(bitmap counter)를 호출할 수 있다. 함수 호출 패턴 분석을 통한 이상 검출 장치는 복수의 함수들 각각에 각 비트가 대응하도록 구성된 비트맵에서 호출되고 있는 함수에 대응하는 비트의 값을 변경하여, 호출 시간과 함께 호출된 함수에 대한 정보를 수집할 수 있다.Alternatively, according to an example, the apparatus for detecting abnormality through function call pattern analysis may call a bitmap counter in front of a function called by an application. The abnormality detection device through function call pattern analysis changes the value of the bit corresponding to the function being called in the bitmap configured so that each bit corresponds to each of the plurality of functions, and provides information about the called function along with the call time. can be collected

함수 호출 패턴 분석을 통한 이상 검출 장치는 수집된 시스템 콜 또는 호출된 함수에 대한 정보에 기초하여 함수 호출 패턴을 함수 호출 데이터로서 생성할 수 있다. 즉, 함수 호출 패턴은 애플리케이션에서 제공되는 복수의 동작들 중에서 현재 실행 중인 동작을 수행하는데 필요한 함수들이 호출되는 순서 및 시간 정보를 포함할 수 있다. The abnormality detection apparatus through function call pattern analysis may generate a function call pattern as function call data based on the collected system call or information about the called function. That is, the function call pattern may include information on the order and time in which functions required to perform an operation currently being executed among a plurality of operations provided by the application are called.

다시, 도 10을 참조하면, 함수 호출 패턴 분석을 통한 이상 검출 장치는 함수 호출 데이터를 함수 호출 오토마타에 입력하여 함수 호출 데이터의 이상(anomaly) 여부를 분석할 수 있다[S130].Again, referring to FIG. 10 , the apparatus for detecting anomaly through function call pattern analysis may analyze whether the function call data is anomaly by inputting the function call data into the function call automata [S130].

함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션의 실행에 따라 수집된 함수 호출 데이터를 함수 호출 오토마타에 입력하여 함수 호출 데이터의 이상 여부를 분석할 수 있다. 함수 호출 패턴 분석을 통한 이상 검출 장치는 생성된 함수 호출 패턴을 함수 호출 오토마타에 입력 심볼로서 입력할 수 있다. The apparatus for detecting abnormality through function call pattern analysis may analyze whether the function call data is abnormal by inputting the function call data collected according to the execution of the application into the function call automata. The apparatus for detecting abnormality through function call pattern analysis may input the generated function call pattern as an input symbol to the function call automata.

만약, 수집된 함수 호출 데이터에 따른 함수들의 호출 패턴이 해당 애플리케이션의 실행에 대하여 설정된 정상 범주의 함수 호출 패턴과 일치하는 경우, 해당 입력은 함수 호출 오토마타에 의해 허용(accept)된다. 이 경우, 함수 호출 패턴 분석을 통한 이상 검출 장치는 함수들의 호출 패턴이 정상이라고 판단할 수 있다.If the function call pattern according to the collected function call data matches the function call pattern of the normal category set for the execution of the corresponding application, the corresponding input is accepted by the function call automata. In this case, the apparatus for detecting abnormality through function call pattern analysis may determine that the function call patterns are normal.

이와 반대로, 수집된 함수 호출 데이터에 따른 함수들의 호출 패턴이 해당 애플리케이션의 실행에 대하여 설정된 정상 범주의 함수 호출 패턴과 일치하지 않는 경우, 해당 입력은 함수 호출 오토마타에 의해 거절(reject)된다. 이 경우, 함수 호출 패턴 분석을 통한 이상 검출 장치는 함수들의 호출 패턴에 이상이 발생했다고 판단할 수 있다.Conversely, when the function call pattern according to the collected function call data does not match the function call pattern of the normal category set for the execution of the corresponding application, the corresponding input is rejected by the function call automata. In this case, the apparatus for detecting an abnormality by analyzing the function call pattern may determine that an abnormality has occurred in the calling pattern of the functions.

함수 호출 패턴 분석을 통한 이상 검출 장치는 이상이 발생했다고 판단된 경우, 함수 호출 오토마타에서 이상이 발생한 전이 함수를 확인할 수 있다. 즉, 함수 호출 패턴 분석을 통한 이상 검출 장치는 다른 상태로의 전이가 미리 정해진 설정 이외의 상태로 발생된 분기점을 찾고, 해당 분기점에 대응하는 함수에 대한 호출 위치 및 호출 시간 정보를 획득할 수 있다.When it is determined that an abnormality has occurred, the abnormality detection apparatus through function call pattern analysis may identify a transition function in which an abnormality has occurred in the function call automata. That is, the abnormality detection device through function call pattern analysis finds a branch point where the transition to another state occurs in a state other than a predetermined setting, and obtains call location and call time information for the function corresponding to the branch point. .

다시, 도 10을 참조하면, 함수 호출 패턴 분석을 통한 이상 검출 장치는 함수 호출 데이터에 이상이 발생한 것으로 판단되는 경우, 이상이 발생된 함수에 대한 호출 위치 및 호출 시간을 포함하는 오류 상황 정보를 출력할 수 있다[S140].Again, referring to FIG. 10 , when it is determined that an abnormality has occurred in the function call data, the abnormality detection apparatus through function call pattern analysis outputs error situation information including the call location and call time for the function in which the abnormality occurs. It can be done [S140].

함수 호출 패턴 분석을 통한 이상 검출 장치는 애플리케이션의 실행 동안 함수 호출 데이터에 이상이 발생하는 경우, 획득된 이상이 발생한 함수에 대한 호출 위치 및 호출 시간 정보에 대한 오류 상황 정보를 생성할 수 있다. 함수 호출 패턴 분석을 통한 이상 검출 장치는 오류 상황 정보를 실시간으로 출력할 수 있다. 일 예에 따라, 함수 호출 패턴 분석을 통한 이상 검출 장치는 웹 기반 대시보드(dashboard)의 형태로 오류 상황 정보를 출력할 수 있다.When an abnormality occurs in the function call data during the execution of the application, the abnormality detection apparatus through function call pattern analysis may generate error status information about the acquired abnormality function call location and call time information. The abnormality detection device through function call pattern analysis may output error status information in real time. According to an example, the apparatus for detecting abnormality through function call pattern analysis may output error situation information in the form of a web-based dashboard.

이에 따르면, 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 패턴을 생성하고, 함수 호출 오토마타를 이용하여 생성된 함수 호출 패턴에 대한 이상 여부를 판단함으로써, 애플리케이션의 실행 중 이상이 발생한 호출 위치 및 호출 시간에 대한 정보를 보다 정확하게 제공할 수 있다. According to this, by generating function call patterns for functions called according to the execution of the application, and determining whether there is an abnormality in the function call pattern generated using the function call automata, the call location where the abnormality occurred during the execution of the application and Information about the call time can be provided more accurately.

일 실시예에 따라, 함수 호출 패턴 분석을 통한 이상 검출 방법은 애플리케이션의 실행 시 이상 여부를 검출하기 위한 프로그램을 기록한 기록매체로 구현될 수 있다. 이 경우, 일 예에 따라, 함수 호출 패턴 분석을 통한 이상 검출 방법은 웹 기반 대시보드 소프트웨어로 구현되어 기록매체에 기록될 수 있다. 이에 따라, 함수 호출 패턴 분석을 통한 이상 검출 장치의 각 구성은 전술한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체의 구성 기능으로 각각 구현될 수 있다.According to an embodiment, the method for detecting abnormality through function call pattern analysis may be implemented as a recording medium in which a program for detecting abnormality when an application is executed is recorded. In this case, according to an example, the abnormal detection method through function call pattern analysis may be implemented as web-based dashboard software and recorded on a recording medium. Accordingly, each configuration of the apparatus for detecting abnormality through function call pattern analysis may be implemented as a configuration function of a computer-readable recording medium in which the above-described program is recorded.

이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시는 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 개시의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 개시의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체 등이 포함될 수 있다.In the above, even though all the components constituting the embodiment of the present disclosure are described as being combined or combined to operate as one, the present disclosure is not necessarily limited to this embodiment. That is, within the scope of the present disclosure, all of the components may operate by selectively combining one or more. In addition, all of the components may be implemented as one independent hardware, but some or all of the components are selectively combined to perform some or all functions of the combined components in one or a plurality of hardware program modules It may be implemented as a computer program having Codes and code segments constituting the computer program can be easily inferred by those skilled in the art of the present disclosure. Such a computer program is stored in a computer readable storage medium (Computer Readable Media), read and executed by the computer, thereby implementing the embodiment of the present disclosure. The storage medium of the computer program may include a magnetic recording medium, an optical recording medium, and the like.

또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 개시에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, terms such as "comprises", "comprises" or "have" described above mean that the corresponding component may be embedded, unless otherwise stated, so that other components are excluded. Rather, it should be construed as being able to further include other components. All terms, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs, unless otherwise defined. Commonly used terms, such as those defined in the dictionary, should be interpreted as being consistent with the meaning of the context of the related art, and are not to be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present disclosure.

이상의 설명은 본 개시의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 개시에 개시된 실시예들은 본 개시의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 개시의 기술 사상의 범위가 한정되는 것은 아니다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical spirit of the present disclosure, and various modifications and variations will be possible without departing from the essential characteristics of the present disclosure by those of ordinary skill in the art to which the present disclosure pertains. Therefore, the embodiments disclosed in the present disclosure are for explanation rather than limiting the technical spirit of the present disclosure, and the scope of the technical spirit of the present disclosure is not limited by these embodiments. The protection scope of the present disclosure should be construed by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present disclosure.

100: 함수 호출 패턴 분석을 통한 이상 검출 장치
110: 데이터 수집부 130: 데이터 분석부
150: 출력부
100: Anomaly detection device through function call pattern analysis
110: data collection unit 130: data analysis unit
150: output unit

Claims (14)

애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 데이터를 수집하는 데이터 수집부;
상기 애플리케이션을 구성하는 복수의 함수들에 대한 함수 호출 오토마타(automata)를 구성하고, 상기 함수 호출 데이터를 상기 함수 호출 오토마타에 입력하여 상기 함수 호출 데이터의 이상(anomaly) 여부를 분석하는 데이터 분석부; 및
상기 함수 호출 데이터에 이상이 발생한 것으로 판단되는 경우, 이상이 발생된 함수에 대한 호출 위치 및 호출 시간을 포함하는 오류 상황 정보를 출력하는 출력부;
를 포함하고,
상기 데이터 수집부는,
애플리케이션에서 복수의 시스템 콜(system call) 중 어느 하나가 호출되는 경우, 커널 영역에서 시스템 콜과 동등한 권한을 갖는 모니터링 모듈을 이용하여 호출된 시스템 콜에 호출 위치와 호출 시간을 기록하는 수집코드를 추가하고, 상기 수집코드가 추가된 시스템 콜을 수집하는 함수 호출 패턴 분석을 통한 이상 검출 장치.
a data collection unit that collects function call data for functions called according to the execution of the application;
a data analysis unit that configures a function call automata for a plurality of functions constituting the application, inputs the function call data to the function call automata, and analyzes whether the function call data is anomaly; and
an output unit for outputting error condition information including a call location and a call time for the function in which the abnormality occurs when it is determined that an abnormality has occurred in the function call data;
including,
The data collection unit,
When any one of a plurality of system calls is called in the application, a collection code that records the call location and call time is added to the called system call by using a monitoring module that has the same authority as the system call in the kernel area. and an abnormality detection device through function call pattern analysis that collects system calls to which the collection code is added.
제 1 항에 있어서,
상기 데이터 분석부는,
상기 애플리케이션을 정적 분석(static analysis)하여, 상기 복수의 함수들에 대한 함수 호출 관계도를 획득하고, 상기 함수 호출 관계도에 기초하여 상기 함수 호출 오토마타를 구성하는 함수 호출 패턴 분석을 통한 이상 검출 장치.
The method of claim 1,
The data analysis unit,
Anomaly detection apparatus through function call pattern analysis that statically analyzes the application, obtains a function call relation diagram for the plurality of functions, and configures the function call automata based on the function call relation diagram .
제 1 항에 있어서,
상기 함수 호출 오토마타는,
상기 애플리케이션에 의해 제공되는 복수의 작업들 각각에 대응하는 결정적 유한 오토마타(Deterministic Finite Automata; DFA)로 구성되는 함수 호출 패턴 분석을 통한 이상 검출 장치.
The method of claim 1,
The function call automata is,
An anomaly detection apparatus through function call pattern analysis comprising a deterministic finite automata (DFA) corresponding to each of a plurality of tasks provided by the application.
삭제delete 제 1 항에 있어서,
상기 데이터 수집부는,
상기 애플리케이션을 구성하는 복수의 함수들 각각에 각 비트가 대응하도록 구성된 비트맵(bitmap)을 이용하여, 상기 복수의 함수들 중에서 소정의 함수가 호출되는 경우, 상기 비트맵에서 상기 호출된 함수에 대응하는 비트의 값을 변경하여 호출 시간과 함께 상기 호출된 함수에 대한 정보를 수집하는 함수 호출 패턴 분석을 통한 이상 검출 장치.
The method of claim 1,
The data collection unit,
When a predetermined function is called from among the plurality of functions by using a bitmap configured so that each bit corresponds to each of the plurality of functions constituting the application, the bitmap corresponds to the called function An anomaly detection device through function call pattern analysis that collects information about the called function along with the call time by changing the value of the bit to be called.
제 5 항에 있어서,
상기 데이터 수집부는,
상기 수집된 시스템 콜과 상기 호출된 함수에 대한 정보에 기초하여 함수 호출 패턴을 생성하는 함수 호출 패턴 분석을 통한 이상 검출 장치.
6. The method of claim 5,
The data collection unit,
An abnormality detection apparatus through function call pattern analysis for generating a function call pattern based on the collected system call and information on the called function.
제 6 항에 있어서,
상기 데이터 분석부는,
상기 함수 호출 패턴을 상기 함수 호출 오토마타에 입력하여 거절(reject)되는 경우, 상기 함수 호출 데이터에 이상이 발생한 것으로 판단하는 함수 호출 패턴 분석을 통한 이상 검출 장치.
7. The method of claim 6,
The data analysis unit,
When the function call pattern is input into the function call automata and rejected, it is determined that an abnormality has occurred in the function call data.
애플리케이션을 구성하는 복수의 함수들에 대한 함수 호출 오토마타(automata)를 구성하는 단계;
상기 애플리케이션의 실행에 따라 호출되는 함수들에 대한 함수 호출 데이터를 수집하는 단계;
상기 함수 호출 데이터를 상기 함수 호출 오토마타에 입력하여 상기 함수 호출 데이터의 이상(anomaly) 여부를 분석하는 단계; 및
상기 함수 호출 데이터에 이상이 발생한 것으로 판단되는 경우, 이상이 발생된 함수에 대한 호출 위치 및 호출 시간을 포함하는 오류 상황 정보를 출력하는 단계;
를 포함하고,
상기 데이터를 수집하는 단계는,
애플리케이션에서 복수의 시스템 콜(system call) 중 어느 하나가 호출되는 경우, 커널 영역에서 시스템 콜과 동등한 권한을 갖는 모니터링 모듈을 이용하여 호출된 시스템 콜에 호출 위치와 호출 시간을 기록하는 수집코드를 추가하고, 상기 수집코드가 추가된 시스템 콜을 수집하는 함수 호출 패턴 분석을 통한 이상 검출 방법.
constructing a function call automata for a plurality of functions constituting an application;
collecting function call data for functions called according to the execution of the application;
analyzing whether the function call data is anomaly by inputting the function call data into the function call automata; and
outputting error condition information including a call location and a call time for the function in which the abnormality occurred when it is determined that an abnormality has occurred in the function call data;
including,
Collecting the data includes:
When any one of a plurality of system calls is called in the application, a collection code that records the call location and call time is added to the called system call by using a monitoring module that has the same authority as the system call in the kernel area. and an abnormality detection method through function call pattern analysis that collects system calls to which the collection code is added.
제 8 항에 있어서,
상기 함수 호출 오토마타를 구성하는 단계는,
상기 애플리케이션을 정적 분석(static analysis)하여, 상기 복수의 함수들에 대한 함수 호출 관계도를 획득하고, 상기 함수 호출 관계도에 기초하여 상기 함수 호출 오토마타를 구성하는 함수 호출 패턴 분석을 통한 이상 검출 방법.
9. The method of claim 8,
The step of constructing the function call automata is,
Anomaly detection method through function call pattern analysis for static analysis of the application, obtaining a function call relation diagram for the plurality of functions, and configuring the function call automata based on the function call relation diagram .
제 8 항에 있어서,
상기 함수 호출 오토마타는,
상기 애플리케이션에 의해 제공되는 복수의 작업들 각각에 대응하는 결정적 유한 오토마타(Deterministic Finite Automata; DFA)로 구성되는 함수 호출 패턴 분석을 통한 이상 검출 방법.
9. The method of claim 8,
The function call automata is,
Anomaly detection method through function call pattern analysis consisting of a deterministic finite automata (DFA) corresponding to each of a plurality of tasks provided by the application.
삭제delete 제 8 항에 있어서,
상기 함수 호출 데이터를 수집하는 단계는,
상기 애플리케이션을 구성하는 복수의 함수들 각각에 각 비트가 대응하도록 구성된 비트맵(bitmap)을 이용하여, 상기 복수의 함수들 중에서 소정의 함수가 호출되는 경우, 상기 비트맵에서 상기 호출된 함수에 대응하는 비트의 값을 변경하여 호출 시간과 함께 상기 호출된 함수에 대한 정보를 수집하는 함수 호출 패턴 분석을 통한 이상 검출 방법.
9. The method of claim 8,
Collecting the function call data includes:
When a predetermined function is called from among the plurality of functions by using a bitmap configured so that each bit corresponds to each of the plurality of functions constituting the application, the bitmap corresponds to the called function An anomaly detection method through function call pattern analysis that collects information about the called function along with the call time by changing the value of the bit to be called.
제 12 항에 있어서,
상기 함수 호출 데이터를 수집하는 단계는,
상기 수집된 시스템 콜과 상기 호출된 함수에 대한 정보에 기초하여 함수 호출 패턴을 생성하는 함수 호출 패턴 분석을 통한 이상 검출 방법.
13. The method of claim 12,
Collecting the function call data includes:
An anomaly detection method through function call pattern analysis for generating a function call pattern based on the collected system call and information on the called function.
제 13 항에 있어서,
상기 함수 호출 데이터의 이상 여부를 분석하는 단계는,
상기 함수 호출 패턴을 상기 함수 호출 오토마타에 입력하여 거절(reject)되는 경우, 상기 함수 호출 데이터에 이상이 발생한 것으로 판단하는 함수 호출 패턴 분석을 통한 이상 검출 방법.
14. The method of claim 13,
The step of analyzing whether the function call data is abnormal,
When the function call pattern is input to the function call automata and rejected, it is determined that an abnormality has occurred in the function call data. An abnormality detection method through function call pattern analysis.
KR1020200077367A 2020-06-24 2020-06-24 Apparatus and method for detecting anomaly through function call pattern analysis KR102275635B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200077367A KR102275635B1 (en) 2020-06-24 2020-06-24 Apparatus and method for detecting anomaly through function call pattern analysis
PCT/KR2021/007857 WO2021261901A1 (en) 2020-06-24 2021-06-23 Anomaly detection device and method using function call pattern analysis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200077367A KR102275635B1 (en) 2020-06-24 2020-06-24 Apparatus and method for detecting anomaly through function call pattern analysis

Publications (1)

Publication Number Publication Date
KR102275635B1 true KR102275635B1 (en) 2021-07-08

Family

ID=76893139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200077367A KR102275635B1 (en) 2020-06-24 2020-06-24 Apparatus and method for detecting anomaly through function call pattern analysis

Country Status (2)

Country Link
KR (1) KR102275635B1 (en)
WO (1) WO2021261901A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113886250A (en) * 2021-09-30 2022-01-04 四川大学 Drawing method of function call dynamic thermodynamic diagram

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101271821B1 (en) * 2011-12-23 2013-06-07 주식회사 포스코 Steel process middleware application error analysis system and error analysis method using the same
KR101868720B1 (en) * 2011-06-24 2018-07-17 캐비엄, 인코포레이티드 Compiler for regular expressions

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006053788A (en) * 2004-08-12 2006-02-23 Ntt Docomo Inc Software operation monitoring device and software operation monitoring method
CN105528295B (en) * 2016-01-04 2018-12-14 北京航空航天大学 Mobile applications anomaly detection method and device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101868720B1 (en) * 2011-06-24 2018-07-17 캐비엄, 인코포레이티드 Compiler for regular expressions
KR101271821B1 (en) * 2011-12-23 2013-06-07 주식회사 포스코 Steel process middleware application error analysis system and error analysis method using the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문(2001.12.31)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113886250A (en) * 2021-09-30 2022-01-04 四川大学 Drawing method of function call dynamic thermodynamic diagram
CN113886250B (en) * 2021-09-30 2023-04-11 四川大学 Drawing method of function call dynamic thermodynamic diagram

Also Published As

Publication number Publication date
WO2021261901A1 (en) 2021-12-30

Similar Documents

Publication Publication Date Title
CN103036730B (en) A kind of method and device protocol realization being carried out to safety test
CN102257487B (en) Analyzing events
CN106021014B (en) A kind of EMS memory management process and device
CN109783346B (en) Keyword-driven automatic testing method and device and terminal equipment
WO2020075335A1 (en) Analysis function imparting device, analysis function imparting method, and analysis function imparting program
CN111240991B (en) Dynamic stain detection method and system for resisting implicit stain propagation
JP6165224B2 (en) Information security management system and method based on application layer log analysis
CN111459796B (en) Automated testing method, apparatus, computer device and storage medium
JP4383484B2 (en) Message analysis apparatus, control method, and control program
CN112385196A (en) System and method for reporting computer security incidents
US9734042B1 (en) System, method, and computer program for automated parameterized software testing
CN110222243A (en) Determine the method, apparatus and storage medium of abnormal behaviour
KR102275635B1 (en) Apparatus and method for detecting anomaly through function call pattern analysis
US10846206B2 (en) Adaptive software testing
CN110865866A (en) Virtual machine safety detection method based on introspection technology
CN110162472A (en) A kind of method for generating test case based on fuzzing test
JP4559974B2 (en) Management apparatus, management method, and program
CN110287115A (en) Generation method, device and the server of test report
CN111382052A (en) Code quality evaluation method and device and electronic equipment
JP2013077124A (en) Software test case generation device
CN109002716A (en) Malicious code intrusion detection and prevention method for mobile application
KR100521147B1 (en) The method for log processing of application error information
CN112379656A (en) Processing method, device, equipment and medium for detecting abnormal data of industrial system
JP2008262473A (en) Equipment maintenance management system
CN117688564B (en) Detection method, device and storage medium for intelligent contract event log

Legal Events

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