CN116541840A - 恶意软件同源分析方法、装置、设备和介质 - Google Patents

恶意软件同源分析方法、装置、设备和介质 Download PDF

Info

Publication number
CN116541840A
CN116541840A CN202310590073.XA CN202310590073A CN116541840A CN 116541840 A CN116541840 A CN 116541840A CN 202310590073 A CN202310590073 A CN 202310590073A CN 116541840 A CN116541840 A CN 116541840A
Authority
CN
China
Prior art keywords
financial transaction
code
homology analysis
information
code blocks
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
Application number
CN202310590073.XA
Other languages
English (en)
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202310590073.XA priority Critical patent/CN116541840A/zh
Publication of CN116541840A publication Critical patent/CN116541840A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种恶意软件同源分析方法,涉及人工智能领域。该方法包括:获取待分析软件程序的源代码;基于N个金融交易要素,确定所述源代码中的N个代码块,其中,所述N个代码块用于处理与所述N个金融交易要素一一对应地金融交易数据,N为大于或等于1的整数;基于所述N个代码块得到代码特征向量,所述代码特征向量包括所述N个代码块的特征,及所述N个代码块与所述N个金融交易要素之间的一一映射关系;利用同源分析模型处理所述代码特征向量,获得恶意软件同源分析结果。本公开还提供了一种恶意软件同源分析装置、设备、存储介质和程序产品。

Description

恶意软件同源分析方法、装置、设备和介质
技术领域
本公开涉及人工智能领域,更具体地,涉及一种恶意软件同源分析方法、装置、设备、介质和程序产品。
背景技术
随着金融行业的数字化转型和互联网金融的快速发展,金融恶意软件成为了一项严重的威胁。恶意软件如银行木马、钓鱼网站和恶意支付应用等,针对金融机构和用户的敏感信息和资金进行窃取和欺诈。这些恶意软件通常采用多变的变种和伪装手法,以逃避传统的安全防护措施。为了保护计算机系统和网络安全,恶意软件分析和检测成为了计算机领域的重要研究方向。恶意软件同源分析是其中一个关键问题,其主要任务是检测待分析软件程序已知恶意软件样本之间的同源性,以便于分类、识别和分析。
传统的恶意软件同源分析方法主要依赖于如哈希函数、字符串匹配和编辑距离等方式,这些方法的准确性和效率受到了很大的限制,尤其是对于变异的恶意软件样本,很难进行有效的分析。传统的基于规则和签名的恶意软件同源分析方法往往需要人工定义特征和规则,且容易被攻击者绕过。此外,发明人还发现,不同的行业具有其自身的业务特点,传统的恶意软件同源分析方法与金融交易场景的适配性不好,准确度不高。
发明内容
鉴于上述问题,本公开提供了一种恶意软件同源分析方法、装置、设备、介质和程序产品。
本公开实施例的一个方面,提供了一种恶意软件同源分析方法,包括:获取待分析软件程序的源代码;基于N个金融交易要素,确定所述源代码中的N个代码块,其中,所述N个代码块用于处理与所述N个金融交易要素一一对应地金融交易数据,N为大于或等于1的整数;基于所述N个代码块得到代码特征向量,所述代码特征向量包括所述N个代码块的特征,及所述N个代码块与所述N个金融交易要素之间的一一映射关系;利用同源分析模型处理所述代码特征向量,获得恶意软件同源分析结果。
根据本公开的实施例,所述基于N个金融交易要素,确定所述源代码中的N个代码块包括:将所述源代码转换为抽象语法树,所述抽象语法树用于表征所述源代码的语法结构;基于所述N个金融交易要素中每个金融交易要素,从所述抽象语法树中确定关联的树节点。
根据本公开的实施例,所述基于所述N个金融交易要素中每个金融交易要素,从所述抽象语法树中确定关联的树节点包括:遍历所述抽象语法树中各个树节点的属性信息,所述属性信息包括节点标识符、上下文关系和函数参数中至少之一;将所述每个金融交易要素的要素信息与所述各个树节点的属性信息进行匹配,获得匹配结果;根据所述匹配结果,确定所述每个金融交易要素关联的树节点。
根据本公开的实施例,所述每个金融交易要素的要素信息包括所述每个金融交易要素的关键词,将所述每个金融交易要素的要素信息与所述各个树节点的属性信息进行匹配,获得匹配结果包括:确定所述每个金融交易要素的关键词;将所述每个金融交易要素的关键词与所述各个树节点的节点标识符匹配,获得匹配结果。
根据本公开的实施例,所述每个金融交易要素的要素信息包括所述每个金融交易要素对应金融交易数据的处理逻辑,将所述每个金融交易要素的要素信息与所述各个树节点的属性信息进行匹配,获得所述匹配结果包括:确定所述每个金融交易要素对应金融交易数据的处理逻辑;根据所述各个树节点上下文关系和函数参数验证所述处理逻辑,获得所述匹配结果。
根据本公开的实施例,在将所述每个金融交易要素的要素信息与所述各个树节点的属性信息进行匹配之前,所述方法还包括:对所述各个树节点的属性信息进行文本分析,确定至少一个树节点涉及的潜在交易数据;根据所述潜在交易数据引入外部信息,其中,所述外部信息指示了处理所述潜在交易数据的必要信息;将所述外部信息与所述至少一个树节点相关联,更新所述至少一个树节点的属性信息。
根据本公开的实施例,所述同源分析模型包括卷积神经网络和双向循环神经网络,所述利用同源分析模型处理所述代码特征向量,获得恶意软件同源分析结果包括:利用所述卷积神经网络处理所述代码特征向量,得到中间特征向量;利用所述双向循环神经网络处理所述中间特征向量,得到所述恶意软件同源分析结果。
本公开实施例的另一方面提供了一种恶意软件同源分析装置,包括:源代码模块,用于获取待分析软件程序的源代码;代码块模块,用于基于N个金融交易要素,确定所述源代码中的N个代码块,其中,所述N个代码块用于处理与所述N个金融交易要素一一对应地金融交易数据,N为大于或等于1的整数;特征向量模块,用于基于所述N个代码块得到代码特征向量,所述代码特征向量包括所述N个代码块的特征,及所述N个代码块与所述N个金融交易要素之间的一一映射关系;同源分析模块,用于利用同源分析模型处理所述代码特征向量,获得恶意软件同源分析结果。
本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。
本公开实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
本公开实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
上述一个或多个实施例具有如下有益效果:基于N个金融交易要素有针对性地确定源代码中的N个代码块,进而能够有效提取恶意软件的关键特征,提高对金融恶意软件的检测准确率,有助于及时发现并阻止恶意软件对金融系统和用户的攻击。通过分析金融恶意软件之间的同源关系,可以识别出同一家族或作者的恶意软件,揭示其共同特征和攻击手法,有助于构建更全面的恶意软件库,提高对未知恶意软件的预测和响应能力。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的恶意软件同源分析方法的应用场景图;
图2示意性示出了根据本公开实施例的恶意软件同源分析方法的流程图;
图3示意性示出了根据本公开实施例的确定代码块的流程图;
图4示意性示出了根据本公开实施例的确定关联的树节点的流程图;
图5示意性示出了根据本公开实施例的匹配关键词的流程图;
图6示意性示出了根据本公开实施例的匹配处理逻辑的流程图;
图7示意性示出了根据本公开实施例的关联外部信息的流程图;
图8示意性示出了根据本公开实施例的获得恶意软件同源分析结果的流程图;
图9示意性示出了根据本公开实施例的同源分析模型的架构图;
图10示意性示出了根据本公开另一实施例的恶意软件同源分析方法的流程图;
图11示意性示出了根据本公开实施例的恶意软件同源分析装置的结构框图;以及
图12示意性示出了根据本公开实施例的适于实现投诉文本标注方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
为了便于理解本公开实施例的技术方案,首先对本公开涉及的一些技术术语进行介绍。
源代码:是由程序员编写的文本形式的指令集,用于告诉计算机如何执行特定任务和功能。这些指令遵循特定的编程语言规则,经过编译后可以被计算机执行。
金融交易要素:是指在进行金融交易时必须涉及的各种要素,包括交易资产、价格、数量、地点、时间、费用等一项或多项。
代码块:源代码的一部分,是指一段被设置好语法的程序代码,经过编译或解释后可以被计算机执行。
同源分析模型:基于机器学习算法实现,将不同来源的恶意软件样本抽象为统一的数学特征空间,再训练网络来自动学习恶意软件的分类知识,实现不同类型恶意软件的高效识别。
抽象语法树(Abstract Syntax Tree,AST):是源代码的抽象语法结构的树状表现形式。它用树形结构展现了源代码中的语法元素。树中的每个节点对应源代码中的一个语法结构。
处理逻辑:代码中使用程序语句实现对数据进行转换、计算和操作的逻辑顺序,以满足特定的业务需求或产生预期结果。
图1示意性示出了根据本公开实施例的恶意软件同源分析方法的应用场景图。需要注意的是,图1所示仅为可以应用本公开实施例的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
服务器105可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或分布式系统,还可以是提供云服务、云计算、网络服务、中间件服务等基础云计算服务的云服务器。
在一些实施例中,用户可以通过终端设备101、1 02、103中的应用客户端或网页上传待分析的软件程序,或发送分析指令。由服务器105接收待分析的软件程序或分析指令,来执行本公开实施例的恶意软件同源分析方法。在另一些实施例中,也可以在终端设备101、102、103本地执行本公开实施例的恶意软件同源分析方法。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图10对本公开实施例的投诉文本标注方法进行详细描述。
图2示意性示出了根据本公开实施例的恶意软件同源分析方法的流程图。如图2所示,该实施例的恶意软件同源分析方法包括:
在操作S210,获取待分析软件程序的源代码。
待分析软件程序可以包括涉及交易的软件,例如网络支付网站、银行APP、汽车交易应用、房产交易系统、股票交易软件和会员卡系统等。
常见的静态提取技术包括反汇编和反编译。反汇编将二进制代码转换为汇编指令,然后通过分析汇编指令和数据结构,还原出伪代码,作为源代码。反编译则是将二进制代码转换为高级语言源代码,以便更好地理解和分析。提取到的源代码需要保存为文本文件或数据库记录,以便后续的分析和查询。
在操作S220,基于N个金融交易要素,确定源代码中的N个代码块,其中,N个代码块用于处理与N个金融交易要素一一对应地金融交易数据,N为大于或等于1的整数。
根据N个金融交易要素,例如交易双方、交易对象、交易金额等,确定对应的N个代码块,这N个代码块分别用于处理与这N个金融交易要素一一对应的数据,如交易双方的用户信息、交易对象的标的信息、交易金额的具体书知。代码块可以是函数、方法、类、模块等可以独立执行的代码单元。
在操作S230,基于N个代码块得到代码特征向量,代码特征向量包括N个代码块的特征,及N个代码块与N个金融交易要素之间的一一映射关系。
示例性地,对每个代码块提取它的特征,得到N个特征向量。将N个特征向量组合,形成一个代码特征向量的至少部分内容。记录N个代码块与N个金融交易要素的一一映射关系,作为代码特征向量的一部分。
举例而言,对于每个代码块,计算它的长度、逻辑复杂度等基本特征,形成子特征向量fi。提取它的代码结构特征,如函数名、类名、变量名等,加入fi。分析它的控制流和数据流,得到控制流图和数据流图,加入fi。将N个子特征向量f1~fI(i=1,2,3……I,I≥1)组合形成代码特征向量的部分内容FV,其中FV=[f1,f2,f3,...fI]。接着,记录N个代码块与N个交易要素的对应关系映射:映射={c1->t1,c2->t2,c3->t3...cN->tN},ci代表任一个代码块。代码特征向量包含:N个特征向量f1~fI和对应关系映射。
在操作S240,利用同源分析模型处理代码特征向量,获得恶意软件同源分析结果。
同源分析模型可以判断待分析软件程序是否为恶意软件,恶意软件同源分析结果可以表征出具体属于哪一类恶意软件(如木马、勒索软件等),给出相关的恶意特征和署名。
根据本公开的实施例,基于N个金融交易要素有针对性地确定源代码中的N个代码块,进而能够有效提取恶意软件的关键特征,提高对金融恶意软件的检测准确率,有助于及时发现并阻止恶意软件对金融系统和用户的攻击。通过分析金融恶意软件之间的同源关系,可以识别出同一家族或作者的恶意软件,揭示其共同特征和攻击手法,有助于构建更全面的恶意软件库,提高对未知恶意软件的预测和响应能力。
图3示意性示出了根据本公开实施例的确定代码块的流程图。如图3所示,该实施例是操作S220的其中一个实施例,确定代码块包括:
在操作S310,将源代码转换为抽象语法树,抽象语法树用于表征源代码的语法结构。
将源代码转化为AST(抽象语法树)表示,这是为了能够将源代码转化为模型能够处理的格式。AST是一种基于语法规则的树状结构,它能够表示代码的语法结构,相比于源代码,AST可以更好地表达代码的结构和含义。先将源代码进行词法分析和语法分析,得到代码的词法单元和语法树结构。对AST节点进行嵌入表示,将每个节点映射为向量表示。常用的方法包括使用词向量one-hot编码方式。对AST节点进行结构化表示,将AST表示为二叉树形式。将待分析的金融交易相关源代码转换为抽象语法树,方便提取程序特征。
在操作S320,基于N个金融交易要素中每个金融交易要素,从抽象语法树中确定关联的树节点。
由于使用抽象语法树表征源程序,所以树节点为代码块的另一表征形式,通过确定树节点,起到确定代码块的作用。
根据本公开的实施例,根据金融交易要素,从抽象语法树中提取与各要素相关的节点,获取程序的语法和逻辑特征。针对金融交易场景,实现金融恶意软件同源分析的准确度和适配性的提高。
图4示意性示出了根据本公开实施例的确定关联的树节点的流程图。如图4所示,该实施例是操作S320的其中一个实施例,确定关联的树节点包括:
在操作S410,遍历抽象语法树中各个树节点的属性信息,属性信息包括节点标识符、上下文关系和函数参数中至少之一。
节点标识符是一个字符串,用于标识抽象语法树中的一个节点,包括变量名、函数名等。上下文关系指节点与其父节点和子节点之间的逻辑关系,如函数调用、赋值等。函数参数指的是,如果一个节点是一个函数,则其参数信息也包含在其属性信息中,可以反映该函数的功能。在进行恶意软件同源分析时,金融交易要素往往会表现为特定的变量名、函数名以及参数和上下文关系,所以通过匹配这三种节点属性信息,就能找到与各个金融交易要素对应相关的抽象语法树节点。这有助于提取程序的金融交易特有的特征。
在操作S420,将每个金融交易要素的要素信息与各个树节点的属性信息进行匹配,获得匹配结果。将金融交易要素与节点属性相匹配,检测是否存在对应关系。
在操作S430,根据匹配结果,确定每个金融交易要素关联的树节点。
举例而言,首先将金融交易活动分解为客户信息、交易密码、账户余额和交易资金等金融交易要素,以下为对应的交易步骤:客户信息获取、交易密码输入、账户余额查询、资金转入和资金转出。然后,在抽象语法树中,可以找到对应的节点。a)客户信息获取:存在函数获取客户姓名和客户号的函数节点,其函数名、上下文关系与参数匹配要素。b)交易密码输入:存在要求输入密码的函数节点,与交易密码要素匹配。c)账户余额查询:存在调用查询账户余额接口的函数节点,与账户余额要素匹配。d)资金转入:存在调用转账接口的函数节点,函数参数存在被转入账户和转账金额,与资金转入要素匹配;e)资金转出:存在相应函数节点与资金转要素匹配。
根据本公开的实施例,通过匹配结果,确定与每个金融交易要素对应的抽象语法树节点,提取相关程序语法及逻辑特征。基于提取的程序金融特有特征,能更精准地实现金融领域的恶意软件同源分析。相较于传统方法,准确度和适配性均能够得到提高。
图5示意性示出了根据本公开实施例的匹配关键词的流程图。如图5所示,该实施例是操作S420的其中一个实施例,每个金融交易要素的要素信息包括每个金融交易要素的关键词,匹配关键词包括:
在操作S510,确定每个金融交易要素的关键词。
例如交易金额要素的关键词如″amount″、″balance″等。交易时间要素的关键词如“日期函数”、“时间戳”等。账户余额、交易类型(转账、支付等)、交易方(收款方、付款方)等要素也各自有对应于余额、类型和交易方的关键词。
在操作S520,将每个金融交易要素的关键词与各个树节点的节点标识符匹配,获得匹配结果。
根据本公开的实施例,通过将关键词匹配节点标识符,可以有效识别与各个金融交易要素对应的抽象语法树节点,实现方法简单易行。能有效提取程序特定于金融交易场景的特征,实现精准的恶意软件同源分析。
图6示意性示出了根据本公开实施例的匹配处理逻辑的流程图。如图6所示,该实施例是操作S420的其中一个实施例,每个金融交易要素的要素信息包括每个金融交易要素对应金融交易数据的处理逻辑,匹配处理逻辑包括:
在操作S610,确定每个金融交易要素对应金融交易数据的处理逻辑。例如确定每个金融交易要素所采用的数据处理流程。
在操作S620,根据各个树节点上下文关系和函数参数验证处理逻辑,获得匹配结果。根据节点的逻辑关系和函数参数,验证抽象语法树是否符合所确定的处理逻辑。
以交易时间要素举例,可以遍历AST节点,寻找与交易时间相关的节点。这些节点涉及日期函数、时间戳等。可以提取节点标识符、上下文关系和函数参数等信息,以及日期格式和处理逻辑等特征。例如,可以提取包含日期函数调用的节点,以及日期格式的匹配情况和处理方式。
以交易资金要素举例,如针对″资金转入″活动,可以确定以下处理逻辑:
1)初始化转账信息。2)获取转入用户信息。3)验证用户信息。4)调用转账接口。
可以确定以下验证逻辑,以针对每个处理逻辑步骤,从抽象语法树中查找匹配的节点属性:
1)初始化转账信息:存在函数设置转账金额和转入账户信息,与此处理逻辑匹配。
2)获取转入用户信息:存在获取姓名、卡号等信息的函数,与逻辑匹配。
3)验证用户信息:存在函数验证用户密码、指纹信息等,与逻辑匹配。
4)调用转账接口:存在调用转账接口的函数节点,与逻辑匹配
通过上述示例可见,先根据具体的金融活动确定其数据处理逻辑,然后从抽象语法树中查找与各个逻辑步骤匹配的节点属性(函数名、参数、上下文),就能有效判断相关节点是否与该具体活动有关。
通过确定金融交易要素的处理逻辑,然后根据抽象语法树节点的上下文关系和函数参数验证该逻辑,能够有效判断节点是否与特定金融交易要素相关。
图7示意性示出了根据本公开实施例的关联外部信息的流程图。在将每个金融交易要素的要素信息与各个树节点的属性信息进行匹配之前,如图7所示,该实施例关联外部信息包括:
在操作S710,对各个树节点的属性信息进行文本分析,确定至少一个树节点涉及的潜在交易数据。
在操作S720,根据潜在交易数据引入外部信息,其中,外部信息指示了处理潜在交易数据的必要信息。
文本分析指的是解析和理解文本,提取有意义的信息,如可以基于Bert预训练模型实现。潜在交易数据指的是这些树节点属性信息可能涉及的交易数据,需进一步分析确认。外部信息指的是处理相关交易数据所需要的其他信息,来自于程序外部。
在操作S730,将外部信息与至少一个树节点相关联,更新至少一个树节点的属性信息。
以交易地点要素举例,从AST中提取交易地点特征较为复杂,因为地点信息通常不直接包含在源代码中。通过文本分析技术确定潜在交易数据,即地点信息。然后结合地点相关的外部信息,即外部数据源,如数据库、API等,将地点信息与至少一个树节点进行关联,得到更新后的属性信息。然后利用文本匹配、关键词提取和地理位置解析等技术,提取与交易地点相关的特征。
根据本公开的实施例,能够基于潜在交易数据,获取外部信息并更新节点属性信息,有助于更全面准确地分析源代码。能够获取程序更多和更精准的相关交易数据,有助于精确提取各个要素的关键特征,从而实现更高效的同源分析。
图8示意性示出了根据本公开实施例的获得恶意软件同源分析结果的流程图。图9示意性示出了根据本公开实施例的同源分析模型的架构图。如图8和图9所示,该实施例是操作S240的其中一个实施例,同源分析模型包括卷积神经网络和双向循环神经网络,获得恶意软件同源分析结果包括:
在操作S810,利用卷积神经网络处理代码特征向量,得到中间特征向量。
假设代码特征向量有n个元素,代码特征向量X=(x1,x2,..,xn)。定义一个卷积操作,它会对X中的每个子序列Xi:i+k-1=(xi,xi+1,...,xi+k-1)进行卷积操作,得到特征映射Ci
其中f()是激活函数,wj是权重,b是偏置项,xi+j-1是第i+j-1个子序列,子序列是n个元素中若干个元素组成的向量,即局部感受野,1≤n≤N。通过对每个子序列进行卷积操作,可以得到一组特征映射ci=(c1,c2,..0.,cn-k+1),其中ci是一个一维向量,代表第i个子序列的特征,1≤i,1≤j≤k,1≤k≤n。
接下来,将特征映射ci输入到池化层中进行降维。可以采用最大池化操作,即对于每个特征映射ci,取其最大值作为该特征映射的输出值pi
其中s是池化层的大小,max表示最大池化操作,1≤s。可以得到一个由n-k+1个值组成的中间特征向量pi=(p1,p2,...,pn-k+1),它代表着特征向量的结构特征。
在操作S820,利用双向循环神经网络处理中间特征向量,得到恶意软件同源分析结果。
参照图9,每个元素可以一一对应地输入到每个CNN(卷积神经网络)单元,每个CNN单元输出的元素组成中间特征向量。然后,中间特征向量的每个元素再对应输入到每个RNN(循环神经网络)单元,经由双向循环机制得到输出,学习整个程序各节点的交叉特征,最终输出是否同源的结果。
将卷积神经网络输出的向量pi=(p1,p2,...,pn-k+1)作为双向循环的输入,定义一个双向循环神经网络,它会对P中的每个词pi进行处理,得到输出向量ht
其中,表示前向循环神经网络的时间t时的前向隐藏状态,/>表示前向循环神经网络的时间t-1时的前向隐藏状态,/>为时间t的输入特征向量,/>为时间t的卷积神经网络输出的向量,/>为输入到前向隐藏状态的权重矩阵,/>是前向隐藏状态到当前时刻的权重矩阵,/>为前向隐藏状态的偏置向量,f()为ReLU激活函数。其中,/>表示后向循环神经网络的时间t时的前向隐藏状态,/>表示后向循环神经网络的时间t时的前向隐藏状态,/>为时间t的输入特征向量,/>为输入到后向隐藏状态的权重矩阵,/>是后向隐藏状态到当前时刻的权重矩阵,/>为后向隐藏状态的偏置向量,f()为ReLU激活函数。/>表示向量拼接,将前向循环神经网络和后向循环神经网络的输出拼接。
通过这样的循环计算,可以在结构信息上逐步提取序列信息,并生成隐藏状态ht作为输出,得到特征向量的序列信息。
在一些实施例中,最后经由分类层,如对最后一个时间步的隐藏状态ht应用softmax函数,生成0~1之间的数值,作为最终的同源分析结果。数值越大,被判定为同源的可能性越大。
在另一些实施例中,利用余弦相似度进行计算,例如:
假设有两个软件程序A和B,它们的AST表示分别为AST(A)和AST(B)。将各自代码特征向量送入卷积神经网络和双向循环神经网络模型,得到两个隐藏状态ht表征的向量f(An)和f(Bn)。使用余弦相似度来度量它们之间的相似度Sim(An,Bn):
如果相似度大于一个阈值,则说明该样本为恶意软件并输出同源家族。否则,说明该样本为正常软件。通过这种方式,可以对恶意软件进行快速准确的同源检测。
根据本公开的实施例,优点在于:1),每个节点对应独立的特征表示,有效地考虑到程序各部分的异同。2),CNN提取局部特征,RNN学习交叉特征,两者互补,能更全面分析程序特征。3),一一对应地输入CNN和RNN有助于追踪各节点的贡献,解释模型输出。因此,卷积神经网络提取局部特征,双向循环神经网络学习序列信息,两者结合可更全面地分析程序特征,有助提高同源分析准确度。
图10示意性示出了根据本公开另一实施例的恶意软件同源分析方法的流程图。如图10所示,先进行同源分析模型的训练,然后进行恶意软件同源分析。该实施例的恶意软件同源分析方法包括:
在操作S1010,采集公开恶意样本数据集。可以分为训练集和验证集。
先进行样本收集,通过公共恶意软件样本库,如Virus Total、Malware Bazaar等,获取已知的金融恶意软件样本。可以通过金融机构内部的安全监测系统、事件响应团队等收集到已知的金融恶意软件样本。与安全厂商、第三方威胁情报提供商等建立合作关系,获取他们收集的金融恶意软件样本。
在操作S1020,数据预处理,恶意软件转换源代码并用AST表示,然后提取相关特征向量。
通过对二进制文件进行解析,提取其中的源代码。使用词向量one-hot编码方式。对AST节点进行结构化表示,将AST表示为二叉树形式。
在操作S1030,输入训练集中的训练样本,卷积神经网络和双向循环神经网络模型处理数据,进行特征提取。
在操作S1040,利用交叉熵损失函数和Adam优化器对神经网络进行训练,不断优化模型的参数。
交叉熵损失函数是一种损失函数,可以用于多分类问题,常用于分类问题。使用交叉熵损失函数来衡量预测结果和真实结果之间的差异L:
其中y是真实标签,是预测标签,用于度量模型输出与标准输出之间的差距,log是取对数。
Adam优化器是一种优化算法,可以根据梯度信息进行自适应调整学习率,加速模型训练过程。在训练过程中,可以使用随机梯度下降法进行参数更新,也可以使用批量梯度下降法等其他优化算法。
具体地,将训练集分为若干个batch,每个batch包含若干个样本对(根据两个软件的源代码对得到)。对于每个batch,将两个样本对分别输入到卷积神经网络和双向循环神经网络中,得到它们的相似度分数。然后,计算相似度分数和标准输出之间的交叉熵损失,并通过反向传播算法更新模型参数。
在验证集中计算得到恶意软件同源分析结果与验证样本的标签之间的相似度>75%,继续进行步骤S1050,否则,返回步骤S1020重新进行特征提取,继续训练。
在操作S1050,未知样本传入训练好的恶意软件同源分析模型,首先需要将未知样本转化为AST表示,然后提取代码特征向量并将其输入到训练好的模型中进行同源分析,用于比较恶意软件之间的代码相似度,实现恶意软件的同源分析。
在操作S1060,输出同源分析结果。
基于上述恶意软件同源分析方法,本公开还提供了一种恶意软件同源分析装置。以下将结合图11对该装置进行详细描述。
图11示意性示出了根据本公开实施例的恶意软件同源分析装置的结构框图。
如图11所示,该实施例的恶意软件同源分析装置1100包括源代码模块1110、代码块模块112、特征向量模块1130和同源分析模块1140。
源代码模块1110可以执行操作S210,用于获取待分析软件程序的源代码。
代码块模块1120可以执行操作S220,用于基于N个金融交易要素,确定源代码中的N个代码块,其中,N个代码块用于处理与N个金融交易要素一一对应地金融交易数据。
在一些实施例中,代码块模块1120可以执行操作S310~操作S320,操作S410~操作S430,操作S510~操作S520,操作S610~操作S620,在此不再赘述。
特征向量模块1130可以执行操作S230,用于基于N个代码块得到代码特征向量,代码特征向量包括N个代码块的特征,及N个代码块与N个金融交易要素之间的一一映射关系。
同源分析模块1140可以执行操作S240,用于利用同源分析模型处理代码特征向量,获得恶意软件同源分析结果。
在一些实施例中,同源分析模块1140可以执行操作S810~操作S820,在此不再赘述。
在一些实施例中,恶意软件同源分析装置1100可以包括属性更新模块,用于执行操作S710~操作S730,在此不再赘述。
需要说明的是,恶意软件同源分析装置1100包括分别用于执行如上图2~图10描述的任意一个实施例的各个步骤的模块。装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例,恶意软件同源分析装置1100中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
根据本公开的实施例,恶意软件同源分析装置1100中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,恶意软件同源分析装置11 00中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图12示意性示出了根据本公开实施例的适于实现投诉文本标注方法的电子设备的方框图。
如图12所示,根据本公开实施例的电子设备1200包括处理器1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。处理器1201例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1201还可以包括用于缓存用途的板载存储器。处理器1201可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1203中,存储有电子设备1200操作所需的各种程序和数据。处理器1201、ROM 1202以及RAM 1203通过总线1204彼此相连。处理器1201通过执行ROM 1202和/或RAM1203中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM 1202和RAM 1203以外的一个或多个存储器中。处理器1201也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1200还可以包括输入/输出(I/O)接口1205,输入/输出(I/O)接口1205也连接至总线1204。电子设备1200还可以包括连接至I/O接口1205的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1206。包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207。包括硬盘等的存储部分1208。以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的。也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1202和/或RAM 1203和/或ROM 1202和RAM1203以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
在该计算机程序被处理器1201执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1209被下载和安装,和/或从可拆卸介质1211被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被处理器1201执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (11)

1.一种恶意软件同源分析方法,包括:
获取待分析软件程序的源代码;
基于N个金融交易要素,确定所述源代码中的N个代码块,其中,所述N个代码块用于处理与所述N个金融交易要素一一对应地金融交易数据,N为大于或等于1的整数;
基于所述N个代码块得到代码特征向量,所述代码特征向量包括所述N个代码块的特征,及所述N个代码块与所述N个金融交易要素之间的一一映射关系;
利用同源分析模型处理所述代码特征向量,获得恶意软件同源分析结果。
2.根据权利要求1所述的方法,其中,所述基于N个金融交易要素,确定所述源代码中的N个代码块包括:
将所述源代码转换为抽象语法树,所述抽象语法树用于表征所述源代码的语法结构;
基于所述N个金融交易要素中每个金融交易要素,从所述抽象语法树中确定关联的树节点。
3.根据权利要求2所述的方法,其中,所述基于所述N个金融交易要素中每个金融交易要素,从所述抽象语法树中确定关联的树节点包括:
遍历所述抽象语法树中各个树节点的属性信息,所述属性信息包括节点标识符、上下文关系和函数参数中至少之一;
将所述每个金融交易要素的要素信息与所述各个树节点的属性信息进行匹配,获得匹配结果;
根据所述匹配结果,确定所述每个金融交易要素关联的树节点。
4.根据权利要求3所述的方法,其中,所述每个金融交易要素的要素信息包括所述每个金融交易要素的关键词,将所述每个金融交易要素的要素信息与所述各个树节点的属性信息进行匹配,获得匹配结果包括:
确定所述每个金融交易要素的关键词;
将所述每个金融交易要素的关键词与所述各个树节点的节点标识符匹配,获得匹配结果。
5.根据权利要求3所述的方法,其中,所述每个金融交易要素的要素信息包括所述每个金融交易要素对应金融交易数据的处理逻辑,将所述每个金融交易要素的要素信息与所述各个树节点的属性信息进行匹配,获得所述匹配结果包括:
确定所述每个金融交易要素对应金融交易数据的处理逻辑;
根据所述各个树节点上下文关系和函数参数验证所述处理逻辑,获得所述匹配结果。
6.根据权利要求3所述的方法,其中,在将所述每个金融交易要素的要素信息与所述各个树节点的属性信息进行匹配之前,所述方法还包括:
对所述各个树节点的属性信息进行文本分析,确定至少一个树节点涉及的潜在交易数据;
根据所述潜在交易数据引入外部信息,其中,所述外部信息指示了处理所述潜在交易数据的必要信息;
将所述外部信息与所述至少一个树节点相关联,更新所述至少一个树节点的属性信息。
7.根据权利要求1所述的方法,其中,所述同源分析模型包括卷积神经网络和双向循环神经网络,所述利用同源分析模型处理所述代码特征向量,获得恶意软件同源分析结果包括:
利用所述卷积神经网络处理所述代码特征向量,得到中间特征向量;
利用所述双向循环神经网络处理所述中间特征向量,得到所述恶意软件同源分析结果。
8.一种恶意软件同源分析装置,包括:
源代码模块,用于获取待分析软件程序的源代码;
代码块模块,用于基于N个金融交易要素,确定所述源代码中的N个代码块,其中,所述N个代码块用于处理与所述N个金融交易要素一一对应地金融交易数据,N为大于或等于1的整数;
特征向量模块,用于基于所述N个代码块得到代码特征向量,所述代码特征向量包括所述N个代码块的特征,及所述N个代码块与所述N个金融交易要素之间的一一映射关系;
同源分析模块,用于利用同源分析模型处理所述代码特征向量,获得恶意软件同源分析结果。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的方法。
CN202310590073.XA 2023-05-24 2023-05-24 恶意软件同源分析方法、装置、设备和介质 Pending CN116541840A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310590073.XA CN116541840A (zh) 2023-05-24 2023-05-24 恶意软件同源分析方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310590073.XA CN116541840A (zh) 2023-05-24 2023-05-24 恶意软件同源分析方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN116541840A true CN116541840A (zh) 2023-08-04

Family

ID=87448679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310590073.XA Pending CN116541840A (zh) 2023-05-24 2023-05-24 恶意软件同源分析方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN116541840A (zh)

Similar Documents

Publication Publication Date Title
US10984340B2 (en) Composite machine-learning system for label prediction and training data collection
US11190562B2 (en) Generic event stream processing for machine learning
US9197665B1 (en) Similarity search and malware prioritization
CN108090351B (zh) 用于处理请求消息的方法和装置
US11580222B2 (en) Automated malware analysis that automatically clusters sandbox reports of similar malware samples
US11120064B2 (en) Transliteration of data records for improved data matching
CN116415564B (zh) 基于知识图谱的功能点扩增方法和系统
CN115061874A (zh) 日志信息验证方法、装置、设备及介质
WO2022228392A1 (zh) 一种区块链地址的分类方法及装置
AlGarni et al. An efficient convolutional neural network with transfer learning for malware classification
CN110737820B (zh) 用于生成事件信息的方法和装置
CN114579878A (zh) 虚假新闻判别模型的训练方法、虚假新闻判别方法及装置
CN116155628B (zh) 网络安全检测方法、训练方法、装置、电子设备和介质
CN110895587A (zh) 用于确定目标用户的方法和装置
CN110674497B (zh) 一种恶意程序相似度计算的方法和装置
CN117113999A (zh) 命名实体识别方法、装置、设备、存储介质及程序产品
US20240111892A1 (en) Systems and methods for facilitating on-demand artificial intelligence models for sanitizing sensitive data
US20240111891A1 (en) Systems and methods for sanitizing sensitive data and preventing data leakage using on-demand artificial intelligence models
CN108768742B (zh) 网络构建方法及装置、电子设备、存储介质
CN115525781A (zh) 多模态虚假信息检测方法、装置和设备
CN113779370B (zh) 一种地址检索方法和装置
JP2024530998A (ja) ウェブデータのための機械学習支援自動タクソノミー
CN116541840A (zh) 恶意软件同源分析方法、装置、设备和介质
CN110222271B (zh) 用于生成网页的方法和装置
US12081685B2 (en) Systems and methods for selectively indexing blockchain operations based on identifying unindexed parameters

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