CN104751055A - 一种基于纹理的分布式恶意代码检测方法、装置及*** - Google Patents
一种基于纹理的分布式恶意代码检测方法、装置及*** Download PDFInfo
- Publication number
- CN104751055A CN104751055A CN201310753120.4A CN201310753120A CN104751055A CN 104751055 A CN104751055 A CN 104751055A CN 201310753120 A CN201310753120 A CN 201310753120A CN 104751055 A CN104751055 A CN 104751055A
- Authority
- CN
- China
- Prior art keywords
- hash
- malicious code
- vector
- texture
- texture fingerprint
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 239000013598 vector Substances 0.000 claims abstract description 241
- 238000001514 detection method Methods 0.000 claims abstract description 65
- 238000013507 mapping Methods 0.000 claims abstract description 62
- 230000006870 function Effects 0.000 claims description 116
- 230000035772 mutation Effects 0.000 claims description 48
- 238000012360 testing method Methods 0.000 claims description 46
- 238000004422 calculation algorithm Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 22
- HUTDUHSNJYTCAR-UHFFFAOYSA-N ancymidol Chemical compound C1=CC(OC)=CC=C1C(O)(C=1C=NC=NC=1)C1CC1 HUTDUHSNJYTCAR-UHFFFAOYSA-N 0.000 claims description 18
- 238000009826 distribution Methods 0.000 claims description 17
- 238000000605 extraction Methods 0.000 claims description 15
- 238000010606 normalization Methods 0.000 claims description 15
- 230000009467 reduction Effects 0.000 claims description 13
- 230000006835 compression Effects 0.000 claims description 12
- 238000007906 compression Methods 0.000 claims description 12
- 238000001914 filtration Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 7
- 150000001875 compounds Chemical class 0.000 claims description 6
- 239000012141 concentrate Substances 0.000 claims description 5
- 230000011218 segmentation Effects 0.000 claims description 5
- 239000011159 matrix material Substances 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 13
- 230000003068 static effect Effects 0.000 description 12
- 238000004088 simulation Methods 0.000 description 10
- 230000008676 import Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000000155 isotopic effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Collating Specific Patterns (AREA)
- Image Analysis (AREA)
Abstract
一种基于纹理的分布式恶意代码检测装置及方法;装置包括:纹理指纹提取单元,用于根据恶意代码PE文件生成恶意代码纹理指纹向量集合,提取待检测样本的纹理指纹向量;布隆过滤器索引结构建立单元,用于将恶意代码纹理指纹向量集合映射到Bloom-Filter索引结构中;分布式LSH索引结构建立单元,用于建立分布式LSH索引结构;分布式变种检测单元用于当精确检测单元未命中时,建立目标查询集,计算其位置敏感哈希值、机器标识和哈希桶标识,根据计算结果在分布式LSH索引结构中找到相应的恶意代码纹理指纹向量,进行比较,得到检测结果。本发明能够检测未知恶意代码及其类型。
Description
技术领域
本发明涉及网络安全领域,尤其涉及一种基于纹理的分布式计算机恶意代码检测方法、装置及***。
背景技术
恶意代码是在一定环境下执行对计算机***或网络***机密性、完整性、可用性产生威胁,具有恶意企图的代码序列,包括病毒、蠕虫、特洛伊木马、时间和逻辑炸弹、僵尸网络和间谍软件等。据赛门铁克公司2010年发布的恶意代码语料库规模已经达到了2.86亿,而且增长迅速。仅由赛门铁克的监测数据,已可见恶意代码数量的日益庞大及其威胁的日益严重。由于技术的局限性,仍有大量恶意代码无法有效监测。而且,恶意代码变种层出不穷,是恶意代码防范形势日益严峻的主要原因。
目前,恶意代码检测方法可以分为基于特征的检测和基于启发式的检测两大类。
基于特征的检测方法根据由恶意代码中提取的特征进行检测,该方法过于依赖分析人员的经验,几乎不能检测未知的恶意代码,且原先能检测出的恶意代码经过加壳、混淆处理后又会无法检测。为解决该问题,人们提出了基于启发式的检测方法。
启发式方法是指利用规则和模式来检测未知恶意代码的方法,通常分为静态检测方法和动态检测方法。
静态检测方法通过分析恶意代码的静态文件结构、二进制字节码、反汇编后的代码、反汇编后的静态***调用等获取恶意代码的特征,利用分类算法在正常软件与恶意代码之间建立较好的分割线,实现已知和未知恶意代码的检测。静态检测方法通常容易受加壳(加密、压缩)、变形、多态技术的影响,同时由于静态检测方法没有真实地运行软件,判断是否为恶意的软件行为没有展现,静态检测过的软件,其行为不一定安全。
动态检测方法的主要原理是将目标程序放置在一个虚拟机(沙箱)中,通过监控目标程序运行过程的行为来判断是否为恶意程序。动态检测方法又分为粗粒度方法和细粒度方法。粗粒度方法通过运行恶意代码分析其行为所对应API(应用程序编程接口)调用序列来进行恶意代码检测,细粒度方法通过恶意代码的运行时动态指令序列来进行检测。
与静态检测方法相比,动态检测方法更为有效,无需考虑解包、解密等复杂过程。然而,动态检测方法是时间密集型和资源消耗型的方法,虚拟机执行包括解包、执行、全路径探索来捕捉调用序列、退出等过程,动态检测方法平均分析时间为3~5分钟,即使过程压缩到30秒,2010年Symantec的恶意语料库也需要花费254年处理一遍。
总而言之,恶意代码静态分析技术是以恶意代码程序为研究重点,动态分析是以恶意代码的行为为研究重点。静态分析只是通过恶意代码自身来判断恶意代码想要实现的目标,与恶意代码的行为无关,静态分析可能会得到大量的冗余信息,分析结果也容易被代码分析得到的冗余信息迷惑。动态分析是依赖于恶意代码的运行环境和不同的检测特征,不同的环境和不同的特征可能得到不同的动态分析结果。
因此,在海量恶意代码环境下,静态检测方法和动态检测方法在可扩展性方面不足,而且,由于上述问题导致了检测性能较低和检测结果欠准确。
发明内容
本发明要解决的技术问题是面对海量的恶意样本环境时,如何尽量避免可扩展性不足、检测性能较低和检测结果欠准确的问题,而且能够检测未知恶意代码及其类型。
为了解决上述问题,本发明提供了一种基于纹理的分布式恶意代码检测装置,包括:分布式变种检测单元;
纹理指纹提取单元,用于根据恶意代码语料库中的恶意代码可移植的执行体PE文件生成恶意代码纹理指纹向量集合,以及提取待检测样本的纹理指纹向量;
布隆过滤器Bloom-Filter索引结构建立单元,用于将所述恶意代码纹理指纹向量集合映射到Bloom-Filter索引结构中;
分布式位置敏感哈希LSH索引结构建立单元,用于计算各恶意代码纹理指纹向量的位置敏感哈希值,计算各所述位置敏感哈希值的机器标识和哈希桶标识,建立分布式LSH索引结构;
精确检测单元,用于基于所述Bloom-Filter索引结构,对所述待检测样本的纹理指纹向量进行检测;如果命中,则将所命中的恶意代码PE文件的信息作为检测结果;如果未命中,则将所述待检测样本的纹理指纹向量发送给所述分布式变种检测单元;
所述分布式变种检测单元用于建立所述待检测样本的纹理指纹向量的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集;采用与所述分布式LSH索引结构建立单元相同的哈希函数计算所述目标查询集的位置敏感哈希值,进而计算机器标识和哈希桶标识,根据计算结果在所述分布式LSH索引结构中找到相应的恶意代码纹理指纹向量,与所述待检测样本的纹理指纹向量进行比较,得到检测结果。
可选地,所述纹理指纹提取单元包括:
信息摘要计算模块,用于对恶意代码语料库中的恶意代码PE文件分别进行标注,根据标注得到的消息摘要从恶意代码语料库中删除重复的恶意代码PE文件,将所述消息摘要作为各恶意代码PE文件的唯一标识符ID;还用于对待检测样本进行标注,得到消息摘要;
映射模块,用于将所述恶意代码语料库中每个恶意代码PE文件的二进制执行文件映射为无损压缩格式的灰度图像文件;还用于将待检测样本映射为无损压缩格式的灰度图像文件;
纹理特征提取模块,用于分别抽取各灰度图像文件的纹理特征,将所抽取的纹理特征作为相应文件的纹理特征;
归一化模块,用于对整个恶意代码库及待检测样本的纹理特征向量进行归一化处理,将得到的各恶意代码PE文件的恶意代码纹理指纹向量汇总为恶意代码纹理指纹向量集合,输出所述待检测样本的纹理指纹向量。
可选地,所述Bloom-Filter索引结构建立单元包括:
初始化模块,用于建立一个m位的Bloom-Filter索引结构,每一位初始化时置为0;
第一哈希映射模块,用于选取k1个相互独立的哈希hash函数;然后,针对所述纹理指纹提取单元生成的包含n个元素的恶意代码纹理指纹向量集合,通过k1个相互独立的hash函数进行映射;
位图数组更新模块,用于对于每一个恶意代码纹理指纹向量,采用k1个相互独立的hash函数处理后,获得k1个位置地址,将所述二进制位图数组映射到的位置地址的值置为1;
位图索引存储模块,用于将所述Bloom-Filter索引结构以位图文件的形式存储到磁盘;
m、n、k1为正整数。
可选地,所述分布式LSH索引结构包括:
第一位置敏感哈希映射模块,用于从N(μ,σ2)分布中产生k2个随机抽样得到的d维向量α,使用位置敏感哈希函数计算恶意代码纹理指纹向量υ的位置敏感哈希值,对于每个恶意代码纹理指纹向量υ产生一个k2维的位置敏感哈希向量;d、k2为正整数;ω,b分别是随机超平面的斜率和截距;r是映射直线分割的线段长度;
第一主哈希映射模块,用于利用主哈希函数hash1,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
第一次哈希映射模块,用于利用次哈希函数hash2,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
哈希桶存储模块,用于建立哈希表,保存主哈希映射模块和次哈希映射模块的返回结果;主哈希函数hash1(a)返回结果为机器标识,n'为分布式***中集群的规模,次哈希函数hash2(a)返回结果为桶标识,s为分布式***中哈希桶的个数。
可选地,所述精确检测单元包括:
第二哈希映射模块,用于使用所述Bloom-Filter索引构建单元所使用的k1个相互独立的hash函数,计算所述待检测样本的纹理指纹向量υ'的k1个独立的哈希值;
位图比对模块,用于判断所述待检测样本的纹理指纹向量υ'是否在于Bloom-Filter索引结构中;根据所述第二哈希映射模块计算出的k1个独立的哈希值,判断其对应所有的位数组中位置是否都是1,如果都是1则认为υ'是Bloom-Filter索引结构中的元素,否则不是;
命中判别模块,用于当υ'是Bloom-Filter索引结构中的元素时,返回该检测样本为恶意代码的检测结果;如果υ'不是Bloom-Filter索引结构中的元素,则将所述待检测样本的纹理指纹向量υ'交给分布式变种检测单元。
可选地,所述分布式变种检测单元包括:
目标查询集构造模块,用于构造所述待检测样本的纹理指纹向量υ'的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集,目标查询集的规模为t,是正整数;
第二位置敏感哈希映射模块,用于使用与所述分布式LSH索引构建模块相同的位置敏感哈希函数处理目标查询集,生成t个k2维的位置敏感哈希向量;
第二主哈希映射模块,用于使用与所述分布式LSH索引构建模块相同的主哈希函数hash1分别处理t个k2维的位置敏感哈希向量,获得t个分布式***集群中机器标识;
第二次哈希映射模块,用于使用与所述分布式LSH索引构建模块相同的次哈希函数hash2分别处理t个k2维的位置敏感哈希向量,获得t个哈希桶标识;
查找模块,用于根据哈希桶标识访问所述分布式LSH索引构建模块构建的哈希桶,将相应桶内的恶意代码ID及其纹理指纹向量构成候选结果集;
距离计算模块,用于计算所述待检测样本的纹理指纹向量与候选结果集中的每个候选指纹向量之间的空间距离,然后使用Top-k算法对所述空间距离进行排序,返回k'个与所述待检测样本的纹理指纹向量最接近的恶意代码纹理指纹向量所对应的恶意代码ID作为目标结果集;
选取模块,根据预设的距离阈值λ,过滤目标结果集,删除距离阈值大于λ的恶意代码ID,返回过滤后的目标结果集作为检测结果。
本发明还提供了一种基于纹理的分布式恶意代码检测方法,包括:
S201、根据恶意代码语料库中的恶意代码PE文件生成恶意代码纹理指纹向量集合;
S202、将所述恶意代码纹理指纹向量集合映射到Bloom-Filter索引结构中;
S203、计算各恶意代码纹理指纹向量的位置敏感哈希值,计算各所述位置敏感哈希值的机器标识和哈希桶标识,建立分布式LSH索引结构;
S204、提取待检测样本的纹理指纹向量;
S205、基于所述Bloom-Filter索引结构,对所述待检测样本的纹理指纹向量进行检测;如果命中,则将所命中的恶意代码PE文件的信息作为检测结果;
S206、如果未命中,则进行分布式变种检测,包括:建立所述待检测样本的纹理指纹向量的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集;采用与所述分布式LSH索引结构建立单元相同的哈希函数计算所述目标查询集的位置敏感哈希值,进而计算机器标识和哈希桶标识,根据计算结果在所述分布式LSH索引结构中找到相应的恶意代码纹理指纹向量,与所述待检测样本的纹理指纹向量进行比较,得到检测结果。
可选地,所述步骤S201包括:
S2011、对恶意代码语料库中的恶意代码PE文件分别进行标注,根据标注得到的消息摘要从恶意代码语料库中删除重复的恶意代码PE文件,将所述消息摘要作为各恶意代码PE文件的唯一标识符ID;
S2012、将所述恶意代码语料库中每个恶意代码PE文件的二进制执行文件映射为无损压缩格式的灰度图像文件;
S2013、分别抽取各灰度图像文件的纹理特征,将所抽取的纹理特征作为相应文件的纹理特征;
S2014、对整个恶意代码库及待检测样本的纹理特征向量进行归一化处理,将得到的各恶意代码PE文件的恶意代码纹理指纹向量汇总为恶意代码纹理指纹向量集合,输出所述待检测样本的纹理指纹向量。
可选地,所述步骤S202包括:
建立一个m位的Bloom-Filter索引结构,每一位初始化时置为0;
选取k1个相互独立的哈希hash函数;然后,针对所述纹理指纹提取单元生成的包含n个元素的恶意代码纹理指纹向量集合,通过k1个相互独立的hash函数进行映射;m、n、k1为正整数;
对于每一个恶意代码纹理指纹向量,采用k1个相互独立的hash函数处理后,获得k1个位置地址,将所述二进制位图数组映射到的位置地址的值置为1;
用于将所述Bloom-Filter索引结构以位图文件的形式存储到磁盘。
可选地,所述步骤S203包括:
从N(μ,σ2)分布中产生k2个随机抽样得到的d维向量α,使用位置敏感哈希函数计算恶意代码纹理指纹向量υ的位置敏感哈希值,对于每个恶意代码纹理指纹向量υ产生一个k2维的位置敏感哈希向量;d、k2为正整数;ω,b分别是随机超平面的斜率和截距;r是映射直线分割的线段长度;
利用主哈希函数hash1,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
利用次哈希函数hash2,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
建立哈希表,保存主哈希映射模块和次哈希映射模块的返回结果;主哈希函数hash1(a)返回结果为机器标识,n'为分布式***中集群的规模,次哈希函数hash2(a)返回结果为桶标识,s为分布式***中哈希桶的个数。
可选地,所述步骤S205包括:
使用所述k1个相互独立的hash函数,计算所述待检测样本的纹理指纹向量υ'的k1个独立的哈希值;
判断所述待检测样本的纹理指纹向量υ'是否在于Bloom-Filter索引结构中;根据所述第二哈希映射模块计算出的k1个独立的哈希值,判断其对应所有的位数组中位置是否都是1,如果都是1则认为υ'是Bloom-Filter索引结构中的元素,否则不是;
当υ'是Bloom-Filter索引结构中的元素时,返回该检测样本为恶意代码的检测结果;如果υ'不是Bloom-Filter索引结构中的元素,则将所述待检测样本的纹理指纹向量υ'交给分布式变种检测单元。
可选地,步骤S206包括:
构造所述待检测样本的纹理指纹向量υ'的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集,目标查询集的规模为t,是正整数;
使用所述位置敏感哈希函数处理目标查询集,生成t个k2维的位置敏感哈希向量;
使用所述主哈希函数hash1分别处理t个k2维的位置敏感哈希向量,获得t个分布式***集群中机器标识;
使用所述次哈希函数hash2分别处理t个k2维的位置敏感哈希向量,获得t个哈希桶标识;
根据哈希桶标识访问所述分布式LSH索引构建模块构建的哈希桶,将相应桶内的恶意代码ID及其纹理指纹向量构成候选结果集;
根据哈希桶标识访问所述分布式LSH索引构建模块构建的哈希桶,将相应桶内的恶意代码ID及其纹理指纹向量构成候选结果集;
计算所述待检测样本的纹理指纹向量与候选结果集中的每个候选指纹向量之间的空间距离,然后使用Top-k算法对所述空间距离进行排序,返回k'个与所述待检测样本的纹理指纹向量最接近的恶意代码纹理指纹向量所对应的恶意代码ID作为目标结果集;
根据预设的距离阈值λ,过滤目标结果集,删除距离阈值大于λ的恶意代码ID,返回过滤后的目标结果集作为检测结果。
本发明的技术方案在一定程度上解决了传统检测方法面对海量的恶意样本环境,可扩展性不足、检测性能较低和检测结果欠准确的问题,而且能够检测未知恶意代码及其类型。而且,本发明实施例采用了基于熵的位置敏感哈希技术的纹理指纹索引方案,将检索的时间复杂度降低到亚线性级别,同时将检索的空间复杂度降低到线性级别。
附图说明
图1是实施例一的基于纹理的分布式恶意代码检测装置的结构示意图;
图2是实施例一中纹理指纹提取单元的结构示意图;
图3是实施例一中布隆过滤器索引结构建立单元的结构示意图;
图4是实施例一中分布式LSH索引结构建立单元的结构示意图;
图5是实施例一中精确检测单元的结构示意图;
图6是实施例一中分布式变种检测单元的结构示意图;
图7是实施例二的基于纹理的分布式恶意代码检测方法的流程示意图;
图8是实施例二中数据预处理阶段的流程示意图;
图9是实施例二中精确检测步骤后的流程示意图;
图10是实施例三的基于纹理的分布式恶意代码检测***的示意图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一、一种基于纹理的分布式恶意代码检测装置,如图1所示,包括:分布式变种检测单元;
纹理指纹提取单元,用于根据恶意代码语料库中的恶意代码PE(可移植的执行体)文件生成恶意代码纹理指纹向量集合,以及提取待检测样本的纹理指纹向量;
Bloom-Filter(布隆过滤器)索引结构建立单元,用于将所述恶意代码纹理指纹向量集合映射到Bloom-Filter索引结构中;
分布式LSH(位置敏感哈希)索引结构建立单元,用于计算各恶意代码纹理指纹向量的位置敏感哈希值,计算各所述位置敏感哈希值的机器标识和哈希桶标识,建立分布式LSH索引结构;
精确检测单元,用于基于所述Bloom-Filter索引结构,对所述待检测样本的纹理指纹向量进行检测;如果命中,则将所命中的恶意代码PE文件的信息作为检测结果;如果未命中,则将所述待检测样本的纹理指纹向量发送给所述分布式变种检测单元;
所述分布式变种检测单元用于建立所述待检测样本的纹理指纹向量的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集;采用与所述分布式LSH索引结构建立单元相同的哈希函数计算所述目标查询集的位置敏感哈希值,进而计算机器标识和哈希桶标识,根据计算结果在所述分布式LSH索引结构中找到相应的恶意代码纹理指纹向量,与所述待检测样本的纹理指纹向量进行比较,得到检测结果。
纹理指纹的相似度取决于图像本身纹理的相似度,即恶意代码之间的相似度,纹理越是相似的图像,其纹理指纹的相似度也越大,或者说对应的空间距离(海明距离或欧氏距离)越短。这样,与某种恶意代码具有相近纹理的代码二进制可执行文件,有很大可能与该种恶意代码是变种关系。本实施例在一定程度上解决了恶意代码分布式变种检测问题,使得能够准确地识别出检测用户所提供的恶意代码是否是哪个或哪些恶意代码的变种。
本实施例的一种实施方式中,所述***还可以包括:
输入单元,用于接收待检测样本;
恶意代码语料库查询单元,用于根据检测结果查找所述恶意代码语料库中的相关恶意代码的信息;
检测报告输出单元,用于输出所述检测结果,以及所述恶意代码语料库查询单元查询到的信息;
更新单元,用于根据检测结果信息更新Bloom-Filter索引结构、LSH索引结构、恶意代码语料库。
本实施例中,所述输入单元可包括一输入模块,主要功能是接受用户提交的检测请求,并将待检测样本转发给所述纹理指纹提取单元做进一步处理。
本实施例的一种实施方式中,所述纹理指纹提取单元如图2所示,具体可以包括:
信息摘要计算模块,用于对恶意代码语料库中的恶意代码PE文件分别进行标注,根据标注得到的消息摘要从恶意代码语料库中删除重复的恶意代码PE文件,将所述消息摘要作为各恶意代码PE文件的唯一标识符ID;还用于对待检测样本进行标注,得到消息摘要;可以使用消息摘要算法(例如MD5,SHA等,统称为DSA算法)进行标注;
映射模块,用于将所述恶意代码语料库中每个恶意代码PE文件的二进制执行文件映射为无损压缩格式的灰度图像文件(例如但不限于PNG格式,GIF格式,BMP格式等);还用于将待检测样本映射为无损压缩格式的灰度图像文件;可以使用B2M算法进行映射;
纹理特征提取模块,用于分别抽取各灰度图像文件的纹理特征,将所抽取的纹理特征作为相应文件的纹理特征;可以使用图像纹理特征抽取算法进行抽取(例如但不限于灰度共生矩阵方法,局部二值模式LBP方法等,统称为TFE算法);
归一化模块,用于对整个恶意代码库及待检测样本的纹理特征向量进行归一化处理,将得到的各恶意代码PE文件的恶意代码纹理指纹向量汇总为恶意代码纹理指纹向量集合,输出所述待检测样本的纹理指纹向量;可以使用高斯归一化算法(称为GN算法)进行归一化。
本实施例的一种实施方式中,所述Bloom-Filter索引结构建立单元如图3所示,具体可以包括:
初始化模块,用于建立一个m位的Bloom-Filter索引结构,即二进制位图数组,每一位初始化时置为0;
第一哈希映射模块,用于选取k1个相互独立的hash(哈希)函数;然后,针对所述纹理指纹提取单元生成的包含n个元素的恶意代码纹理指纹向量集合,通过k1个相互独立的hash函数进行映射;
位图数组更新模块,用于对于每一个恶意代码纹理指纹向量,采用k1个相互独立的hash函数处理后,获得k1个位置地址,将所述二进制位图数组映射到的位置地址的值置为1;
位图索引存储模块,用于将所述Bloom-Filter索引结构以位图文件的形式存储到磁盘;可以在进行恶意代码精确检测时加载到内存。
本实施方式中,m、k1为正整数,可根据经验值或需要自行设置;通常来说,在错误率不大于ε的情况下,m≥n×lg(1/ε)才能表示任意n个元素的集合,但m还应该更大些,因为还要保证bit数组里至少一半为0,则m≥n×lg(1/ε)×lge,大概为n×lg(1/ε)的1.44倍。所述k1可以但不限于等于(ln2)*(m/n),实验验证,此时错误率最小。
Bloom-Filter算法的核心思想就是利用多个不同的hash函数来解决“冲突”,它实际上是一个很长的位图数组和k1个独立hash函数。本实施例中使用的Bloom-Filter可以但不限于为Counting-Bloom-Filter,支持删除操作,其中恶意代码纹理指纹向量的空间规模为n,位数组规模为m,hash函数个数为k1,错误率为ε。
本实施例的一种实施方式中,所述分布式LSH索引结构建立单元基于(key,value)分布式抽象框架,采用一种分布式的索引构建策略。
本实施方式中,所述分布式LSH索引结构建立单元如图4所示,具体可以包括:
第一位置敏感哈希映射模块,用于从N(μ,σ2)分布中产生k2个随机抽样得到的d维向量α,即产生k×d个高斯分布随机抽样。使用位置敏感哈希函数计算恶意代码纹理指纹向量υ的位置敏感哈希值,对于每个恶意代码纹理指纹向量υ产生一个k2维的位置敏感哈希向量,即a=(a1,a2,……,ak2);d、k2为正整数,可根据经验值或需要自行设置;
第一主哈希映射模块,用于利用主哈希函数hash1,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
第一次哈希映射模块,用于利用次哈希函数hash2,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
哈希桶存储模块,用于建立哈希表,保存主哈希映射模块和次哈希映射模块的返回结果;主哈希函数hash1(a)返回结果为机器标识,n'为分布式***中集群的规模,次哈希函数hash2(a)返回结果为桶标识,s为分布式***中哈希桶的个数。通过主哈希函数和次哈希函数,数据点将被映射到机器标识为hash1(a),桶标识为hash2(a)的位置敏感哈希桶中。其中,上述哈希表数据结构中,每个桶都包含一个桶标识(k2维的位置敏感哈希值)和表项链表。链表中,每个表项记录了一个恶意代码纹理指纹和恶意代码消息摘要。依据此方式实现了恶意代码纹理指纹向量的分布式空间划分。
在其它实施方式中,也可以自行选择其它的位置敏感哈希函数、主哈希函数和次哈希函数。
LSH算法的核心思想是通过一组特殊的位置敏感哈希函数,尽量让高维数据中相近的数据装在同一个或相邻的桶中。空间上的点经位置敏感哈希函数散列之后,距离较近的点哈希值相等的概率大于距离远的点哈希值相等的概率,即距离相近的点映射到同一个哈希桶中的概率更大。本实施方式中,所述分布式LSH索引结构建立单元可以使用ELSH提供的API。
本实施例的一种实施方式中,所述精确检测单元如图5所示,具体可以包括:
第二哈希映射模块,用于使用所述Bloom-Filter索引构建单元所使用的k1个相互独立的hash函数,计算所述待检测样本的纹理指纹向量υ'的k1个独立的哈希值(位置信息);
位图比对模块,用于判断所述待检测样本的纹理指纹向量υ'是否在于Bloom-Filter索引结构(位数组)中。根据所述第二哈希映射模块计算出的k1个独立的哈希值(位置信息),判断其对应所有的位数组中位置是否都是1,如果都是1则认为υ'是Bloom-Filter索引结构中的元素,否则不是;
命中判别模块,用于当υ'是Bloom-Filter索引结构中的元素时,返回该检测样本为恶意代码的检测结果;如果υ'不是Bloom-Filter索引结构中的元素,即没有精确命中,将所述待检测样本的纹理指纹向量υ'交给分布式变种检测模块做进一步处理。
在实际应用时,所述第一、第二哈希映射模块可以由同一个硬件设备或由不同的硬件设备运行同一个组件实现。
检测报告输出模块收到所述检测结果后还可以根据所述恶意代码语料库查询模块的查询结果返回相关信息,即评估报告(包括恶意代码家族类别,恶意代码文件细节信息(例如包标识,PE文件头信息,PE文件段信息,PE文件导入信息等))
本实施例的一种实施方式中,所述分布式变种检测单元基于(key,value)分布式抽象框架,及分布式ELSH索引结构进行检测。
本实施方式中,所述分布式变种检测单元如图6所示,具体可以包括:
目标查询集构造模块,用于构造所述待检测样本的纹理指纹向量υ'的最近邻集合(也可称为模拟点集合),与所述待检测样本的纹理指纹向量构成目标查询集,目标查询集的规模为t,t是正整数;
第二位置敏感哈希映射模块,用于使用与所述分布式LSH索引构建模块相同的位置敏感哈希函数处理目标查询集,生成t个k2维的位置敏感哈希向量a=(a1,a2,……,ak2);
第二主哈希映射模块,用于使用与所述分布式LSH索引构建模块相同的主哈希函数hash1分别处理t个k2维的位置敏感哈希向量,获得t个分布式***集群中机器标识;
第二次哈希映射模块,用于使用与所述分布式LSH索引构建模块相同的次哈希函数hash2分别处理t个k2维的位置敏感哈希向量,获得t个哈希桶标识;
查找模块,用于根据哈希桶标识访问所述分布式LSH索引构建模块构建的哈希桶,将相应桶内的恶意代码ID及其纹理指纹向量构成候选结果集;
距离计算模块,用于计算所述待检测样本的纹理指纹向量与候选结果集中的每个候选指纹向量之间的空间距离,然后使用Top-k算法对所述空间距离进行排序,返回k'个与所述待检测样本的纹理指纹向量最接近的恶意代码纹理指纹向量所对应的恶意代码ID作为目标结果集;
选取模块,根据预设的距离阈值λ,过滤目标结果集,删除距离阈值大于λ的恶意代码ID,返回过滤后的目标结果集作为检测结果。
λ可根据经验值或需求自行设置。
在实际应用时,所述第一、第二位置敏感哈希映射模块由同一个硬件设备或由不同的硬件设备运行同一个组件实现;所述第一、第二主哈希映射模块,以及所述第一、第二次哈希映射模块的情况也类似。
分布式变种检测单元是将空间中距离范数相近的点映射到与查询点相同的桶中,或映射到与模拟点相同的桶中。通过引入模拟点查询的方法,在保证检索精度的同时,大大的减少了哈希表数量,很大程度上降低原始LSH索引结构的空间需求。在分布式变种检测模块中,未知恶意代码及其类型检测是通过将待检测样本归类为纹理指纹相近的恶意代码家族来实现的。
本实施例的一种实施方式中,所述检测报告输出单元根据所述分布式变种检测单元生成的目标结果集进行判断,若目标结果集为空,则返回待检测样本为阴性的结论,即非恶意代码;否则,返回该检测样本为阳性的结论,即待检测样本为恶意代码,并将目标结果集作为该恶意代码的变种集。
还可以根据变种集中的消息摘要ID,调用恶意代码语料库查询单元,并随之返回相关信息,包括该检测样本的评估报告(包括恶意代码家族类别,恶意代码文件细节信息(例如包标识,PE文件头信息,PE文件段信息,PE文件导入信息等)),以及其变种集的相关报告信息。
本实施例的一种实施方式中,所述恶意代码语料库查询单元通过恶意代码消息摘要ID访问恶意代码语料数据库,返回与该恶意代码相关信息,包括恶意代码家族类别,恶意代码文件细节信息(例如包标识,PE文件头信息,PE文件段信息,PE文件导入信息等)。
本实施例的一种实施方式中,所述更新单元具体可以包括:
LSH索引结构更新模块、Bloom-Filter索引结构更新模块、恶意代码语料库更新模块和第三方检测投票模块。
其中,LSH索引结构更新模块和Bloom-Filter索引结构更新模块的过程与其建立过程类似,这里不再详述。恶意代码语料库更新模块,主要是将检测结果和相关信息提交给恶意代码语料数据库存储。第三方检测投票模块是一个可选模块(图2中,对可选单元采用字体加粗方式标识),其目的是为提高检测准确率,确保Bloom-Filter索引结构、LSH索引结构、恶意代码语料库的正确性,选择使用多种开源和商用的恶意代码检测工具协同检测,使用投票方式来决定最终检测结果。由于使用该过程可以不断向恶意代码语料库添加更为确定的恶意代码,可以不断提高本实施例的装置的恶意代码检测精度。
本实施例中,分布式恶意代码检测***采用的分布式框架是基于流式处理架构(例如Twitter开源的Storm和Yahoo开源的S4)的动态分布式哈希表(Active Distributed Hash Tables,ADHT),检测过程中所涉及到的分布式算法如下。
预处理阶段的算法包括:
输入:恶意代码语料库中恶意代码PE文件集合,记为S,对于恶意代码PE文件p∈S;
for p∈S do;
d=DSA(p);/*消息摘要函数,计算恶意代码消息摘要,不同消息摘要算法将会产生不同位数的消息摘要,返回该PE文件的消息摘要*/
b=B2M(p);/*PE文件投影函数,将恶意代码PE文件投影灰度图片,返回采用无损压缩格式的灰度图片*/
f=TFE(b);/*纹理特征提取函数,提取上一步生成的灰度图片的纹理特征,不同的纹理提取算法将会返回不同维度的纹理特征向量,返回纹理特征向量*/
v=GN(f);/*高斯归一化函数,将纹理特征向量进行归一化处理,返回归一化后的结果,记为恶意代码纹理指纹*/
a=H(v)=(h1(v),h2(v),……,hk2(v));/*位置敏感哈希函数,对恶意代码纹理指纹进行降维处理,降维保距,返回k2维的位置敏感哈希向量a=(a1,a2,……,ak2)*/
h_id=hash1(a);/*主哈希函数,返回结果为分布式集群中机器的标识*/
b_id=hash2(a);/*次哈希函数,返回结果为哈希桶标识*/
send(h_id,b_id,v,d);/*将恶意代码的纹理指纹向量υ发送到机器标识为h_id,内存哈希桶标识b_id的桶中*/
end for
检测阶段的算法包括:
输入:实时收到的待检测样本的纹理指纹向量υ,q∈Q
q_set=Goffset(q);/*构造该纹理指纹向量的最近邻集合(也称为模拟点集合,q+δi)与待检测纹理指纹构成目标查询集Q,集合大小为L*/
for1≤i≤L do
d=DSA(q);
b=B2M(q);
f=TFE(b);
v=GN(f);
a=H(v);
h_id=hash1(a);
b_id=hash2(a);
r_set=get(h_id,b_id);/*获取结果集函数,访问分布式集群中h_id计算节点的哈希表,获取命中的哈希桶内容纹理指纹向量集合,返回该候选结果集合,记为r_set。*/
dc_UDF(r_set,a);/*距离计算函数,在h_id计算节点上计算目标纹理指纹a与候选结果集*/
end for
dc_UDF(x,q):
or p∈r_set do
if p is within distance cr of q then
Emit(q,p);/*返回与目标纹理指纹向量空间距离小于c·r的候选结果集*/
end if
end for
实施例二、一种基于纹理的分布式恶意代码检测方法,如图7所示,包括:
S201、根据恶意代码语料库中的恶意代码PE文件生成恶意代码纹理指纹向量集合;
S202、将所述恶意代码纹理指纹向量集合映射到Bloom-Filter索引结构中;
S203、计算各恶意代码纹理指纹向量的位置敏感哈希值,计算各所述位置敏感哈希值的机器标识和哈希桶标识,建立分布式LSH索引结构;
S204、提取待检测样本的纹理指纹向量;
S205、基于所述Bloom-Filter索引结构,对所述待检测样本的纹理指纹向量进行检测;如果命中,则将所命中的恶意代码PE文件的信息作为检测结果;
S206、如果未命中,则进行分布式变种检测,包括:建立所述待检测样本的纹理指纹向量的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集;采用与所述分布式LSH索引结构建立单元相同的哈希函数计算所述目标查询集的位置敏感哈希值,进而计算机器标识和哈希桶标识,根据计算结果在所述分布式LSH索引结构中找到相应的恶意代码纹理指纹向量,与所述待检测样本的纹理指纹向量进行比较,得到检测结果。
本实施例中的方法包括以下三个阶段:数据预处理阶段、索引构建阶段和检测阶段。
首先是数据预处理阶段,即上述步骤S201,如图8所示,具体可以包含以下步骤:
S2011,使用消息摘要算法对恶意代码语料库中的恶意代码PE文件进行标注;
S2012,使用B2M算法将恶意代码语料库中每个恶意代码PE文件的二进制执行文件映射为无损压缩格式的灰度图像文件(例如PNG格式,GIF格式,BMP格式等);
S2013,使用图像纹理特征抽取算法(例如灰度共生矩阵方法,LBP方法等)抽取所述灰度图像文件的纹理特征,该特征作为相应恶意代码PE文件的纹理指纹向量;
S2014,使用高斯归一化算法对整个恶意代码语料库的纹理指纹向量进行归一化处理,得到恶意代码纹理指纹向量集合。
对于待检测样本,也要进行如上的数据预处理步骤(即上述步骤S204),与步骤S2011~S2014不同的是,处理对象由恶意语料库中的恶意代码PE文件改为所述待检测样本。
其次是索引构建阶段,即上述步骤S202和S203;根据恶意代码纹理指纹向量集合构建两类索引结构,分别为Bloom-Filter索引结构和分布式LSH索引结构。
本实施例中,可以但不限于使用ELSH算法建立分布式LSH索引结构,使用Counting-Bloom-Filter构建算法建立Bloom-Filter索引结构。
最后是检测阶段,包含两个检测过程,分别为快速精确检测(即上述步骤S205)和分布式变种检测(即上述步骤S206)。对于待检测样本,首先进行上述步骤S204,即进行数据预处理过程(即按照上述步骤S2011~S2014,对待检测样本依次进行生成消息摘要、灰度图像映射、纹理特征抽取和高斯归一化的步骤),生成待检测样本的纹理指纹向量。
接下来进入快速精确检测过程,需要计算待检测样本的纹理指纹向量的布隆哈希向量,然后检测是否命中Bloom-Filter索引结构,如果命中,向客户端返回检测报告。
否则,需要进一步做分布式变种检测,模拟待检测样本的纹理指纹向量的最近邻集合(模拟点),并计算这些模拟点的位置敏感哈希值、主哈希值和次哈希值,去访问所建立的分布式LSH索引结构,依据模拟点查询更多的哈希桶,获取与待检测样本的纹理指纹向量相近的恶意代码候选集合,然后基于空间距离(海明距离或欧氏距离),计算待检测样本的纹理指纹向量与候选集中纹理指纹向量之间的距离,选取k'个结果作为该待检测恶意代码的目标结果集(变种集),根据预设的距离阈值过滤后向客户端返回最终检测报告。
本实施例在云计算环境中,基于(key,value)分布式抽象框架,提出基于纹理指纹的精确恶意代码检测和分布式变种检测,能够快速检测恶意代码及其变种,提高检测效率和精度。
由于恶意代码语料库中可能出现误判的良性PE文件,Bloom-Filter索引建立时为良性PE文件建立了索引,这将会导致后期检测时出现误判,即将良性的PE文件误判为恶意代码。因此,Bloom-Filter需要支持删除操作,使用Counting-Bloom-Filter算法实现,Bloom-Filter的空间复杂度将会是原始不支持删除操作的Bloom-Filter的4倍。
在Bloom-Filter实现中,需要考虑以下参数:恶意代码纹理指纹向量的空间规模为n,位数组规模为m及hash函数个数为k1,错误率为ε。在错误率不大于ε的情况下,m≥n×lg(1/ε)才能表示任意n个元素的集合,但m还应该更大些,因为还要保证bit数组里至少一半为0,则m≥n×lg(1/ε)×lge,大概为n×lg(1/ε)的1.44倍。因此,m≥1.44×n×lg(1/ε);如果使用Counting-Bloom-Filter算法实现Bloom-Filter,则m≥4×1.44×n×lg(1/ε)。对于哈希函数的选择,选取k1个相互独立的hash函数,实验验证,当k1=(ln2)*(m/n)时错误率最小,而哈希函数算法可以但不限于采用MurmurHash,根据不同seed生成不同的相互独立的hash函数。
在Counting-Bloom-Filter索引建立中,它将标准Bloom Filter位数组的每一位扩展为一个小的计数器(Counter),其中使用4比特表示一个Counter计数器,即位置信息,算法步骤如下:
S2021、建立一个m位的Bloom-Filter索引结构,即二进位数组,每一位初始化时置为0;
S2022、针对步骤S201中生成的包含n个元素的恶意代码纹理指纹向量集合,通过k1个相互独立的hash函数,将集合中的每个元素都映射到二进位数组中,映射到的位置计数器加1;
S2023、删除元素时将对应的k1个Counter的值分别减1;
S2024、将Bloom-Filter索引结构以位图文件的形式存储到磁盘,进行精确检测时加载到内存。
基于Counting-Bloom-Filter索引结构,步骤S205的检索过程具体可以包括如下步骤:
S2051、加载Bloom-Filter位图文件到内存;
S2052、通过k1个相互独立的hash函数,将所述待检测样本的纹理指纹向量的每个元素都映射到二进位数组中;
S2053、若映射到的位置计数器都大于等于1,返回“命中”的检测结果,将待检测样本判定为恶意代码,还可以随之返回相关信息,即评估报告(包括恶意代码家族类别,恶意代码文件细节信息(例如包标识,PE文件头信息,PE文件段信息,PE文件导入信息等));
S2054、如映射到的位置计数器不是全部大于或等于1,返回“未命中”的检测结果,对该待检测样本的纹理指纹向量进一步进行分布式变种检测。
分布式变种检测基于(key,value)分布式抽象框架,以及所述分布式LSH索引结构进行检测;该方法的核心思想是将空间中距离范数相近的点映射到与查询点相同的哈希桶中,或映射到与模拟点相同的哈希桶中。通过引入模拟点查询的方法,在保证检索精度的同时,大大的减少了哈希表数量,很大程度上降低原始分布式LSH索引结构的空间需求。
hash函数设计的基本思想就是定义一个随机超平面(ω,b),ω,b可看成分别是随机超平面的斜率和截距(参照二维平面直线的定义),hash函数将d维的特征向量υ散列到[0,r]之间的一个整数,其hash过程:其中,ω是d维向量,每一维都是一个随机变量,各维之间独立同分布,服从一个稳态分布,b是一个[0,r]间均匀分布的随机变量。由于LSH构建hash函数的过程是独立于数据分布的,因此为了提高检索的Recall(召回)率,常采用多个hash表,通过表之间的冗余互补来弥补hash的失效,例如构建L个hash表,每个hash表都可通过一个函数产生,其包含其k2个相互独立的hash函数,将d维的原始特征υ映射至k2维。L个表需要个L×k2Hash函数(Hash函数族),且其相互之间要保持独立性。
在分布式LSH索引结构实现中,对于给定的恶意代码纹理指纹向量集合(n个数据点),需要考虑k2,L和r参数:k2是'width'of hash函数,值越大,计算hash值的时间就越多,经hash散列后的低维空间维度也越高,碰撞的概率就会越小。在本实施例的一种备选方案中,可以令k2=1;L是hash表的个数,越大则查询过程需要的时间越多,同时Recall率会提高,而由此产生的false positive(漏判)也会变高;r是映射直线分割的线段长度,r越小,经hash后碰撞的概率就会越小。实际使用中,通常会按照上述的优化过程选取,k2,L和r参数,ELSH开源包中有具体实现。
分布式LSH索引构建过程中使用ELSH提供的API,具体可以包括以下步骤:
S2031、从N(μ,σ2)分布中产生k2个随机抽样得到的d维向量α,即产生k2×d个高斯分布随机抽样;
S2032、使用位置敏感哈希函数计算恶意代码纹理指纹向量υ的位置敏感哈希值,对于每个恶意代码纹理指纹向量υ产生一个k2维的位置敏感哈希向量,即a=(a1,a2,……,ak2);
S2033、利用主哈希函数hash1,降维后向量a进行哈希,定义如下:
S2034、利用次哈希函数hash2,降维后向量a进行哈希,定义如下:
S2035、建立哈希表,主哈希值hash1(a)返回结果为机器标识,n'为分布式***中集群的规模,次哈希值hash2(a)返回结果为桶标识。通过主哈希函数和次哈希函数,数据点将被映射到机器标识为hash1(a),桶标识为hash2(a)的位置敏感哈希桶中,从而实现恶意代码纹理指纹向量的分布式空间划分。
基于分布式LSH索引结构,分布式变种检测过程使用的查询方法是基于熵的LSH方法(Entropy LSH,ELSH)。ELSH方法使用与LSH相同的哈希函数和索引方法。然而,该方法使用不同的查询过程,即需要构建目标查询集。除了使用待检测样本的纹理指纹向量,还需要待检测样本的指纹向量的最近邻点(偏移点),然后查询这些点映射的哈希桶。其核心思想是,空间中距离范数相近的点映射到与查询点相同的哈希桶中,或映射到与最近邻点相同的哈希桶中。通过引入最近邻点查询的方法,在保证检索精度的同时,大大的减少了哈希表数量,很大程度上降低原始LSH索引结构的空间需求。
计算目标查询集的过程如下:
计算纹理指纹q的最近邻集合,选取一定规模的q最近邻点集,与q一起作为目标查询集。
首先建立关于半径c·r’(到中心点q)的10维高斯分布,从实验中得出,高维高斯分布的概率密度只集中于一个远离中心、厚度较小的环形,因此从该环形上随机取一定规模的关于q的最近邻随机采样点,输出目标查询集。其中,c是一个整数,根据需要选择;r’是最近邻的查询的半径。
具体的分布式变种检测的步骤具体可以包括如下过程:
S2061、获得所述待检测样本的纹理指纹向量υ';
S2062、构造该纹理指纹向量υ'的最近邻集合(也称为模拟点集合),与待检测纹理指纹构成目标查询集,目标查询集的规模为t;
S2063、使用和步骤S2032相同的位置敏感哈希函数处理目标查询集,生成t个k2维的位置敏感哈希向量a=(a1,a2,……,ak2);
S2064、使用和步骤S2033相同的主哈希函数hash1分别处理t个k2维的位置敏感哈希向量,获得t个分布式***集群中机器标识;
S2065、使用和步骤S2034相同的次哈希函数hash2分别处理t个k2维的位置敏感哈希向量,获得t个哈希桶标识;
S2066、根据哈希桶标识访问所述分布式LSH索引结构,获取相应桶内的恶意代码ID及其纹理指纹向量,构成候选结果集;
S2067、计算所述待检测样本的纹理指纹向量与候选结果集中的每个恶意代码纹理指纹向量之间的空间距离,然后使用Top-k算法对所述空间距离进行排序,返回k'个与所述待检测样本的纹理指纹向量最接近的恶意代码纹理指纹向量所对应的恶意代码ID作为目标结果集;
S2068、根据预设的距离阈值λ,过滤目标结果集,删除距离阈值大于λ的恶意代码ID,返回最终结果集作为目标结果集。
本实施例的一种实施方式中,如图9所示,所述方法在精确检测的步骤后还可以包括:
当精确检测命中时,根据所命中的恶意代码纹理指纹向量对应的恶意代码ID(消息摘要)查询恶意代码语料库,得到相关信息,包括:恶意代码家族类别,恶意代码文件细节信息(例如包标识,PE文件头信息,PE文件段信息,PE文件导入信息等)等,据此生成检测报告,输出给客户端。
当精确检测未命中时,进行分布式变种检测后,若所述目标结果集为空,则返回该检测样本为阴性的结论,即非恶意代码;否则,返回该检测样本为阳性的结论,即恶意代码,并将目标结果集作为该恶意代码的变种集,并根据变种集中的恶意代码ID查询恶意代码语料库,得到上述相关信息,据此生成包括该检测样本的评估报告。
可选地,检测报告生成过程中可以借助可选第三方检测集群(使用多种开源和商用的恶意代码检测工具协同检测),使用投票方式来决定最终检测结果。进行投票判定;根据检测结果将该恶意代码加入恶意代码语料库中;还可以据此更新分布式LSH索引结构和Bloom-Filter索引结构。
由于使用该过程可以不断向恶意代码语料库添加更为确定的恶意代码,可以不断提高本实施例的恶意代码检测精度。
实施例三、如图10所示,一种基于纹理的分布式恶意代码检测***,其包括:上传服务器、恶意代码语料库、恶意代码检测前端服务器、精确检测服务器、变种检测集群和第三方检测投票集群(可选)。以上这些功能装置中,恶意代码语料库、精确检测服务器和变种检测集群共用了纹理指纹提取组件。
对于上传服务器,上传用户向上传服务器上传待存储的、已确认的恶意代码(第三方检测软件投票判别结果),上传服务器使用消息摘要算法(例如MD5算法,SHA-1算法等)计算恶意代码的消息摘要,访问恶意代码语料库,判断该消息摘要的恶意代码是否已经存在,若存在,则放弃对该恶意代码的处理,返回。否则,将该恶意代码的检测和分析结果(包括恶意代码家族类别,恶意代码文件细节信息(例如包标识,PE文件头信息,PE文件段信息,PE文件导入信息等))存储到恶意代码语料库中。本实施例也可以通过其他来源批量获取恶意代码的检测和分析结果后存储到恶意代码语料库,本发明实施例对此并不作限定。
对于恶意代码语料库,也称为恶意代码语料数据库,其功能是用来存储恶意代码的相关信息,包括恶意代码PE文件、恶意代码PE文件的消息摘要、恶意代码文件细节信息、恶意代码家族类别、恶意代码PE文件使用B2M算法映射后的灰度图片、纹理特征等信息。恶意代码语料库为数据库访问提供了对外的接口,访问关键字设定为恶意代码PE文件的消息摘要。
对于精确检测服务器,包括两个方面的功能,分别为建立Bloom-Filter索引和提供待检测样本的精确检测。Bloom-Filter索引构建是采用一种串行的索引构建策略,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。恶意代码检测领域能够容忍较低的错误率,Bloom Filter通过极少的错误换取了存储空间的极大节省。因此,对于海量的恶意代码样本,单台高性能服务器完全可以胜任恶意代码的精确检测功能。
纹理指纹提取组件包含以下过程:消息摘要计算、B2M映射、纹理特征提取和高斯归一化,最后生成纹理指纹向量。
消息摘要是一个唯一对应一个消息或文本的固定长度的值,它由一个单向hash函数加密函数对消息进行作用而产生。将需加密的明文"摘要"成一串固定位数的密文,它有固定的长度,且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。因此消息摘要保证了消息的完整性、一致性和唯一性。常见的消息摘要算法,主要有CRC32、MD5、SHA1、SHA256、SHA384、SHA512,其中MD5算法的总体性能是最优的,生成的摘要位数为16字节(128位)。本实施例使用MD5算法为消息摘要算法,但不局限于该算法。
纹理指纹提取组件的B2M映射过程使用B2M算法将恶意代码PE文件映射为无损压缩格式的灰度图像文件(例如PNG格式,GIF格式,BMP格式等),本实施例使用BMP格式的灰度图像,但不局限于该图像格式。具体流程如下:对于给定的恶意代码可执行文件,即二进制文件,读取8位为一个无符号的整形(范围为0~255),固定的行宽为一个向量,整个文件最后生成一个二维数组,也称之为灰度矩阵。由于此数组中每个元素的范围都是取值为[0,255](0表示黑色,255表示白色),将此数组可视化为一个灰阶图像,图像的宽度和高度取决于文件大小。
纹理指纹提取组件的纹理特征提取过程可使用的算法较多,主流的算法包括灰度共生矩阵(GLCM)、LBP方法(Local binary patterns)和傅里叶变换方法等,本实施例以GLCM方法为例说明纹理特征提取过程,但不局限于该方法。
GLCM首先对于一幅图像定义一个方向和一个以像素为单位的步长,灰度共生矩阵T(N×N),则定义M(i,j)为灰度级为i和j的像素同时出现在一个点和沿所定义的方向跨度步长的点上的频率。其中N是灰度级划分数目。由于共生矩阵有方向和步长的组合定义,而决定频率的一个因素是对矩阵有贡献的像素数目,而这个数目要比总共数目少,且随着步长的增加而减少。
为了能更直观地以GLCM描述纹理状况,从GLCM中导出一些反映矩阵状况的参数,典型的有以下几种:
(1)能量(ASM):是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。如果共生矩阵的所有值均相等,则ASM值小;相反,如果其中一些值大而其它值小,则ASM值大。当共生矩阵中元素集中分布时,此时ASM值大。ASM值大表明一种较均匀和规则变化的纹理模式。
(2)对比度(CON):反映了图像的清晰度和纹理沟纹深浅的程度。纹理沟纹越深,其对比度越大,视觉效果越清晰;反之,对比度小,则沟纹浅,效果模糊。灰度差即对比度大的象素对越多,这个值越大。灰度公生矩阵中远离对角线的元素值越大,CON越大。
(3)相关(COR):它度量空间灰度共生矩阵元素在行或列方向上的相似程度,因此,相关值大小反映了图像中局部灰度相关性。当矩阵元素值均匀相等时,相关值就大;相反,如果矩阵像元值相差很大则相关值小。如果图像中有水平方向纹理,则水平方向矩阵的COR大于其余矩阵的COR值。
(4)熵(Entropy):是图像所具有的信息量的度量,纹理信息也属于图像的信息,是一个随机性的度量,当共生矩阵中所有元素有最大的随机性、空间共生矩阵中所有值几乎相等时,共生矩阵中元素分散分布时,熵较大。它表示了图像中纹理的非均匀程度或复杂程度。
(5)逆差距(Homogeneity):反映图像纹理的同质性,度量图像纹理局部变化的多少。其值大则说明图像纹理的不同区域间缺少变化,局部非常均匀。
其它参数还包括反差(Contrast)、差异性(Dissimilarity)、二阶距(AngularSecond Moment)、自相关(Correlation)等;本实施例采用能量、对比度、熵、逆差距、相关的均值和标准差作为最终10维纹理特征,但本实施例不局限与使用这10维特征。
纹理指纹提取组件的最后一步是高斯归一化过程,基于人眼视觉敏感程度的非均匀量化技术,使用高斯归一化算法对灰度图像纹理特征向量进行归一化处理,归一化后的10维纹理特征向量作为恶意代码纹理指纹。归一化的目的是,减少某些特征的影响被放大而某些特征的影响被忽略的情形。
高斯归一化算法过程如下,对于n维特征向量υ(n)=[υ1,υ2,……,υn],计算出特征值向量的均值μn和方差σn,然后可将υ(n)归一化至[﹣1,1]区间,从而得到归一化的其中,上标N代表归一化。归一化后,各个分量均转变成具有N(0,1)分布的υ(N)。用3σi进行归一化,则υ(n)的值落在[﹣1,1]区间的概率将可达99%以上,当υ(n)中的值大于1时默认为1,小于﹣1时默认为﹣1。
变种检测集群包括两个方面的功能,分别为建立分布式LSH索引结构和提供待检测样本的变种检测。具体过程如实施例二所述,这里不再赘述。
第三方检测投票集群是一个可选的组件,该组件使用开源和商用的恶意代码检测工具(例如McAfee,Kaspersky,AhnLab-V3,AntiVir,Antiy-AVL,Avast,AVG,BitDefender,ByteHero,eSafe)协同检测,检测结果进行投票表决。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于计算机集群可读存储介质中,所述计算机程序在相应的硬件平台上(如***、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
Claims (12)
1.一种基于纹理的分布式恶意代码检测装置,其特征在于,包括:分布式变种检测单元;
纹理指纹提取单元,用于根据恶意代码语料库中的恶意代码可移植的执行体PE文件生成恶意代码纹理指纹向量集合,以及提取待检测样本的纹理指纹向量;
布隆过滤器Bloom-Filter索引结构建立单元,用于将所述恶意代码纹理指纹向量集合映射到Bloom-Filter索引结构中;
分布式位置敏感哈希LSH索引结构建立单元,用于计算各恶意代码纹理指纹向量的位置敏感哈希值,计算各所述位置敏感哈希值的机器标识和哈希桶标识,建立分布式LSH索引结构;
精确检测单元,用于基于所述Bloom-Filter索引结构,对所述待检测样本的纹理指纹向量进行检测;如果命中,则将所命中的恶意代码PE文件的信息作为检测结果;如果未命中,则将所述待检测样本的纹理指纹向量发送给所述分布式变种检测单元;
所述分布式变种检测单元用于建立所述待检测样本的纹理指纹向量的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集;采用与所述分布式LSH索引结构建立单元相同的哈希函数计算所述目标查询集的位置敏感哈希值,进而计算机器标识和哈希桶标识,根据计算结果在所述分布式LSH索引结构中找到相应的恶意代码纹理指纹向量,与所述待检测样本的纹理指纹向量进行比较,得到检测结果。
2.如权利要求1所述的装置,其特征在于,所述纹理指纹提取单元包括:
信息摘要计算模块,用于对恶意代码语料库中的恶意代码PE文件分别进行标注,根据标注得到的消息摘要从恶意代码语料库中删除重复的恶意代码PE文件,将所述消息摘要作为各恶意代码PE文件的唯一标识符ID;还用于对待检测样本进行标注,得到消息摘要;
映射模块,用于将所述恶意代码语料库中每个恶意代码PE文件的二进制执行文件映射为无损压缩格式的灰度图像文件;还用于将待检测样本映射为无损压缩格式的灰度图像文件;
纹理特征提取模块,用于分别抽取各灰度图像文件的纹理特征,将所抽取的纹理特征作为相应文件的纹理特征;
归一化模块,用于对整个恶意代码库及待检测样本的纹理特征向量进行归一化处理,将得到的各恶意代码PE文件的恶意代码纹理指纹向量汇总为恶意代码纹理指纹向量集合,输出所述待检测样本的纹理指纹向量。
3.如权利要求1所述的装置,其特征在于,所述Bloom-Filter索引结构建立单元包括:
初始化模块,用于建立一个m位的Bloom-Filter索引结构,每一位初始化时置为0;
第一哈希映射模块,用于选取k1个相互独立的哈希hash函数;然后,针对所述纹理指纹提取单元生成的包含n个元素的恶意代码纹理指纹向量集合,通过k1个相互独立的hash函数进行映射;
位图数组更新模块,用于对于每一个恶意代码纹理指纹向量,采用k1个相互独立的hash函数处理后,获得k1个位置地址,将所述二进制位图数组映射到的位置地址的值置为1;
位图索引存储模块,用于将所述Bloom-Filter索引结构以位图文件的形式存储到磁盘;
m、n、k1为正整数。
4.如权利要求1所述的装置,其特征在于,所述分布式LSH索引结构包括:
第一位置敏感哈希映射模块,用于从N(μ,σ2)分布中产生k2个随机抽样得到的d维向量α,使用位置敏感哈希函数计算恶意代码纹理指纹向量υ的位置敏感哈希值,对于每个恶意代码纹理指纹向量υ产生一个k2维的位置敏感哈希向量;d、k2为正整数;ω,b分别是随机超平面的斜率和截距;r是映射直线分割的线段长度;
第一主哈希映射模块,用于利用主哈希函数hash1,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
第一次哈希映射模块,用于利用次哈希函数hash2,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
哈希桶存储模块,用于建立哈希表,保存主哈希映射模块和次哈希映射模块的返回结果;主哈希函数hash1(a)返回结果为机器标识,n'为分布式***中集群的规模,次哈希函数hash2(a)返回结果为桶标识,s为分布式***中哈希桶的个数。
5.如权利要求3所述的装置,其特征在于,所述精确检测单元包括:
第二哈希映射模块,用于使用所述Bloom-Filter索引构建单元所使用的k1个相互独立的hash函数,计算所述待检测样本的纹理指纹向量υ'的k1个独立的哈希值;
位图比对模块,用于判断所述待检测样本的纹理指纹向量υ'是否在于Bloom-Filter索引结构中;根据所述第二哈希映射模块计算出的k1个独立的哈希值,判断其对应所有的位数组中位置是否都是1,如果都是1则认为υ'是Bloom-Filter索引结构中的元素,否则不是;
命中判别模块,用于当υ'是Bloom-Filter索引结构中的元素时,返回该检测样本为恶意代码的检测结果;如果υ'不是Bloom-Filter索引结构中的元素,则将所述待检测样本的纹理指纹向量υ'交给分布式变种检测单元。
6.如权利要求4所述的装置,其特征在于,所述分布式变种检测单元包括:
目标查询集构造模块,用于构造所述待检测样本的纹理指纹向量υ'的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集,目标查询集的规模为t,是正整数;
第二位置敏感哈希映射模块,用于使用与所述分布式LSH索引构建模块相同的位置敏感哈希函数处理目标查询集,生成t个k2维的位置敏感哈希向量;
第二主哈希映射模块,用于使用与所述分布式LSH索引构建模块相同的主哈希函数hash1分别处理t个k2维的位置敏感哈希向量,获得t个分布式***集群中机器标识;
第二次哈希映射模块,用于使用与所述分布式LSH索引构建模块相同的次哈希函数hash2分别处理t个k2维的位置敏感哈希向量,获得t个哈希桶标识;
查找模块,用于根据哈希桶标识访问所述分布式LSH索引构建模块构建的哈希桶,将相应桶内的恶意代码ID及其纹理指纹向量构成候选结果集;
距离计算模块,用于计算所述待检测样本的纹理指纹向量与候选结果集中的每个候选指纹向量之间的空间距离,然后使用Top-k算法对所述空间距离进行排序,返回k'个与所述待检测样本的纹理指纹向量最接近的恶意代码纹理指纹向量所对应的恶意代码ID作为目标结果集;
选取模块,根据预设的距离阈值λ,过滤目标结果集,删除距离阈值大于λ的恶意代码ID,返回过滤后的目标结果集作为检测结果。
7.一种基于纹理的分布式恶意代码检测方法,包括:
S201、根据恶意代码语料库中的恶意代码PE文件生成恶意代码纹理指纹向量集合;
S202、将所述恶意代码纹理指纹向量集合映射到Bloom-Filter索引结构中;
S203、计算各恶意代码纹理指纹向量的位置敏感哈希值,计算各所述位置敏感哈希值的机器标识和哈希桶标识,建立分布式LSH索引结构;
S204、提取待检测样本的纹理指纹向量;
S205、基于所述Bloom-Filter索引结构,对所述待检测样本的纹理指纹向量进行检测;如果命中,则将所命中的恶意代码PE文件的信息作为检测结果;
S206、如果未命中,则进行分布式变种检测,包括:建立所述待检测样本的纹理指纹向量的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集;采用与所述分布式LSH索引结构建立单元相同的哈希函数计算所述目标查询集的位置敏感哈希值,进而计算机器标识和哈希桶标识,根据计算结果在所述分布式LSH索引结构中找到相应的恶意代码纹理指纹向量,与所述待检测样本的纹理指纹向量进行比较,得到检测结果。
8.如权利要求7所述的方法,其特征在于,所述步骤S201包括:
S2011、对恶意代码语料库中的恶意代码PE文件分别进行标注,根据标注得到的消息摘要从恶意代码语料库中删除重复的恶意代码PE文件,将所述消息摘要作为各恶意代码PE文件的唯一标识符ID;
S2012、将所述恶意代码语料库中每个恶意代码PE文件的二进制执行文件映射为无损压缩格式的灰度图像文件;
S2013、分别抽取各灰度图像文件的纹理特征,将所抽取的纹理特征作为相应文件的纹理特征;
S2014、对整个恶意代码库及待检测样本的纹理特征向量进行归一化处理,将得到的各恶意代码PE文件的恶意代码纹理指纹向量汇总为恶意代码纹理指纹向量集合,输出所述待检测样本的纹理指纹向量。
9.如权利要求7所述的方法,其特征在于,所述步骤S202包括:
建立一个m位的Bloom-Filter索引结构,每一位初始化时置为0;
选取k1个相互独立的哈希hash函数;然后,针对所述纹理指纹提取单元生成的包含n个元素的恶意代码纹理指纹向量集合,通过k1个相互独立的hash函数进行映射;m、n、k1为正整数;
对于每一个恶意代码纹理指纹向量,采用k1个相互独立的hash函数处理后,获得k1个位置地址,将所述二进制位图数组映射到的位置地址的值置为1;
用于将所述Bloom-Filter索引结构以位图文件的形式存储到磁盘。
10.如权利要求7所述的方法,其特征在于,所述步骤S203包括:
从N(μ,σ2)分布中产生k2个随机抽样得到的d维向量α,使用位置敏感哈希函数计算恶意代码纹理指纹向量υ的位置敏感哈希值,对于每个恶意代码纹理指纹向量υ产生一个k2维的位置敏感哈希向量;d、k2为正整数;ω,b分别是随机超平面的斜率和截距;r是映射直线分割的线段长度;
利用主哈希函数hash1,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
利用次哈希函数hash2,对降维后的位置敏感哈希向量a进行哈希计算,定义如下:
建立哈希表,保存主哈希映射模块和次哈希映射模块的返回结果;主哈希函数hash1(a)返回结果为机器标识,n'为分布式***中集群的规模,次哈希函数hash2(a)返回结果为桶标识,s为分布式***中哈希桶的个数。
11.如权利要求9所述的方法,其特征在于,所述步骤S205包括:
使用所述k1个相互独立的hash函数,计算所述待检测样本的纹理指纹向量υ'的k1个独立的哈希值;
判断所述待检测样本的纹理指纹向量υ'是否在于Bloom-Filter索引结构中;根据所述第二哈希映射模块计算出的k1个独立的哈希值,判断其对应所有的位数组中位置是否都是1,如果都是1则认为υ'是Bloom-Filter索引结构中的元素,否则不是;
当υ'是Bloom-Filter索引结构中的元素时,返回该检测样本为恶意代码的检测结果;如果υ'不是Bloom-Filter索引结构中的元素,则将所述待检测样本的纹理指纹向量υ'交给分布式变种检测单元。
12.如权利要求10所述的方法,其特征在于,步骤S206包括:
构造所述待检测样本的纹理指纹向量υ'的最近邻集合,与所述待检测样本的纹理指纹向量构成目标查询集,目标查询集的规模为t,是正整数;
使用所述位置敏感哈希函数处理目标查询集,生成t个k2维的位置敏感哈希向量;
使用所述主哈希函数hash1分别处理t个k2维的位置敏感哈希向量,获得t个分布式***集群中机器标识;
使用所述次哈希函数hash2分别处理t个k2维的位置敏感哈希向量,获得t个哈希桶标识;
根据哈希桶标识访问所述分布式LSH索引构建模块构建的哈希桶,将相应桶内的恶意代码ID及其纹理指纹向量构成候选结果集;
根据哈希桶标识访问所述分布式LSH索引构建模块构建的哈希桶,将相应桶内的恶意代码ID及其纹理指纹向量构成候选结果集;
计算所述待检测样本的纹理指纹向量与候选结果集中的每个候选指纹向量之间的空间距离,然后使用Top-k算法对所述空间距离进行排序,返回k'个与所述待检测样本的纹理指纹向量最接近的恶意代码纹理指纹向量所对应的恶意代码ID作为目标结果集;
根据预设的距离阈值λ,过滤目标结果集,删除距离阈值大于λ的恶意代码ID,返回过滤后的目标结果集作为检测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310753120.4A CN104751055B (zh) | 2013-12-31 | 2013-12-31 | 一种基于纹理的分布式恶意代码检测方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310753120.4A CN104751055B (zh) | 2013-12-31 | 2013-12-31 | 一种基于纹理的分布式恶意代码检测方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104751055A true CN104751055A (zh) | 2015-07-01 |
CN104751055B CN104751055B (zh) | 2017-11-03 |
Family
ID=53590727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310753120.4A Expired - Fee Related CN104751055B (zh) | 2013-12-31 | 2013-12-31 | 一种基于纹理的分布式恶意代码检测方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104751055B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224600A (zh) * | 2015-08-31 | 2016-01-06 | 北京奇虎科技有限公司 | 一种样本相似度的检测方法及装置 |
CN106096411A (zh) * | 2016-06-08 | 2016-11-09 | 浙江工业大学 | 一种基于字节码图像聚类的Android恶意代码家族分类方法 |
CN106570401A (zh) * | 2016-12-27 | 2017-04-19 | 哈尔滨安天科技股份有限公司 | 一种基于时间变化的恶意代码检测方法及*** |
CN106650443A (zh) * | 2016-11-16 | 2017-05-10 | 中国人民解放军国防科学技术大学 | 一种基于增量dbscan算法的恶意代码家族识别方法 |
CN107392019A (zh) * | 2017-07-05 | 2017-11-24 | 北京金睛云华科技有限公司 | 一种恶意代码家族的训练和检测方法及装置 |
CN107463843A (zh) * | 2016-06-02 | 2017-12-12 | 重庆达特科技有限公司 | 恶意代码降噪大数据检测*** |
CN107665307A (zh) * | 2017-09-13 | 2018-02-06 | 北京金山安全软件有限公司 | 一种应用识别方法、装置、电子设备以及存储介质 |
CN107766729A (zh) * | 2017-09-11 | 2018-03-06 | 北京天融信网络安全技术有限公司 | 一种病毒特征匹配方法、终端及计算机可读存储介质 |
CN108229170A (zh) * | 2018-02-02 | 2018-06-29 | 中科软评科技(北京)有限公司 | 利用大数据和神经网络的软件分析方法和装置 |
CN108460074A (zh) * | 2017-12-29 | 2018-08-28 | 天津南大通用数据技术股份有限公司 | 基于BloomFilter的多列索引在列存数据库中的创建及使用方法 |
CN108733664A (zh) * | 2017-04-13 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种文件归类方法及装置 |
CN109661652A (zh) * | 2016-07-19 | 2019-04-19 | 2236008安大略有限公司 | 使用***调用序列的异常检测 |
CN109753987A (zh) * | 2018-04-18 | 2019-05-14 | 新华三信息安全技术有限公司 | 文件识别方法和特征提取方法 |
CN109858249A (zh) * | 2019-02-18 | 2019-06-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN110210224A (zh) * | 2019-05-21 | 2019-09-06 | 暨南大学 | 一种基于描述熵的大数据移动软件相似性智能检测方法 |
CN110941726A (zh) * | 2018-09-25 | 2020-03-31 | 福斯德公司 | 将源代码转换成数字标识符并与数据集进行比较的方法 |
CN112445771A (zh) * | 2020-12-10 | 2021-03-05 | 阿米华晟数据科技(江苏)有限公司 | 网络流量的数据处理方法、装置、设备及存储介质 |
CN113449304A (zh) * | 2021-07-06 | 2021-09-28 | 北京科技大学 | 一种基于策略梯度降维的恶意软件检测方法及装置 |
CN113704761A (zh) * | 2021-08-31 | 2021-11-26 | 上海观安信息技术股份有限公司 | 恶意文件的检测方法、装置、计算机设备及存储介质 |
CN116127457A (zh) * | 2023-02-16 | 2023-05-16 | 软安科技有限公司 | 一种基于winnowing算法的恶意代码检测方法及*** |
CN116910755A (zh) * | 2023-09-13 | 2023-10-20 | 北京安天网络安全技术有限公司 | 一种文件检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040025174A1 (en) * | 2002-05-31 | 2004-02-05 | Predictive Media Corporation | Method and system for the storage, viewing management, and delivery of targeted advertising |
CN102664875A (zh) * | 2012-03-31 | 2012-09-12 | 华中科技大学 | 基于云模式的恶意代码类别检测方法 |
-
2013
- 2013-12-31 CN CN201310753120.4A patent/CN104751055B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040025174A1 (en) * | 2002-05-31 | 2004-02-05 | Predictive Media Corporation | Method and system for the storage, viewing management, and delivery of targeted advertising |
CN102664875A (zh) * | 2012-03-31 | 2012-09-12 | 华中科技大学 | 基于云模式的恶意代码类别检测方法 |
Non-Patent Citations (2)
Title |
---|
RINA PANIGRAHY: ""Entropy based nearest neighbor search in high dimensions"", 《SODA 2006 PROCEEDINGS OF THE SEVENTEENTH ANNUAL ACM-SIAM SYMPOSIUM ON DISCRETE ALGORITHM》 * |
魏强 等: ""基于结构化指纹的恶意代码变种分析"", 《计算机应用研究》 * |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224600B (zh) * | 2015-08-31 | 2019-05-28 | 北京奇虎科技有限公司 | 一种样本相似度的检测方法及装置 |
CN105224600A (zh) * | 2015-08-31 | 2016-01-06 | 北京奇虎科技有限公司 | 一种样本相似度的检测方法及装置 |
CN107463843A (zh) * | 2016-06-02 | 2017-12-12 | 重庆达特科技有限公司 | 恶意代码降噪大数据检测*** |
CN106096411A (zh) * | 2016-06-08 | 2016-11-09 | 浙江工业大学 | 一种基于字节码图像聚类的Android恶意代码家族分类方法 |
CN106096411B (zh) * | 2016-06-08 | 2018-09-18 | 浙江工业大学 | 一种基于字节码图像聚类的Android恶意代码家族分类方法 |
CN109661652A (zh) * | 2016-07-19 | 2019-04-19 | 2236008安大略有限公司 | 使用***调用序列的异常检测 |
CN109661652B (zh) * | 2016-07-19 | 2023-09-01 | 黑莓有限公司 | 使用***调用序列的异常检测 |
CN106650443A (zh) * | 2016-11-16 | 2017-05-10 | 中国人民解放军国防科学技术大学 | 一种基于增量dbscan算法的恶意代码家族识别方法 |
CN106650443B (zh) * | 2016-11-16 | 2021-03-02 | 中国人民解放军国防科学技术大学 | 一种基于增量dbscan算法的恶意代码家族识别方法 |
CN106570401B (zh) * | 2016-12-27 | 2019-07-26 | 哈尔滨安天科技股份有限公司 | 一种基于时间变化的恶意代码检测方法及*** |
CN106570401A (zh) * | 2016-12-27 | 2017-04-19 | 哈尔滨安天科技股份有限公司 | 一种基于时间变化的恶意代码检测方法及*** |
CN108733664A (zh) * | 2017-04-13 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种文件归类方法及装置 |
CN107392019A (zh) * | 2017-07-05 | 2017-11-24 | 北京金睛云华科技有限公司 | 一种恶意代码家族的训练和检测方法及装置 |
CN107766729A (zh) * | 2017-09-11 | 2018-03-06 | 北京天融信网络安全技术有限公司 | 一种病毒特征匹配方法、终端及计算机可读存储介质 |
CN107665307A (zh) * | 2017-09-13 | 2018-02-06 | 北京金山安全软件有限公司 | 一种应用识别方法、装置、电子设备以及存储介质 |
CN108460074A (zh) * | 2017-12-29 | 2018-08-28 | 天津南大通用数据技术股份有限公司 | 基于BloomFilter的多列索引在列存数据库中的创建及使用方法 |
CN108229170A (zh) * | 2018-02-02 | 2018-06-29 | 中科软评科技(北京)有限公司 | 利用大数据和神经网络的软件分析方法和装置 |
CN108229170B (zh) * | 2018-02-02 | 2020-05-12 | 中科软评科技(北京)有限公司 | 利用大数据和神经网络的软件分析方法和装置 |
CN109753987B (zh) * | 2018-04-18 | 2021-08-06 | 新华三信息安全技术有限公司 | 文件识别方法和特征提取方法 |
CN109753987A (zh) * | 2018-04-18 | 2019-05-14 | 新华三信息安全技术有限公司 | 文件识别方法和特征提取方法 |
CN110941726A (zh) * | 2018-09-25 | 2020-03-31 | 福斯德公司 | 将源代码转换成数字标识符并与数据集进行比较的方法 |
CN109858249B (zh) * | 2019-02-18 | 2020-08-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN109858249A (zh) * | 2019-02-18 | 2019-06-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN110210224B (zh) * | 2019-05-21 | 2023-01-31 | 暨南大学 | 一种基于描述熵的大数据移动软件相似性智能检测方法 |
CN110210224A (zh) * | 2019-05-21 | 2019-09-06 | 暨南大学 | 一种基于描述熵的大数据移动软件相似性智能检测方法 |
CN112445771A (zh) * | 2020-12-10 | 2021-03-05 | 阿米华晟数据科技(江苏)有限公司 | 网络流量的数据处理方法、装置、设备及存储介质 |
CN113449304A (zh) * | 2021-07-06 | 2021-09-28 | 北京科技大学 | 一种基于策略梯度降维的恶意软件检测方法及装置 |
CN113449304B (zh) * | 2021-07-06 | 2024-03-22 | 北京科技大学 | 一种基于策略梯度降维的恶意软件检测方法及装置 |
CN113704761A (zh) * | 2021-08-31 | 2021-11-26 | 上海观安信息技术股份有限公司 | 恶意文件的检测方法、装置、计算机设备及存储介质 |
CN116127457A (zh) * | 2023-02-16 | 2023-05-16 | 软安科技有限公司 | 一种基于winnowing算法的恶意代码检测方法及*** |
CN116127457B (zh) * | 2023-02-16 | 2024-05-14 | 软安科技有限公司 | 一种基于winnowing算法的恶意代码检测方法及*** |
CN116910755A (zh) * | 2023-09-13 | 2023-10-20 | 北京安天网络安全技术有限公司 | 一种文件检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104751055B (zh) | 2017-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104751055B (zh) | 一种基于纹理的分布式恶意代码检测方法、装置及*** | |
Hashemi et al. | Visual malware detection using local malicious pattern | |
US9053386B2 (en) | Method and apparatus of identifying similar images | |
Breitinger et al. | A fuzzy hashing approach based on random sequences and hamming distance | |
US10083194B2 (en) | Process for obtaining candidate data from a remote storage server for comparison to a data to be identified | |
CN104715194A (zh) | 恶意软件检测方法和装置 | |
JP6607061B2 (ja) | 情報処理装置、データ比較方法、およびデータ比較プログラム | |
CN109948125A (zh) | 改进的Simhash算法在文本去重中的方法及*** | |
CN112468487B (zh) | 实现模型训练的方法、装置、实现节点检测的方法及装置 | |
Drozdowski et al. | Bloom filter‐based search structures for indexing and retrieving Iris‐Codes | |
Trieu et al. | Document sensitivity classification for data leakage prevention with twitter-based document embedding and query expansion | |
Wei et al. | Efficient local histogram searching via bitmap indexing | |
CN113886821A (zh) | 基于孪生网络的恶意进程识别方法、装置、电子设备及存储介质 | |
Magdy et al. | Privacy preserving search index for image databases based on SURF and order preserving encryption | |
KR101850650B1 (ko) | 랜섬웨어탐지를 수행하는 이동식저장장치 및 이를 위한 방법 | |
CN116582309A (zh) | 一种基于GAN-CNN-BiLSTM的网络入侵检测方法 | |
CN112347477A (zh) | 家族变种恶意文件挖掘方法和装置 | |
Han et al. | Distributed malware detection based on binary file features in cloud computing environment | |
Lee et al. | A locality sensitive hashing technique for categorical data | |
Zacharatou et al. | RUBIK: efficient threshold queries on massive time series | |
CN113159221A (zh) | 基于大数据的网络安全防护方法 | |
CN111581640A (zh) | 一种恶意软件检测方法、装置及设备、存储介质 | |
KR20210024748A (ko) | Gan을 이용한 문서형 악성코드 탐지 장치 및 방법 | |
Hegarty et al. | SlackStick: Signature-based file identification for live digital forensics examinations | |
US12013830B2 (en) | System and method using bloom filters to improve system reliability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171103 |