一种基于winnowing算法的恶意代码检测方法及系统技术方案

技术编号:37606763 阅读:12 留言:0更新日期:2023-05-18 11:58
本发明专利技术涉及一种基于winnowing算法的恶意代码检测方法及系统,包括在客户端将恶意代码检测对象转换为字节流,通过winnowing算法对字节流进行滑动窗口计算,将字节流转换成哈希值集合;对哈希值集合进行局部敏感哈希计算,通过simhash算法将哈希值转换为一个固定长度的哈希值;将局部敏感哈希值传到远端服务器中,服务器在数据库中对接收的局部敏感哈希值进行检索,返回topk最相似的恶意代码对象,并分别计算相似度;判断相似度是否达到阈值,如果超出阈值,则发送恶意代码警告,否则返回正常状态。本发明专利技术采用循环滚动哈希计算滑动窗口片段值与基于simhash哈希值建立索引,提升了恶意代码检测范围和计算效率。恶意代码检测范围和计算效率。恶意代码检测范围和计算效率。

【技术实现步骤摘要】
一种基于winnowing算法的恶意代码检测方法及系统


[0001]本专利技术涉及数据安全
,尤其涉及一种基于winnowing算法的恶意代码检测方法及系统。

技术介绍

[0002]恶意代码主要指程序运行起来之后对用户产生有害行为的代码,比如造成后门、安全隐患、信息和数据窃取、以及其他有害行为;而且恶意代码本身也会发生变化,比如作者对恶意代码迭代升级,文件加壳,拼接不同恶意代码等;现有的技术方案通过基于模糊哈希算法,先对检测对象进行基于内容的分片,然后对每个分片进行常规哈希计算,所有片的哈希值最后组成模糊哈希值,用于远端检索,通过与远端库中存储数据计算编辑距离,来判断是否为恶意代码对象,这种方式优于对检测对象进行整体哈希计算的方式,能够识别恶意代码对象的部分变体,但是其主要识别的是相似度很高的对象,对于变动较多的对象,就很难识别。
[0003]需要说明的是,在上述
技术介绍
部分公开的信息只用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0004]本专利技术的目的在于克服现有技术的缺点,提供了一种基于winnowing算法的恶意代码检测方法及系统,解决了现有传统的恶意代码检测识别方法存在的不足。
[0005]本专利技术的目的通过以下技术方案来实现:一种基于winnowing算法的恶意代码检测方法,所述检测方法包括:
[0006]在客户端将恶意代码检测对象转换为字节流,通过winnowing算法对字节流进行滑动窗口计算,将字节流转换成哈希值集合;
[0007]对哈希值集合进行局部敏感哈希计算,并通过simhash算法将哈希值集合转换为一个固定长度的哈希值;
[0008]对于固定长度的哈希值,建立索引,将局部敏感哈希值传到远端服务器中,服务器在数据库中对接收的局部敏感哈希值进行检索,返回topk最相似的恶意代码对象,并分别计算相似度;
[0009]判断相似度是否达到阈值,如果超出阈值,则发送恶意代码警告,否则返回正常状态。
[0010]所述通过winnowing算法对字节流进行滑动窗口计算,将字节流转换成哈希值集合包括:
[0011]将滑动距离设置为1,读取字节的滑动窗口固定长度设置为k,通过循环滚动哈希公式计算每k个字节生成一个哈希值;
[0012]将窗口大小设置为w,对生成的哈希值继续进行滑动窗口处理,保留每w个哈希值中的最小值,如果有多个相等的最小值,则保留最右边的最小哈希值。
[0013]所述循环滚动哈希公式的生成步骤包括:
[0014]滚动哈希公式通过上一次的哈希值计算当前的哈希值,即G(i+1)=f(G(i),c
i+1
,c
i+1

k
),其中k表示滑动窗口长度,i表示滑动窗口长度k中的任意位置,f表示需要定义的哈希函数;
[0015]因为哈希值仅与最近的k个值相关,所以将公式转换为其中T[c
i+1
&0xFF]表示从数组T[]中查找数据;
[0016]设定与c
i+1

k
无关,通过异或的性质,则:
[0017][0018][0019][0020]~h(h(G(i)))=h2(G(i))
[0021]其中,~表示左右两侧的随机性等价,同理得到:
[0022][0023][0024]令k=2
n
,得到因为需要h函数使G(i+2
n
)随机性与G(i)无关,因此在h
2n
(G(i))=G(i)时,满足条件,即当h函数表示循环位移时,h函数满足条件;
[0025]进而将滚动哈希公式转变为其中G(k+1)=G(c2,c3,

,c
k+1
),G(k)=G(c1,c2,

,c
k
),CLS
m
(G(k))表示G(k)向左循环移m位,T[]表示从表T中查找数据,表示按位异或操作,其中k*m满足哈希值位数的整数倍,一般取k*m等于哈希值的位数。
[0026]所述通过simhash算法将哈希值转换为一个固定长度的哈希值包括:
[0027]利用循环滚动哈希算法提取检测对象的哈希值集合V,设定指纹权重为1;
[0028]初始化一个N维的向量Q,初始值为0,则N位的二进制签名S为0;
[0029]对于哈希值集合V中每个指纹,通过mad5或者murmurhash算法计算一个哈希值H;
[0030]对于任意j∈1~N,若H第j位为1,则Q的第j维加该特征权重,否则减去;
[0031]如果最终Q的第j维元素大于0,则S的第j位为1,否则为0;
[0032]最终得到的二进数S,作为检测对象的simhash值。
[0033]所述建立索引的步骤包括:
[0034]使用64位的二进制哈希值,搜索相似度在90%以上的对象,搜索汉明距离在8以内的相似哈希值;
[0035]将64位simhash值分为8个部分,每个部分对应8个二进制,即每个部分映射到256个桶中,检索时将待检测对象的每个部分在响应哈希表中对应的桶进行搜索。
[0036]一种基于winnowing算法的恶意代码检测系统,它包括winnowing算法计算模块、simhash算法计算模块、检索模块和判断模块;
[0037]所述winnowing算法计算模块:用于在客户端将恶意代码检测对象转换为字节流,
通过winnowing算法对字节流进行滑动窗口计算,将字节流转换成哈希值集合;
[0038]所述simhash算法计算模块:用于对哈希值集合进行局部敏感哈希计算,并通过simhash算法将哈希值转换为一个固定长度的哈希值;
[0039]所述检索模块:用于将局部敏感哈希值传到远端服务器中,服务器在数据库中对接收的局部敏感哈希值进行检索,返回topk最相似的恶意代码对象,并分别计算相似度;
[0040]所述判断模块:用于判断相似度是否达到阈值,如果超出阈值,则发送恶意代码警告,否则返回正常状态。
[0041]还包括索引建立模块,所述索引建立模块用于使用64位的二进制哈希值,搜索相似度在90%以上的对象,搜索汉明距离在8以内的相似哈希值,不同比特位的占比等于原对象集合的余弦相似度;将64位simhash值分为8个部分,每个部分对应8个二进制,即每个部分映射到256个桶中,检索时将待检测对象的每个部分在响应哈希表中对应的桶进行搜索。
[0042]本专利技术具有以下优点:一种基于winnowing算法的恶意代码检测方法及系统,通过winnowing算法提取信息,保证任意相同片段可以被识别,采用循环滚动哈希计算滑动窗口片段值与基于simhash哈希值建立索引,提升了恶意代码检测范围和计算效率。
附图说明
[0043]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于winnowing算法的恶意代码检测方法,其特征在于:所述检测方法包括:在客户端将恶意代码检测对象转换为字节流,通过winnowing算法对字节流进行滑动窗口计算,将字节流转换成哈希值集合;对哈希值集合进行局部敏感哈希计算,并通过simhash算法将哈希值集合转换为一个固定长度的哈希值;对于固定长度的哈希值,建立索引,将局部敏感哈希值传到远端服务器中,服务器在数据库中对接收的局部敏感哈希值进行检索,返回topk最相似的恶意代码对象,并分别计算相似度;判断相似度是否达到阈值,如果超出阈值,则发送恶意代码警告,否则返回正常状态。2.根据权利要求1所述的一种基于winnowing算法的恶意代码检测方法,其特征在于:所述通过winnowing算法对字节流进行滑动窗口计算,将字节流转换成哈希值集合包括:将滑动距离设置为1,读取字节的滑动窗口固定长度设置为k,通过循环滚动哈希公式计算每k个字节生成一个哈希值;将窗口大小设置为w,对生成的哈希值继续进行滑动窗口处理,保留每w个哈希值中的最小值,如果有多个相等的最小值,则保留最右边的最小哈希值。3.根据权利要求2所述的一种基于winnowing算法的恶意代码检测方法,其特征在于:所述循环滚动哈希公式的生成步骤包括:滚动哈希公式通过上一次的哈希值计算当前的哈希值,即G(i+1)=f(G(i),c
i+1
,c
i+1

k
),其中k表示滑动窗口长度,i表示滑动窗口长度k中的任意位置,f表示需要定义的哈希函数;因为哈希值仅与最近的k个值相关,所以将公式转换为其中T[c
i+1
&0xFF]表示从数组T[]中查找数据;设定与c
i+1

k
无关,通过异或的性质,则:无关,通过异或的性质,则:其中,~表示左右两侧的随机性等价,同理得到:其中,~表示左右两侧的随机性等价,同理得到:令k=2
n
,得到因为需要h函数使G(i+2
n
)随机性与G(i)无关,因此在时,满足条件,即当h函数表示循环位移时,h函数满足条件;进而将滚动哈希公式转变为其中G(k+1)=G(c2,c3,

,c
k+1
),G(k)=G(c1,c2,

,c
k
),CLS
m
(G(k))表示G(k)向左循...

【专利技术属性】
技术研发人员:朱辉张晗
申请(专利权)人:软安科技有限公司
类型:发明
国别省市:

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

1