CN112685739A - 恶意代码检测方法、数据交互方法及相关设备 - Google Patents

恶意代码检测方法、数据交互方法及相关设备 Download PDF

Info

Publication number
CN112685739A
CN112685739A CN202011640669.9A CN202011640669A CN112685739A CN 112685739 A CN112685739 A CN 112685739A CN 202011640669 A CN202011640669 A CN 202011640669A CN 112685739 A CN112685739 A CN 112685739A
Authority
CN
China
Prior art keywords
code
detected
sample
malicious
category
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.)
Granted
Application number
CN202011640669.9A
Other languages
English (en)
Other versions
CN112685739B (zh
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.)
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Original Assignee
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
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 Zhuo Erzhi Lian Wuhan Research Institute Co Ltd filed Critical Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Priority to CN202011640669.9A priority Critical patent/CN112685739B/zh
Publication of CN112685739A publication Critical patent/CN112685739A/zh
Application granted granted Critical
Publication of CN112685739B publication Critical patent/CN112685739B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及一种恶意代码检测方法、数据交互方法及相关设备。所述恶意代码检测方法包括:获取待检测代码;对待检测代码进行向量化,获得待检测代码对应的向量;通过文本分类模型,对向量进行特征提取,基于提取的特征进行分类识别,获得待检测代码对应的类别识别结果;类别识别结果包括识别出来的各代码类别及其对应的类别概率,代码类别包括恶意代码和正常代码;若类别识别结果中恶意代码对应的类别概率大于预设阈值,则确定待检测代码为恶意代码。采用本方法能够提高恶意代码识别率。

Description

恶意代码检测方法、数据交互方法及相关设备
技术领域
本申请涉及信息安全技术领域,特别是涉及一种恶意代码检测方法、数据交互方法及相关设备。
背景技术
跨站脚本(Cross Site Scripting,缩写为XSS)攻击是一种普遍的Web应用安全漏洞,这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。
XSS漏洞按照攻击利用手法的不同,有本地利用漏洞、反射式漏洞和存储式漏洞三种类型。本地利用漏洞存在于页面中客户端脚本自身。反射式漏洞和本地利用漏洞有些类似,不同的是客户端使用服务端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经超文本标记语言(HTML)实体编码,客户端代码便能够注入到动态页面中。存储式漏洞是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户(包括Web服务器的管理员)都面临信息泄漏的可能。XSS漏洞和SQL(结构化查询语言)注入漏洞一样,都是利用了Web页面的编写不完善,所以每一个漏洞所利用和针对的弱点都不尽相同,这给XSS漏洞防御带来了困难:不可能以单一特征来概括所有XSS攻击。
传统XSS防御多采用特征匹配方式,在所有提交的信息中都进行匹配检查,采用的模式匹配方法一般会需要对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。然而,这种检测方法存在容易被躲避的问题,识别率低,骇客可以通过插入字符或完全编码的方式躲避检测,例如在javascript中加入多个tab键、加入(空格)字符、加入(回车)字符、每个字符间加入回车换行符,或者对"javascript:alert('XSS')"采用完全编码,上述方法都可以很容易的躲避基于特征匹配的检测。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高识别率的恶意代码检测方法、数据交互方法及相关设备。
一种恶意代码检测方法,所述方法包括:
获取待检测代码;
对所述待检测代码进行向量化,获得所述待检测代码对应的向量;
通过文本分类模型,对所述向量进行特征提取,基于提取的特征进行分类识别,获得所述待检测代码对应的类别识别结果;所述类别识别结果包括识别出来的各代码类别及其对应的类别概率,所述代码类别包括恶意代码和正常代码;
若所述类别识别结果中恶意代码对应的类别概率大于预设阈值,则确定所述待检测代码为恶意代码。
一种恶意代码检测装置,所述装置包括:
获取模块,用于获取待检测代码;
转化模块,用于对所述待检测代码进行向量化,获得所述待检测代码对应的向量;
识别模块,用于通过文本分类模型,对所述向量进行特征提取,基于提取的特征进行分类识别,获得所述待检测代码对应的类别识别结果;所述类别识别结果包括识别出来的各代码类别及其对应的类别概率,所述代码类别包括恶意代码和正常代码;
确定模块,用于若所述类别识别结果中恶意代码对应的类别概率大于预设阈值,则确定所述待检测代码为恶意代码。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述恶意代码检测方法实施例的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述恶意代码检测方法实施例的步骤。
上述恶意代码检测方法、装置、计算机设备和存储介质,将自然语言处理技术运用到网络安全领域,将代码转化为向量,通过文本分类模型提取的向量特征能够更为准确地表达代码语义,基于提取的向量特征进行识别,有助于提高恶意代码的识别率。
一种数据交互方法,所述方法包括:
获取客户端发送的页面请求数据,根据所述页面请求数据确定待检测代码;
根据上述恶意代码检测方法,确定各所述待检测代码是否为恶意代码;
当所述待检测代码中不存在恶意代码时,接收所述页面请求数据并基于所述页面请求数据生成页面响应数据,向所述客户端返回所述页面响应数据。
一种数据交互装置,所述装置包括:
交互模块,用于获取客户端发送的页面请求数据;
确定模块,用于根据所述页面请求数据确定待检测代码;
检测模块,用于确定各所述待检测代码是否为恶意代码,所述检测模块为上述恶意代码检测装置;
所述交互模块,还用于当所述待检测代码中不存在恶意代码时,接收所述页面请求数据;
生成模块,用于基于所述页面请求数据生成页面响应数据;
所述交互模块,还用于向所述客户端返回所述页面响应数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据交互方法实施例的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据交互方法实施例的步骤。
上述数据交互方法、装置、计算机设备和存储介质,服务器在接收客户端发送的页面请求数据之前,先对页面请求数据是否存在恶意代码进行检测,当检测到不存在恶意代码时再接收页面请求,实现智能化识别漏洞,提高恶意代码识别率,有效防御恶意代码攻击,保护用户信息安全。此外,相对于人工参与的从Web应用开发角度的基于代码修改的防御,上述方案对用户与Web系统间的交互影响很小,用户提交的内容和格式受限较小,保证用户的良好体验。
一种数据交互方法,所述方法包括:
向服务器发送页面请求数据,获取服务器基于所述页面请求数据返回的页面响应数据,根据所述页面响应数据确定待检测代码;
根据上述恶意代码检测方法,确定各所述待检测代码是否为恶意代码;
当所述待检测代码中不存在恶意代码时,访问所述页面响应数据对应的页面。
一种数据交互装置,所述装置包括:
交互模块,用于向服务器发送页面请求数据,获取服务器基于所述页面请求数据返回的页面响应数据;
确定模块,用于根据所述页面响应数据确定待检测代码;
检测模块,用于确定各所述待检测代码是否为恶意代码,所述检测模块为上述恶意代码检测装置;
访问模块,用于当所述待检测代码中不存在恶意代码时,访问所述页面响应数据对应的页面。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述数据交互方法实施例的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据交互方法实施例的步骤。
上述数据交互方法、装置、计算机设备和存储介质,客户端在访问服务器发送的页面响应数据对应的页面之前,先对页面响应数据是否存在恶意代码进行检测,当检测到不存在恶意代码时再访问响应页面,实现智能化识别漏洞,提高恶意代码识别率,有效防御存储型XSS漏洞或者绕过服务器检测的恶意代码攻击,保护用户信息安全。
附图说明
图1为一个实施例中恶意代码检测方法的应用环境图;
图2为一个实施例中恶意代码检测方法的流程示意图;
图3为一个实施例中文本分类模型的训练方法的流程示意图;
图4为一个实施例中数据交互方法的流程示意图;
图5为一个实施例中数据交互方法的流程示意图;
图6为一个实施例中恶意代码检测装置的结构框图;
图7为一个实施例中数据交互装置的结构框图;
图8为一个实施例中数据交互装置的结构框图;
图9为一个实施例中计算机设备的内部结构图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的恶意代码检测方法,可以应用于如图1所示的应用环境中。该应用环境涉及终端102和服务器104,终端102和服务器104通过网络连接。用户可以通过终端102访问Web页面,服务器104可以Web服务器。终端102和服务器104均可进行恶意代码检测。在一个实施例中,服务器104在接收终端102发送的页面请求数据之前,检测页面请求数据是否存在恶意代码,当页面请求数据不存在恶意代码时,接收页面请求数据并基于页面请求数据生成页面响应数据,向终端102返回页面响应数据。终端102获取页面响应数据后,检测页面响应数据是否存在恶意代码,当页面请求数据不存在恶意代码时,访问页面响应数据对应的页面。其中,终端102具体可以是台式终端或移动终端,移动终端具体可以是手机、平板电脑、笔记本电脑等中的至少一种。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种恶意代码检测方法,以该方法应用于图1中的终端或服务器为例进行说明,包括以下步骤S202至步骤S208。
S202,获取待检测代码。
在服务器端,待检测代码可以是用户提交的表单(如登录、注册、留言板页面)数据。在终端(客户端),待检测代码可以是服务器返回的数据。服务器或客户端在获得相应页面数据后,还可以对页面数据进行清洗,去除页面数据中的中文、htlm、body等无关词,获得待检测代码。还可以提取script标签及其变形写法、src标签及其变形写法、增加产品信息时注入的链接、getCookie等获取用户隐私信息的代码以及跳转链接等信息,获得待检测代码。
待检测代码可以是一行代码,也可以是代码块,代码块表示一个完整功能的代码集合,可包含多行代码,用“{}”界定。考虑到程序语句是具有关联性的,本实施例中,待检测代码为代码块形式,以便能够更准确地表达语句含义。页面数据中可能包括多个代码块,服务器或客户端在获得页面数据后,以代码块为单位,逐一对页面数据中的代码块进行检测。
S204,对待检测代码进行向量化,获得待检测代码对应的向量。
服务器或客户端获得待检测代码后,可以使用word2vec工具对待检测代码进行向量化,获得待检测代码对应的向量。在一个实施例中,经过向量化后的待检测代码可以转变为一个向量矩阵。
S206,通过文本分类模型,对向量进行特征提取,基于提取的特征进行分类识别,获得待检测代码对应的类别识别结果;类别识别结果包括识别出来的各代码类别及其对应的类别概率,代码类别包括恶意代码和正常代码。
代码为自然语言的一种形式,可以通过文本分类模型来识别恶意代码。具体地,将向量输入到文本分类模型,模型对向量进行特征提取,并基于提取的特征进行识别,获得用于确定待检测代码是否为恶意代码的识别结果。文本分类模型为二分类模型,模型输入为待检测代码对应的向量,模型输出包括待检测代码为恶意代码和正常代码的类别概率。
S208,若类别识别结果中恶意代码对应的类别概率大于预设阈值,则确定待检测代码为恶意代码。
当类别识别结果中恶意代码对应的类别概率大于第一预设阈值时,确定待检测代码为恶意代码。也可以是当类别识别结果中正常代码对应的类别概率大于第二预设阈值时,确定待检测代码为正常代码。其中,第一预设阈值和第二预设阈值可以结合实际需求进行设置,第一预设阈值和第二预设阈值可以相同,也可以不同,此处不做限定。
上述恶意代码检测方法中,将自然语言处理技术运用到网络安全领域,将代码转化为向量,通过文本分类模型提取的向量特征能够更为准确地表达代码语义,基于提取的向量特征进行识别,有助于提高恶意代码的识别率。
在一个实施例中,如图3所示,文本分类模型的训练方法包括以下步骤S302至步骤S308。
S302,获取训练数据集,训练数据集中包括样本代码,每一样本代码具有对应的类别标签。
训练数据集可以利用漏洞靶场网站收集网页源代码获得。样本代码为已知类别的代码,样本代码对应的类别标签用于指示样本代码所属的真实类别。样本代码包括正样本代码和负样本代码,正样本代码的真实类别为恶意代码,负样本代码的真实类别为正常代码。
S304,对各样本代码进行向量化,获得各样本代码对应的样本向量。
使用word2vec工具对各样本代码进行向量化,获得各样本代码对应的样本向量。经过向量化后的样本代码可以转变为一个向量矩阵。
在一个实施例中,对各样本代码进行向量化,获得各样本代码对应的样本向量的步骤,具体可以包括:从所有样本代码的字符长度中确定最长字符长度,根据最长字符长度确定向量维度;基于向量维度对各样本代码进行向量化,获得各样本代码对应的样本向量。
本实施例中,样本代码为代码块形式,将最长的代码块的字符长度作为标准,样本代码中其他不够长度的代码块末尾填0进行向量补齐,从而固定输入到模型中的向量矩阵大小。模型处理过程中可以利用mask技术遮盖掉用于补齐的向量,防止其对识别结果产生影响。
S306,通过待训练文本分类模型,对样本向量进行特征提取,获得样本代码特征,基于样本代码特征进行分类识别,获得样本代码对应的类别识别结果。
将样本向量输入到待训练文本分类模型中,待训练文本分类模型,对样本向量进行特征提取,获得样本代码特征,将样本代码特征映射到代码类别空间,获得样本代码对应的类别识别结果,样本代码对应的类别识别结果包括样本代码为恶意代码和正常代码的类别概率。
S308,基于各样本代码对应的类别识别结果和类别标签,调整待训练文本分类模型的参数,直至满足训练结束条件,获得训练好的文本分类模型。
可以基于各样本代码对应的类别识别结果和类别标签之间的误差建立损失函数,根据损失函数的值调整文本分类模型的参数,文本分类模型的训练目标为损失函数的值尽可能小,训练结束条件可以是损失函数的值小于阈值,也可以是验证集的正确率满足预设要求,还可以是迭代次数达到预设次数,其中,阈值、预设要求和预设次数都可以结合实际需求进行设置,此处不做限定。
上述实施例中,利用具有类别标签的样本代码对文本分类模型进行训练,模型可以学习到恶意代码和正常代码的特征,训练完成后的模型具有鉴别恶意代码的能力,将待检测代码输入到训练好的文本分类模型中,模型可以识别得到待检测代码为恶意代码的概率。
在一个实施例中,待训练文本分类模型包括特征提取层、注意力层和全连接层;通过待训练文本分类模型,对样本向量进行特征提取,获得样本代码特征,基于样本代码特征进行分类识别,获得样本代码对应的类别识别结果的步骤,具体可以包括:通过特征提取层,对样本向量进行特征提取,获得初始特征;通过注意力层,获得各初始特征对应的权重,根据各权重对各自对应的初始特征进行加权处理,获得样本代码特征;通过全连接层,对样本代码特征进行映射,获得样本代码对应的类别识别结果。
特征提取层包括卷积网络层,将样本向量输入到卷积网络层,卷积网络层对样本向量进行特征提取,输出样本向量的初始特征。注意力层可以是全连接网络层,作用在于计算每一个输入神经元在整个网络中的权重,将初始特征输入到注意力层,注意力层基于初始特征的全局信息学习各初始特征的重要性,获得各初始特征对应的权重,并将各初始特征乘以各自的权重,获得加权特征,作为最终用于进行分类识别的样本代码特征。将样本代码特征输入到全连接层,全连接层将样本代码特征映射至代码类别空间,获得代码为恶意代码和正常代码的类别概率。
需要说明的是,注意力层可以作用于除模型输入层和输出层之外的任何一层之后,也可以在除模型输入层和输出层之外的每一层后面加上注意力层,注意力层的位置和层数可根据任务需求进行设置,此处不做限定。
上述实施例中,通过引入注意力机制(Attention),对代码对应的向量特征分配不同的注意力权重,以区分代码中信息的重要性大小,比如较高级别的漏洞代码片段会设置较高的权重,从而有助于提高鉴别恶意代码的准确率。
在一个实施例中,文本分类模型采用引入注意力机制的TextCNN模型。在检测页面数据是否存在恶意代码的应用场景下,由于页面涉及到用户和服务器的交互,TextCNN的复杂度低,在保证高精度的识别率的前提下,还能够快速高效的识别恶意代码,从而实现准确且快速地检测XSS漏洞,使用户在访问页面时能够及时得到反馈,保证用户的良好体验。
在一个实施例中,文本分类模型采用引入注意力机制的LSTM模型。LSTM由于增加了遗忘门、输入门等,对特征提取更加准确,且能够表达输入时序之间的联系,即输入上下文之间的关系,识别准确率高。
在一个实施例中,如图4所示,提供了一种数据交互方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤S402至步骤S406。
S402,获取客户端发送的页面请求数据,根据页面请求数据确定待检测代码。
用户通过客户端提交表单(如登录、注册、留言板页面)到服务器,服务器获取用户提交的页面请求数据,以代码块为单位,提取页面请求数据中的各代码块,作为待检测代码。
S404,确定各待检测代码是否为恶意代码。
服务器确定各待检测代码是否为恶意代码的方法可以采用前文实施例中的恶意代码检测方法,此处不再赘述。
在一个实施例中,页面请求数据中的各代码块具有位置标记,即各待检测代码具有相应的位置标记,用于指示其在页面数据中的位置。服务器逐一检测各待检测代码是否为恶意代码,当检测到恶意代码时,可以通过其位置标记准确定位到恶意代码在页面数据中的位置。
S406,当待检测代码中不存在恶意代码时,接收页面请求数据并基于页面请求数据生成页面响应数据,向客户端返回页面响应数据。
若检测到所有待检测代码都不是恶意代码,则认为页面请求数据中不存在恶意代码,服务器接收页面请求数据并基于页面请求数据生成页面响应数据,向客户端返回页面响应数据。
若检测到任一待检测代码为恶意代码,则认为页面请求数据中存在恶意代码,服务器可以直接拒绝接收页面请求数据,也可以发出提示信息,以提示服务器管理员存在漏洞,由服务器管理员决策是否接收数据。若服务器管理员决策接收数据,则服务器接收页面请求数据并基于页面请求数据生成页面响应数据,向客户端返回页面响应数据;若服务器管理员决策不接收数据,则服务器拒绝接收页面响应数据。
上述实施例中,服务器在接收客户端发送的页面请求数据之前,先对页面请求数据是否存在恶意代码进行检测,当检测到不存在恶意代码时再接收页面请求,实现智能化识别漏洞,提高恶意代码识别率,有效防御恶意代码攻击,保护用户信息安全。此外,相对于人工参与的从Web应用开发角度的基于代码修改的防御,本申请方案对用户与Web系统间的交互影响很小,用户提交的内容和格式受限较小,保证用户的良好体验。
在一个实施例中,如图5所示,提供了一种数据交互方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤S502至步骤S506。
S502,向服务器发送页面请求数据,获取服务器基于页面请求数据返回的页面响应数据,根据页面响应数据确定待检测代码。
终端(客户端)向服务器发送页面请求数据,服务器检测到页面请求数据中不存在恶意代码后,接收页面请求数据并基于页面请求数据生成页面响应数据,向客户端返回页面响应数据。客户端获取页面响应数据,以代码块为单位,提取页面响应数据中的各代码块,作为待检测代码。
S504,确定各待检测代码是否为恶意代码。
客户端确定各待检测代码是否为恶意代码的方法可以采用前文实施例中的恶意代码检测方法,此处不再赘述。
在一个实施例中,页面响应数据中的各代码块具有位置标记,即各待检测代码具有相应的位置标记,用于指示其在页面数据中的位置。客户端逐一检测各待检测代码是否为恶意代码,当检测到恶意代码时,可以通过其位置标记准确定位到恶意代码在页面数据中的位置。
S506,当待检测代码中不存在恶意代码时,访问页面响应数据对应的页面。
若检测到所有待检测代码都不是恶意代码,则认为页面响应数据中不存在恶意代码,客户端正常访问或跳转至页面响应数据对应的页面。
若检测到任一待检测代码为恶意代码,则认为页面响应数据中存在恶意代码,客户端可以直接拒绝接收页面响应数据,也可以发出提示信息,以提示用户存在漏洞,由用户决策是否允许访问。若用户决策允许访问,则客户端正常访问或跳转至页面响应数据对应的页面;若用户决策不接收数据,则客户端拒绝访问或跳转至页面响应数据对应的页。
上述实施例中,客户端在访问服务器发送的页面响应数据对应的页面之前,先对页面响应数据是否存在恶意代码进行检测,当检测到不存在恶意代码时再访问响应页面,实现智能化识别漏洞,提高恶意代码识别率,有效防御存储型XSS漏洞或者绕过服务器检测的恶意代码攻击,保护用户信息安全。
应该理解的是,虽然上述实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例涉及的各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种恶意代码检测装置600,包括:获取模块610、转化模块620、识别模块630和确定模块640,其中:
获取模块610,用于获取待检测代码。
转化模块620,用于对待检测代码进行向量化,获得待检测代码对应的向量。
识别模块630,用于通过文本分类模型,对向量进行特征提取,基于提取的特征进行分类识别,获得待检测代码对应的类别识别结果;类别识别结果包括识别出来的各代码类别及其对应的类别概率,代码类别包括恶意代码和正常代码。
确定模块640,用于若类别识别结果中恶意代码对应的类别概率大于预设阈值,则确定待检测代码为恶意代码。
在一个实施例中,文本分类模型的训练方法包括:获取训练数据集,训练数据集中包括样本代码,每一样本代码具有对应的类别标签;对各样本代码进行向量化,获得各样本代码对应的样本向量;通过待训练文本分类模型,对样本向量进行特征提取,获得样本代码特征,基于样本代码特征进行分类识别,获得样本代码对应的类别识别结果;基于各样本代码对应的类别识别结果和类别标签,调整待训练文本分类模型的参数,直至满足训练结束条件,获得训练好的文本分类模型。
在一个实施例中,对各样本代码进行向量化,获得各样本代码对应的样本向量的步骤,具体可以包括:从所有样本代码的字符长度中确定最长字符长度,根据最长字符长度确定向量维度;基于向量维度对各样本代码进行向量化,获得各样本代码对应的样本向量。
在一个实施例中,待训练文本分类模型包括特征提取层、注意力层和全连接层;通过待训练文本分类模型,对样本向量进行特征提取,获得样本代码特征,基于样本代码特征进行分类识别,获得样本代码对应的类别识别结果的步骤,具体可以包括:通过特征提取层,对样本向量进行特征提取,获得初始特征;通过注意力层,获得各初始特征对应的权重,根据各权重对各自对应的初始特征进行加权处理,获得样本代码特征;通过全连接层,对样本代码特征进行映射,获得样本代码对应的类别识别结果。
在一个实施例中,文本分类模型采用引入注意力机制的TextCNN模型或LSTM模型。
关于恶意代码检测装置的具体限定可以参见上文中对于恶意代码检测方法的限定,在此不再赘述。上述恶意代码检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图7所示,提供了一种数据交互装置700,包括:交互模块710、确定模块720、检测模块730和生成模块740,其中:
交互模块710,用于获取客户端发送的页面请求数据。
确定模块720,用于根据页面请求数据确定待检测代码。
检测模块730,用于确定各待检测代码是否为恶意代码,检测模块为去前文实施例中的恶意代码检测装置;
交互模块710,还用于当待检测代码中不存在恶意代码时,接收页面请求数据。
生成模块740,用于基于页面请求数据生成页面响应数据。
交互模块710,还用于向客户端返回页面响应数据。
在一个实施例中,如图8所示,提供了一种数据交互装置800,包括:交互模块810、确定模块820、检测模块830和访问模块840,其中:
交互模块810,用于向服务器发送页面请求数据,获取服务器基于页面请求数据返回的页面响应数据。
确定模块820,用于根据页面响应数据确定待检测代码。
检测模块830,用于确定各待检测代码是否为恶意代码,检测模块为去前文实施例中的恶意代码检测装置;
访问模块840,用于当待检测代码中不存在恶意代码时,访问页面响应数据对应的页面。
关于数据交互装置的具体限定可以参见上文中对于数据交互方法的限定,在此不再赘述。上述数据交互装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种恶意代码检测方法和/或数据交互方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种恶意代码检测方法和/或数据交互方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9或图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要理解的是,上述实施例中的术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。针对数值范围的描述,术语“多个”理解为等于或大于两个。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种恶意代码检测方法,其特征在于,所述方法包括:
获取待检测代码;
对所述待检测代码进行向量化,获得所述待检测代码对应的向量;
通过文本分类模型,对所述向量进行特征提取,基于提取的特征进行分类识别,获得所述待检测代码对应的类别识别结果;所述类别识别结果包括识别出来的各代码类别及其对应的类别概率,所述代码类别包括恶意代码和正常代码;
若所述类别识别结果中恶意代码对应的类别概率大于预设阈值,则确定所述待检测代码为恶意代码。
2.根据权利要求1所述的方法,其特征在于,所述文本分类模型的训练方法包括:
获取训练数据集,所述训练数据集中包括样本代码,每一所述样本代码具有对应的类别标签;
对各所述样本代码进行向量化,获得各所述样本代码对应的样本向量;
通过待训练文本分类模型,对所述样本向量进行特征提取,获得样本代码特征,基于所述样本代码特征进行分类识别,获得所述样本代码对应的类别识别结果;
基于各所述样本代码对应的类别识别结果和类别标签,调整所述待训练文本分类模型的参数,直至满足训练结束条件,获得训练好的文本分类模型。
3.根据权利要求2所述的方法,其特征在于,对各所述样本代码进行向量化,获得各所述样本代码对应的样本向量,包括:
从所有所述样本代码的字符长度中确定最长字符长度,根据所述最长字符长度确定向量维度;
基于所述向量维度对各所述样本代码进行向量化,获得各所述样本代码对应的样本向量。
4.根据权利要求2所述的方法,其特征在于,所述待训练文本分类模型包括特征提取层、注意力层和全连接层;通过待训练文本分类模型,对所述样本向量进行特征提取,获得样本代码特征,基于所述样本代码特征进行分类识别,获得所述样本代码对应的类别识别结果,包括:
通过所述特征提取层,对所述样本向量进行特征提取,获得初始特征;
通过所述注意力层,获得各所述初始特征对应的权重,根据各所述权重对各自对应的初始特征进行加权处理,获得样本代码特征;
通过所述全连接层,对所述样本代码特征进行映射,获得所述样本代码对应的类别识别结果。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述文本分类模型采用引入注意力机制的TextCNN模型或LSTM模型。
6.一种数据交互方法,其特征在于,所述方法包括:
获取客户端发送的页面请求数据,根据所述页面请求数据确定待检测代码;
根据权利要求1至5中任一项所述的恶意代码检测方法,确定各所述待检测代码是否为恶意代码;
当所述待检测代码中不存在恶意代码时,接收所述页面请求数据并基于所述页面请求数据生成页面响应数据,向所述客户端返回所述页面响应数据。
7.一种恶意代码检测装置,其特征在于,所述装置包括:
获取模块,用于获取待检测代码;
转化模块,用于对所述待检测代码进行向量化,获得所述待检测代码对应的向量;
识别模块,用于通过文本分类模型,对所述向量进行特征提取,基于提取的特征进行分类识别,获得所述待检测代码对应的类别识别结果;所述类别识别结果包括识别出来的各代码类别及其对应的类别概率,所述代码类别包括恶意代码和正常代码;
确定模块,用于若所述类别识别结果中恶意代码对应的类别概率大于预设阈值,则确定所述待检测代码为恶意代码。
8.一种数据交互装置,其特征在于,所述装置包括:
交互模块,用于获取客户端发送的页面请求数据;
确定模块,用于根据所述页面请求数据确定待检测代码;
检测模块,用于确定各所述待检测代码是否为恶意代码,所述检测模块为权利要求7所述的恶意代码检测装置;
所述交互模块,还用于当所述待检测代码中不存在恶意代码时,接收所述页面请求数据;
生成模块,用于基于所述页面请求数据生成页面响应数据;
所述交互模块,还用于向所述客户端返回所述页面响应数据。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202011640669.9A 2020-12-31 2020-12-31 恶意代码检测方法、数据交互方法及相关设备 Active CN112685739B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011640669.9A CN112685739B (zh) 2020-12-31 2020-12-31 恶意代码检测方法、数据交互方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011640669.9A CN112685739B (zh) 2020-12-31 2020-12-31 恶意代码检测方法、数据交互方法及相关设备

Publications (2)

Publication Number Publication Date
CN112685739A true CN112685739A (zh) 2021-04-20
CN112685739B CN112685739B (zh) 2022-11-04

Family

ID=75456686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011640669.9A Active CN112685739B (zh) 2020-12-31 2020-12-31 恶意代码检测方法、数据交互方法及相关设备

Country Status (1)

Country Link
CN (1) CN112685739B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282927A (zh) * 2021-05-31 2021-08-20 平安国际智慧城市科技股份有限公司 恶意代码检测方法、装置、设备及计算机可读存储介质
CN113688391A (zh) * 2021-08-31 2021-11-23 南方电网科学研究院有限责任公司 一种电力软件恶意代码监测方法、系统、设备和介质
CN113722641A (zh) * 2021-08-30 2021-11-30 平安国际智慧城市科技股份有限公司 基于ai的注入请求保护方法、装置、终端设备及介质
CN113869431A (zh) * 2021-09-30 2021-12-31 平安科技(深圳)有限公司 虚假信息检测方法、系统、计算机设备及可读存储介质
CN114124449A (zh) * 2021-10-14 2022-03-01 北京墨云科技有限公司 一种基于机器学习的sql注入攻击识别方法
CN114253866A (zh) * 2022-03-01 2022-03-29 紫光恒越技术有限公司 恶意代码检测的方法、装置、计算机设备及可读存储介质
WO2023279254A1 (en) * 2021-07-06 2023-01-12 Huawei Technologies Co.,Ltd. Systems and methods for detection of software vulnerability fix
WO2024051196A1 (zh) * 2022-09-09 2024-03-14 上海派拉软件股份有限公司 恶意代码检测方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070152854A1 (en) * 2005-12-29 2007-07-05 Drew Copley Forgery detection using entropy modeling
CN103065089A (zh) * 2012-12-11 2013-04-24 深信服网络科技(深圳)有限公司 网页木马的检测方法和装置
CN107590388A (zh) * 2017-09-12 2018-01-16 南方电网科学研究院有限责任公司 恶意代码检测方法和装置
CN108376220A (zh) * 2018-02-01 2018-08-07 东巽科技(北京)有限公司 一种基于深度学习的恶意样本程序分类方法及系统
CN109922052A (zh) * 2019-02-22 2019-06-21 中南大学 一种结合多重特征的恶意url检测方法
CN111488574A (zh) * 2020-04-08 2020-08-04 湖南大学 恶意软件分类方法、系统、计算机设备和存储介质
CN111611583A (zh) * 2020-04-08 2020-09-01 国家计算机网络与信息安全管理中心 恶意代码同源性分析方法和恶意代码同源性分析装置
CN111723368A (zh) * 2020-05-28 2020-09-29 中国人民解放军战略支援部队信息工程大学 基于Bi-LSTM和自注意力的恶意代码检测方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070152854A1 (en) * 2005-12-29 2007-07-05 Drew Copley Forgery detection using entropy modeling
CN103065089A (zh) * 2012-12-11 2013-04-24 深信服网络科技(深圳)有限公司 网页木马的检测方法和装置
CN107590388A (zh) * 2017-09-12 2018-01-16 南方电网科学研究院有限责任公司 恶意代码检测方法和装置
CN108376220A (zh) * 2018-02-01 2018-08-07 东巽科技(北京)有限公司 一种基于深度学习的恶意样本程序分类方法及系统
CN109922052A (zh) * 2019-02-22 2019-06-21 中南大学 一种结合多重特征的恶意url检测方法
CN111488574A (zh) * 2020-04-08 2020-08-04 湖南大学 恶意软件分类方法、系统、计算机设备和存储介质
CN111611583A (zh) * 2020-04-08 2020-09-01 国家计算机网络与信息安全管理中心 恶意代码同源性分析方法和恶意代码同源性分析装置
CN111723368A (zh) * 2020-05-28 2020-09-29 中国人民解放军战略支援部队信息工程大学 基于Bi-LSTM和自注意力的恶意代码检测方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘恒讯等: "一种基于词向量的恶意代码分类模型", 《电子设计工程》 *
吕佳: "基于改进分类模型的文本分类系统实现", 《重庆师范大学学报(自然科学版)》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282927A (zh) * 2021-05-31 2021-08-20 平安国际智慧城市科技股份有限公司 恶意代码检测方法、装置、设备及计算机可读存储介质
CN113282927B (zh) * 2021-05-31 2024-02-02 平安国际智慧城市科技股份有限公司 恶意代码检测方法、装置、设备及计算机可读存储介质
WO2023279254A1 (en) * 2021-07-06 2023-01-12 Huawei Technologies Co.,Ltd. Systems and methods for detection of software vulnerability fix
CN113722641A (zh) * 2021-08-30 2021-11-30 平安国际智慧城市科技股份有限公司 基于ai的注入请求保护方法、装置、终端设备及介质
CN113688391A (zh) * 2021-08-31 2021-11-23 南方电网科学研究院有限责任公司 一种电力软件恶意代码监测方法、系统、设备和介质
CN113869431A (zh) * 2021-09-30 2021-12-31 平安科技(深圳)有限公司 虚假信息检测方法、系统、计算机设备及可读存储介质
WO2023050670A1 (zh) * 2021-09-30 2023-04-06 平安科技(深圳)有限公司 虚假信息检测方法、系统、计算机设备及可读存储介质
CN113869431B (zh) * 2021-09-30 2024-05-07 平安科技(深圳)有限公司 虚假信息检测方法、系统、计算机设备及可读存储介质
CN114124449A (zh) * 2021-10-14 2022-03-01 北京墨云科技有限公司 一种基于机器学习的sql注入攻击识别方法
CN114253866A (zh) * 2022-03-01 2022-03-29 紫光恒越技术有限公司 恶意代码检测的方法、装置、计算机设备及可读存储介质
WO2024051196A1 (zh) * 2022-09-09 2024-03-14 上海派拉软件股份有限公司 恶意代码检测方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN112685739B (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
CN112685739B (zh) 恶意代码检测方法、数据交互方法及相关设备
CN110808968B (zh) 网络攻击检测方法、装置、电子设备和可读存储介质
Zhao et al. A review of computer vision methods in network security
US20190019058A1 (en) System and method for detecting homoglyph attacks with a siamese convolutional neural network
CN107463844B (zh) Web木马检测方法及系统
CN111931935B (zh) 基于One-shot 学习的网络安全知识抽取方法和装置
Chai et al. An explainable multi-modal hierarchical attention model for developing phishing threat intelligence
CN105431859A (zh) 指示恶意软件的信号标记
Liu et al. An efficient multistage phishing website detection model based on the CASE feature framework: Aiming at the real web environment
CN111783132A (zh) 基于机器学习的sql语句安全检测方法、装置、设备及介质
CN110750750A (zh) 网页生成方法、装置、计算机设备和存储介质
Sommer et al. Athena: Probabilistic verification of machine unlearning
CN110704841A (zh) 一种基于卷积神经网络的大规模安卓恶意应用检测系统及方法
Rao et al. Application of word embedding and machine learning in detecting phishing websites
CN114448664B (zh) 钓鱼网页的识别方法、装置、计算机设备及存储介质
CN116015703A (zh) 模型训练方法、攻击检测方法及相关装置
Rasheed et al. Adversarial attacks on featureless deep learning malicious URLs detection
CN113918936A (zh) Sql注入攻击检测的方法以及装置
CN113691489A (zh) 一种恶意域名检测特征处理方法、装置和电子设备
CN116722992A (zh) 一种基于多模态融合的诈骗网站识别方法及装置
CN115883111A (zh) 一种钓鱼网站识别方法、装置、电子设备及存储介质
CN114021124A (zh) 一种自然语言生成及攻击检测方法、介质、装置及设备
CN113992390A (zh) 一种钓鱼网站的检测方法及装置、存储介质
CN112836214A (zh) 一种通讯协议隐蔽通道检测方法
Jiang et al. Method for Detecting Javascript Code Obfuscation based on Convolutional Neural Network

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
GR01 Patent grant
GR01 Patent grant