一种基于内容分块的工控恶意代码检测方法技术

技术编号:38090594 阅读:10 留言:0更新日期:2023-07-06 09:02
本发明专利技术公开了一种基于内容分块的工控恶意代码检测方法,包括:每个用户处理恶意代码样本;按文件数据流读取文件,使用两个并行滑动的数据窗口;每读取一位,计算一次窗口内的哈希,若等于边界判定的特殊哈希值,则结束当前滑动;将每16次滑动的哈希值加起来求和,得到总哈希;重复直到完成当前文件的分块工作;使用汉明距离判断每个恶意代码哈希值的相似度,生成若干个聚类;每个用户发送查询请求,将哈希值发往其他用户;其他用户根据发来的哈希,与自己生成的聚类比较,得到查询的恶意代码的具体类型,并反馈;查询用户根据返回的查询结果,优化当前代码的分类。本发明专利技术可保护两方的数据隐私,为恶意代码检测模型提供训练数据。据。据。

【技术实现步骤摘要】
一种基于内容分块的工控恶意代码检测方法


[0001]本专利技术属于工控
,尤其涉及一种基于内容分块的工控恶意代码检测方法。

技术介绍

[0002]恶意代码检测一直是工控安全的重要组成部分。近年来,随着恶意代码种类的逐渐增多,业务量逐渐增大,目前主流的人工检测方法和软件检测方法显现出效率较低、检测率不高的问题。因此机器学习训练恶意检测代码成为了新的热门技术方向。但因为工控领域的数据隐私性更强,公开的数据集更少,这使得机器学习中的数据质量无法保证,数据量也有差别,这造成了最后整体模型的性能较差。
[0003]恶意代码是指故意编制或设置的,对网络或系统会产生危险或潜在威胁的计算机代码。因此,恶意代码检测一直是工控安全的重要研究领域。然而,传统的恶意代码检测方法大部分是人工分析和软件识别。因此一旦出现未被检测人员所知的新型恶意代码,就能很容易绕过检测,对工控安全造成重大影响。也因此,近几年关于机器学习训练模型来检测恶意代码的方法也越来越多。
[0004]众所周知,决定一个模型的好坏的因素,不单是模型本身结构是否合理,更重要的是训练数据的质量好坏。联邦学习也是如此,如果各个客户的数据集都划分的很好,那么最后联邦学习得到的总模型的效果也会很好。但由于商业价值、法律法规要求等等原因,拥有更好的数据集的客户不愿意让其他客户使用自己的数据集,其他客户也会因为自己数据集存在缺陷而无法得到满意的训练结果,这造成不同客户之间训练的模型性能差距很大,数据集更差的客户训练的模型无法全面的检测恶意代码。
[0005]当前有关孤岛问题以及恶意代码检测的问题有:
[0006]主要的联邦学习训练恶意代码的方法,均未提出有效的数据孤岛解决方法,导致各个客户训练模型的检测能力、检测性能各不相同。
[0007]当前机器学习解决恶意代码检测的方法主要是将恶意代码转换为灰度图,利用深度学习生成检测模型,若有新类型的恶意代码,数据集的重新生成非常繁琐。
[0008]现有的技术尽管保证了数据隐私,但整体通信和计算的流程较复杂。
[0009]Wang Y,Tong Y,Shi D等人在非专利文献”An efficient approach for cross

silo federated learning to rank[C]//2021 IEEE 37th International Conference on Data Engineering(ICDE).IEEE,2021:1128

1139”,提出了一种跨孤岛的联邦排序学习算法,通过排序学习优化文本查询,即通过机器学习对某一个词的关键词进行重要性排序。该方法的步骤如下:
[0010]针对查询方和文本方,每次针对一个目标文档进行一次查询。首先将要查询的关键词通过哈希函数计算得到一个形如(n,1)的一维向量,向量有n行,一列。向量中每一位的数代表了要查询的矩阵中的列数,例如向量第三行的值为2,就代表要查询目标矩阵中第三行第二列的值;为了确保数据隐私,即防止有攻击者通过获取哈希函数分析得到原来的关
键词,查询方会将随机行号的向量数值进行扰动调整,然后将调整后的向量发往文本方;文本方会将自己的文本也做哈希处理。通过两个哈希函数H(a)、G(b),将每两个词中间的关联度生成一个二维的矩阵,每一格都代表了某一个词关于另一个关键词的关联度;文本方收到查询方发送的查询向量,根据向量值获取矩阵中的值,得到另一个形如(n,1)的一维向量;为了防止攻击者通过获取的向量分析得到原本的矩阵内容,从而获取文本数据。文本方也会对结果进行修改:将向量中的每一行的值都固定加某个特定的值d,来将数值进行改动,这样在d对攻击者未知的情况下,就无法回推出矩阵内容了;查询方收到了查询结果后,根据自己标记的向量中未进行扰动的行号,提取出关联度数据,然后得到所有数据的中位数,作为这个查询关键词在特定文本中的关联度。
[0011]该方案常用于搜索引擎中,因此对于互联网公司具有巨大的经济和技术价值。也因为这样,联邦学习框架下的排序学习也面临着数据孤岛问题。

技术实现思路

[0012]有鉴于此,本专利技术提出了一种可靠的隐私保护方法,可以在数据集内容较少的情况下,通过基于内容分块的哈希计算与其他用户进行交互,扩充数据集,提高模型针对多种类恶意代码识别率。因此本专利技术的目的在于:利用一种可以表达数据特点的哈希算法,来快速的处理数据集,并且充分保证数据隐私。采用聚类算法加快多方的数据查询速度,大幅提高恶意代码数据集生成以及预处理的速度,提升数据集质量。最终达到提升恶意代码模型检测性能,扩充模型可检测恶意代码类型的目的。
[0013]本专利技术公开的一种基于内容分块的工控恶意代码检测方法,包括以下步骤:
[0014]S1:每个用户处理自己的恶意代码样本;
[0015]S2:按文件数据流读取文件,使用两个并行滑动的数据窗口,一个读取奇数位的字节,一个读取偶数位的字节;
[0016]S3:每读取一位,计算一次窗口内的哈希,若等于边界判定的特殊哈希值,则结束当前滑动;
[0017]S4:滑动结束后,将每16次滑动的哈希值加起来求和,得到的结果作为总哈希;
[0018]S5:重复S2

S4步直到整个文件流读取完毕,完成当前文件的分块工作;
[0019]S6:将每个恶意代码文件的标志性恶意代码段的哈希值取出,使用汉明距离判断每个恶意代码哈希值的相似度,生成若干个聚类;
[0020]S7:每个用户发送查询请求,将自己的恶意代码的哈希值发往其他用户;
[0021]S8:其他用户根据发来的哈希,与自己生成的聚类比较,得到查询的恶意代码的具体类型,反馈给查询用户;
[0022]S9:查询用户根据返回的查询结果,优化当前代码的分类,扩充自己的数据集,最后按照已有的恶意代码模型设计开始进行模型的训练和测试。
[0023]进一步地,根据公式hash[i]=hash[i

2]<<1+Gear[byte[i]],计算一次窗口内的哈希,其中i表示滑动窗口目前所在的位置,hash表示所在位置的哈希值,Gear代表一个包含256个特殊哈希值的哈希表,byte表示当前位置的字节的10进制数。
[0024]进一步的,所述汉明距离公式如下:
[0025]d(x,y)=∑x[i]⊕
y[i][0026]其中x[i]和y[i]分别代表两个标志性恶意代码段的哈希值。
[0027]本专利技术的有益效果如下:
[0028]使用本专利技术,查询方可得到某个关键词与某个文本的关联度,充分保护了两方的数据隐私,同时也为排序学习提供了所需的训练数据。
[0029]本专利技术首次将基于内容的分块技术用在了恶意代码检测这一领域。利用分块技术将恶意代码中的攻击片段生成为一个特殊的哈希值,并以此作为判断代码相似性的依据、利用了哈希技术不可逆的特性,保本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于内容分块的工控恶意代码检测方法,其特征在于,包括以下步骤:S1:每个用户处理自己的恶意代码样本;S2:按文件数据流读取文件,使用两个并行滑动的数据窗口,一个读取奇数位的字节,一个读取偶数位的字节;S3:每读取一位,计算一次窗口内的哈希,若等于边界判定的特殊哈希值,则结束当前滑动;S4:滑动结束后,将每16次滑动的哈希值加起来求和,得到的结果作为总哈希;S5:重复S2

S4步直到整个文件流读取完毕,完成当前文件的分块工作;S6:将每个恶意代码文件的标志性恶意代码段的哈希值取出,使用汉明距离判断每个恶意代码哈希值的相似度,生成若干个聚类;S7:每个用户发送查询请求,将自己的恶意代码的哈希值发往其他用户;S8:其他用户根据发来的哈希,与自己生成的聚类比较,得到查询的恶意代码的具体类型,反馈给查询用户;S9:查询用户根据返回的查询结果,优化当前代码的分类,扩充自己的数据集,最后按照深度学习卷积神经网络开始进行模型的训练和测试。2.根据权利要求1所述的基于内容分块的工控恶意代码检测方法,其特征在于,根据公式hash[i]=...

【专利技术属性】
技术研发人员:李肯立张惟盛杨圣洪余思洋蔡宇辉杨志邦唐伟段明星吕婷
申请(专利权)人:湖南匡安网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1