WO2023002575A1 - 生成装置、生成方法、生成プログラム、判定装置、判定方法及び判定プログラム - Google Patents

生成装置、生成方法、生成プログラム、判定装置、判定方法及び判定プログラム Download PDF

Info

Publication number
WO2023002575A1
WO2023002575A1 PCT/JP2021/027177 JP2021027177W WO2023002575A1 WO 2023002575 A1 WO2023002575 A1 WO 2023002575A1 JP 2021027177 W JP2021027177 W JP 2021027177W WO 2023002575 A1 WO2023002575 A1 WO 2023002575A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
feature vector
label
determination
feature
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2021/027177
Other languages
English (en)
French (fr)
Inventor
俊樹 芝原
大紀 千葉
満昭 秋山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to PCT/JP2021/027177 priority Critical patent/WO2023002575A1/ja
Publication of WO2023002575A1 publication Critical patent/WO2023002575A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to a generation device, generation method, generation program, determination device, determination method, and determination program.
  • Non-Patent Document 1. reference Techniques for detecting cyberattacks such as malware detection and network intrusion detection using machine learning (ML: Machine Learning) algorithms and deep neural networks (DNN: Deep Neural Network) have been proposed (for example, see Non-Patent Document 1. reference).
  • ML Machine Learning
  • DNN Deep Neural Network
  • a generation device is data related to software, and based on the appearance of a specific character string in data to which a label indicating whether it is malignant or not is attached.
  • an extraction unit for extracting feature vectors from the data; and a mixing unit for mixing a plurality of combinations of the feature vectors extracted by the extraction unit and labels assigned to the feature vectors to generate feature vectors and labels.
  • building a model that predicts labels based on feature vectors, using combinations of feature vectors and labels extracted by the extraction unit and combinations of feature vectors and labels generated by the mixing unit as teacher data; and a part.
  • a determination device includes an extraction unit that extracts a feature vector from the determination data based on the appearance of a specific character string in the determination data regarding software; and the feature vector extracted from the learning data based on the appearance of a specific character string in the learning data labeled as to whether or not it is malignant, and the feature vector Output obtained by inputting the feature vectors extracted by the extraction unit to a model trained with teacher data including the feature vectors and labels obtained by mixing multiple combinations of labels assigned to and a determination unit that determines whether the determination data is malignant based on the above.
  • over-learning can be suppressed even when the number of neural network units used to solve security tasks is small.
  • FIG. 1 is a diagram illustrating a configuration example of a generation device according to the first embodiment.
  • FIG. 2 is a diagram for explaining a method of extracting feature vectors.
  • FIG. 3 is a diagram illustrating a method of mixing feature vectors.
  • FIG. 4 is a diagram illustrating a configuration example of a model.
  • FIG. 5 is a flow chart showing the processing flow of the generation device according to the first embodiment.
  • FIG. 6 is a diagram illustrating a configuration example of a determination device according to the first embodiment;
  • FIG. 7 is a flow chart showing the flow of processing of the determination device according to the first embodiment.
  • FIG. 8 is a diagram showing experimental results.
  • FIG. 9 is a diagram showing experimental results.
  • FIG. 10 is a diagram illustrating an example of a computer that executes programs.
  • FIG. 1 is a diagram illustrating a configuration example of a generation device according to the first embodiment.
  • the generation device 10 receives input of raw data and outputs information such as parameters of a model that has been trained.
  • the model uses a neural network (NN) to output information for determining whether the software is malignant.
  • NN neural network
  • the generation device 10 suppresses overfitting of the model by using not only the given raw data but also data generated from the raw data as teacher data.
  • the generation device 10 when learning is performed in the generating device 10, it is assumed that the raw data is labeled.
  • the generation device 10 also inputs feature vectors extracted from the raw data to the model. Details of the raw data, labels and feature vectors will be described later.
  • the generating device 10 has an interface unit 11, a storage unit 12 and a control unit 13.
  • the interface unit 11 is an interface for inputting and outputting data.
  • the interface unit 11 is a NIC (Network Interface Card).
  • the interface unit 11 can transmit and receive data to and from other devices.
  • the interface unit 11 may be connected to an input device such as a mouse or a keyboard. Also, the interface unit 11 may be connected to an output device such as a display and a speaker.
  • the storage unit 12 is a storage device such as an HDD (Hard Disk Drive), an SSD (Solid State Drive), an optical disc, or the like. Note that the storage unit 12 may be a rewritable semiconductor memory such as RAM (Random Access Memory), flash memory, NVSRAM (Non Volatile Static Random Access Memory).
  • RAM Random Access Memory
  • flash memory Non Volatile Static Random Access Memory
  • the storage unit 12 stores an OS (Operating System) and various programs executed by the generation device 10 .
  • the storage unit 12 stores raw data 121 , teacher data 122 and model information 123 .
  • the raw data 121 is data relating to the software to be determined as to whether it is malignant or not.
  • the raw data 121 is a file of the software itself (eg APK (Android Application Package) file, Windows (registered trademark) executable file), a log generated by the software (eg communication log), and the like.
  • the raw data 121 is labeled.
  • the label may be binary, indicating benign or malignant.
  • the label may also be a malware family name (Trojan, Backdoor, Ransomware, etc.). In that case, the task of the model is multi-class classification.
  • labels are expressed in one-hot encoding. That is, a label is a vector in which each element corresponds to a class, and only some elements are 1 and other elements are 0. Assume here that there are two classes: benign and malignant.
  • the training data 122 is a combination of labels and feature vectors.
  • teacher data 122 is data extracted from raw data 121 .
  • the teacher data 122 is generated by further mixing data extracted from the raw data 121 .
  • the model information 123 is information about the model.
  • the model information 123 includes parameters such as neural network weights.
  • Model information 123 is constructed by learning using teacher data 122 .
  • the control unit 13 controls the generation device 10 as a whole.
  • the control unit 13 includes, for example, electronic circuits such as CPU (Central Processing Unit), MPU (Micro Processing Unit), GPU (Graphics Processing Unit), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), etc. It is an integrated circuit.
  • control unit 13 has an internal memory for storing programs defining various processing procedures and control data, and executes each processing using the internal memory.
  • the control unit 13 functions as various processing units by running various programs.
  • the control unit 13 has an extraction unit 131 , a mixing unit 132 and a construction unit 133 .
  • the extraction unit 131 extracts a feature vector from the data based on the appearance of specific character strings in data that is software-related and labeled to indicate whether it is malignant or not.
  • the extraction unit 131 combines the feature vectors extracted from the raw data 121 with labels and adds them to the training data 122 .
  • the extraction unit 131 is a vector having elements corresponding to each of the specific character strings. Extract a vector that differs from the value of the element corresponding to the string that does not appear.
  • FIG. 2 is a diagram for explaining a method of extracting feature vectors.
  • the raw data 121 includes an APK file 121a, an APK file 121b, and an APK file 121c.
  • the extraction unit 131 extracts character strings from each APK file.
  • the extraction unit 131 may extract character strings from files obtained by disassembling each APK file.
  • the extraction unit 131 may extract character strings from all portions of the APK file, or may extract only character strings in a specific category.
  • specific categories include API names, permissions, domain names, IP addresses, for example.
  • the extraction unit 131 may further collect information related to the extracted character string, and regard the collected character string as the extracted character string. For example, the extraction unit 131 collects IP address location information, domain owners, and the like.
  • the extraction unit 131 may extract only character strings that appear a certain number of times (eg, 10 times) or more in the entire raw data 121 (eg, the APK file 121a, the APK file 121b, and the APK file 121c). .
  • the extraction unit 131 extracts "API 1", “API 2", “API 3", "Permission 1", and "Permission 2" as specific character strings.
  • a specific character string is a character string whose number of appearances obtained by totaling the number of appearances of all character strings in the raw data 121 is a certain number of times.
  • the extraction unit 131 extracts the character strings "API 1", “API 2", and “Permission 1” from the APK file 121a.
  • the extraction unit 131 also extracts the character strings “API 1", “API 3", and “Permission 2” from the APK file 121b.
  • the extraction unit 131 also extracts the character strings “API 2", “API 3", and "Permission 2" from the APK file 121c.
  • the extraction unit 131 assigns the extracted character strings to each element of the feature vector. For example, among the elements of the feature vector, the extraction unit 131 sets the value of the element corresponding to the extracted character string to 1, and sets the value of the element corresponding to the non-extracted character string to 0.
  • the value of the element corresponding to the character string that appears in the APK file differs from the value of the element corresponding to the character string that does not appear in the APK file.
  • the feature vector extracted by the extraction unit 131 is a 1 ⁇ N vector. Furthermore, the extraction unit 131 may add continuous values such as the size and entropy of the raw data 121 to the elements of the feature vector.
  • the first element of the feature vector corresponds to the string "API 1”
  • the second element corresponds to the string “API 2”
  • the third element corresponds to the string “API 3”.
  • the fourth element corresponds to the string "Permission 1”
  • the fifth element corresponds to the string "Permission 2”.
  • the extraction unit 131 extracts a feature vector 1221a from the APK file 121a, a feature vector 1221b from the APK file 121b, and a feature vector 1221c from the APK file 121c.
  • the mixing unit 132 mixes a plurality of combinations of feature vectors extracted by the extraction unit 131 and labels assigned to the feature vectors to generate feature vectors and labels.
  • the mixing unit 132 combines the feature vectors and labels generated by mixing and adds them to the teacher data 122 .
  • the mixing unit 132 adds a value obtained by multiplying the first feature vector by a predetermined mixing rate and a third feature vector obtained by adding a value obtained by multiplying the second feature vector by a value obtained by subtracting the mixing rate from 1. , the first label vector representing the label corresponding to the first feature vector multiplied by the mixing rate, and the second label vector representing the label corresponding to the second feature vector subtracting the mixing rate from 1 and a third label vector that is multiplied by the value and added.
  • FIG. 3 is a diagram illustrating a method of mixing feature vectors.
  • the mixing unit 132 may mix not only the feature vector extracted by the extraction unit 131, but also the feature vector obtained from the intermediate layer of the neural network.
  • the mixing unit 132 acquires multiple combinations of labels and feature vectors from the teacher data 122 .
  • the mixing unit 132 may determine the mixing rate from a predetermined probability distribution such as a beta distribution, or it may determine the mixing rate based on the similarity between data included in the acquired combination and characteristics such as label content. may
  • the mixing unit 132 calculates the third feature vector as in formula (1), where ⁇ is the mixing rate, a is the first feature vector, and b is the second feature vector. In this case, the left side of equation (1) corresponds to the third feature vector.
  • the mixing unit 132 can similarly calculate the third label vector by equation (1) when the mixing rate is ⁇ , the first label vector is a, and the second label vector is b. can. In this case, the left side of equation (1) corresponds to the third label vector.
  • the mixing unit 132 mixes the feature vector 1221a and the feature vector 1221b to obtain the feature vector 1221ab.
  • the mixing unit 132 mixes the label 1222a and the label 1222b to obtain the label 1222ab.
  • label vector the first element of 1 means benign, and the second element of 1 means malignant.
  • the value of each element of a vector obtained by mixing vectors whose element values are binary may be continuous values.
  • the constructing unit 133 uses the combination of the feature vector and the label extracted by the extracting unit 131 and the combination of the feature vector and the label generated by the mixing unit 132 as teacher data to create a model that predicts the label based on the feature vector. to build.
  • FIG. 4 is a diagram showing a configuration example of the model.
  • the constructing unit 133 learns the model shown in FIG.
  • the model in FIG. 4 is a fully-connected NN to which 1 ⁇ N feature vectors are input. According to the present embodiment, over-learning can be suppressed even when the number of units of the NN is reduced to the minimum number necessary for representing the characteristics of data with feature vectors.
  • FIG. 5 is a flow chart showing the processing flow of the generation device according to the first embodiment. As shown in FIG. 5, first, the generation device 10 extracts a feature vector based on the appearance of specific character strings in labeled raw data (step S101).
  • the generation device 10 mixes the labels and the extracted feature vectors to generate combinations of labels and feature vectors (step S102).
  • the generation device 10 constructs a model for predicting a label from a feature vector using a combination of the assigned label and the extracted feature vector and a combination of the label and the feature vector obtained by mixing as teacher data (step S103).
  • the determination device 20 that uses the model constructed by the generation device 10 to actually determine whether or not software is malignant will be described.
  • FIG. 6 is a diagram showing a configuration example of the determination device according to the first embodiment.
  • the determination device 20 has an interface section 21 , a storage section 22 and a control section 23 .
  • the interface unit 21 is an interface for inputting and outputting data.
  • the interface unit 21 is a NIC.
  • the interface unit 21 can transmit and receive data to and from other devices.
  • the interface unit 21 may be connected to an input device such as a mouse or a keyboard. Also, the interface unit 21 may be connected to an output device such as a display and a speaker.
  • the storage unit 22 is a storage device such as an HDD, SSD, or optical disk. Note that the storage unit 22 may be a rewritable semiconductor memory such as a RAM, a flash memory, or an NVSRAM.
  • the storage unit 22 stores the OS and various programs executed by the determination device 20.
  • the storage unit 22 stores model information 221 .
  • the model information 221 is information about the model.
  • the model information 221 includes parameters such as neural network weights.
  • model information 221 has already been constructed by the generation device 10 .
  • the control unit 23 controls the determination device 20 as a whole.
  • the control unit 23 is, for example, an electronic circuit such as a CPU, MPU, or GPU, or an integrated circuit such as an ASIC or FPGA.
  • control unit 23 has an internal memory for storing programs defining various processing procedures and control data, and executes each processing using the internal memory.
  • the control unit 23 functions as various processing units by running various programs.
  • the control unit 23 has an extraction unit 231 and a determination unit 232 .
  • the extraction unit 231 extracts feature vectors from the determination data based on the appearance of specific character strings in the determination data regarding software.
  • the judging unit 232 determines the features extracted from the learning data based on the appearance of a specific character string in the learning data related to software to which a label indicating whether or not it is malignant has been added.
  • the feature vectors extracted by the extraction unit 231 are input to a model trained using teacher data including feature vectors and labels obtained by mixing multiple combinations of vectors and labels assigned to the feature vectors. It is determined whether or not the data for determination is malignant based on the output obtained by the method.
  • the determination unit 232 performs determination by inputting the feature vector extracted by the extraction unit 231 to the model trained by the generation device 10 .
  • FIG. 7 is a flowchart showing the processing flow of the determination device according to the first embodiment. As shown in FIG. 7, the determination device 20 first extracts a feature vector based on the appearance of a specific character string in raw data with an unknown label (step S201).
  • the determination device 20 determines whether or not the raw data is malignant based on the label obtained by inputting the extracted feature vector into the trained model, that is, the label predicted by the model. (Step S202).
  • a trained model is a model that has been trained by the generating device 10 .
  • the extraction unit 131 of the generation device 10 extracts data based on the appearance of a specific character string in data related to software to which a label indicating whether or not it is malignant has been added. Extract feature vectors from the data.
  • the mixing unit 132 mixes a plurality of combinations of the feature vectors extracted by the extraction unit 131 and the labels assigned to the feature vectors to generate feature vectors and labels.
  • the constructing unit 133 uses the combination of the feature vector and the label extracted by the extracting unit 131 and the combination of the feature vector and the label generated by the mixing unit 132 as teacher data to create a model that predicts the label based on the feature vector. to build.
  • the generation device 10 can generate additional training data by mixing training data extracted from actually collected software-related data.
  • over-learning can be suppressed even when the number of neural network units used to solve a security task is small.
  • the extraction unit 131 is a vector having elements corresponding to each of the specific character strings. Extract a vector that differs from the value of the element corresponding to the string that does not appear.
  • the mixing unit 132 adds a value obtained by multiplying the first feature vector by a predetermined mixing rate and a third feature vector obtained by adding a value obtained by multiplying the second feature vector by a value obtained by subtracting the mixing rate from 1. , the first label vector representing the label corresponding to the first feature vector multiplied by the mixing rate, and the second label vector representing the label corresponding to the second feature vector subtracting the mixing rate from 1 and a third label vector that is multiplied by the value and added.
  • the extraction unit 231 of the determination device 20 extracts feature vectors from the determination data based on the appearance of specific character strings in the determination data regarding software.
  • the judging unit 232 determines the features extracted from the learning data based on the appearance of a specific character string in the learning data related to software to which a label indicating whether or not it is malignant has been added.
  • the feature vectors extracted by the extraction unit 231 are input to a model trained using teacher data including feature vectors and labels obtained by mixing multiple combinations of vectors and labels assigned to the feature vectors. It is determined whether or not the data for determination is malignant based on the output obtained by the method.
  • malware detection it is possible to accurately determine the maliciousness of software (malware detection) using a model that has been trained while suppressing over-learning.
  • this embodiment can be used to detect Android malware (malware running on a terminal with Android installed as an OS). Build a model to detect Android malware by the following method and use it for Android malware detection.
  • the generation device 10 uses the collected known malignant and benign APK files as the raw data 121 .
  • malicious APK files are files collected from services such as VirusTotal, or APK files collected from google play that are detected as malicious by anti-virus software.
  • benign APK files are APK files collected from google play that are not detected as malignant by anti-virus software.
  • the determination device 20 extracts the feature vector from the APK file of the Android-equipped smartphone. Then, the determination device 20 determines whether or not the extracted feature vector is malignant using the trained model.
  • the determination device 20 notifies the user to that effect and takes measures such as deleting the APK file.
  • L2, DO, and BN in Figures 8 and 9 correspond to L2 regularization, drop out, and batch normalization, respectively.
  • Mixup corresponds to this embodiment.
  • “L2+Mixup+BN” means the result when a model is constructed using L2 regularization, batch normalization, and teacher data generation according to this embodiment.
  • Fig. 8 shows the degree of suppression of over-learning. It can be said that the smaller the pAUC difference between Training (during learning) and Test (during inference) is, the more over-learning is suppressed. Comparing L2 and L2+Mixup as shown in FIG. 8, it can be said that this embodiment has a certain effect of suppressing overlearning.
  • FIG. 9 shows pAUC for each NN unit size. As shown in FIG. 9, especially in the case of L2+Mixup, pAUC increases with small unit sizes.
  • NN with a small number of units has a small number of parameters, learning and identification can be performed in an environment (eg, mobile) in which only a small number of computational resources can be used.
  • NNs with a small number of units require less computational resources, it is possible to improve the efficiency of hyperparameter searches and reduce power consumption.
  • each component of each device illustrated is functionally conceptual, and does not necessarily need to be physically configured as illustrated.
  • the specific form of distribution and integration of each device is not limited to the illustrated one, and all or part of them can be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions. Can be integrated and configured.
  • all or any part of each processing function performed by each device is realized by a CPU (Central Processing Unit) and a program analyzed and executed by the CPU, or hardware by wired logic can be realized as
  • the generation device 10 can be implemented by installing a program for executing the above-described generation processing as package software or online software on a desired computer.
  • the information processing device can function as the generation device 10 by causing the information processing device to execute the above program.
  • the information processing apparatus referred to here includes a desktop or notebook personal computer.
  • information processing devices include mobile communication terminals such as smartphones, mobile phones and PHS (Personal Handyphone Systems), and slate terminals such as PDAs (Personal Digital Assistants).
  • the generation device 10 can also be implemented as a server device that uses a terminal device used by a user as a client and provides the client with services related to the above-described generation processing.
  • the server device is implemented as a server device that provides a service of inputting raw data and outputting teacher data or learned model information.
  • the server device may be implemented as a web server, or may be implemented as a cloud that provides services related to the above generation processing by outsourcing.
  • FIG. 10 is a diagram showing an example of a computer that executes a program.
  • the computer 1000 has a memory 1010 and a CPU 1020, for example.
  • Computer 1000 also has hard disk drive interface 1030 , disk drive interface 1040 , serial port interface 1050 , video adapter 1060 and network interface 1070 . These units are connected by a bus 1080 .
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012.
  • the ROM 1011 stores a boot program such as BIOS (Basic Input Output System).
  • Hard disk drive interface 1030 is connected to hard disk drive 1090 .
  • a disk drive interface 1040 is connected to the disk drive 1100 .
  • a removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1100 .
  • Serial port interface 1050 is connected to mouse 1110 and keyboard 1120, for example.
  • Video adapter 1060 is connected to display 1130, for example.
  • the hard disk drive 1090 stores, for example, an OS 1091, application programs 1092, program modules 1093, and program data 1094. That is, the program that defines each process of the generation device 10 is implemented as a program module 1093 in which computer-executable code is described. Program modules 1093 are stored, for example, on hard disk drive 1090 .
  • the hard disk drive 1090 stores a program module 1093 for executing processing similar to the functional configuration in the generation processing of the generation device 10 .
  • the hard disk drive 1090 may be replaced by an SSD.
  • the setting data used in the processing of the above-described embodiment is stored as program data 1094 in the memory 1010 or the hard disk drive 1090, for example. Then, the CPU 1020 reads out the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 to the RAM 1012 as necessary and executes them.
  • the program modules 1093 and program data 1094 are not limited to being stored in the hard disk drive 1090, but may be stored in a removable storage medium, for example, and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program modules 1093 and program data 1094 may be stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.). Program modules 1093 and program data 1094 may then be read by CPU 1020 through network interface 1070 from other computers.
  • LAN Local Area Network
  • WAN Wide Area Network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

生成装置(10)の抽出部(131)は、ソフトウェアに関するデータであって、悪性であるか否かを表すラベルが付与されたデータにおける特定の文字列の出現状況を基に、データから特徴ベクトルを抽出する。混合部(132)は、抽出部(131)によって抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して、特徴ベクトル及びラベルを生成する。構築部(133)は、抽出部(131)によって抽出された特徴ベクトルとラベルの組み合わせ、及び混合部(132)によって生成された特徴ベクトルとラベルの組み合わせを教師データとして用いて、特徴ベクトルを基にラベルを予測するモデルを構築する。

Description

生成装置、生成方法、生成プログラム、判定装置、判定方法及び判定プログラム
 本発明は、生成装置、生成方法、生成プログラム、判定装置、判定方法及び判定プログラムに関する。
 機械学習(ML:Machine Learning)アルゴリズム及びディープニューラルネットワーク(DNN:Deep Neural Network)等を用いて、マルウェア検知及びネットワーク侵入検知といったサイバー攻撃を検知する技術が提案されている(例えば非特許文献1を参照)。
 ここで、教師データありのML及びDNNでは、モデルが教師データにはフィットするが、試験データ(評価データ)にはフィットしない、いわゆる過学習(オーバーフィッテイング)が発生する場合がある。
 一方で、このような過学習を抑制する方法として、L2正則化、drop out、batch normalizationが知られている。また、画像処理の分野では、過学習を抑制する方法として、Mixupが知られている(例えば非特許文献2を参照)。
Daniel Arp et al. Drebin: Effective and explainable detection of android malware in your pocket. In Proceedings of the 2014 Network and Distributed System Security Symposium, 2014. Vikas Verma et al. Manifold mixup: Better representations by interpolating hidden states. arXiv preprint arXiv:1806.05236, 2018.
 しかしながら、従来の技術には、セキュリティタスクの解決に用いられるニューラルネットワークのユニット数が少ない場合、過学習を抑制することが難しい場合があるという問題がある。
 上述した課題を解決し、目的を達成するために、生成装置は、ソフトウェアに関するデータであって、悪性であるか否かを表すラベルが付与されたデータにおける特定の文字列の出現状況を基に、前記データから特徴ベクトルを抽出する抽出部と、前記抽出部によって抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して、特徴ベクトル及びラベルを生成する混合部と、前記抽出部によって抽出された特徴ベクトルとラベルの組み合わせ、及び前記混合部によって生成された特徴ベクトルとラベルの組み合わせを教師データとして用いて、特徴ベクトルを基にラベルを予測するモデルを構築する構築部と、を有することを特徴とする。
 上述した課題を解決し、目的を達成するために、判定装置は、ソフトウェアに関する判定用データにおける特定の文字列の出現状況を基に、前記判定用データから特徴ベクトルを抽出する抽出部と、ソフトウェアに関する学習用データであって、悪性であるか否かを表すラベルが付与された学習用データにおける特定の文字列の出現状況を基に、前記学習用データから抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して得られた特徴ベクトル及びラベルを含む教師データによって学習が行われたモデルに、前記抽出部によって抽出された特徴ベクトルを入力して得られた出力を基に、前記判定用データが悪性であるか否かを判定する判定部と、を有することを特徴とする。
 本発明によれば、セキュリティタスクの解決に用いられるニューラルネットワークのユニット数が少ない場合であっても、過学習を抑制することができる。
図1は、第1の実施形態に係る生成装置の構成例を示す図である。 図2は、特徴ベクトルの抽出方法を説明する図である。 図3は、特徴ベクトルの混合方法を説明する図である。 図4は、モデルの構成例を示す図である。 図5は、第1の実施形態に係る生成装置の処理の流れを示すフローチャートである。 図6は、第1の実施形態に係る判定装置の構成例を示す図である。 図7は、第1の実施形態に係る判定装置の処理の流れを示すフローチャートである。 図8は、実験結果を示す図である。 図9は、実験結果を示す図である。 図10は、プログラムを実行するコンピュータの一例を示す図である。
 以下に、本願に係る生成装置、生成方法、生成プログラム、判定装置、判定方法及び判定プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
[第1の実施形態]
 まず、図1を用いて、第1の実施形態に係る生成装置の構成について説明する。図1は、第1の実施形態に係る生成装置の構成例を示す図である。
 生成装置10は、生データの入力を受け付け、学習済みのモデルのパラメータ等の情報を出力する。
 ここで、モデルは、ニューラルネットワーク(NN)を使って、ソフトウェアが悪性であるか否かを判定するための情報を出力する。
 生成装置10は、与えられた生データだけでなく、生データから生成したデータを教師データとして用いることで、モデルの過学習を抑制する。
 また、生成装置10において学習が行われる際には、生データにはラベルが付与されているものとする。また、生成装置10は、生データから抽出した特徴ベクトルをモデルに入力する。生データ、ラベル及び特徴ベクトルの詳細については後述する。
 図1に示すように、生成装置10は、インタフェース部11、記憶部12及び制御部13を有する。
 インタフェース部11は、データの入力及び出力のためのインタフェースである。例えば、インタフェース部11はNIC(Network Interface Card)である。インタフェース部11は他の装置との間でデータの送受信を行うことができる。
 また、インタフェース部11は、マウスやキーボード等の入力装置と接続されていてもよい。また、インタフェース部11は、ディスプレイ及びスピーカ等の出力装置と接続されていてもよい。
 記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。
 記憶部12は、生成装置10で実行されるOS(Operating System)や各種プログラムを記憶する。例えば、記憶部12は生データ121、教師データ122及びモデル情報123モデル情報123を記憶する。
 生データ121は悪性であるか否かを判定する対象のソフトウェアに関するデータでる。例えば、生データ121は、ソフトウェア自体のファイル(例:APK(Android Application Package)ファイル、Windows(登録商標)の実行ファイル)、及びソフトウェアが発生させたログ(例:通信ログ)等である。
 また、生データ121には、ラベルが付与されている。ラベルは、良性又は悪性であることを示す二値であってもよい。また、ラベルは、マルウェアのファミリ名(トロイの木馬、バックドア、ランサムウェア等)であってもよい。その場合、モデルのタスクは多クラス分類となる。
 本実施形態では、ラベルはone-hot encodingで表現されるものとする。すなわち、ラベルは、各要素がクラスに対応し、ある要素のみが1、他の要素が0のベクトルである。ここでは、クラスは良性及び悪性の2つであるものとする。
 教師データ122は、ラベルと特徴ベクトルの組み合わせである。例えば、教師データ122は、生データ121から抽出されるデータである。また、教師データ122は、生データ121から抽出されたデータをさらに混合することによって生成される。
 モデル情報123は、モデルに関する情報である。モデル情報123には、ニューラルネットワークの重み等のパラメータが含まれる。モデル情報123は、教師データ122を用いた学習によって構築される。
 制御部13は、生成装置10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。
 また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。
 制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部13は、抽出部131、混合部132及び構築部133を有する。
 抽出部131は、ソフトウェアに関するデータであって、悪性であるか否かを表すラベルが付与されたデータにおける特定の文字列の出現状況を基に、データから特徴ベクトルを抽出する。抽出部131は、生データ121から抽出した特徴ベクトルをラベルと組み合せて教師データ122に追加する。
 抽出部131は、特定の文字列のそれぞれに対応する要素を持つベクトルであって、特定の文字列のうちデータに出現する文字列に対応する要素の値と、特定の文字列のうちデータに出現しない文字列に対応する要素の値とが異なるベクトルを抽出する。
 図2を用いて特徴ベクトルの抽出方法を説明する。図2は、特徴ベクトルの抽出方法を説明する図である。
 図2に示すように、生データ121には、APKファイル121a、APKファイル121b、APKファイル121cが含まれる。
 まず、抽出部131は、各APKファイルから文字列を抽出する。抽出部131は、各APKファイルを逆アセンブリしたファイルから文字列を抽出してもよい。
 抽出部131は、APKファイルの全ての部分から文字列を抽出してもよいし、特定のカテゴリの文字列のみを抽出してもよい。例えば、特定のカテゴリは、例えばAPI名、パーミッション、ドメイン名、IPアドレスを含む。
 また、抽出部131は、抽出した文字列に関連する情報をさらに収集し、当該収集した文字列を抽出した文字列とみなしてもよい。例えば、抽出部131は、IPアドレスの所在地の情報、ドメインの所有者等を収集する。
 また、抽出部131は、生データ121の全体(例えば、APKファイル121a、APKファイル121b、APKファイル121c)において一定回数(例:10回)以上出現した文字列のみを抽出するようにしてもよい。
 図2の例では、抽出部131は、特定の文字列として「API 1」、「API 2」、「API 3」、「Permission 1」、「Permission 2」を抽出する。特定の文字列は、生データ121の全体の文字列の出現回数を集計して得られた出現回数が一定回数であった文字列である。
 抽出部131は、APKファイル121aから文字列「API 1」、「API 2」、「Permission 1」を抽出する。また、抽出部131は、APKファイル121bから文字列「API 1」、「API 3」、「Permission 2」を抽出する。また、抽出部131は、APKファイル121cから文字列「API 2」、「API 3」、「Permission 2」を抽出する。
 抽出部131は、抽出した文字列を特徴ベクトルの各要素に割り当てる。例えば、抽出部131は、特徴ベクトルの要素のうち、抽出した文字列に対応する要素の値を1とし、抽出しなかった文字列に対応する要素の値を0とする。
 このように、APKファイルに出現する文字列に対応する要素の値と、APKファイルに出現しない文字列に対応する要素の値とが異なる。
 また、特定の文字列の種類の数がNであれば、抽出部131によって抽出される特徴ベクトルは1×Nのベクトルとなる。さらに、抽出部131は、生データ121のサイズ、エントロピー等の連続値を、特徴ベクトルの要素に追加してもよい。
 図2の例では、特徴ベクトルの1番目の要素は文字列「API 1」に対応し、2番目の要素は文字列「API 2」に対応し、3番目の要素は文字列「API 3」に対応し、4番目の要素は文字列「Permission 1」に対応し、5番目の要素は文字列「Permission 2」に対応している。
 抽出部131は、APKファイル121aから特徴ベクトル1221aを抽出し、APKファイル121bから特徴ベクトル1221bを抽出し、APKファイル121cから特徴ベクトル1221cを抽出する。
 混合部132は、抽出部131によって抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して、特徴ベクトル及びラベルを生成する。混合部132は、混合によって生成した特徴ベクトル及びラベルを組み合せて教師データ122に追加する。
 混合部132は、第1の特徴ベクトルにあらかじめ定められた混合率を掛けた値と、第2の特徴ベクトルに混合率を1から引いた値を掛けた値を足した第3の特徴ベクトルと、第1の特徴ベクトルに対応するラベルを表す第1のラベルベクトルに混合率を掛けた値と、第2の特徴ベクトルに対応するラベルを表す第2のラベルベクトルに混合率を1から引いた値を掛けた値を足した第3のラベルベクトルと、の組み合わせを生成する。
 図3を用いて、特徴ベクトルの混合方法を説明する。図3は、特徴ベクトルの混合方法を説明する図である。
 混合部132は、抽出部131によって抽出された特徴ベクトルだけでなく、ニューラルネットワークの中間層から取得した特徴ベクトルを混合してもよい。
 まず、混合部132は、教師データ122の中から、ラベルと特徴ベクトルの複数の組み合わせを取得する。
 混合部132は、混合率を、事前に決められたベータ分布等の確率分布から決定してもよいし、取得した組み合わせに含まれるデータ間の類似度、ラベルの内容等の特性に基づき決定してもよい。
 混合部132は、混合率をλ、第1の特徴ベクトルをa、第2の特徴ベクトルをbとすると、(1)式のように第3の特徴ベクトルを計算する。この場合、(1)式の左辺が第3の特徴ベクトルに相当する。
Figure JPOXMLDOC01-appb-M000001
 また、混合部132は、混合率をλ、第1のラベルベクトルをa、第2のラベル徴ベクトルをbとした場合も、同様に(1)式により第3のラベルベクトルを計算することができる。この場合、(1)式の左辺が第3のラベルベクトルに相当する。
 図3の例では、混合部132は、特徴ベクトル1221aと特徴ベクトル1221bとを混合して、特徴ベクトル1221abを得る。
 また、図3の例では、混合部132は、ラベル1222aとラベル1222bとを混合して、ラベル1222abを得る。
 なお、ラベルはベクトル(ラベルベクトル)で表され、1番目の要素が1であることは良性であることを意味し、2番目の要素が1であることは悪性であることを意味する。
 また、図3のように、要素の値が二値であったベクトルを混合して得られたベクトルの各要素の値は連続値となる場合がある。
 構築部133は、抽出部131によって抽出された特徴ベクトルとラベルの組み合わせ、及び混合部132によって生成された特徴ベクトルとラベルの組み合わせを教師データとして用いて、特徴ベクトルを基にラベルを予測するモデルを構築する。
 図4は、モデルの構成例を示す図である。構築部133は、図4に示すモデルの学習を行う。
 図4のモデルは、1×Nの特徴ベクトルが入力される全結合NNである。本実施形態によれば、特徴ベクトルによりデータの特性を表現するために最低限必要な個数にまでNNのユニット数を小さくした場合であっても、過学習を抑制することができる。
 図5は、第1の実施形態に係る生成装置の処理の流れを示すフローチャートである。図5に示すように、まず、生成装置10は、ラベルが付与された生データにおける特定の文字列の出現状況を基に特徴ベクトルを抽出する(ステップS101)。
 続いて、生成装置10は、ラベル及び抽出した特徴ベクトルを混合し、ラベル及び特徴ベクトルの組み合わせを生成する(ステップS102)。
 生成装置10は、付与済みのラベル及び抽出した特徴ベクトルの組み合わせと、混合によって得られたラベル及び特徴ベクトルの組み合わせと、を教師データとして用いて、特徴ベクトルからラベルを予測するモデルを構築する(ステップS103)。
 ここで、生成装置10によって構築されたモデルを使って実際にソフトウェアが悪性であるか否かを判定する判定装置20について説明する。
 図6は、第1の実施形態に係る判定装置の構成例を示す図である。図6に示すように、判定装置20は、インタフェース部21、記憶部22及び制御部23を有する。
 インタフェース部21は、データの入力及び出力のためのインタフェースである。例えば、インタフェース部21はNICである。インタフェース部21は他の装置との間でデータの送受信を行うことができる。
 また、インタフェース部21は、マウスやキーボード等の入力装置と接続されていてもよい。また、インタフェース部21は、ディスプレイ及びスピーカ等の出力装置と接続されていてもよい。
 記憶部22は、HDD、SSD、光ディスク等の記憶装置である。なお、記憶部22は、RAM、フラッシュメモリ、NVSRAM等のデータを書き換え可能な半導体メモリであってもよい。
 記憶部22は、判定装置20で実行されるOSや各種プログラムを記憶する。例えば、記憶部22はモデル情報221を記憶する。
 モデル情報221は、モデルに関する情報である。モデル情報221には、ニューラルネットワークの重み等のパラメータが含まれる。
 モデル情報221は、生成装置10によって構築済みであるものとする。
 制御部23は、判定装置20全体を制御する。制御部23は、例えば、CPU、MPU、GPU等の電子回路や、ASIC、FPGA等の集積回路である。
 また、制御部23は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。
 制御部23は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部23は、抽出部231及び判定部232を有する。
 抽出部231は、ソフトウェアに関する判定用データにおける特定の文字列の出現状況を基に、判定用データから特徴ベクトルを抽出する。
 判定部232は、ソフトウェアに関する学習用データであって、悪性であるか否かを表すラベルが付与された学習用データにおける特定の文字列の出現状況を基に、学習用データから抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して得られた特徴ベクトル及びラベルを含む教師データによって学習が行われたモデルに、抽出部231によって抽出された特徴ベクトルを入力して得られた出力を基に、判定用データが悪性であるか否かを判定する。
 つまり、判定部232は、生成装置10によって学習が行われたモデルに、抽出部231によって抽出された特徴ベクトルを入力することによって判定を行う。
 図7は、第1の実施形態に係る判定装置の処理の流れを示すフローチャートである。図7に示すように、まず、判定装置20は、ラベルが未知の生データにおける特定の文字列の出現状況を基に特徴ベクトルを抽出する(ステップS201)。
 そして、判定装置20は、抽出した特徴ベクトルを学習済みのモデルに入力して得られたラベル、すなわちモデルによって予測されたラベルを基に、生データが悪性のものであるか否かを判定する(ステップS202)。学習済みのモデルは、生成装置10によって学習が行われたモデルである。
 これまで説明してきたように、生成装置10の抽出部131は、ソフトウェアに関するデータであって、悪性であるか否かを表すラベルが付与されたデータにおける特定の文字列の出現状況を基に、データから特徴ベクトルを抽出する。混合部132は、抽出部131によって抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して、特徴ベクトル及びラベルを生成する。構築部133は、抽出部131によって抽出された特徴ベクトルとラベルの組み合わせ、及び混合部132によって生成された特徴ベクトルとラベルの組み合わせを教師データとして用いて、特徴ベクトルを基にラベルを予測するモデルを構築する。
 このように、生成装置10は、実際に収集したソフトウェアに関するデータから抽出した教師データを混合することで、さらなる教師データを生成することができる。その結果、本実施形態によれば、セキュリティタスクの解決に用いられるニューラルネットワークのユニット数が少ない場合であっても、過学習を抑制することができる。
 抽出部131は、特定の文字列のそれぞれに対応する要素を持つベクトルであって、特定の文字列のうちデータに出現する文字列に対応する要素の値と、特定の文字列のうちデータに出現しない文字列に対応する要素の値とが異なるベクトルを抽出する。
 これにより、ソフトウェアの特性を定量的に表現した特徴ベクトルを得ることができるようになる。
 混合部132は、第1の特徴ベクトルにあらかじめ定められた混合率を掛けた値と、第2の特徴ベクトルに混合率を1から引いた値を掛けた値を足した第3の特徴ベクトルと、第1の特徴ベクトルに対応するラベルを表す第1のラベルベクトルに混合率を掛けた値と、第2の特徴ベクトルに対応するラベルを表す第2のラベルベクトルに混合率を1から引いた値を掛けた値を足した第3のラベルベクトルと、の組み合わせを生成する。
 これにより、教師データを増加させ、過学習を抑制しつつモデルの精度を向上させることができる。
 判定装置20の抽出部231は、ソフトウェアに関する判定用データにおける特定の文字列の出現状況を基に、判定用データから特徴ベクトルを抽出する。判定部232は、ソフトウェアに関する学習用データであって、悪性であるか否かを表すラベルが付与された学習用データにおける特定の文字列の出現状況を基に、学習用データから抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して得られた特徴ベクトル及びラベルを含む教師データによって学習が行われたモデルに、抽出部231によって抽出された特徴ベクトルを入力して得られた出力を基に、判定用データが悪性であるか否かを判定する。
 これにより、過学習を抑制して学習が行われたモデルを用いて、ソフトウェアの悪性判定(マルウェア検知)を精度良く行うことができる。
(実施例)
 例えば、本実施形態は、Androidマルウェア(OSとしてAndroidが搭載された端末で稼働するマルウェア)の検知に利用することができる。下記方法でAndroidマルウェアを検知するモデルを構築し、Androidマルウェア検知に用いる。
 この場合、生成装置10は、生データ121として、収集された既知の悪性及び良性のAPKファイルを用いる。
 例えば、悪性APKファイルは、VirusTotal等のサービスから収集したファイル、又はgoogle playから収集されたAPKファイルのうちアンチウイルスソフトで悪性と検知されたものである。例えば、良性APKファイルは、google playから収集されたAPKファイルのうちアンチウイルスソフトで悪性と検知されなかったものである。
 そして、判定装置20は、Androidを搭載したスマートフォンのAPKファイルから特徴ベクトルを抽出する。そして、判定装置20は、学習済みのモデルを用いて、抽出した特徴ベクトルが悪性であるか否かを判定する。
 例えば、判定装置20は、判定結果が悪性であった場合、その旨をユーザに通知し、APKファイルの削除等の対策を実施する。
(実験)
 図8及び図9に、本実施形態と従来技術とを比較するために行った実験の結果を示す。図8及び図9は、実験結果を示す図である。
 実験では、上記の実施例と同様に、AndroidのAPKファイルの悪性判定及びそのためのモデルの構築を行った。
 図8及び図9の、L2、DO、BNは、それぞれL2正則化、drop out、batch normalizationに相当する。また、Mixupは本実形態に相当する。例えば、「L2+Mixup+BN」は、L2正則化、batch normalization及び本実施形態による教師データの生成を用いてモデルの構築を行った場合の結果を意味する。
 図8は、過学習の抑制度合いを示している。Training(学習時)とTest(推論時)でpAUCの差(Difference)が小さいほど過学習が抑制されているということができる。図8に示すように、L2とL2+Mixupを比較すると、本実施形態のは一定の過学習の抑制効果があるということができる。
 図9は、NNのユニットサイズごとのpAUCを示している。図9に示すように、特にL2+Mixupの場合に、小さいユニットサイズにおいてpAUCが大きくなる。
 これより、本実施形態によれば、NNのユニット数が少なくても、過学習を抑制し、正解率の高い学習モデルを作成することができるということができる。また、ユニット数が少ないNNはパラメータ数が少ないため、少ない計算資源しか利用できない環境(例:モバイル)で学習、識別を行うことができる。
 また、ユニット数が少ないNNは必要な計算資源が少ないため、ハイパーパラメータの探索の効率化や電力消費の削減も可能である。
[システム構成等]
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
 また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
 一実施形態として、生成装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の生成処理を実行するプログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記のプログラムを情報処理装置に実行させることにより、情報処理装置を生成装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
 また、生成装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の生成処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、サーバ装置は、生データを入力とし、教師データ又は学習済みのモデル情報を出力するサービスを提供するサーバ装置として実装される。この場合、サーバ装置は、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の生成処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
 図10は、プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
 ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、生成装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、生成装置10の生成処理における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
 また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
 なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 10 生成装置
 11、21 インタフェース部
 12、22 記憶部
 13、23 制御部
 20 判定装置
 121 生データ
 122 教師データ
 123 モデル情報
 131、231 抽出部
 132 混合部
 133 構築部
 232 判定部

Claims (8)

  1.  ソフトウェアに関するデータであって、悪性であるか否かを表すラベルが付与されたデータにおける特定の文字列の出現状況を基に、前記データから特徴ベクトルを抽出する抽出部と、
     前記抽出部によって抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して、特徴ベクトル及びラベルを生成する混合部と、
     前記抽出部によって抽出された特徴ベクトルとラベルの組み合わせ、及び前記混合部によって生成された特徴ベクトルとラベルの組み合わせを教師データとして用いて、特徴ベクトルを基にラベルを予測するモデルを構築する構築部と、
     を有することを特徴とする生成装置。
  2.  前記抽出部は、前記特定の文字列のそれぞれに対応する要素を持つベクトルであって、前記特定の文字列のうち前記データに出現する文字列に対応する要素の値と、前記特定の文字列のうち前記データに出現しない文字列に対応する要素の値とが異なるベクトルを抽出することを特徴とする請求項1に記載の生成装置。
  3.  前記混合部は、
     第1の特徴ベクトルにあらかじめ定められた混合率を掛けた値と、第2の特徴ベクトルに前記混合率を1から引いた値を掛けた値を足した第3の特徴ベクトルと、
     前記第1の特徴ベクトルに対応するラベルを表す第1のラベルベクトルに前記混合率を掛けた値と、前記第2の特徴ベクトルに対応するラベルを表す第2のラベルベクトルに前記混合率を1から引いた値を掛けた値を足した第3のラベルベクトルと、
     の組み合わせを生成することを特徴とする請求項1又は2に記載の生成装置。
  4.  生成装置によって実行される生成方法であって、
     ソフトウェアに関するデータであって、悪性であるか否かを表すラベルが付与されたデータにおける特定の文字列の出現状況を基に、前記データから特徴ベクトルを抽出する抽出工程と、
     前記抽出工程によって抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して、特徴ベクトル及びラベルを生成する混合工程と、
     前記抽出工程によって抽出された特徴ベクトルとラベルの組み合わせ、及び前記混合工程によって生成された特徴ベクトルとラベルの組み合わせを教師データとして用いて、特徴ベクトルを基にラベルを予測するモデルを構築する構築工程と、
     を含むことを特徴とする生成方法。
  5.  コンピュータを、請求項1から3のいずれか1項に記載の生成装置として機能させるための生成プログラム。
  6.  ソフトウェアに関する判定用データにおける特定の文字列の出現状況を基に、前記判定用データから特徴ベクトルを抽出する抽出部と、
     ソフトウェアに関する学習用データであって、悪性であるか否かを表すラベルが付与された学習用データにおける特定の文字列の出現状況を基に、前記学習用データから抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して得られた特徴ベクトル及びラベルを含む教師データによって学習が行われたモデルに、前記抽出部によって抽出された特徴ベクトルを入力して得られた出力を基に、前記判定用データが悪性であるか否かを判定する判定部と、
     を有することを特徴とする判定装置。
  7.  判定装置によって実行される判定方法であって、
     ソフトウェアに関する判定用データにおける特定の文字列の出現状況を基に、前記判定用データから特徴ベクトルを抽出する抽出工程と、
     ソフトウェアに関する学習用データであって、悪性であるか否かを表すラベルが付与された学習用データにおける特定の文字列の出現状況を基に、前記学習用データから抽出された特徴ベクトルと当該特徴ベクトルに付与されたラベルの複数の組み合わせを混合して得られた特徴ベクトル及びラベルを含む教師データによって学習が行われたモデルに、前記抽出工程によって抽出された特徴ベクトルを入力して得られた出力を基に、前記判定用データが悪性であるか否かを判定する判定工程と、
     を含むことを特徴とする判定方法。
  8.  コンピュータを、請求項6に記載の判定装置として機能させるための判定プログラム。
PCT/JP2021/027177 2021-07-20 2021-07-20 生成装置、生成方法、生成プログラム、判定装置、判定方法及び判定プログラム Ceased WO2023002575A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/027177 WO2023002575A1 (ja) 2021-07-20 2021-07-20 生成装置、生成方法、生成プログラム、判定装置、判定方法及び判定プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/027177 WO2023002575A1 (ja) 2021-07-20 2021-07-20 生成装置、生成方法、生成プログラム、判定装置、判定方法及び判定プログラム

Publications (1)

Publication Number Publication Date
WO2023002575A1 true WO2023002575A1 (ja) 2023-01-26

Family

ID=84979259

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/027177 Ceased WO2023002575A1 (ja) 2021-07-20 2021-07-20 生成装置、生成方法、生成プログラム、判定装置、判定方法及び判定プログラム

Country Status (1)

Country Link
WO (1) WO2023002575A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020154925A (ja) * 2019-03-22 2020-09-24 Kddi株式会社 情報処理装置、情報処理方法、及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020154925A (ja) * 2019-03-22 2020-09-24 Kddi株式会社 情報処理装置、情報処理方法、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VINAYAKUMAR R.; SOMAN K. P.; POORNACHANDRAN PRABAHARAN: "Deep android malware detection and classification", 2017 INTERNATIONAL CONFERENCE ON ADVANCES IN COMPUTING, COMMUNICATIONS AND INFORMATICS (ICACCI), 13 September 2017 (2017-09-13), pages 1677 - 1683, XP033276190, DOI: 10.1109/ICACCI.2017.8126084 *

Similar Documents

Publication Publication Date Title
Nguyen et al. A novel graph-based approach for IoT botnet detection
US11025649B1 (en) Systems and methods for malware classification
Lu Malware detection with lstm using opcode language
EP3654217B1 (en) Malware detection
Kamboj et al. Detection of malware in downloaded files using various machine learning models
Su et al. A deep learning approach to android malware feature learning and detection
Çayır et al. Random CapsNet forest model for imbalanced malware type classification task
Sallow et al. An investigation for mobile malware behavioral and detection techniques based on android platform
Hussain et al. Malware detection using machine learning algorithms for windows platform
US11580222B2 (en) Automated malware analysis that automatically clusters sandbox reports of similar malware samples
Papadopoulos et al. Android malware detection with unbiased confidence guarantees
US11675901B2 (en) Malware detection from operating system event tracing
JP7047664B2 (ja) 学習装置、学習方法および予測システム
US11429823B1 (en) Systems and methods for dynamically augmenting machine learning models based on contextual factors associated with execution environments
Liu et al. Ltachecker: Lightweight android malware detection based on dalvik opcode sequences using attention temporal networks
US20240126891A1 (en) Predicting and Quantifying Weaponization of Software Weaknesses
Čeponis et al. Evaluation of deep learning methods efficiency for malicious and benign system calls classification on the AWSCTD
CN111400708B (zh) 用于恶意代码检测的方法及装置
Zheng et al. A new malware detection method based on vmcadr in cloud environments
Sara et al. Static analysis based malware detection for zero-day attacks in Android applications
Johnson et al. Ensemble model ransomware classification: a static analysis-based approach
Ye et al. Android malware detection technology based on lightweight convolutional neural networks
Abijah Roseline et al. Vision-based malware detection and classification using lightweight deep learning paradigm
US20240045928A1 (en) Cluster-based machine learning model validation
Sun et al. MLxPack: Investigating the effects of packers on ML-based Malware detection systems using static and dynamic traits

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: 21950927

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: 21950927

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP