CN110032868A - 基于机器学习来确定程序代码特性 - Google Patents
基于机器学习来确定程序代码特性 Download PDFInfo
- Publication number
- CN110032868A CN110032868A CN201811502152.6A CN201811502152A CN110032868A CN 110032868 A CN110032868 A CN 110032868A CN 201811502152 A CN201811502152 A CN 201811502152A CN 110032868 A CN110032868 A CN 110032868A
- Authority
- CN
- China
- Prior art keywords
- program code
- calling
- code collection
- cluster
- processor
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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
- G06F21/563—Static detection by source code analysis
-
- 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
- G06N20/00—Machine learning
-
- 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
-
- 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
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
一种技术,包括处理多个程序代码集以提取调用图;确定调用图之间的相似度;将无监督机器学习应用于由所确定的相似度形成的输入,以确定输入的潜在特征;对所确定的潜在特征进行聚类;并且基于聚类的结果来确定多个程序代码集的给定程序代码集的特性。
Description
背景技术
恶意软件(也称为“malware”)是指未经授权的指令,所述指令当由计算机执行时会对计算机的性能产生不利影响和/或危害计算机上存储的数据的完整性。例如,恶意软件可以获得对应用的访问;扰乱计算机操作;擦除存储在计算机上的文件;收集敏感信息(例如,密码或其他个人信息);追踪计算机的用户的行为;使用计算机进行意外操作;等等。
恶意软件可以以许多不同的形式封装。例如,恶意软件可能是病毒,它会将自己从一台计算机复制到另一台计算机;特洛伊木马,其似乎无害(例如,似乎由授权供应商提供),从而掩盖其恶意意图;通过网络安全传播的蠕虫病毒;等等。
附图说明
图1和图4是根据示例实现方案的电子设备的示意图。
图2是描绘了根据示例实现方案的用于确定一个或多个程序代码集的特性的技术的流程图。
图3是根据示例实现方案的用于检测和响应计算机系统中的恶意软件的基于机器学习的技术的流程图。
具体实施方式
参考图1,根据这里公开的示例实现方案的电子设备100可以执行机器可执行指令或“软件”;并且因此,电子设备100可能由于电子设备100意外执行恶意软件178而暴露于恶意活动。在此上下文中,“恶意软件”指的是一个或多个未授权的机器可执行指令,其可以出于在电子设备100上引起恶意活动或未授权活动的目的而由电子设备100的一个或多个处理器124执行。以这种方式,这种活动可能(作为示例)不利地影响电子设备100的性能;允许访问和/或修改由电子设备100存储或可通过电子设备访问的数据;允许访问和/或破坏软件程序或文件;允许远程控制的电子设备100的一个或多个功能;危害敏感信息(信用卡信息、企业机密信息等);等等。
取决于特定实现方案,电子设备100可以采用不同的形式。作为示例,电子设备100可以是计算机、服务器、客户端、台式计算机;便携式计算机或笔记本计算机;平板电脑;智能电话;可穿戴设备(例如手表);物联网(Iot)设备;等等。对于本文描述的示例实现来说,电子设备100假定为基于处理器的设备,即如下设备,出于识别恶意软件和/或响应于所识别的恶意软件而采取适当的纠正动作的目的在所述设备中硬件组件(例如处理器124)执行机器可执行指令(即“软件”)以执行本文描述的技术中的一种或多种。然而,应注意,根据另外的示例实现方案,电子设备100的一个或多个功能可以由不执行机器可执行指令的硬件电路(例如,专用集成电路(ASIC)和/或现场可编程门阵列(FPGA))执行。
尽管本文中描述了示例实现方案,其中电子设备100识别并响应可以存储在所述电子设备上(存储在设备100的本地存储器中,在设备100的大容量存储器中,等等)的恶意软件178,但是根据进一步的示例实现方案,恶意软件178可以存储在电子设备100可访问的另一组件中。例如,根据一些实现方案,电子设备100可以识别和/或响应恶意软件178,所述恶意软件存储在与电子设备100通信的组件中。例如,电子设备100可以是企业计算机网络的服务器。此外,尽管在本文中将电子设备100描述为实施技术以识别恶意软件并响应于此而实施纠正动作,但是根据另外的示例实现方案,这些功能可以由给定计算机系统的多个组件来实施。另外,根据一些实现方案,恶意软件的识别和/或实施纠正动作可各自由计算机系统的多个组件执行。这些计算机系统例如可以设置在单个地理位置或者是分布式计算机系统的一部分。因此,可以构思许多变型方案,这些变型方案在所附权利要求的范围内。
对于图1中描绘的特定示例实现方案来说,电子设备100包括各种基于软件的组件,诸如一个或多个应用170、操作系统180、一个或多个设备驱动174、超管理程序;虚拟机;等等。注意,根据各种实现方案,恶意软件178可以是软件组件之一的一部分或驻留在电子设备100的其他软件组件中。
通常,恶意软件178表示机器可执行指令的单元或集合,本文中称为“程序代码集”。程序代码集可以采用多种形式。在程序代码集中,可以是二进制可执行文件、未编译的程序指令、运行时代码、脚本等。无论其特定形式如何,程序代码集都具有可由一个或多个函数或子例程定义的结构。
如图1所描绘的,根据示例实现方案,电子设备100包括代码特征提取引擎164,其被构造为出于确定电子设备100的程序指令的给定单元的特征的目的而应用无监督机器学习。以这种方式,根据示例实现方案,代码特征提取引擎164确定多个程序代码集的潜在或隐藏特征;并且引擎164基于这些确定的特征对程序代码集进行分组或聚类。基于聚类,可以识别具有类似结构的程序代码集,并且然后可以确定如何响应特定程序代码集。
例如,最初可能不知道给定的程序代码集是良性的还是恶意的。然而,代码特征提取引擎164可以应用本文中描述的无监督机器学习和聚类,并且发现程序代码集与一组或多个良性程序代码集共享特征。这样,电子设备100可以认为给定的程序代码集是良性的。
作为另一示例,代码特征提取引擎164可以经由本文描述的无监督机器学习和聚类来确定评估中的另一个程序代码集与被识别为恶意的一个或多个其他程序代码集共享特征。这样,电子设备100可以经由恶意软件处理器168,例如,出于采取适当的纠正动作(通知系统管理员、隔离程序代码集、向与程序代码集相关联的用户发送电子通信、标记与程序代码集相关联的系统事件,等等)的目的而发起动作。
代码特征提取引擎164还可以用于识别恶意软件的演变。以这种方式,可以通过其他信息(例如,将程序代码集与恶意网站相关联的系统事件信息)知道特定程序代码集是恶意的并且与特定类别的恶意软件相关联。通过应用本文中描述的无监督机器学习和聚类,代码特征提取引擎164可以揭示程序代码集与另一类别或分类的恶意软件共享特征,或者可以作为另一示例揭示所述程序代码集与某些类别的良性软件共享特征。
根据一些实现方案,代码特征提取引擎164可以完全或部分地由处理器124来形成,所述处理器执行存储在电子设备100上的机器可执行指令。根据另外的示例实现方案,代码特征提取引擎164可以完全或部分地由不执行机器可执行指令的硬件组件(例如ASIC或FPGA)形成。不管其特定形式如何,根据示例实现方案,代码特征提取引擎164通过以下操作来执行无监督机器学习(例如,深度神经网络学习(DNN))用于大规模恶意软件检测:1、通过其对应的控制流程图或“调用图”来表示程序代码集;2、应用种子图匹配来量化调用图的类似对是彼此如何类似的;3、将无监督的DNN机器学习应用于种子图匹配的结果,以识别或确定程序代码集的隐藏或潜在特征;并且4、基于特征对程序代码集进行分组或聚类。以这种方式,通过将给定的程序代码集放置在具有共享共同特征的其他已知程序代码集的组或集群中,可以从集群中的程序代码集的已知特征中收集给定程序代码集的一个或多个特征。
更具体地,参考图2并结合图1,根据示例实现方案,代码特征提取引擎164可以执行图2中描绘的技术200。根据技术200,代码特征提取引擎164处理(框204)机器可执行指令的集合或“程序代码集”,以提取控制流图或“调用图”。以这种方式,给定程序代码集的子例程或函数之间的关系可以由调用图表示。在此上下文中,“图”指的是可用于对对象之间的成对关系建模的数学模型。这里,“对象”是程序代码集的函数,并且由顶点(也称为“图节点”或“节点”)以及使表示所述关系的顶点的对互连的线或边来表示。因此,调用图可以用于紧凑地表示一组机器可执行指令的子例程或函数之间的关系,因为顶点表示函数,而边表示函数之间的关系。
根据技术200的框208,代码特征提取引擎164量化地确定每对调用图之间的相似度测量。以这种方式,根据一些实现方案,代码特征提取引擎164针对每对调用图确定匹配度量或距离。根据示例实现方案,对于给定的一对调用图,匹配度量越高,两个图彼此越类似。换言之,该度量有效地测量将一个程序代码集(由一个对应的调用图表示)转换为另一程序代码集(由另一个对应的调用图表示)的费力的量(即,转换的复杂性)。
根据示例实现方案,代码特征提取引擎164确定平方相似度矩阵(本文中称为“S平方相似度矩阵”),其包含表示N个调用图(本文中称为G1,G2,...,GN)对之间的距离的元素。例如,S平方相似度矩阵可以具有N行(与行索引i相关联),并且每行可以与G1,G2,...,GN调用图中的不同的一个相关联。以类似的方式,S平方相似度矩阵可以具有N列(与列索引j相关联),并且每列可以与G1,G2,...,GN调用图中的不同的一个相关联。S平方相似度矩阵的给定元素,即元素(i,j),表示该对调用函数Gi和Gj之间的相似度或距离。根据示例实现方案,距离“0”指的是完整标识,并且例如可以是给定矩阵元素由相同调用函数的行和列交叉形成的情况。根据示例实现方案,一对调用图彼此越接近或更相似,距离越小。
根据一些实现方案,代码特征提取引擎164可以通过应用种子图匹配算法来确定调用图之间的距离。在此上下文中,“种子”图匹配算法指的是配置算法,使得在算法开始时已知某些调用图的结构。通常,种子图匹配可以产生比其他图匹配算法高得多的精度。根据示例实现方案,种子图匹配算法可以是生成S平方相似度矩阵的快速近似二次(FAQ)分配算法。
根据另外的示例实现方案,代码特征提取引擎164可以应用除了FAQ分配算法之外的种子图匹配算法,并且根据另外的示例实现方案,可以应用除了种子图匹配之外的图匹配算法。
仍然参考图2,根据示例实现方案,在确定量化地描述调用图之间的相似度的度量(诸如S平方相似度矩阵)之后,代码特征提取引擎164可以将无监督机器学习应用(框212)于由所确定的相似度形成的输入为了确定输入的隐藏或潜在特征。更具体地,根据一些实现方案,用于无监督机器学习的“输入”可以是归一化的S平方相似度矩阵,本文中称为“SN平方相似度矩阵”。根据示例实现方案,可以通过将S平方相似度矩阵的距离除以S矩阵的距离的平均值或平均数来生成SN平方相似度矩阵。
根据示例实现方案,“无监督机器学习”指的是DNN的使用,例如稀疏自动编码器的应用。以这种方式,稀疏自动编码器是神经网络,其通常具有三个整体层:输入层;包含一个或多个隐藏或编码层的中间层;和解码层。通常,训练神经网络以重构其输入,这迫使(多个)隐藏层学习其输入的特征。更具体地,根据示例实现方式,稀疏自动编码器可以是深度自动编码器,其具有多个隐藏层。通常,稀疏自动编码器可以如下构造和使用,如下所述:
输入:相似度矩阵S,DNN层数Γ,对相似度矩阵进行归一化的第一输入数据X1
输出:从深度表示学得的图嵌入
For j=1:Γ
利用输入数据Xj来构造3层稀疏自动编码器。
通过利用反向传播来优化重构误差的损失函数来训练稀疏自动编码器。获取隐藏层激活hj。
更新Xj+1=hj。
End for.
根据框212,深度稀疏编码器的应用继而产生或识别程序代码集的潜在特征(经由分析的调用图);然后,根据框216代码图提取引擎164对程序代码集进行分组或聚类。换句话说,由于框216的聚类,根据框220可以确定程序代码集的一个或多个特征。作为框220的结果,电子设备100然后可以选择性地采取适当的纠正动作。
以这种方式,最初可能不知道给定的程序代码集是恶意的。然而,通过应用技术200并将给定程序代码集与被识别为恶意的其他程序代码集分组,电子设备100然后可以调用恶意软件处理器100(图1)以采取适当的纠正动作。作为另一示例,聚类可以揭示给定程序代码集是良性的,并且作为另一示例,基于聚类结果,可以更新已经识别的病毒(或其他恶意软件)的定义、特征或类别。
参考图3,因此,总而言之,参考图3并结合图1,根据示例实现方案,代码特征提取引擎164可以执行如下技术300,所述技术包括提取与程序文件相关联的调用图G1,G2,...,GN,并且将基于FAQ的种子图匹配应用于(框312)G1,G2,...,GN调用图函数以确定S平方相似度矩阵。根据框316,然后可以确定SN归一化相似度矩阵,然后可以根据框320对SN归一化相似度矩阵执行深度学习,以确定SN矩阵的潜在特征。
根据框320,使用构造的三层稀疏自动编码器,从数字1到伽马(其中“伽马”表示稀疏自动编码器的隐藏层的数量)执行一系列迭代(在附图标记324处表示),如框322所示。通常,每次迭代包括利用反向传播来训练(框328)稀疏自动编码器。根据框332,作为该训练的结果,更新输入;并且取决于j,可以执行另一次迭代。框320的结果是识别程序代码集的特征,然后可以根据框334执行k均值聚类。根据框338,基于聚类的结果,代码特征提取引擎164然后可以基于聚类结果选择性地采取纠正动作。
参考图4,根据示例实现方案,电子设备100可以是基于处理器的机器。以这种方式,处理器124可以包括一个或多个中央处理单元(CPU)410、主存储器404、输入/输出(I/O)子系统414,以及一个或多个网络接口控制器418。根据示例实现方案,电子设备100可以包括一个或多个附加组件,例如数据存储设备420、显示设备422(例如用于为电子设备提供视觉输出并为电子设备100提供基于触摸的输入的触摸屏显示器)、一个或多个外围设备426,等等。根据示例实现方案,图4中描绘的组件中的一个或多个可以并入或另外形成另一组件的一部分。例如,根据一些实现方案,主存储器404或其部分可以合并到CPU 410中。
CPU 410可以体现为能够执行本文描述的功能的任何类型的处理器。取决于特定实现方案,CPU 410可以是单核处理器、多核处理器、微控制器或其他处理器或处理/控制电路。对于图4的示例实现方案来说,CPU 410可以包含一个或多个CPU核170。根据示例实现方案,一个或多个CPU核170可以是单个集成电路封装的一部分。
取决于特定实现,主存储器404可以是非暂时性存储器,取决于具体实现,其可以由例如半导体存储设备、忆阻器、磁存储设备、相变存储器设备、3D交叉点非易失性存储器等形成。
根据示例实现方案,主存储器404可以存储数据406和机器可执行指令408,以便实现本文中描述的技术中的一种或多种技术,例如由代码特征提取引擎164(图1)和/或恶意软件处理器168执行的一个或多个功能。在运行中,主存储器404可以存储在电子设备100的运行期间使用的数据406和机器可执行指令408,例如表示调用图G1,G2,...GN的数据、表示S平方相似度矩阵的数据、表示SN归一化平方相似度矩阵的数据、表示稀疏自动编码器的参数的数据、表示通过应用稀疏自动编码器识别的特征的数据、表示稀疏自动编码器的状态的数据、表示调用图的数据等等。
通常,I/O子系统414可以简化与电子设备100的CPU 410、主存储器404和其他组件的输入/输出操作。作为示例,I/O子系统414可以包括存储器控制器集线器、输入/输出控制集线器、集成传感器集线器、固件设备、通信链路(即点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等),和/或其他组件和子系统,以简化输入/输出操作。根据示例实现方案,I/O子系统414可以形成片上系统(SoC)的一部分并且与CPU 410、主存储器404和电子设备100的其他组件中的一个或多个一起被合并在单个集成电路芯片上。
还如图4所示,根据一些实现方案,电子设备100可以包括网络接口控制器418。根据示例实现方案,网络接口控制器418可以包含在可以由电子设备100使用的一个或多个添加器、子卡、网络接口卡、控制器芯片,芯片组或其他设备上。根据示例实现方案,网络接口控制器418可以是包括一个或多个处理器的片上系统(SoC),或包含在也包含一个或多个处理器的多芯片封装中。根据示例实现方案,网络接口控制器418可以包括一个或多个本地处理器(未示出)和/或本地存储器(未示出),它们是对于控制器418来说本地的。根据示例实现方案,如本文所述,网络接口控制器418的本地处理器能够执行电子设备100的一个或多个功能。
根据示例实现方案,网络接口控制器418可以通过各种网络结构进行通信。通常,网络结构可以包括任何类型的有线或无线通信网络,包括蜂窝网络(例如,全球移动通信系统(GSM)、3G、长期演进(LTE)、全球微波接入互操作性(WiMAX),等)、数字用户线(DSL)网络、有线网络(例如,同轴网络、光纤网络等)、电话网络、局域网(LAN)或广域网(WAN)、全球网络(例如,互联网),或其任何组合。此外,根据示例实现方式,网络结构可以包括任何数量的网络设备,以便于电子设备100和另一网络组件之间的通信。
本文公开的机制的实现可以用硬件、软件、固件或这些实现方法的组合来实现。本发明的实现方案可以实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。
程序代码可以应用于输入指令以执行本文描述的功能并生成输出信息。输出信息可以以已知的方式应用于一个或多个输出设备。出于本申请的目的,处理系统包括具有处理器的任何系统,例如,数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器。
程序代码可以以高级过程或面向对象的编程语言实现,以与处理系统通信。如果需要,程序代码也可以用汇编语言或机器语言实现。实际上,本文描述的机制不限于任何特定编程语言的范围。在任何情况下,语言可以是编译或解释型语言。
可以通过存储在机器可读介质上的代表性指令来实现至少一个实现方案的一个或多个方面,该代表性指令表示处理器内的各种逻辑,当由机器读取时使得机器制造逻辑以执行本文所描述的技术。这种称为“IP核”的表示可以存储在有形的、机器可读介质上,并供应给各种客户或制造设施,以加载到实际制造逻辑的制造机器或处理器中。
这种机器可读存储介质可以包括但不限于由机器或设备制造或形成的物品的非暂时性有形布置,包括如下存储介质,诸如硬盘,任何其他类型的盘,包括软盘、光盘、光盘只读存储器(CD-ROM)、光盘可擦写(CD-RW)和磁光盘,半导体设备如只读存储器(ROM)、随机存取存储器(RAM)如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡或适用于存储电子指令的任何其他类型的介质。
因此,本发明的实现方案还包括包含指令或包含例如硬件描述语言(HDL)的设计数据的非暂时性有形机器可读介质,所述设计定义本文描述的结构、电路、装置、处理器和/或系统特征。这样的实现也可以称为程序产品。
在一些情况下,指令转换器可用于将指令从源指令集转换为目标指令集。例如,指令转换器可以转换(例如,使用静态二进制转换,包括动态编译的动态二进制转换)、模拟、仿真或以其他方式将指令转换为要由核处理的一个或多个其他指令。指令转换器可以以软件、硬件、固件或其组合来实现。指令转换器可以是在处理器上、不在处理器上,或者部分是在处理器上而部分不在处理器上。
因此,公开了根据至少一个实现方案的用于执行一个或多个指令的技术。尽管已经在附图中描述和示出了某些示例性实现方案,但是应该理解的是,这样的实现方案仅仅是对本发明的说明而非限制,并且本发明不限于所示和所描述的具体结构和布置,因为在研究本公开时,本领域普通技术人员可以想到各种其他修改。在诸如此类的技术领域中,在快速增长并且不容易预见到进一步改进的情况下,所公开的实现方案可以在布置和细节上容易地修改,如通过实现技术进步而促进的,而不脱离本公开的原理或随附的权利要求的范围。
示例
下面提供本文公开的技术的说明性示例。这些技术的实施例可以包括下面描述的示例中的任何一个或多个,以及任何组合。
示例1包括一种方法,包括处理多个程序代码集以提取调用图;确定调用图之间的相似度;将无监督机器学习应用于由确定的相似度形成的输入,以确定所述输入的潜在特征;对所确定的潜在特征进行聚类;基于聚类的结果确定多个程序代码集的给定程序代码集的特性。
示例2包括示例1的主题,并且可以可选地包括将种子图匹配应用于多个程序代码集以确定多个程序代码集的对之间的距离。
示例3包括示例1-2的主题,并且可以可选地包括,确定程序代码集之间的距离包括生成矩阵。
示例4包括示例1-3的主题,并且可以可任选地包括,生成矩阵包括生成相似度矩阵。
示例5包括示例1-4的主题,并且可选地包括,生成矩阵包括生成如下矩阵,其中矩阵的每一行与多个代码集的一个程序代码集相关联,矩阵的每一列与多个程序代码集的一个程序代码集相关联,并且矩阵的给定元素与多个程序代码集中的一对程序代码集相关联,并表示该对之间的距离。
示例6包括示例1-5的主题,并且可以可选地包括,应用种子图匹配包括应用快速近似二次(FAQ)分配算法。
示例7包括示例1-6的主题,并且可以可选地包括7,确定相似度包括确定调用图之间的距离;并对距离进行归一化以生成针对无监督机器学习的输入。
示例8包括示例1-7的主题,并且可以可选地包括,应用无监督机器学习包括应用深度神经网络学习。
示例9包括示例1-8的主题,并且可任选地包括,对所确定的潜在特征进行聚类包括应用k均值聚类。
示例10包括示例1-9的主题,并且可选地包括,确定特性包括识别与恶意软件相关联的特性。
示例11包括示例1-10的主题,并且可选地包括响应于识别特性而针对给定程序代码集采取纠正动作。
示例12包括示例1-11的主题,并且可以可选地包括,采取纠正动作包括对给定的程序代码集进行隔离。
示例13包括一种用于存储指令的机器可读存储介质,所述指令在被执行时使机器执行如示例1-12中任一项所述的方法。
在另一个示例中,一种包括数据的计算机可读介质,所述数据将由至少一个机器用于制造至少一个集成电路以执行如示例1-12中任一项所述的方法。
在另一个示例中,一种装置包括用于执行如示例1-12中任一项所述的方法的单元。
示例14包括一种方法,该方法包括访问表示控制流程图的数据,其中每个控制流程图表示多个机器可执行指令集的一个机器可执行指令集;基于控制流图确定相似度矩阵;并且应用基于神经网络的机器学习来基于相似度矩阵确定多个机器可执行指令集共同共享的特征。
示例15包括示例14的主题,并且可以可选地包括基于所确定的特征将多个机器可执行指令集的给定机器可执行指令集识别为与恶意活动相关联。
示例16包括示例14-15的主题,并且可任选地包括基于种子图匹配来确定相似度矩阵。
示例17包括示例14-15的主题,并且可以可选地包括训练稀疏自动编码器以确定特征;并基于所确定的特征来对机器可执行指令集进行聚类。
示例18包括一种用于存储指令的机器可读存储介质,所述指令在被执行时使机器执行如示例14-17中任一项所述的方法。
在另一个示例中,一种包括数据的计算机可读介质,所述数据将由至少一个机器用于制造至少一种集成电路以执行如示例14-17中任一项所述的方法。
在另一个示例中,一种装置包括用于执行示例14-17中任一项所述的方法的单元。
示例19包括一种包括处理器和存储介质的装置。存储介质用于存储如下指令,所述指令当由处理器执行时,使得处理器将种子图匹配应用于与多个程序代码集相关联的调用图,以确定调用图之间的距离;将无监督机器学习应用于距离以确定调用图的潜在特征;对所确定的潜在特征进行聚类以形成多个集群,其中每个集群与程序代码集中的至少一个相关联,其中第一程序代码集与多个集群中的给定集群相关联,并且给定集群与多个程序代码集中的至少一个其他程序代码集相关联;并基于至少一个其他程序代码集来表征第一个程序集。
示例20包括示例19的主题,并且可选地包括如下指令,所述指令当由处理器执行时,使得处理器基于第一程序集的表征选择性地采取纠正动作。
示例21包括示例18-19的主题,并且可以可选地包括如下指令,所述指令当由处理器执行时,使得处理器构建稀疏自动编码器;并使用反向传播来训练自动编码器以确定调用图的潜在特征。
示例22包括示例18-20的主题,并且可以可选地包括指令,所述指令当由处理器执行时,使得处理器确定自动编码器的隐藏层以重构用于隐藏层的输入的状态。
可以使用各种单元来实现示例19-22的处理器。
在一个示例中,处理器可以包括并入触摸使能设备中的片上系统(SoC)。
在另一示例中,一种系统包括显示器,存储器和以上示例中的一个或多个的处理器。
在示例23中,一种装置包括用于存储多个程序代码集的存储单元;和处理单元。处理单元耦合到存储单元,用于将种子图匹配应用于与多个程序代码集相关联的调用图,以确定调用图之间的距离;将无监督机器学习应用于距离以确定调用图的潜在特征;对所确定的潜在特征进行聚类以形成多个集群,其中每个集群与程序代码集中的至少一个相关联,并且其中第一程序代码集与多个集群中的给定集群相关联,并且其中给定集群与多个程序代码集中的至少一个其他程序代码集相关联;并且基于至少一个其他程序代码集来表征第一程序集。
示例24包括示例23的主题,并且可以可选地包括恶意软件处理单元,用于基于第一程序集的表征来选择性地采取纠正动作。
示例25包括示例23-24的主题,并且可以可选地包括处理单元,其构建稀疏自动编码器;并使用反向传播来训练自动编码器以确定调用图的潜在特征。
示例26包括示例23-25的主题,并且可以可选地包括处理单元,其确定自动编码器的隐藏层以重构用于隐藏层的输入的状态。
尽管已经关于有限数量的实现方案描述了本公开,但是受益于本公开的本领域技术人员将意识到由此产生的许多修改和变化。所附权利要求旨在覆盖所有这些修改和变化。
Claims (20)
1.一种用于表征多个程序集中的第一程序集的装置,所述装置包括:
处理器;以及
存储介质,其用于存储指令,所述指令当由所述处理器执行时,使所述处理器用于:
将种子图匹配应用于与所述多个程序代码集相关联的调用图以确定所述调用图之间的距离;
将无监督机器学习应用于所述距离以确定所述调用图的潜在特征;
对确定的潜在特征进行聚类以形成多个集群,其中,每个集群与所述程序代码集中的至少一个相关联,其中,所述第一程序代码集与所述多个集群中的给定集群相关联,并且所述给定集群与所述多个程序代码集中的至少一个其他程序代码集相关联;以及
基于所述至少一个其他程序代码集来表征所述第一程序集。
2.如权利要求1所述的装置,其中,所述指令当由所述处理器执行时,使所述处理器用于基于所述第一程序集的表征来选择性地采取纠正动作。
3.如权利要求1或2所述的装置,其中,所述指令当由所述处理器执行时,使所述处理器用于:
构建稀疏自动编码器;以及
使用反向传播来训练所述自动编码器以确定所述调用图的潜在特征。
4.如权利要求3所述的装置,其中,所述指令当由所述处理器执行时,使所述处理器用于:
确定所述自动编码器的隐藏层以重构用于所述隐藏层的输入的状态。
5.一种装置,包括:
存储单元,其用于存储多个程序代码集;以及
耦合到所述存储单元的处理单元,其用于:
将种子图匹配应用于与所述多个程序代码集相关联的调用图以确定所述调用图之间的距离;
将无监督机器学习应用于所述距离以确定所述调用图的潜在特征;
对确定的潜在特征进行聚类以形成多个集群,其中,每个集群与所述程序代码集中的至少一个相关联,其中,第一程序代码集与所述多个集群中的给定集群相关联,并且其中,所述给定集群与所述多个程序代码集中的至少一个其他程序代码集相关联;以及
基于所述至少一个其他程序代码集来表征所述第一程序集。
6.如权利要求5所述的装置,还包括恶意软件处理单元,其用于基于所述第一程序集的表征来选择性地采取纠正动作。
7.如权利要求5或6所述的装置,其中,所述处理单元:
构建稀疏自动编码器;以及
使用反向传播来训练所述自动编码器以确定所述调用图的潜在特征。
8.如权利要求7所述的装置,其中,所述处理单元确定所述自动编码器的隐藏层,以重构用于所述隐藏层的输入的状态。
9.一种用于确定给定程序代码集的特性的方法,所述方法包括:
处理多个程序代码的集合以提取调用图,其中,所述多个程序代码集包括所述给定的程序代码集;
确定所述调用图之间的相似度;
将无监督机器学习应用于由确定的相似度形成的输入,以确定所述输入的潜在特征;
对确定的潜在特征进行聚类;以及
基于所述聚类的结果来确定所述给定程序代码集的特性。
10.如权利要求9所述的方法,其中,确定所述调用图之间的相似度包括将种子图匹配应用于所述多个程序代码集以确定所述多个程序代码集的对之间的距离。
11.如权利要求9或10所述的方法,其中,确定所述程序代码集之间的距离包括生成矩阵。
12.如权利要求11所述的方法,其中,生成所述矩阵包括生成相似度矩阵。
13.如权利要求11所述的方法,其中,生成所述矩阵包括生成如下矩阵,其中,所述矩阵的每一行与所述多个代码集中的一个程序代码集相关联,所述矩阵的每一列与所述多个程序代码集中的一个程序代码集相关联,所述矩阵的给定元素与所述多个程序代码集中的上述一对程序代码集相关联并且表示所述对之间的距离。
14.如权利要求9、10、11、12或13所述的方法,其中,应用种子图匹配包括应用快速近似二次(FAQ)分配算法。
15.如权利要求9、10、11、12、13或14所述的方法,其中,确定所述相似度包括确定所述调用图之间的距离,并且所述方法还包括对所述距离进行归一化以生成针对所述无监督机器学习的输入。
16.如权利要求9、10、11、12、13、14或15所述的方法,其中,应用所述无监督机器学习包括应用深度神经网络学习。
17.如权利要求9、10、11、12、13、14、15或16所述的方法,其中,对所述确定的潜在特征进行聚类包括应用k均值聚类。
18.如权利要求9、10、11、12、13、14、15、16或17所述的方法,其中,确定所述特性包括识别与恶意软件相关联的特性。
19.如权利要求18所述的方法,进一步包括响应于识别所述特性或隔离所述给定程序代码集,针对所述给定程序代码集来采取纠正动作。
20.一种用于存储指令的机器可读存储介质,所述指令当被执行时使得机器用于执行如权利要求9-19中的任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/867,251 US10917415B2 (en) | 2018-01-10 | 2018-01-10 | Machine learning-based determination of program code characteristics |
US15/867,251 | 2018-01-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110032868A true CN110032868A (zh) | 2019-07-19 |
Family
ID=65231977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811502152.6A Pending CN110032868A (zh) | 2018-01-10 | 2018-12-10 | 基于机器学习来确定程序代码特性 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10917415B2 (zh) |
CN (1) | CN110032868A (zh) |
DE (1) | DE102018126146A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371611A (zh) * | 2020-02-28 | 2020-07-03 | 广州大学 | 一种基于深度学习的加权网络社区发现方法及装置 |
CN111930615A (zh) * | 2020-07-27 | 2020-11-13 | 中国工商银行股份有限公司 | 代码质量评估方法及装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11113293B2 (en) * | 2019-01-18 | 2021-09-07 | Adobe Inc. | Latent network summarization |
US11386157B2 (en) | 2019-06-28 | 2022-07-12 | Intel Corporation | Methods and apparatus to facilitate generation of database queries |
US11782685B2 (en) * | 2020-06-17 | 2023-10-10 | Bank Of America Corporation | Software code vectorization converter |
US11573775B2 (en) * | 2020-06-17 | 2023-02-07 | Bank Of America Corporation | Software code converter for resolving redundancy during code development |
US20230289444A1 (en) * | 2022-03-14 | 2023-09-14 | Microsoft Technology Licensing, Llc | Data traffic characterization prioritization |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176559B2 (en) * | 2009-12-16 | 2012-05-08 | Mcafee, Inc. | Obfuscated malware detection |
US9021589B2 (en) * | 2012-06-05 | 2015-04-28 | Los Alamos National Security, Llc | Integrating multiple data sources for malware classification |
US20170068816A1 (en) * | 2015-09-04 | 2017-03-09 | University Of Delaware | Malware analysis and detection using graph-based characterization and machine learning |
-
2018
- 2018-01-10 US US15/867,251 patent/US10917415B2/en active Active
- 2018-10-22 DE DE102018126146.2A patent/DE102018126146A1/de active Pending
- 2018-12-10 CN CN201811502152.6A patent/CN110032868A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371611A (zh) * | 2020-02-28 | 2020-07-03 | 广州大学 | 一种基于深度学习的加权网络社区发现方法及装置 |
CN111930615A (zh) * | 2020-07-27 | 2020-11-13 | 中国工商银行股份有限公司 | 代码质量评估方法及装置 |
CN111930615B (zh) * | 2020-07-27 | 2023-08-04 | 中国工商银行股份有限公司 | 代码质量评估方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
DE102018126146A1 (de) | 2019-07-11 |
US10917415B2 (en) | 2021-02-09 |
US20190044959A1 (en) | 2019-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032868A (zh) | 基于机器学习来确定程序代码特性 | |
US11556861B2 (en) | Debugging correctness issues in training machine learning models | |
Dong et al. | Dnnmark: A deep neural network benchmark suite for gpus | |
JP6823523B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US20190325265A1 (en) | Generating a machine learning model for objects based on augmenting the objects with physical properties | |
US20180018555A1 (en) | System and method for building artificial neural network architectures | |
KR20200088475A (ko) | 신경망의 기능적 부분망의 동시 훈련 | |
US10311357B2 (en) | Thermodynamic-RAM technology stack | |
CN106980623A (zh) | 一种数据模型的确定方法及装置 | |
JP2013503393A (ja) | 偽陽性を減少させるために複数のインラインヒューリスティックを使用するためのシステムおよび方法 | |
CN107506617B (zh) | 半局部社交信息miRNA-疾病关联性预测方法 | |
Givon et al. | Neurokernel: an open source platform for emulating the fruit fly brain | |
US11144291B1 (en) | Loop-oriented neural network compilation | |
CN109634869A (zh) | 基于语义等价验证的二进制翻译中间表示正确性测试方法及装置 | |
CN107291692A (zh) | 基于人工智能的分词模型的定制方法、装置、设备和介质 | |
CN114008635A (zh) | 神经网络逐层调试 | |
Bhuiyan et al. | Representing graphs as bag of vertices and partitions for graph classification | |
Raghavan et al. | Tools and simulators for membrane computing-a literature review | |
JP2023035941A (ja) | 量子デバイスでのサンプリングのための誤り軽減 | |
Wang et al. | Improving the efficiency of functional verification based on test prioritization | |
CN115527626A (zh) | 分子处理方法、装置、电子设备、存储介质及程序产品 | |
Aparecida Silva Camacho et al. | PB3Opt: Profile‐based biased Bayesian optimization to select computing clusters on the cloud | |
Jin et al. | Parallel implementation of P systems for data clustering on GPU | |
Givon et al. | Neurokernel: An open scalable software framework for emulation and validation of Drosophila brain models on multiple GPUs | |
Janoušek et al. | Towards power plant output modelling and optimization using parallel Regression Random Forest |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |