WO2022114392A1 - 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 - Google Patents
특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 Download PDFInfo
- Publication number
- WO2022114392A1 WO2022114392A1 PCT/KR2021/001194 KR2021001194W WO2022114392A1 WO 2022114392 A1 WO2022114392 A1 WO 2022114392A1 KR 2021001194 W KR2021001194 W KR 2021001194W WO 2022114392 A1 WO2022114392 A1 WO 2022114392A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- api
- category
- application
- malicious
- characteristic
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000012549 training Methods 0.000 claims abstract description 41
- 238000013135 deep learning Methods 0.000 claims abstract description 22
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 36
- 238000004422 calculation algorithm Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 14
- 239000013598 vector Substances 0.000 description 14
- 238000013527 convolutional neural network Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 7
- 230000004913 activation Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 238000011176 pooling Methods 0.000 description 5
- 230000002155 anti-virotic effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003211 malignant effect Effects 0.000 description 2
- 229960005486 vaccine Drugs 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000007794 visualization technique Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Definitions
- the present invention relates to a method for classifying mobile malicious code based on characteristic selection, a recording medium and an apparatus for performing the same, and more particularly, to a malicious application detection method using deep learning based on an API used to implement the function of the application. Then, it relates to the technology of classifying the malicious application by operation.
- Android which has the largest share in the application market, accounts for the largest percentage of malicious codes because anyone can easily copy, modify, and distribute illegally according to the open market policy. This is because, by using an open market policy, an attacker can cause damage such as leakage of personal information or financial loss to users by inserting and redistributing malicious code into applications. Therefore, it is necessary to prevent malicious behavior by accurately and quickly detecting Android malicious applications.
- the Antivirus scanning report is provided by the Anti-Virus Vendor, it may be ambiguous because the category name classified by each Vendor is different, and in the case of a new malicious application, the Anti-Virus Vendor may not be able to detect it as malicious. to be.
- Patent Document 1 KR 10-2090423 B1
- Patent Document 2 KR 10-1589656 B1
- Patent Document 3 KR 10-2020-0073822 A
- Another object of the present invention is to provide a recording medium in which a computer program for performing a mobile malicious code classification method based on the characteristic selection is recorded.
- Another object of the present invention is to provide an apparatus for performing a mobile malicious code classification method based on the characteristic selection.
- the mobile malicious code classification method based on characteristic selection extracts API characteristic information including a package name, a class name, a method name, and a description from a malicious application in which a category is determined. to do; vectorizing a training dataset generated by using a package name, a class name, and a method name among the API characteristic information for deep learning; generating a classifier by learning the vectorized training dataset; classifying the target malicious application as a probability to which category it fits; and specifying a category of a target malicious application by using the classification result and outputting a classification important API.
- the step of vectorizing includes: building a training dataset by combining all APIs extracted for each application by category; and vectorizing the API to use the training dataset as an input value of the deep learning algorithm.
- the classifying may include assigning a probability to each category as to which category is suitable for the target malicious application.
- the step of outputting the classification important API includes: determining, as a characteristic of the target malicious application, a category corresponding to a value greater than a preset threshold among probabilities for each category of the target malicious application; and outputting a preset number of APIs having the greatest influence when the target malicious application is given a probability by the classifier.
- a computer program for performing the mobile malicious code classification method based on the characteristic selection is recorded in a computer-readable storage medium according to an embodiment of the present invention for realizing another object of the present invention.
- an apparatus for classifying mobile malicious code based on characteristic selection provides API characteristic information including a package name, a class name, a method name, and a description from a malicious application in which a category is determined.
- API extractor to extract; an API vectorizer for vectorizing a training dataset generated by using a package name, a class name, and a method name among the API characteristic information for deep learning; a learner for generating a classifier by learning the vectorized training dataset; a classifier that classifies the target malicious application as a probability to which category it fits; and a characteristic identifier for designating a category of a target malicious application by using the classification result and outputting a classification important API.
- the API vectorizer includes: a training dataset generator for building a training dataset by combining all APIs extracted for each application by category; and an API word embedder for vectorizing the API in order to use the training dataset as an input value of the deep learning algorithm.
- the classifier may include a probability evaluator that assigns a probability for each category as to which category is suitable for a target malicious application.
- the characteristic identifier includes: a characteristic determiner for determining, as a characteristic of the target malicious application, a category corresponding to a value greater than a preset threshold among probabilities for each category of the target malicious application; and an important API identifier for outputting a preset number of APIs having the greatest influence when the target malicious application is given a probability by the classifier.
- the mobile malicious code classification method based on such characteristic selection, the actual operation of the malicious application is identified using the API responsible for the actual function of the application, and then the category of the malicious application is classified using a deep learning algorithm and an important API is obtained. can Therefore, it is expected that detailed characteristics of malicious applications can be known, and by using them, malicious actions can be quickly dealt with and damage caused by malicious actions can be prevented.
- FIG. 1 is a block diagram of an apparatus for classifying mobile malicious code based on feature selection according to an embodiment of the present invention.
- FIG. 2 is a detailed structural diagram of the mobile malicious code classification apparatus of FIG. 1 .
- FIG. 3 is a diagram showing an example of a method of extracting an API from AndroGuard.
- FIG. 4 is a diagram showing an example of a transformation form of a dense vector.
- FIG. 5 is a diagram showing an example of learning a CNN using an AMD dataset.
- FIG. 6 is a diagram showing an example of shipping a category probability.
- FIG. 7 is a diagram showing an example in which a result matrix after pooling is made into a vector, connected to a fully connected neural network, and then learning is performed.
- FIG. 8 is a diagram illustrating an example in which a category determiner determines a category of a malicious application.
- FIG. 9 is a flowchart of a mobile malicious code classification method based on feature selection according to an embodiment of the present invention.
- FIG. 1 is a block diagram of an apparatus for classifying mobile malicious code based on feature selection according to an embodiment of the present invention.
- FIG. 2 is a detailed structural diagram of the mobile malicious code classification apparatus of FIG. 1 .
- the mobile malicious code classification device 10 (hereinafter referred to as device) based on characteristic selection according to the present invention detects the characteristic of a malicious application based on the application API.
- API is an abbreviation of Application Programming Interface, and since it represents the actual functional characteristics of the application, classification based on actual operation is possible. In addition, the range of applications that can be classified increases because extraction is possible only with an application without relying on a vaccine program.
- each API characteristic information used by malicious applications for which categories are already defined is extracted.
- a training dataset is constructed using only the method name among the extracted API characteristic information.
- the training data set is vectorized so that the deep learning algorithm can receive the input, and it is input to the deep learning algorithm and learned.
- the finished classifier uses LIME (Local Interpretable Model-Agnostic Explanation), a visualization algorithm, to identify important APIs and provide them with classification results.
- an apparatus 10 includes an API extractor 110 , an API vectorizer 130 , a learner 150 , a classifier 170 , and a feature identifier 190 .
- software (application) for performing mobile malicious code classification based on characteristic selection may be installed and executed, and the API extractor 110, the API vectorizer 130, and the learner ( 150), the classifier 170 and the configuration of the characteristic identifier 190 may be controlled by software for performing mobile malicious code classification based on the characteristic selection executed in the device 10 .
- the device 10 may be a separate terminal or may be a part of a module of the terminal.
- the configuration of the API extractor 110 , the API vectorizer 130 , the learner 150 , the classifier 170 , and the characteristic identifier 190 may be formed as an integrated module or may consist of one or more modules. can However, on the contrary, each configuration may be formed of a separate module.
- the device 10 may be movable or stationary.
- the apparatus 10 may be in the form of a server or an engine, and may be a device, an application, a terminal, a user equipment (UE), a mobile station (MS), or a wireless device. (wireless device), may be called other terms such as a handheld device (handheld device).
- the device 10 may execute or manufacture various software based on an operating system (OS), that is, the system.
- OS operating system
- the operating system is a system program for software to use the hardware of the device, and is a mobile computer operating system such as Android OS, iOS, Windows Mobile OS, Bada OS, Symbian OS, Blackberry OS and Windows series, Linux series, Unix series, It can include all computer operating systems such as MAC, AIX, and HP-UX.
- the API extractor 110 extracts API characteristic information including a package name, a class name, a method name, and a description from a malicious application whose category is determined.
- the API extractor 110 may extract the API using a static analysis technique.
- the API is extracted by selecting the application AndroGuard tool.
- An example of a method of extracting an API from AndroGuard is shown in FIG. 3 .
- Method Table and Class Def Table among 8 DEX file fields contain method related data.
- Method Table contains user-defined methods and framework APIs, which are all method names used in the application. And, since classes including framework API are not defined in the DEX file but implemented in Android devices, there is only one class list in the user's home in the Class Def Table.
- Direct Methods and Virtual Methods contain method information of each class.
- the offset of the method pointing to the index of the method table is included in the direct method. If you go to the String Table using the Name index value of the Method Table, you can find the API in the Data Section and extract it.
- the training set and test set are constructed using only the method name that can express the API in sufficient detail, except for the description that can increase the dimension due to the number of words among the characteristic information of the API.
- the API vectorizer 130 vectorizes a training dataset generated by using a package name, a class name, and a method name among the API characteristic information for deep learning.
- the API vectorizer 130 combines all APIs extracted for each application by category and uses the training dataset generator 131 and training dataset to build a training dataset as an input value of a deep learning algorithm. It may include an API word embedder 133 for vectorizing.
- the feature map is extracted through a convolution operation by applying a filter to the data value during learning, it cannot be used as learning data as it is in the language you normally use. Therefore, vectorization (word embedding) of API features is required.
- Tokenize which is a method of assigning numbers to words by mapping integers by making a dictionary of words existing in the API.
- a dictionary consisting of a total of 1,273,251 lists is used by adding two methods including padding to match the size of the vector and Unknown API to work well for applications that are not used for learning.
- the AMD dataset was used in the present invention, and the size of the API information vector of each application is is tuned to After that, it learns using the embedding layer to transform it into a dense vector that can contain a lot of information compared to a small dimension.
- the size of the dense vector is set to 64.
- a specific conversion form is shown in FIG. 4 .
- the learner 150 generates a classifier by learning the vectorized training dataset.
- the training proceeds using the CNN algorithm. Learning is performed twice in total: using total benign and malicious application data and using category-defined malicious applications.
- a convolution operation is performed using the Conv1D layer, which is often used in Text-CNN.
- the filter used in the calculation was set to 8, the embedding dimension (8), the filter size became (64, 8), and the number of filters was set to 32. Padding and stride were used as default padding 0 and stride 1, and when used, the size of the feature map becomes (7765,32) because the filter length is set to 8 and the number is set to 32.
- a feature map is extracted for each filter.
- the feature map is referred to as z
- the (x,y)-th value is expressed as Z(x,y). Since the present invention trains the CNN using the AMD dataset, 24090 applications were used as shown in FIG. 5 .
- the data and filters are shown in FIG. 5 .
- the ReLU function may be used as an activation function.
- the ReLU function is one of the most used activation functions because it has the advantage of being able to learn relatively quickly and not having a large computational cost.
- the generated matrix is called Activation Map.
- max pooling in this Activation Map select the largest vector among the feature vectors that are retrieved through the API. This allows you to pick out the most prominent features of the APIs used in your application.
- the pooling size was set to 1 and proceeded.
- the result from the pooling layer is converted into a one-dimensional vector and connected to a fully connected neural network.
- the category probability is output using the softmax function that normalizes all outputs to values between 0 and 1.
- Fig. 6 shows this process.
- A(x,y) represents a value after applying the ReLU function to Z(x,y).
- the classifier 170 classifies the target malicious application as a probability to which category the malicious application is suitable.
- the classifier 170 may include a probability evaluator 171 that assigns a probability for each category which category is suitable for the target malicious application.
- malware applications are detected using the created classifiers and LIME algorithm, the categories of the malicious applications are classified, and main features are extracted and provided.
- a CNN model that has been trained through a vectorized API and a CNN algorithm as training data is stored and used as a classifier.
- a malicious application is detected by a risk classifier trained using benign applications and malicious applications, and the target application is classified as malicious or benign. Then, when the target application is classified as a malicious application, a category classifier outputs a probability vector for each category. Table 2 below shows some of the results output from the classifiers.
- FIG. 8 shows a state in which a category determiner determines a category of a malicious application.
- the characteristic identifier 190 designates a category of a target malicious application by using the classification result and outputs an important classification API.
- the characteristic identifier 190 includes a characteristic determiner 191 that determines a category corresponding to a value greater than a preset threshold among probabilities for each category of the target malicious application as a characteristic of the target malicious application, and the target malicious application in the classifier. It may include an important API identifier 193 that outputs as many as a preset number of APIs having the greatest influence when given a probability.
- the LIME algorithm is used in the trained CNN model to provide a basis for judgment when the target application is input.
- the target application is input to the category classifier, and after judgment, LIME converts the input features to find important APIs and creates several similar input values. Then, the important features are determined based on the judgment that comes out by putting the transformed similar input value into the category classifier.
- a category classification technique for malicious applications is proposed using APIs that are closely related to actual operations as features.
- a more objective and accurate classification was promoted using CNN, a deep learning algorithm that secures objectivity because humans do not select features.
- the AMD dataset which has already been classified into categories, was classified into 71 categories using the training data. If the invention is applied, it is expected that the utility will be higher.
- FIG. 9 is a flowchart of a mobile malicious code classification method based on feature selection according to an embodiment of the present invention.
- the mobile malicious code classification method based on characteristic selection according to the present embodiment may proceed in substantially the same configuration as the device 10 of FIGS. 1 and 2 . Accordingly, the same components as those of the device 10 of FIGS. 1 and 2 are given the same reference numerals, and repeated descriptions are omitted.
- the mobile malicious code classification method based on characteristic selection based on characteristic selection may be executed by software (application) for performing mobile malicious code classification based on characteristic selection.
- the mobile malicious code classification method based on characteristic selection according to the present invention detects the characteristic of a malicious application based on the application API.
- API is an abbreviation of Application Programming Interface, and since it represents the actual functional characteristics of the application, classification based on actual operation is possible. In addition, the range of applications that can be classified increases because extraction is possible only with an application without relying on a vaccine program.
- each API characteristic information used by malicious applications for which categories are already defined is extracted.
- a training dataset is constructed using only the method name among the extracted API characteristic information.
- the training data set is vectorized so that the deep learning algorithm can receive the input, and it is input to the deep learning algorithm and learned.
- the finished classifier uses LIME (Local Interpretable Model-Agnostic Explanation), a visualization algorithm, to identify important APIs and provide them with classification results.
- API characteristic information including a package name, a class name, a method name, and a description is extracted from a malicious application in which a category is determined (step S10).
- the training dataset generated by using the package name, class name, and method name among the API characteristic information is vectorized for deep learning (step S20).
- all APIs extracted for each application for each category are combined to form a training dataset, and the API may be vectorized in order to use the training dataset as an input value of a deep learning algorithm.
- a classifier is generated by learning the vectorized training dataset (step S30).
- the target malicious application is classified as a probability according to which category (step S40).
- a probability for each category may be assigned to which category is suitable for the target malicious application.
- the present invention uses a visualization algorithm to identify an API having a large weight when classifying a target application (step S50), designates a category of a target malicious application using the classification result, and outputs a classification important API (step S50) S60).
- a category corresponding to a value greater than a preset threshold among probabilities for each category of the target malicious application is determined as a characteristic of the target malicious application, and the target malicious application determines the probability in the classifier.
- the target malicious application determines the probability in the classifier.
- the actual operation of the malicious application is identified using the API responsible for the actual function of the application, and then the category of the malicious application is classified using a deep learning algorithm and the important API is identified. can be obtained Therefore, it is expected that detailed characteristics of malicious applications can be known, and by using them, malicious actions can be quickly dealt with and damage caused by malicious actions can be prevented.
- Such a mobile malicious code classification method based on characteristic selection may be implemented as an application or in the form of program instructions that may be executed through various computer components and recorded in a computer-readable recording medium.
- the computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.
- the program instructions recorded in the computer-readable recording medium are specially designed and configured for the present invention, and may be known and available to those skilled in the computer software field.
- Examples of the computer-readable recording medium include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floppy disks. media), and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
- Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
- the hardware device may be configured to operate as one or more software modules for carrying out the processing according to the present invention, and vice versa.
- the present invention detects a malicious application using deep learning based on the API used to implement the function of the application, then proposes a classification technique for each operation of the malicious application, and judges the model of this paper through the visualization technique together with the rationale.
- a classification technique for each operation of the malicious application, and judges the model of this paper through the visualization technique together with the rationale.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Virology (AREA)
- Telephone Function (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
특성 선택에 기반한 모바일 악성 코드 분류 방법은, 카테고리가 정해진 악성 애플리케이션으로부터 패키지 명, 클래스 명, 메소드 명 및 디스크립션을 포함하는 API 특성정보를 추출하는 단계; 상기 API 특성정보 중 패키지 명, 클래스 명 및 메소드 명을 이용하여 생성한 트레이닝 데이터셋을 딥 러닝할 수 있도록 벡터화하는 단계; 벡터화된 트레이닝 데이터셋을 학습하여 분류기를 생성하는 단계; 타겟 악성 애플리케이션이 어떤 카테고리에 적합한지 확률로써 분류하는 단계; 및 분류 결과를 이용하여 타겟 악성 애플리케이션의 카테고리를 지정해주고 분류 중요 API를 출력하는 단계;를 포함한다. 이에 따라, 악성 애플리케이션의 악성 행위에 대해 빠르게 대처할 수 있고 악성 행위로 인한 피해를 방지할 수 있다. [대표도] 도 1
Description
본 발명은 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치에 관한 것으로서, 더욱 상세하게는 애플리케이션의 기능 구현에 사용되는 API를 기반으로 딥러닝을 이용하여 악성 애플리케이션을 탐지한 후 해당 악성 애플리케이션의 동작별로 분류하는 기술에 관한 것이다.
IoT 기술과 5G 기술이 결합한 massive IoT의 시대에서 연결 기기들의 수가 증가함과 더불어 생성되고 공유하는 데이터의 양도 증가할 것이다. IDC에 의하면 2025년까지 전 세계적으로 연결 기기가 559억 개, IoT 장치에서 생성된 데이터가 79.4Z B에 달할 것으로 예상된다.
이렇게 기기들과 데이터가 늘어남에 따라 2024년에는 연결 기기 중 90억 대가 스마트폰일 것이라고 예상되는 만큼 모바일 기기의 영향력이 커지며 모바일 애플리케이션 시장도 성장하였다. 이에 따른 모바일 악성 코드의 규모도 점차 커지고 있다.
그 중에서도 애플리케이션 시장에서 가장 많은 점유율을 가진 안드로이드는 오픈 마켓 정책에 의해 불법복제와 무단수정, 유포를 누구나 쉽게 할 수 있으므로, 악성 코드 중에서도 가장 많은 비율을 차지한다. 오픈 마켓 정책을 이용하여 공격자는 악성 행위 코드를 애플리케이션에 삽입하여 재배포하는 방법으로 사용자에게 개인 정보 유출이나 금전적 손실과 같은 피해를 만들 수 있기 때문이다. 따라서, 안드로이드 악성 애플리케이션을 정확하고 빠르게 탐지하여 악성 행위를 막을 필요가 있다.
또한, 공격자마다 다른 목적을 가지고 악성 애플리케이션을 배포하기 때문에 각각 실행되는 악성 행위와 그에 따른 대처 방법이 다르다. 더욱 급격하게 생겨나는 악성 애플리케이션을 빠르게 대처하기 위해서는 단순히 악성 애플리케이션만을 탐지하는 것이 아니라 동작별로 악성 애플리케이션을 탐지하는 방법이 필요하다.
기존 연구들은 악성 애플리케이션을 탐지하기 위해 퍼미션, 디스크립션, 유저 리뷰 기반 등을 이용하였다. 하지만, 위의 방법들은 애플리케이션의 실제 동작별로 탐지를 하기에는 분명한 한계점을 가지고 있다. 이에 따라, 애플리케이션의 실제 동작을 탐지하기 위해 API(Application Programming Interface)를 기반으로 한 많은 연구들이 진행되었다.
그러나, 언급한 위의 기법들은 모두 악성과 양성만을 구분할 뿐, 어떤 악성 행위를 하는지에 대해서는 설명이 부족하다. 사용자에게 어떤 기능들에 의해 피해를 입을 수 있는지 알려주기 위하여 우리는 실제 기능적 특징을 나타내는 API를 이용하여 어떤 악성 행위를 하는지에 대한 설명을 제공할 필요가 있다.
그와 동시에 악성 애플리케이션을 카테고리 분류하는 연구들도 많이 진행되었다. 그러나, 이들은 세세한 카테고리 분류는 제공하지 않거나 Antivirus scanning report가 필요하다는 단점을 가지고 있다. 따라서, 애플리케이션에서 API를 직접 추출하여 애플리케이션만 있어도 카테고리 분류를 기능에 따라 세세하게 분류하는 것이 필요하다.
왜냐하면 Antivirus scanning report는 Anti-Virus Vendor에서 제공하는 것인데, 각각 Vendor마다 분류하는 카테고리 이름이 달라 애매한 경우가 생길 수 있고, 새로 생긴 악성 애플리케이션의 경우 Anti-Virus Vendor에서 악성으로 탐지하지 못하는 경우가 있기 때문이다.
[선행기술문헌]
[특허문헌]
(특허문헌 1) KR 10-2090423 B1
(특허문헌 2) KR 10-1589656 B1
(특허문헌 3) KR 10-2020-0073822 A
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 특성 선택에 기반한 모바일 악성 코드 분류 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 특성 선택에 기반한 모바일 악성 코드 분류 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 기록 매체를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 특성 선택에 기반한 모바일 악성 코드 분류 방법을 수행하기 위한 장치를 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 특성 선택에 기반한 모바일 악성 코드 분류 방법은, 카테고리가 정해진 악성 애플리케이션으로부터 패키지 명, 클래스 명, 메소드 명 및 디스크립션을 포함하는 API 특성정보를 추출하는 단계; 상기 API 특성정보 중 패키지 명, 클래스 명 및 메소드 명을 이용하여 생성한 트레이닝 데이터셋을 딥 러닝할 수 있도록 벡터화하는 단계; 벡터화된 트레이닝 데이터셋을 학습하여 분류기를 생성하는 단계; 타겟 악성 애플리케이션이 어떤 카테고리에 적합한지 확률로써 분류하는 단계; 및 분류 결과를 이용하여 타겟 악성 애플리케이션의 카테고리를 지정해주고 분류 중요 API를 출력하는 단계;를 포함한다.
본 발명의 실시예에서, 상기 벡터화하는 단계는, 카테고리별로 각 애플리케이션에 대해 추출한 API를 모두 합쳐서 트레이닝 데이터셋으로 구축하는 단계; 및 트레이닝 데이터셋을 딥 러닝 알고리즘의 입력 값으로 이용하기 위하여 API를 벡터화하는 단계;를 포함할 수 있다.
본 발명의 실시예에서, 상기 분류하는 단계는, 타겟 악성 애플리케이션에 대해 어떤 카테고리와 적합한지 각 카테고리별 확률을 부여하는 단계;를 포함할 수 있다.
본 발명의 실시예에서, 상기 분류 중요 API를 출력하는 단계는, 타겟 악성 애플리케이션에 대한 각 카테고리별 확률 중 미리 설정된 임계값보다 큰 값에 해당하는 카테고리를 타겟 악성 애플리케이션의 특성으로 결정하는 단계; 및 타겟 악성 애플리케이션이 상기 분류기에서 확률을 부여 받을 때 가장 영향이 큰 미리 설정된 수만큼의 API를 출력하는 단계;를 포함할 수 있다.
상기한 본 발명의 다른 목적을 실현하기 위한 일 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에는, 상기 특성 선택에 기반한 모바일 악성 코드 분류 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다.
상기한 본 발명의 또 다른 목적을 실현하기 위한 일 실시예에 따른 특성 선택에 기반한 모바일 악성 코드 분류 장치는, 카테고리가 정해진 악성 애플리케이션으로부터 패키지 명, 클래스 명, 메소드 명 및 디스크립션을 포함하는 API 특성정보를 추출하는 API 추출기; 상기 API 특성정보 중 패키지 명, 클래스 명 및 메소드 명을 이용하여 생성한 트레이닝 데이터셋을 딥 러닝할 수 있도록 벡터화하는 API 벡터화기; 벡터화된 트레이닝 데이터셋을 학습하여 분류기를 생성하는 학습기; 타겟 악성 애플리케이션이 어떤 카테고리에 적합한지 확률로써 분류하는 분류기; 및 분류 결과를 이용하여 타겟 악성 애플리케이션의 카테고리를 지정해주고 분류 중요 API를 출력하는 특성 식별기;를 포함한다.
본 발명의 실시예에서, 상기 API 벡터화기는, 카테고리별로 각 애플리케이션에 대해 추출한 API를 모두 합쳐서 트레이닝 데이터셋으로 구축하는 트레이닝 데이터셋 생성기; 및 트레이닝 데이터셋을 딥 러닝 알고리즘의 입력 값으로 이용하기 위하여 API를 벡터화하는 API 단어 임베딩기;를 포함할 수 있다.
본 발명의 실시예에서, 상기 분류기는, 타겟 악성 애플리케이션에 대해 어떤 카테고리와 적합한지 각 카테고리별 확률을 부여하는 확률 평가기;를 포함할 수 있다.
본 발명의 실시예에서, 상기 특성 식별기는, 타겟 악성 애플리케이션에 대한 각 카테고리별 확률 중 미리 설정된 임계값보다 큰 값에 해당하는 카테고리를 타겟 악성 애플리케이션의 특성으로 결정하는 특성 결정기; 및 타겟 악성 애플리케이션이 상기 분류기에서 확률을 부여 받을 때 가장 영향이 큰 미리 설정된 수만큼의 API를 출력하는 중요 API 식별기;를 포함할 수 있다.
이와 같은 특성 선택에 기반한 모바일 악성 코드 분류 방법에 따르면, 애플리케이션의 실제 기능을 담당하는 API를 이용하여 악성 애플리케이션의 실제 동작을 파악한 후 딥러닝 알고리즘을 사용하여 악성 애플리케이션의 카테고리를 분류와 중요 API를 얻을 수 있다. 따라서, 악성 애플리케이션의 세부적인 특성을 알 수 있고, 이를 이용하여 악성 행위에 대해 빠르게 대처할 수 있고 악성 행위로 인한 피해를 방지할 수 있을 것으로 기대된다.
도 1은 본 발명의 일 실시예에 따른 특성 선택에 기반한 모바일 악성 코드 분류 장치의 블록도이다.
도 2는 도 1의 모바일 악성 코드 분류 장치의 상세한 구조도이다.
도 3은 AndroGuard에서 API를 추출하는 방식의 일례를 보여주는 도면이다.
도 4는 dense vector의 변환 형태의 일례를 보여주는 도면이다.
도 5는 AMD 데이터셋을 이용하여 CNN을 학습시키는 일례를 보여주는 도면이다.
도 6은 카테고리 확률을 출하는 일례를 보여주는 도면이다.
도 7은 pooling까지 마친 결과값 행렬을 벡터로 만들어 완전 연결신경망에 연결한 후 학습을 진행하는 일례를 보여주는 도면이다.
도 8은 카테고리 결정기가 악성 애플리케이션의 범주를 결정하는 일례를 보여주는 도면이다.
도 9는 본 발명의 일 실시예에 따른 특성 선택에 기반한 모바일 악성 코드 분류 방법의 흐름도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 특성 선택에 기반한 모바일 악성 코드 분류 장치의 블록도이다. 도 2는 도 1의 모바일 악성 코드 분류 장치의 상세한 구조도이다.
본 발명에 따른 특성 선택에 기반한 모바일 악성 코드 분류 장치(10, 이하 장치)는 애플리케이션의 API를 기반으로 악성 애플리케이션의 특성을 탐지한다.
API는 Application Programming Interface의 약자로 애플리케이션의 실제 기능적 특징을 나타내기 때문에 실제 동작 기반 분류가 가능하다. 또한, 백신 프로그램에 의존하지 않고 애플리케이션만 있으면 추출이 가능하기 때문에 분류할 수 있는 애플리케이션의 범위가 늘어난다.
그리고, 단순히 악성과 양성만을 구분하지 않고 71가지의 카테고리를 제공하고 분류에 중요하게 영향을 끼친 API를 함께 제공해 주기 때문에 애플리케이션이 어떠한 동작을 하는지에 대한 정보도 제공받을 수 있다.
API 기반으로 악성 애플리케이션 특성 탐지를 위해서 이미 카테고리가 정해져 있는 악성 애플리케이션들에서 사용하는 API 특성 정보를 각각 추출한다. 추출된 API 특성 정보 중에서 메소드 명까지만을 이용하여 트레이닝 데이터셋을 구축한다.
그 후 딥러닝 알고리즘이 입력받을 수 있도록 트레이닝 데이터 셋을 벡터화하여 딥러닝 알고리즘에 입력하고 학습한다. 학습이 끝나면 완성된 분류기에 시각화 알고리즘인 LIME(Local Interpretable Model-Agnostic Explanation)을 이용하여 중요 API를 식별하고 분류 결과와 함께 제공한다.
도 1을 참조하면, 본 발명에 따른 장치(10)는 API 추출기(110), API 벡터화기(130), 학습기(150), 분류기(170) 및 특성 식별기(190)를 포함한다.
본 발명의 상기 장치(10)는 특성 선택에 기반한 모바일 악성 코드 분류를 수행하기 위한 소프트웨어(애플리케이션)가 설치되어 실행될 수 있으며, 상기 API 추출기(110), 상기 API 벡터화기(130), 상기 학습기(150), 상기 분류기(170) 및 상기 특성 식별기(190)의 구성은 상기 장치(10)에서 실행되는 상기 특성 선택에 기반한 모바일 악성 코드 분류를 수행하기 위한 소프트웨어에 의해 제어될 수 있다.
상기 장치(10)는 별도의 단말이거나 또는 단말의 일부 모듈일 수 있다. 또한, 상기 API 추출기(110), 상기 API 벡터화기(130), 상기 학습기(150), 상기 분류기(170) 및 상기 특성 식별기(190)의 구성은 통합 모듈로 형성되거나, 하나 이상의 모듈로 이루어 질 수 있다. 그러나, 이와 반대로 각 구성은 별도의 모듈로 이루어질 수도 있다.
상기 장치(10)는 이동성을 갖거나 고정될 수 있다. 상기 장치(10)는, 서버(server) 또는 엔진(engine) 형태일 수 있으며, 디바이스(device), 기구(apparatus), 단말(terminal), UE(user equipment), MS(mobile station), 무선기기(wireless device), 휴대기기(handheld device) 등 다른 용어로 불릴 수 있다.
상기 장치(10)는 운영체제(Operation System; OS), 즉 시스템을 기반으로 다양한 소프트웨어를 실행하거나 제작할 수 있다. 상기 운영체제는 소프트웨어가 장치의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램으로서, 안드로이드 OS, iOS, 윈도우 모바일 OS, 바다 OS, 심비안 OS, 블랙베리 OS 등 모바일 컴퓨터 운영체제 및 윈도우 계열, 리눅스 계열, 유닉스 계열, MAC, AIX, HP-UX 등 컴퓨터 운영체제를 모두 포함할 수 있다.
상기 API 추출기(110)는 카테고리가 정해진 악성 애플리케이션으로부터 패키지 명, 클래스 명, 메소드 명 및 디스크립션을 포함하는 API 특성정보를 추출한다.
상기 API 추출기(110)는 정적분석 기법을 이용하여 API를 추출할 수 있다. 본 발명에서는 애플리케이션 AndroGuard 도구를 선택하여 API를 추출한다. AndroGuard에서 API를 추출하는 방식의 일례는 도 3과 같다.
우선 애플리케이션의 실질적 코드를 포함하는 classes.dex 파일을 파싱하여 분석한다. 8개로 구성된 DEX 파일 필드 중 Method Table과 Class Def Table에 메소드와 관련된 데이터가 포함되어 있다. 먼저, Method Table에는 애플리케이션에서 사용되는 모든 메소드명인 사용자 정의 메소드와 프레임워크 API가 담겨있다. 그리고, 프레임워크 API를 포함한 클래스는 DEX 파일 내에 정의하지 않고 안드로이드 디바이스에 구현되어있기 때문에 Class Def Table에는 사용자 가정의 한 클래스 목록만 있다.
Class Def Table 안의 Class Data Item에 Direct Methods와 Virtual Methods가 각 클래스가 갖는 메소드의 정보를 담고 있다. 특히, Direct Methods 안에 Method Table의 인덱스를 가리키는 메소드의 오프셋이 들어있다. Method Table의 Name 인덱스값을 이용하여 String Table로 가면 Data Section안의 API를 찾을 수 있고 이를 추출한다.
이렇게 추출하면 얻을 수 있는 API의 특성정보의 예는 아래의 표 1과 같다.
[표 1]
API의 특성정보 중 단어수가 많아 차원이 커질 수 있는 디스크립션을 제외하고 충분히 자세히 API를 표현할 수 있는 메소드명까지만 이용하여 트레이닝셋과 테스트셋을 구축한다.
상기 API 벡터화기(130)는 상기 API 특성정보 중 패키지 명, 클래스 명 및 메소드 명을 이용하여 생성한 트레이닝 데이터셋을 딥 러닝할 수 있도록 벡터화한다.
상기 API 벡터화기(130)는, 카테고리별로 각 애플리케이션에 대해 추출한 API를 모두 합쳐서 트레이닝 데이터셋으로 구축하는 트레이닝 데이터셋 생성기(131) 및 트레이닝 데이터셋을 딥 러닝 알고리즘의 입력 값으로 이용하기 위하여 API를 벡터화하는 API 단어 임베딩기(133)를 포함할 수 있다.
API를 추출하여 트레이닝 데이터셋을 구축한 후에 Deep Learner에서 트레이닝 데이터셋을 벡터화하는 과정을 거친다. CNN을 통해 학습을 하기 위해서는 자연어 그대로가 아닌 숫자화된 데이터들이 필요하기 때문이다. 그 후 벡터화된 데이터들을 가지고 CNN 알고리즘을 통해 학습한다.
학습시 데이터의 값에 필터를 적용하여 합성곱 연산을 통해 피처맵을 추출하기 때문에 평상시 사용하는 언어 그대로 학습 데이터로 이용할 수 없다. 따라서, API 피처의 벡터화(워드임베딩)가 필요하다.
본 발명에서는 일 실시예로 벡터화를 하기 위해 API에 존재하는 단어들을 dictionary로 만들어 정수를 mapping하여 단어에 숫자를 부여하는 방식인 Tokenize를 이용하였다. 본 발명에서는 벡터의 크기를 맞춰주기 위한 패딩과 학습에 이용하지 않은 애플리케이션에 대해서도 잘 작동하도록 Unknown API까지 2가지를 추가하여 전체 1,273,251개 목록으로 이루어진 dictionary를 사용한다.
단순하게 숫자를 mapping만 하면 차원이 클 뿐만 아니라 사용되는 API간의 관계에 대한 설명이 들어가지 않으므로 임베딩 레이어를 사용하여 벡터값을 조정한다. 임베딩 레이어에 입력하기 위해서 각 애플리케이션의 API 벡터의 크기를 패딩을 이용하여 맞춰준다.
본 발명에서 AMD 데이터셋을 이용하였는데 이때 각 애플리케이션의 API 정보벡터 크기는로 맞춰진다. 그후 적은 차원에 비해 많은 정보를 담을 수 있는 dense vector로 변환되도록 임베딩 레이어를 이용하여 학습한다.
본 발명에서는 dense vector의 크기를 64로 설정하였다. 구체적인 변환형태는 도 4와 같다.
상기 학습기(150)는 벡터화된 트레이닝 데이터셋을 학습하여 분류기를 생성한다.
벡터화가 완료되면 이제 CNN 알고리즘을 이용하여 학습을 진행한다. 학습은 총 양성과 악성 애플리케이션 데이터를 이용하는 것과 카테고리가 정해진 악성 애플리케이션을 이용하는 것으로 총 2번 진행된다. 학습할 때 본 발명에서는 Text-CNN에서 많이 사용되는 Conv1D 레이어를 이용하여 합성곱 연산을 한다.
연산에서 사용되는 필터는 8로 설정하여 필터의 차원은(embedding dimension, 8), 필터의 크기는(64, 8)이 되고 필터의 개수는 32개로 설정하였다. 패딩과 stride는 기본값인 패딩 0과 stride 1로 이용했고 이용하면 피처맵의 크기는 필터길이를 8로 설정했고 개수를 32로 설정했기 때문에 (7765,32)가 된다.
필터가 데이터에 씌워지면 필터별로 피처맵을 추출한다. 이때, 피처맵을 z라고 하면 (x,y)번째 값은 Z(x,y)라고 나타낸다. 본 발명은 AMD 데이터셋을 이용하여 CNN을 학습시키기 때문에 도 5에서 볼 수 있듯이 24090 개의 애플리케이션이 사용되었다. 데이터와 필터를 나타내면 도 5와 같다.
위의 과정을 통해 만들어진 피처맵에 활성화 함수를 적용한다. 본 발명의 일 실시예에서는 ReLU 함수를 활성화 함수로 이용할 수 있다. ReLU 함수는 비교적 빠른 학습이 가능하고 연산비용이 크지 않다는 장점이 있어 가장 많이 쓰이는 활성화 함수 중 하나이다.
그 후 생성된 행렬을 Activation Map이라고 부른다. 이 Activation Map에 max pooling을 이용하여 API를 훑어가며 나온 특징벡터 중에서 가장 큰 벡터를 고른다. 이렇게 하면 애플리케이션에서 사용된 API 중 가장 두드러지는 특징을 고를 수 있다.
본 발명의 일 실시예에서는 pooling의 크기를 1로 설정하여 진행했다. 이제 pooling 레이어를 거쳐나온 결과값을 1차원 벡터로 만들어주는 과정을 거쳐 완전 연결 신경망으로 연결한다. 그 후 출력을 모두 0~1 사이값으로 정규화해 주는 softmax 함수를 이용하여 카테고리 확률을 출력한다. 이 과정을 나타내면 도 6과 같다. 도 6에서 A(x,y)는 Z(x,y)에 ReLU 함수를 적용한 후의 값을 나타낸다.
pooling까지 끝마친 후 이제 결과값 행렬을 벡터로 만들어 완전 연결신경망에 연결한 후 학습을 한다. 그 과정은 도 7과 같다.
상기 분류기(170)는 타겟 악성 애플리케이션이 어떤 카테고리에 적합한지 확률로써 분류한다.
상기 분류기(170)는 타겟 악성 애플리케이션에 대해 어떤 카테고리와 적합한지 각 카테고리별 확률을 부여하는 확률 평가기(171)를 포함할 수 있다.
학습이 완료되면 만들어진 분류기들과 LIME 알고리즘을 이용하여 악성 애플리케이션을 탐지하고 해당 악성 애플리케이션의 카테고리를 분류한 후 주요피처를 추출하여 제공한다.
본 발명에서는 트레이닝 데이터로써 벡터화된 API와 CNN 알고리즘을 통해 학습이 완료된 CNN 모델을 저장하여 분류기(Classifier)로 이용한다. 양성 애플리케이션들과 악성 애플리케이션들을 이용하여 학습된 위험 분류기(Risk Classifier)에서 악성 애플리케이션을 탐지하여 타겟 애플리케이션이 악성인지 양성인지 분류한다. 그후 타겟 애플리케이션이 악성 애플리케이션으로 분류되면 카테고리 분류기(Category Classifier)에서 카테고리별 확률벡터를 출력한다. 아래의 표 2는 분류기들에서 출력된 결과 일부를 나타낸다.
[표 2]
카테고리 결정 시 카테고리가 71가지이기 때문에 더욱 세세한 카테고리가 필요하거나 71가지에서 벗어난 종류의 악성 애플리케이션의 경우 확률결과값이 모호할 수 있다. 따라서, 본 발명에서는 50 %를 기준으로 잡고 결과벡터의 성분이 임계값(예를 들어, 0.5) 보다 높은값이 없는 타겟 애플리케이션에 대해 Unlabeled를 부여하고 유사한 카테고리와 주요피처를 함께 제공해준다.
도 8은 카테고리 결정기가 악성 애플리케이션의 범주를 결정하는 모습을 나타낸다.
상기 특성 식별기(190)는 분류 결과를 이용하여 타겟 악성 애플리케이션의 카테고리를 지정해주고 분류 중요 API를 출력한다.
상기 특성 식별기(190)는 타겟 악성 애플리케이션에 대한 각 카테고리별 확률 중 미리 설정된 임계값보다 큰 값에 해당하는 카테고리를 타겟 악성 애플리케이션의 특성으로 결정하는 특성 결정기(191) 및 타겟 악성 애플리케이션이 상기 분류기에서 확률을 부여 받을 때 가장 영향이 큰 미리 설정된 수만큼의 API를 출력하는 중요 API 식별기(193)을 포함할 수 있다.
학습이 끝난 CNN 모델에 LIME 알고리즘을 이용하여 타겟 애플리케이션이 입력되었을 때 판단의 근거를 제공한다. 먼저 타겟 애플리케이션이 카테고리 분류기에 입력되고 판단이 끝나면 중요 API를 찾기 위해 LIME은 입력된 피처를 변환하여 여러 개의 유사 입력값들을 만들어낸다. 그리고, 변환된 유사 입력값을 카테고리 분류기에 넣어 나오는 판단을 기준으로 중요한 피처들을 결정한다.
본 발명에서는 중요 API 10개를 제공하여 결과를 보고 어떤 행동들을 하는 애플리케이션인지 라벨이 없더라도 어느 정도 알 수 있게 함을 목표로 하였다. 아래의 표 3은 unlabeled로 분류된 애플리케이션에 대한 중요 API 출력결과이다.
[표 3]
안드로이드 애플리케이션 시장의 성장과 함께 수정과 재배포가 간편한 안드로이드의 취약점을 노린 악성 애플리케이션들이 더욱 빠르게 늘어나고 있다. 이에 따라 필연적으로 악성 애플리케이션으로 인한 피해가 늘고 있다. 이러한 상황을 막기 위해 악성 애플리케이션을 빠르게 분석하여 악성 행위를 막아내는 것이 필요하다. 또한, 애플리케이션의 실제 동작과 연관이 있는 피처를 기반으로 하여 정확하고 빠른 판단이 필요하다.
기존 애플리케이션 탐지기법들은 단순하게 악성 애플리케이션과 양성 애플리케이션만을 구분해 탐지해 왔다. 하지만, 악성 애플리케이션의 동작 또한 한번에 탐지할 수 있다면 더욱 빠르게 대처하는 것이 가능해질 것이다.
이에 본 발명에서는 실제 동작과 관련이 깊은 API를 피처로하여 악성 애플리케이션의 카테고리 분류 기법을 제안하였다. 또한, 사람이 피처를 선택하지 않아 객관성이 확보되는 딥러닝 알고리즘인 CNN을 사용하여 더욱 객관적이고 정확한 분류를 도모하였고 딥러닝의 단점인 블랙박스 모델이라는 것을 보완하기 위해 LIME 알고리즘을 이용하여 판단기준인 중요피처를 함께 제공해서 사용자가 직접 판단할 수 있도록 기준을 제공해주었다.
본 발명에서는 지도학습을 위해 이미 카테고리가 정해진 AMD 데이터셋을 학습데이터로 이용하여 71개의 카테고리로 분류를 하였지만 학습데이터로 이용할 악성 애플리케이션들을 좀 더 분석을 통해 새로운 기준을 만들고 더욱 세세한 카테고리로 분류하여 본 발명을 적용한다면 더욱 활용도가 높을 것이라고 기대된다.
도 9는 본 발명의 일 실시예에 따른 특성 선택에 기반한 모바일 악성 코드 분류 방법의 흐름도이다.
본 실시예에 따른 특성 선택에 기반한 모바일 악성 코드 분류 방법은, 도 1 및 도 2의 장치(10)와 실질적으로 동일한 구성에서 진행될 수 있다. 따라서, 도 1 및 도 2의 장치(10)와 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략한다.
또한, 본 실시예에 따른 특성 선택에 기반한 특성 선택에 기반한 모바일 악성 코드 분류 방법은 특성 선택에 기반한 모바일 악성 코드 분류를 수행하기 위한 소프트웨어(애플리케이션)에 의해 실행될 수 있다.
본 발명에 따른 특성 선택에 기반한 모바일 악성 코드 분류 방법은 애플리케이션의 API를 기반으로 악성 애플리케이션의 특성을 탐지한다.
API는 Application Programming Interface의 약자로 애플리케이션의 실제 기능적 특징을 나타내기 때문에 실제 동작 기반 분류가 가능하다. 또한, 백신 프로그램에 의존하지 않고 애플리케이션만 있으면 추출이 가능하기 때문에 분류할 수 있는 애플리케이션의 범위가 늘어난다.
그리고, 단순히 악성과 양성만을 구분하지 않고 71가지의 카테고리를 제공하고 분류에 중요하게 영향을 끼친 API를 함께 제공해 주기 때문에 애플리케이션이 어떠한 동작을 하는지에 대한 정보도 제공받을 수 있다.
API 기반으로 악성 애플리케이션 특성 탐지를 위해서 이미 카테고리가 정해져 있는 악성 애플리케이션들에서 사용하는 API 특성 정보를 각각 추출한다. 추출된 API 특성 정보 중에서 메소드 명까지만을 이용하여 트레이닝 데이터셋을 구축한다.
그 후 딥러닝 알고리즘이 입력받을 수 있도록 트레이닝 데이터 셋을 벡터화하여 딥러닝 알고리즘에 입력하고 학습한다. 학습이 끝나면 완성된 분류기에 시각화 알고리즘인 LIME(Local Interpretable Model-Agnostic Explanation)을 이용하여 중요 API를 식별하고 분류 결과와 함께 제공한다.
도 9를 참조하면, 본 실시예에 따른 특성 선택에 기반한 모바일 악성 코드 분류 방법은, 카테고리가 정해진 악성 애플리케이션으로부터 패키지 명, 클래스 명, 메소드 명 및 디스크립션을 포함하는 API 특성정보를 추출한다(단계 S10).
상기 API 특성정보 중 패키지 명, 클래스 명 및 메소드 명을 이용하여 생성한 트레이닝 데이터셋을 딥 러닝할 수 있도록 벡터화한다(단계 S20).
상기 벡터화하는 단계는, 카테고리별로 각 애플리케이션에 대해 추출한 API를 모두 합쳐서 트레이닝 데이터셋으로 구축하고, 트레이닝 데이터셋을 딥 러닝 알고리즘의 입력 값으로 이용하기 위하여 API를 벡터화할 수 있다.
벡터화된 트레이닝 데이터셋을 학습하여 분류기를 생성한다(단계 S30).
타겟 악성 애플리케이션이 어떤 카테고리에 적합한지 확률로써 분류한다(단계 S40). 상기 분류하는 단계는, 타겟 악성 애플리케이션에 대해 어떤 카테고리와 적합한지 각 카테고리별 확률을 부여할 수 있다.
일 실시예에서, 본 발명은 시각화 알고리즘을 이용하여 타겟 애플리케이션 분류시 가중치가 큰 API를 식별하고(단계 S50), 분류 결과를 이용하여 타겟 악성 애플리케이션의 카테고리를 지정해주고 분류 중요 API를 출력한다(단계 S60).
상기 분류 중요 API를 출력하는 단계는, 타겟 악성 애플리케이션에 대한 각 카테고리별 확률 중 미리 설정된 임계값보다 큰 값에 해당하는 카테고리를 타겟 악성 애플리케이션의 특성으로 결정하고, 타겟 악성 애플리케이션이 상기 분류기에서 확률을 부여 받을 때 가장 영향이 큰 미리 설정된 수만큼의 API를 출력할 수 있다.
본 발명의 특성 선택에 기반한 모바일 악성 코드 분류 방법에 따르면, 애플리케이션의 실제 기능을 담당하는 API를 이용하여 악성 애플리케이션의 실제 동작을 파악한 후 딥러닝 알고리즘을 사용하여 악성 애플리케이션의 카테고리를 분류와 중요 API를 얻을 수 있다. 따라서, 악성 애플리케이션의 세부적인 특성을 알 수 있고, 이를 이용하여 악성 행위에 대해 빠르게 대처할 수 있고 악성 행위로 인한 피해를 방지할 수 있을 것으로 기대된다.
이와 같은, 특성 선택에 기반한 모바일 악성 코드 분류 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
[산업상 이용가능성]
인터넷으로 사물들이 연결되어 서로 데이터를 주고받는 IoT 시대가 도래하면서 여러 기기들이 연결되어 정보를 생성하고 공유한다. 특히, 5G 기술과 결합하여 더욱 많은 기기들이 연결되는 massive IoT 시대에 접어들면서 연결 기기들의 보안 또한 중요하게 생각되고 있다. 연결 기기들 중 대부분을 차지하는 모바일 기기의 보안이 중요해지고 있는 것이다. 더불어 사용자 중심 서비스로 인해 모바일 애플리케이션의 영향력이 커짐에 따라 모바일 애플리케이션을 이용하여 사용자의 민감한 정보들을 유출하고 악용하는 악성 애플리케이션들도 급증하였다. 이렇게 모바일 기기들이 악성 행위에 노출되면 많은 기기들이 연결된 만큼 그 피해가 커질 것이다. 따라서 악성 행위를 사전에 정확하게 탐지하는 방법이 필요한데, 새로운 악성 애플리케이션들이 늘어남에 따라 단순 악성 애플리케이션 분류로는 탐지하기 어려운 경우가 있다.
본 발명에서는 이를 해결하기 위해 애플리케이션의 기능 구현에 사용되는 API를 기반으로 딥러닝을 이용하여 악성 애플리케이션을 탐지한 후 해당 악성 애플리케이션의 동작별 분류 기법을 제안하고 시각화 기법을 통해 본 논문의 모델의 판단 근거를 함께 제공한다. 실험 결과 기존 머신러닝 분류 방법들 보다 세세한 분류를 할 수 있고 기존 AV report기반 방법들 보다 많은 수의 애플리케이션을 분류할 수 있다. 따라서, 본 발명을 통해 악성 애플리케이션의 구체적인 카테고리 정보를 알게 되면 더욱 신속하게 악성 행위에 대응할 수 있을 것으로 기대된다.
[부호의 설명]
10: 특성 선택에 기반한 모바일 악성 코드 분류 장치
110: API 추출기
130: API 벡터화기
150: 학습기
170: 분류기
190: 특성 식별기
131: 트레이닝 데이터셋 생성기
133: API 단어 임베딩기
171: 확률 평가기
191: 특성 결정기
193: 중요 API 식별기
Claims (9)
- 카테고리가 정해진 악성 애플리케이션으로부터 패키지 명, 클래스 명, 메소드 명 및 디스크립션을 포함하는 API 특성정보를 추출하는 단계;상기 API 특성정보 중 패키지 명, 클래스 명 및 메소드 명을 이용하여 생성한 트레이닝 데이터셋을 딥 러닝할 수 있도록 벡터화하는 단계;벡터화된 트레이닝 데이터셋을 학습하여 분류기를 생성하는 단계;타겟 악성 애플리케이션이 어떤 카테고리에 적합한지 확률로써 분류하는 단계; 및분류 결과를 이용하여 타겟 악성 애플리케이션의 카테고리를 지정해주고 분류 중요 API를 출력하는 단계;를 포함하는, 특성 선택에 기반한 모바일 악성 코드 분류 방법.
- 제1항에 있어서, 상기 벡터화하는 단계는,카테고리별로 각 애플리케이션에 대해 추출한 API를 모두 합쳐서 트레이닝 데이터셋으로 구축하는 단계; 및트레이닝 데이터셋을 딥 러닝 알고리즘의 입력 값으로 이용하기 위하여 API를 벡터화하는 단계;를 포함하는, 특성 선택에 기반한 모바일 악성 코드 분류 방법.
- 제1항에 있어서, 상기 분류하는 단계는,타겟 악성 애플리케이션에 대해 어떤 카테고리와 적합한지 각 카테고리별 확률을 부여하는 단계;를 포함하는, 특성 선택에 기반한 모바일 악성 코드 분류 방법.
- 제1항에 있어서, 상기 분류 중요 API를 출력하는 단계는,타겟 악성 애플리케이션에 대한 각 카테고리별 확률 중 미리 설정된 임계값보다 큰 값에 해당하는 카테고리를 타겟 악성 애플리케이션의 특성으로 결정하는 단계; 및타겟 악성 애플리케이션이 상기 분류기에서 확률을 부여 받을 때 가장 영향이 큰 미리 설정된 수만큼의 API를 출력하는 단계;를 포함하는, 특성 선택에 기반한 모바일 악성 코드 분류 방법.
- 제1항에 따른 상기 특성 선택에 기반한 모바일 악성 코드 분류 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체.
- 카테고리가 정해진 악성 애플리케이션으로부터 패키지 명, 클래스 명, 메소드 명 및 디스크립션을 포함하는 API 특성정보를 추출하는 API 추출기;상기 API 특성정보 중 패키지 명, 클래스 명 및 메소드 명을 이용하여 생성한 트레이닝 데이터셋을 딥 러닝할 수 있도록 벡터화하는 API 벡터화기;벡터화된 트레이닝 데이터셋을 학습하여 분류기를 생성하는 학습기;타겟 악성 애플리케이션이 어떤 카테고리에 적합한지 확률로써 분류하는 분류기; 및분류 결과를 이용하여 타겟 악성 애플리케이션의 카테고리를 지정해주고 분류 중요 API를 출력하는 특성 식별기;를 포함하는, 특성 선택에 기반한 모바일 악성 코드 분류 장치.
- 제6항에 있어서, 상기 API 벡터화기는,카테고리별로 각 애플리케이션에 대해 추출한 API를 모두 합쳐서 트레이닝 데이터셋으로 구축하는 트레이닝 데이터셋 생성기; 및트레이닝 데이터셋을 딥 러닝 알고리즘의 입력 값으로 이용하기 위하여 API를 벡터화하는 API 단어 임베딩기;를 포함하는, 특성 선택에 기반한 모바일 악성 코드 분류 장치.
- 제6항에 있어서, 상기 분류기는,타겟 악성 애플리케이션에 대해 어떤 카테고리와 적합한지 각 카테고리별 확률을 부여하는 확률 평가기;를 포함하는, 특성 선택에 기반한 모바일 악성 코드 분류 장치.
- 제6항에 있어서, 상기 특성 식별기는,타겟 악성 애플리케이션에 대한 각 카테고리별 확률 중 미리 설정된 임계값보다 큰 값에 해당하는 카테고리를 타겟 악성 애플리케이션의 특성으로 결정하는 특성 결정기; 및타겟 악성 애플리케이션이 상기 분류기에서 확률을 부여 받을 때 가장 영향이 큰 미리 설정된 수만큼의 API를 출력하는 중요 API 식별기;를 포함하는, 특성 선택에 기반한 모바일 악성 코드 분류 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/296,892 US11809557B2 (en) | 2020-11-26 | 2021-01-29 | Mobile malicious code classification method based on feature selection and recording medium and device for performing the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0161669 | 2020-11-26 | ||
KR1020200161669A KR102302484B1 (ko) | 2020-11-26 | 2020-11-26 | 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022114392A1 true WO2022114392A1 (ko) | 2022-06-02 |
Family
ID=77774253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2021/001194 WO2022114392A1 (ko) | 2020-11-26 | 2021-01-29 | 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11809557B2 (ko) |
KR (1) | KR102302484B1 (ko) |
WO (1) | WO2022114392A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102427767B1 (ko) * | 2021-11-25 | 2022-08-02 | 숭실대학교 산학협력단 | 구현 특징에 기반한 모바일 악성 애플리케이션 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치 |
KR102589350B1 (ko) * | 2021-12-02 | 2023-10-16 | (주)트리니티소프트 | 소스코드 보안 취약점의 종류를 구별하는 인공지능 기반의 구별 모델의 생성을 통해 소스코드에 대한 보안 취약점의 종류를 확인할 수 있도록 지원하는 전자 장치 및 그 동작 방법 |
US12130916B2 (en) * | 2022-06-13 | 2024-10-29 | Musarubra Us Llc | Apparatus and methods to classify malware with explainability with artificial intelligence models |
CN116186702B (zh) * | 2023-02-24 | 2024-02-13 | 中国科学院信息工程研究所 | 基于协同注意力的恶意软件分类方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190102451A (ko) * | 2018-02-26 | 2019-09-04 | 한국인터넷진흥원 | 악성 어플리케이션 탐지 방법 및 그 장치 |
KR102033354B1 (ko) * | 2017-11-01 | 2019-10-17 | 국민대학교산학협력단 | Cnn 학습 기반의 멀웨어 분석 장치, 이를 수행하는 cnn 학습 기반의 멀웨어 분석 방법 및 이를 저장하는 기록매체 |
KR102090423B1 (ko) * | 2019-04-25 | 2020-05-04 | 숭실대학교산학협력단 | 동적 api 추출 기반의 애플리케이션 악성코드 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치 |
KR20200073822A (ko) * | 2018-12-14 | 2020-06-24 | 한국인터넷진흥원 | 악성코드 분류 방법 및 그 장치 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101228899B1 (ko) | 2011-02-15 | 2013-02-06 | 주식회사 안랩 | 벡터량 산출을 이용한 악성코드의 분류 및 진단 방법과 장치 |
KR101589656B1 (ko) | 2015-01-19 | 2016-01-28 | 한국인터넷진흥원 | Api 기반 악성 코드 변종 탐지 조회 시스템 및 방법 |
US11373065B2 (en) * | 2017-01-24 | 2022-06-28 | Cylance Inc. | Dictionary based deduplication of training set samples for machine learning based computer threat analysis |
-
2020
- 2020-11-26 KR KR1020200161669A patent/KR102302484B1/ko active IP Right Grant
-
2021
- 2021-01-29 WO PCT/KR2021/001194 patent/WO2022114392A1/ko active Application Filing
- 2021-01-29 US US17/296,892 patent/US11809557B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102033354B1 (ko) * | 2017-11-01 | 2019-10-17 | 국민대학교산학협력단 | Cnn 학습 기반의 멀웨어 분석 장치, 이를 수행하는 cnn 학습 기반의 멀웨어 분석 방법 및 이를 저장하는 기록매체 |
KR20190102451A (ko) * | 2018-02-26 | 2019-09-04 | 한국인터넷진흥원 | 악성 어플리케이션 탐지 방법 및 그 장치 |
KR20200073822A (ko) * | 2018-12-14 | 2020-06-24 | 한국인터넷진흥원 | 악성코드 분류 방법 및 그 장치 |
KR102090423B1 (ko) * | 2019-04-25 | 2020-05-04 | 숭실대학교산학협력단 | 동적 api 추출 기반의 애플리케이션 악성코드 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치 |
Non-Patent Citations (1)
Title |
---|
MATHEWS SHERIN MARY: "Explainable Artificial Intelligence Applications in NLP, Biomedical, and Malware Classification: A Literature Review", INTELLIGENT COMPUTING - PROCEEDINGS OF THE COMPUTING CONFERENCE 2019, 1 July 2019 (2019-07-01), pages 1269 - 1292, XP055933028 * |
Also Published As
Publication number | Publication date |
---|---|
US11809557B2 (en) | 2023-11-07 |
KR102302484B1 (ko) | 2021-09-14 |
US20220179955A1 (en) | 2022-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022114392A1 (ko) | 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
WO2020022704A1 (en) | Method for training and testing obfuscation network capable of processing data to be concealed for privacy, and training device and testing device using the same | |
CN109753800B (zh) | 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统 | |
WO2022107963A1 (ko) | Api 호출 그래프 추출 기반 모바일 애플리케이션 악성 행위 패턴 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
WO2022086146A1 (en) | Method for training and testing obfuscation network capable of obfuscating data for privacy, and training device and testing device using the same | |
WO2019160195A1 (ko) | 파일 내 포함된 악성 위협 탐지 장치 및 방법, 그 기록매체 | |
WO2023096445A1 (en) | Method for generating obfuscated image to be used in training learning network and labeling device using the same | |
WO2022260254A1 (ko) | 전이학습을 통한 적응형 모델 기반의 온 디바이스 안드로이드 악성코드 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
WO2022086145A1 (en) | Method for training and testing obfuscation network capable of processing data to be obfuscated for privacy, and training device and testing device using the same | |
WO2020032420A1 (en) | Method for training and testing data embedding network to generate marked data by integrating original data with mark data, and training device and testing device using the same | |
WO2022086147A1 (en) | Method for training and testing user learning network to be used for recognizing obfuscated data created by obfuscating original data to protect personal information and user learning device and testing device using the same | |
CN110674479B (zh) | 异常行为数据实时处理方法、装置、设备及存储介质 | |
WO2021215710A1 (en) | Method for preventing breach of original data for deep learning and data breach preventing device using them | |
WO2016085272A1 (ko) | 소스 코드의 오류 검출에 있어서 오경보 저감 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 | |
EP3459009A2 (en) | Adaptive quantization method for iris image encoding | |
WO2023027340A1 (en) | Method for training and testing obfuscation network capable of obfuscating data to protect personal information, and learning device and testing device using the same | |
WO2022097898A1 (ko) | 악성코드 탐지모델 학습방법 및 악성코드 탐지방법 | |
CN106874762A (zh) | 基于api依赖关系图的安卓恶意代码检测方法 | |
CN105468972B (zh) | 一种移动终端文件检测方法 | |
CN105243327B (zh) | 一种文件安全处理方法 | |
WO2016088954A1 (ko) | 스팸 분류 방법, 이를 수행하기 위한 기록 매체 및 스팸 분류 장치 | |
WO2023096444A1 (en) | Learning method and learning device for training obfuscation network capable of obfuscating original data for privacy and testing method and testing device using the same | |
WO2019093755A1 (ko) | 폰트 저작권 보호 시스템 및 방법 | |
WO2023096035A1 (ko) | 구현 특징에 기반한 모바일 악성 애플리케이션 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
WO2022139063A1 (ko) | 코드 시퀀스 기반 지능형 핵심코드 식별 방법, 이를 수행하기 위한 기록 매체 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21898222 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21898222 Country of ref document: EP Kind code of ref document: A1 |