CN106599686B - 一种基于tlsh特征表示的恶意软件聚类方法 - Google Patents
一种基于tlsh特征表示的恶意软件聚类方法 Download PDFInfo
- Publication number
- CN106599686B CN106599686B CN201610890389.0A CN201610890389A CN106599686B CN 106599686 B CN106599686 B CN 106599686B CN 201610890389 A CN201610890389 A CN 201610890389A CN 106599686 B CN106599686 B CN 106599686B
- Authority
- CN
- China
- Prior art keywords
- tlsh
- distance
- point
- value
- sample
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于TLSH特征表示的恶意软件聚类方法,属于恶意软件分析与检测领域,首先使用Cuckoo Sandbox对恶意软件进行分析获得软件静态特征、运行时资源访问记录以及API等三类字符串特征;然后对这些字符串进行分解、过滤、排序处理,使用TLSH算法将其压缩成三组大小为70字节的特征值;最后利用OPTICS算法实现对恶意软件家族的自动分类。本发明采用无监督学习方法,不需要事先人工标记进行训练,提取的特征采用TLSH进行压缩表示,在不损失特征的情况下,大大降低了数据维度,提高了聚类速度;通过采用基于密度的OPTICS聚类算法,不仅可以识别任意形状和任意个数的簇,且极大的降低了输入参数对聚类结果的影响,提高了聚类的效率和质量。
Description
技术领域
本发明涉及恶意软件分析技术领域,具体为一种基于TLSH特征表示的恶意软件聚类方法。
背景技术
恶意软件是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵害用户合法权益的软件,是威胁信息安全的主要形式之一。近年来,恶意软件家族变种呈爆发式增长,据赛门铁克公司发布的《互联网安全威胁报告》统计,2014年恶意软件新增变种3.17亿,2015年则达到了4.31亿,同比增长约36%。显然,人工分类手段已经无法有效的应对这些海量数据,恶意软件的自动分类日益成为研究的热点。
针对恶意软件的研究主要包含以下四个方面:恶意软件的特征提取、特征表示、聚类算法的选择及优化、聚类效果评估。Yanfang等人通过静态分析方法提取样本指令序列及频度,集成tf-idf及k-medoids的聚类方法实现分类(Automatic malware categorizationusing cluster ensemble[A].ACM,2010.95-104.)。Cesare等人利用信息熵检测恶意软件是否加壳,并对加壳软件进行脱壳。然后从生成汇编代码中提取控制流程图作为样本特征,再通过近似图匹配算法实现恶意代码的分类(an effective and efficientclassification system for packed and polymorphic malware[J].IEEE Transactionson Computers,2013,62(6):1193-1206.)。徐小琳等人实现了基于特征聚类的海量恶意代码在线自动分析模型,该模型主要由特征空间构建、自动特征提取及快速聚类分析3个部分组成,其中特征空间构建部分提出了基于统计和启发式的代码特征空间构建方法,自动特征提取部分提出了由API行为和代码片段构成的样本特征向量描述方法,快速聚类分析部分提出了基于位置敏感散列(LSH,locality-sensitive hashing)的快速近邻聚类算法(基于特征聚类的海量恶意代码在线自动分析模型[J].通信学报,2013,34(8):147-153.)。Ahmad Azab等人通过计算二进制文件的模糊哈希值,然后使用K-NN算法进行聚类。通过实验对比发现使用TLSH(The Trend Locality Sensitive Hash)生成的模糊哈希值有较好的效果(Mining Malware To Detect Variants.IEEE Computer Society[J],2014:44-53)。Guanghui Liang等人将程序活动行为分为:文件操作、进程行为、注册表行为、网络行为、服务行为以及获取系统信息等6种,使用6元祖(类型、名称、输入参数、输出参数、返回值、下一调用)来描述一个行为结点,最后建立起一个行为依赖链,通过计算jaccard距离,来计算相似度进行聚类(A Behavior-Based Malware Variant Classification Technique[C].International Journal of Information and Education Technology[J],2016,6(4):291-295)。
综合来看,这些方法存在以下缺陷:首先,特征的提取不够全面,没有结合动态和静态分析各自的优点进行提取。特征的表示要么过于依赖人力,要么就是通过统计进行了删减,同时由于维度过高,将导致聚类缓慢。其次,在聚类算法的选择上,使用K-MEANS这种基于划分的聚类无法识别噪音也无法进行任意形状的聚类,而K-NN算法则需要人工标记训练样本。最后,在聚类质量评估方面,单纯以正确率和纯度来评价聚类结果的好坏过于片面,聚类的结果应从聚类(簇)个数、簇内个体数量以及与实际样本的吻合度等方面综合考量。
发明内容
针对上述问题,本发明的目的在于提供一种能够解决对大批量恶意变种样本自动分析并归类的问题,并能够提高对恶意软件家族自动化分析的基于TLSH特征表示的恶意软件聚类方法。技术方案如下:
一种基于TLSH特征表示的恶意软件聚类方法,包括以下步骤:
步骤1:利用Cuckoo Sandbox对样本进行分析,获取行为分析报告;
步骤2:从行为分析报告中获取样本静态特征,样本静态特征包括DLL信息、DLL信息的导入及导出函数信息,以及在分析过程中捕获到的字符串信息,并按照字典对上述信息进行排序,得到一个字符串;
步骤3:从行为分析报告中获取样本的资源访问记录,样本的资源访问记录包括以下信息:样文件/目录、注册表、服务、DLL、使用过的互斥量,将每个类别的信息按字典进行排序后合并为一个字符串;所述文件/目录和注册表信息先通过分隔符“\\”拆分成子项后再排序;
步骤4:从行为分析报告中获取样本动态API以及加载的DLL所调用的API,并按照字典对上述信息进行排序,得到一个字符串;
步骤5:分别计算步骤2、步骤3、步骤4中得到的字符串的TLSH值;
步骤6:采用TLSH距离计算公式求得两个TLSH值的TLSH距离,取最小的两个值的平均值作为两个样本的最终距离,采用OPTICS算法对样本进行聚类。
进一步的,所述步骤2中得到的字符串存在干扰项,对其进一步过滤处理,方法如下:
分别统计该字符串中代表各个信息的子字符串中字母出现的个数,由下式计算子字符串的信息熵:
其中,代表字母a-z,代表字母在子字符串中出现的概率,计算方法为的出现的个数除以子字符串长度;
保留信息熵在闭区间[2.188,3.91]内的子字符串。
更进一步的,所述TLSH值的算法如下:
1)用大小为5个字节的滑动窗口处理目标字符串S,一次向前滑动一个字节,设一个滑动窗口的内容为:ABCDE;则分别采用Pearson Hash映射并统计ABC、ABD、ABE、ACD、ACE、ADE这6个bucket的个数;
2)定义q1、q2、q3为:75%的bucket的个数>=q1,50%的bucket的个数>=q2,25%的bucket的个数>=q3;
3)构造TLSH哈希的头部,共三个字节:第一个字节是字符串的校验和;第二个字节是由公式(2)所描述的字符串S的长度的对数L表示,len为字符串S的长度;第三个字节由两个16位的数q1_ratio、q2_ratio组合而成,计算方法如公式(3)所示:
4)构造TLSH哈希的主体部分:Pearson Hash生成的128个映射中每个映射为一个键,其对应的值为该键出现的个数;遍历每个键,并按公式(4)生成相应的二进制位,最终得到大小为32字节的主体部分哈希值:
5)将步骤3)所求的数值和步骤4)所得的二进制串转换为70个十六进制数,得到最终的TLSH值。
更进一步的,所述步骤6中两个TLSH值X和Y之间的TLSH距离计算方法如下:
A)定义mod_diff(a,b,R)为一个在大小为R的循环队列中a到b的最小距离,即
mod_diff(a,b,R)=Min((a-b)modR,(b-a)modR) (5)
B)计算两个TLSH值X和Y头部之间的距离:
先由式(5)分别计算字符串S的长度的对数L及两个16位数q1_ratio和q2_ratio对应的距离:mod_diff(X.L,Y.L,256)、mod_diff(X.q1_ratio,Y.q1_ratio,256)和mod_diff(X.q2_ratio,Y.q2_ratio,256);
然后计算两个TLSH值X和Y的校验和的距离:如果X和Y校验和相等则校验和的距离为0,否则为1;
再将上述四个距离的值进一步优化:
其中,diff为各距离的原始值,diff′为对应的优化值;
则头部之间的距离为上述四个优化值的累加;
C)计算两个TLSH值X和Y主体间的距离:
将两个TLSH值X和Y主体所占的256个二进制位分别从左往右平分为128组,每组的二进制由b0b1表示;如果X与Y某组应用的二进制值不相等则按照公式(7)进行计算,否则该组的距离为0;
然后将X与Y每组对应的距离累加起来即为主体间的距离;
D)两个TLSH值X和Y头部间的距离与主体间的距离之和则为两个TLSH值X和Y之间的TLSH距离。
更进一步的,所述步骤6中采用OPTICS算法对样本进行聚类的方法如下:
算法的输入参数是样本集D,邻域半径r,以及一个点在r邻域内成为核心对象时,该r邻域所包含的点的最小个数MinPt,该r邻域所包含的点为该核心对象的直接密度可达对象;
a)创建有序队列和结果队列;
b)若样本集D中所有的点都处理完毕,则转入步骤g);否则从样本集D中选择一个未处理且为核心对象的点,将该核心对象放入结果队列,并将该核心对象的直接密度可达对象放入有序队列,这些直接密度可达点按可达距离升序排列;
c)若有序队列为空,则跳至步骤b),否则,从有序队列中取出一个样本点;
d)判断该样本点是否为核心对象,若不是,则返回步骤c);若是且该点不在结果队列中,则将其放入结果队列,执行下一步;
e)找到该核心对象的所有直接密度可达对象,遍历这些点,判断其是否已经存在于结果队列中,是则跳过并继续处理下一个点,否则执行下一步;
f)若该直接密度可达点已存在于有序队列,且此时新的可达距离小于旧的可达距离,则用新可达距离取代旧可达距离,对有序队列重新排序;
g)输出并保存结果队列中的有序样本点;
h)从结果队列中按顺序取出点,如果该点的可达距离不大于邻域半径r,则该点属于当前类别,否则进行下一步;
i)如果该点的核心距离大于邻域半径r,则该点被标记为噪声,否则该点属于新的类别。
本发明的有益效果是:
1)本发明的样本特征提取和分析过程是自动化进行的,采用无监督学习方法,不需要人工标记进行训练;
2)本发明采用OPTICS算法,不仅可以识别任意形状和任意个数的簇(cluster),且极大的降低了输入参数对聚类结果的影响,提高了聚类的效率和质量;
3)本发明能够通过可视化输出结果使用者更直观的了解聚类情况并及时做出相应调整;
4)本发明提取的特征采用TLSH进行压缩表示,在不损失特征的情况下,大大降低了数据维度,提高了聚类速度;同时,TLSH计算的距离值可达到1000以上,使得不同家族之间的区分度更为明显。
附图说明
图1为基于TLSH特征表示的恶意软件聚类方法整体流程图。
图2为本发明采用的恶意软件样本家族分布。
图3为本方法与其他杀毒软件和聚类算法的输出结果对比
图4为本方法输出结果的可视化展示。
图5为本发明的环境部署结构图。
具体实施方式
以下结合附图及具体实施过程进一步详细说明本发明。
一种基于TLSH特征表示的恶意软件聚类方法,其特征是包括下述步骤:
步骤1,利用虚拟沙箱(Cuckoo Sandbox)对样本进行分析,获取行为分析报告。
步骤2,从行为分析报告中获取样本静态特征,包括DLL(Dynamic Link Library)信息和其导入、导出函数信息以及在分析过程中捕获到的字符串信息。将这些信息按字典进行排序(建立字典树)合并为一个字符串。
步骤3,从行为分析报告中获取样本在运行过程中的资源访问记录,这些记录可分为文件/目录、注册表、服务、DLL、使用过的互斥量以及其他资源信息等六个类别,将每个类别获取到的信息按字典进行排序后合并为一个字符串。其中,对于文件/目录和注册表两类信息,需先通过分隔符“\\”将其拆分成子项,再进行操作。
步骤4,从行为分析报告中获取样本动态API(Application ProgrammingInterface)以及这些API加载DLL时所调用的API,将这些信息按照字典排序合并为一个字符串。
步骤5,分别计算在步骤2、步骤3、步骤4中得到的字符串的TLSH值。
步骤6,采用OPTICS(Ordering Points to identify the clusteringstructure)算法进行聚类,其中的距离度量方法采用TLSH距离计算公式,先求得两个样本中各个特征值的TLSH距离,然后取最小的两个值的平均值作为两个样本的最终距离。
上述步骤2中,由于提取出的字符串信息数量较多且存在干扰项,需做过滤处理。
字符串信息,指的是程序运行过程中,被捕获到的一些输出信息,诸如“执行成功”“运行失败”这些有实际意义的字符串和“*/*s231ddaaa”这些无实际意义的干扰项等等。需要将其过滤后排列组合在一起。方法描述如下:
分别统计该字符串中代表各个信息的子字符串中字母出现的个数,由下式计算子字符串的信息熵:
并保留信息熵在闭区间[2.188,3.91]内的子字符串。
其中,代表字母a-z,代表字母在子字符串中出现的概率,计算方法为的出现的个数除以子字符串长度。
所述步骤5中,TLSH值的计算方法描述如下:
1)用大小为5个字节的滑动窗口处理目标字符串S(一次向前滑动一个字节),设一个滑动窗口的内容为:ABCDE,则分别采用Pearson Hash映射并统计ABC、ABD、ABE、ACD、ACE、ADE这6个bucket的个数;
2)在统计完字符串S所有bucket的个数后,定义q1、q2、q3为:75%的bucket的个数大于等于q1,50%的bucket的个数大于等于q2,25%的bucket的个数大于等于q3。
3)构造TLSH哈希的头部,共三个字节:第一个字节是字符串的校验和(Checksum);第二个字节是由公式(2)所描述的字符串S的长度的对数L,设S的长度为len;第三个字节由两个16位的数q1_ratio、q2_ratio组合而成,计算方法如公式(3)所示。
4)构造TLSH哈希的主体部分,Pearson Hash会生成128个映射,每个映射为一个键(Key),其对应的值(Value)为该键出现的个数。遍历每个键,并按公式(4)生成相应的二进制位,最终得到大小为32字节的主体部分哈希值。
5)将步骤3)所求的数值和步骤4)所得的二进制串转换为70个十六进制数,至此得到最终的TLSH值。
所述步骤6中,两个TLSH值X和Y之间的TLSH距离计算方法描述如下:
A)先定义mod_diff(a,b,R)为一个在大小为R的循环队列中,a到b的最小距离,其由公式(5)求得。
mod_diff(a,b,R)=Min((a-b)modR,(b-a)modR) (5)
B)计算头部之间的距离,先分别计算L、q1_ratio、q2_ratio对应的距离mod_diff(X.L,Y.L,256)、mod_diff(X.q1_ratio,Y.q1_ratio,256)、mod_diff(X.q2_ratio,Y.q2_ratio,256)。然后计算X和Y的校验和的距离,如果X和Y校验和相等则距离为0,否则为1。再将上述四个距离的值进一步优化:
其中,diff为各距离的原始值,diff′为对应的优化值;
则头部之间的距离为上述四个优化值的累加。
C)计算主体之间的距离,将主体所占的256个二进制位从左往右平分为128组,每组的二进制由b0b1表示。如果X与Y的b0b1不相等则按照公式(6)进行计算,否则该组的距离为0。然后将X与Y每组对应的距离累加起来即为主体之间的距离。
D)X和Y之间的TLSH距离即为其头部之间的距离与主体之间的距离之和。
所述步骤6中的OPTICS算法描述如下:
算法的输入参数是样本集D,邻域半径r,以及一个点在r邻域内成为核心对象所包含的点的最小个数MinPts。
a)创建两个队列,有序队列和结果队列。其中,有序队列用来存储核心对象及该核心对象的直接密度可达对象(即在核心对象r邻域内的点),并按可达距离升序排列;结果队列用来存储样本点的输出以及处理次序。
b)如果样本集D中所有的点都处理完毕,则算法结束。否则从样本集D中选择一个未处理且为核心对象的点,将该核心点放入结果队列,并将该核心点的直接密度可达点放入有序队列,这些直接密度可达点按可达距离升序排列。
c)如果有序队列为空,则跳至步骤b),否则,从有序队列中取出第一个样本点(即可达距离最小的样本点)进行拓展。
d)首先判断该拓展点是否为核心对象,如果不是,则回到步骤c);如果是且该点不在结果队列中,则应先将其加入结果队列再执行下一步。
e)找到该核心点的所有直接密度可达点,遍历这些点,判断其是否已经存在于结果队列中,是则跳过并继续处理下一个点,否则执行下一步。
f)如果有序队列中已经存在该点,且此时新的可达距离小于旧的可达距离,则用新可达距离取代旧可达距离,有序队列重新排序。如果有序队列中不存在该直接密度可达样本点,则插入该点,并对有序队列重新排序。
g)样本处理完成,输出并保存结果队列中的有序样本点。
h)从结果队列中按顺序取出点,如果该点的可达距离不大于邻域半径r,即表示该点属于当前类别;若大于r则进行下一步。
i)如果该点的核心距离大于邻域半径r,则该点被标记为噪声;否则该点属于新的类别,并跳至步骤h),直至结果队列为空。
图1为本发明的总体流程,首先按照图5所示的环境部署图搭建测试环境,其中Cuckoohost为控制端,负责对虚拟机的管理以及分析任务的调度。而Guests可以采用VMware、Xen、VirtualBox等虚拟机管理软件生成测试环境。提交分析任务后,Cuckoohost会为该任务分配唯一的ID,然后在/storage/analysis/ID目录下生成报告,内容包括内存转储文件、TCP/UDP数据、软件运行时的行为记录以及屏幕截图、软件静态特征等信息。
在分析完成后,会生成一个Json格式的报告文件,对Json文件进行处理,提取主要特征(静态特征、资源访问记录、运行时API),对三组特征用TLSH压缩得到特征值。然后选用合适的聚类算法进行聚类,本发明采用的是OPTICS算法,图4是该方法输出的聚类结果,Y轴代表的是一个点的可达距离,图中看到的每一个波谷即可视为一个簇(家族),若Y值过高则代表该点可能是噪声。关于可达距离和核心距离的描述如下:
设x∈D,对于给定参数E和MinPts,称使得x成为核心点的最小邻域半径为x的核心距离cd(x),其数学定义为:
其中,d(x,y)表示x与y的距离;表示集合N∈(x)中与节点x第i邻近的节点;|N∈(x)|表示集合N∈(x)中的元素个数。
设x,y∈D,则y关于x的可达距离rd(y,x)的数学定义为:
在实验对比的参数中,正确率表示一个样本聚类后,被正确标记的概率;准确率和召回率分别表示聚类结果中,簇的凝聚程度以及与人工标记的整体吻合度,如公式(8)、(9)所示;F-Score代表准确率和召回率的调和平均值如公式(10)所示;熵值代表了聚类结果的混杂程度。
对设Lx为聚类结果中包含x的那个簇;Cx表示人工标记的结果中包含x的那个簇,则:
准确率:
召回率:
F-Score:
设聚类算法将数据集D划分为K个两两不相交的集合Di,人工标记中划分了M个集合Cj,则聚类结果的熵entropy(D)的计算方式如公式(11)所示。
其中,|Di|表示该簇的元素个数;Pi(Cj)表示在簇Di中属于类别Cj的元素所占的比例。
本发明采用的测试样本分布如图2所示,共有7919个样本,分为66个家族,经过加壳/混淆处理的样本占到了73.22%。对比实验采用最新版的(2016年7月)Kaspersky和360多查杀引擎进行对比,同时也加入了现有的几种经典聚类算法进行比较。实验结果如图3所示,可以看到Kaspersky的聚类结果优于360,而在聚类算法中,本发明采用的OPTICS算法效果最好,且在其他实验数据相差不大的情况下,其正确率和召回率同比Kaspersky分别提升了159%和39%。
Claims (5)
1.一种基于TLSH特征表示的恶意软件聚类方法,其特征在于,包括以下步骤:
步骤1:利用Cuckoo Sandbox对样本进行分析,获取行为分析报告;
步骤2:从行为分析报告中获取样本静态特征,样本静态特征包括DLL信息、DLL信息的导入及导出函数信息,以及在分析过程中捕获到的字符串信息,并按照字典对上述信息进行排序,得到一个字符串;
步骤3:从行为分析报告中获取样本的资源访问记录,样本的资源访问记录包括以下信息:文件/目录、注册表、服务、DLL、使用过的互斥量,将每个类别的信息按字典进行排序后合并为一个字符串;所述文件/目录和注册表信息先通过分隔符“\\”拆分成子项后再排序;
步骤4:从行为分析报告中获取样本动态API以及加载的DLL所调用的API,并按照字典对上述信息进行排序,得到一个字符串;
步骤5:分别计算步骤2、步骤3、步骤4中得到的字符串的TLSH值;
步骤6:采用TLSH距离计算公式求得两个样本中各个TLSH值的TLSH距离,取最小的两个值的平均值作为两个样本的最终距离,采用OPTICS算法对样本进行聚类。
2.根据权利要求1所述的基于TLSH特征表示的恶意软件聚类方法,其特征在于,所述步骤2中得到的字符串存在干扰项,对其进一步过滤处理,方法如下:
分别统计该字符串中代表各个信息的子字符串中字母出现的个数,由下式计算子字符串的信息熵:
其中,代表字母a-z,代表字母在子字符串中出现的概率,计算方法为的出现的个数除以子字符串长度;
保留信息熵在闭区间[2.188,3.91]内的子字符串。
3.根据权利要求1所述的基于TLSH特征表示的恶意软件聚类方法,其特征在于,所述TLSH值的算法如下:
1)用大小为5个字节的滑动窗口处理目标字符串S,一次向前滑动一个字节,设一个滑动窗口的内容为:ABCDE;则分别采用Pearson Hash映射并统计ABC、ABD、ABE、ACD、ACE、ADE这6个bucket的个数;
2)在统计完字符串S所有bucket的个数后,定义q1、q2、q3为:75%的bucket的个数>=q1,50%的bucket的个数>=q2,25%的bucket的个数>=q3;
3)构造TLSH哈希的头部,共三个字节:第一个字节是字符串的校验和;第二个字节是由公式(2)所描述的字符串S的长度的对数L表示,len为字符串S的长度;第三个字节由两个16位的数q1_ratio、q2_ratio组合而成,计算方法如公式(3)所示:
4)构造TLSH哈希的主体部分:Pearson Hash生成的128个映射中每个映射为一个键,其对应的值为该键出现的个数;遍历每个键,并按公式(4)生成相应的二进制位,最终得到大小为32字节的主体部分哈希值:
5)将步骤3)所求的数值和步骤4)所得的二进制串转换为70个十六进制数,得到最终的TLSH值。
4.根据权利要求3所述的基于TLSH特征表示的恶意软件聚类方法,其特征在于,所述步骤6中两个TLSH值X和Y之间的TLSH距离计算方法如下:
A)定义mod_diff(a,b,R)为一个在大小为R的循环队列中a到b的最小距离,即
mod_diff(a,b,R)=Min((a-b)modR,(b-a)modR) (5)
B)计算两个TLSH值X和Y头部之间的距离:
先由式(5)分别计算字符串S的长度的对数L及两个16位数q1_ratio和q2_ratio对应的距离:mod_diff(X.L,Y.L,256)、mod_diff(X.q1_ratio,Y.q1_ratio,256)和mod_diff(X.q2_ratio,Y.q2_ratio,256);
然后计算两个TLSH值X和Y的校验和的距离:如果X和Y校验和相等则校验和的距离为0,否则为1;
再将上述四个距离的值进一步优化:
其中,diff为各距离的原始值,diff′为对应的优化值;
则头部之间的距离为上述四个优化值的累加;
C)计算两个TLSH值X和Y主体间的距离:
将两个TLSH值X和Y主体所占的256个二进制位分别从左往右平分为128组,每组的二进制由b0b1表示;如果X与Y某组应用的二进制值不相等则按照公式(7)进行计算,否则该组的距离为0;
然后将X与Y每组对应的距离累加起来即为主体间的距离;
D)两个TLSH值X和Y头部间的距离与主体间的距离之和则为两个TLSH值X和Y之间的TLSH距离。
5.根据权利要求1所述的基于TLSH特征表示的恶意软件聚类方法,其特征在于,所述步骤6中采用OPTICS算法对样本进行聚类的方法如下:
算法的输入参数是样本集D,邻域半径r,以及一个点在r邻域内成为核心对象时,该r邻域所包含的点的最小个数MinPt,该r邻域所包含的点为该核心对象的直接密度可达对象;
a)创建有序队列和结果队列;
b)若样本集D中所有的点都处理完毕,则转入步骤g);否则从样本集D中选择一个未处理且为核心对象的点,将该核心对象放入结果队列,并将该核心对象的直接密度可达对象放入有序队列,这些直接密度可达点按可达距离升序排列;
c)若有序队列为空,则跳至步骤b),否则,从有序队列中取出一个样本点;
d)判断该样本点是否为核心对象,若不是,则返回步骤c);若是且该点不在结果队列中,则将其放入结果队列,执行下一步;
e)找到该核心对象的所有直接密度可达对象,遍历这些点,判断其是否已经存在于结果队列中,是则跳过并继续处理下一个点,否则执行下一步;
f)若该直接密度可达点已存在于有序队列,且此时新的可达距离小于旧的可达距离,则用新可达距离取代旧可达距离,对有序队列重新排序;
g)输出并保存结果队列中的有序样本点;
h)从结果队列中按顺序取出点,如果该点的可达距离不大于邻域半径r,则该点属于当前类别,否则进行下一步;
i)如果该点的核心距离大于邻域半径r,则该点被标记为噪声,否则该点属于新的类别。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610890389.0A CN106599686B (zh) | 2016-10-12 | 2016-10-12 | 一种基于tlsh特征表示的恶意软件聚类方法 |
US15/645,548 US10289848B2 (en) | 2016-10-12 | 2017-07-10 | Malicious software clustering method expressed based on TLSH feature |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610890389.0A CN106599686B (zh) | 2016-10-12 | 2016-10-12 | 一种基于tlsh特征表示的恶意软件聚类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599686A CN106599686A (zh) | 2017-04-26 |
CN106599686B true CN106599686B (zh) | 2019-06-21 |
Family
ID=58556053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610890389.0A Active CN106599686B (zh) | 2016-10-12 | 2016-10-12 | 一种基于tlsh特征表示的恶意软件聚类方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10289848B2 (zh) |
CN (1) | CN106599686B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6866645B2 (ja) * | 2017-01-05 | 2021-04-28 | 富士通株式会社 | 類似度判定プログラム、類似度判定方法および情報処理装置 |
JP2018109910A (ja) | 2017-01-05 | 2018-07-12 | 富士通株式会社 | 類似度判定プログラム、類似度判定方法および情報処理装置 |
US10826934B2 (en) | 2017-01-10 | 2020-11-03 | Crowdstrike, Inc. | Validation-based determination of computational models |
CN107169355B (zh) * | 2017-04-28 | 2020-05-08 | 北京理工大学 | 一种蠕虫同源性分析方法和装置 |
CN109726554B (zh) * | 2017-10-30 | 2021-05-18 | 武汉安天信息技术有限责任公司 | 一种恶意程序的检测方法、装置 |
CN108804918B (zh) * | 2017-12-31 | 2020-07-31 | 北京安天网络安全技术有限公司 | 安全性防御方法、装置、电子设备及存储介质 |
US10826919B2 (en) * | 2018-10-29 | 2020-11-03 | Acronis International Gmbh | Methods and cloud-based systems for protecting devices from malwares |
CN109858247A (zh) * | 2018-12-26 | 2019-06-07 | 江苏博智软件科技股份有限公司 | 一种基于XGBoost的静态三特征模型的恶意软件分类方法 |
CN111382765B (zh) * | 2018-12-29 | 2023-07-04 | 中国移动通信集团四川有限公司 | 投诉热点区域聚类方法、装置、设备、介质 |
CN109816038B (zh) * | 2019-01-31 | 2022-07-29 | 广东工业大学 | 一种物联网固件程序分类方法及其装置 |
CN109858249B (zh) * | 2019-02-18 | 2020-08-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN109886334B (zh) * | 2019-02-20 | 2023-09-22 | 安徽师范大学 | 一种隐私保护的共享近邻密度峰聚类方法 |
CN109889547B (zh) * | 2019-03-29 | 2021-10-26 | 新华三信息安全技术有限公司 | 一种异常网络设备的检测方法及装置 |
CN111901282A (zh) * | 2019-05-05 | 2020-11-06 | 四川大学 | 一种生成恶意代码流量行为检测结构的方法 |
CN110162975B (zh) * | 2019-05-28 | 2022-10-25 | 江苏大学 | 一种基于近邻传播聚类算法的多步异常点检测方法 |
KR20200136662A (ko) * | 2019-05-28 | 2020-12-08 | 삼성에스디에스 주식회사 | 데이터 보안 방법과 시스템 및 이를 수행하기 위한 장치 |
CN110362995B (zh) * | 2019-05-31 | 2022-12-02 | 电子科技大学成都学院 | 一种基于逆向与机器学习的恶意软件检测及分析系统 |
CN111046390B (zh) * | 2019-07-12 | 2023-07-07 | 安天科技集团股份有限公司 | 一种协同防御补丁防护方法、装置及存储设备 |
CN110647747B (zh) * | 2019-09-05 | 2021-02-09 | 四川大学 | 一种基于多维相似度的虚假移动应用检测方法 |
CN110717108B (zh) * | 2019-09-27 | 2022-08-30 | 国家计算机网络与信息安全管理中心 | 基于特征工程的相似移动应用计算方法及装置 |
CN112580034B (zh) * | 2019-09-30 | 2022-04-22 | 奇安信安全技术(珠海)有限公司 | 脱壳文件的验证方法及装置、存储介质、计算机设备 |
US11977632B2 (en) * | 2020-04-23 | 2024-05-07 | Booz Allen Hamilton Inc. | Evaluating automatic malware classifiers in the absence of reference labels |
CN111598148B (zh) * | 2020-04-29 | 2022-09-16 | 中国电子科技集团公司第二十八研究所 | 一种基于历史容量相似特征的容量评估方法及设备 |
CN112000952B (zh) * | 2020-07-29 | 2022-05-24 | 暨南大学 | Windows平台恶意软件的作者组织特征工程方法 |
CN112632539B (zh) * | 2020-12-28 | 2024-04-09 | 西北工业大学 | 一种Android系统恶意软件检测中动静混合特征提取方法 |
CN113114454B (zh) * | 2021-03-01 | 2022-11-29 | 暨南大学 | 一种高效隐私的外包k均值聚类方法 |
CN113033629B (zh) * | 2021-03-09 | 2022-08-05 | 中南大学 | 基于改进布谷鸟算法的雷达信号分选方法及装置 |
CN113159802A (zh) * | 2021-04-15 | 2021-07-23 | 武汉白虹软件科技有限公司 | 一种实现涉诈应用收集和特征提取聚类的算法模型及系统 |
CN113407716B (zh) * | 2021-05-14 | 2022-08-19 | 桂林电子科技大学 | 一种基于众包的人类行为文本数据集的构造以及处理方法 |
CN114036515B (zh) * | 2021-10-27 | 2022-08-16 | 中南大学 | 一种webshell恶意家族聚类分析方法 |
CN115661682B (zh) * | 2022-12-27 | 2023-04-28 | 生态环境部卫星环境应用中心 | 一种工业热源对象的自动化提取方法及提取装置 |
CN116149669B (zh) * | 2023-04-14 | 2023-07-18 | 杭州安恒信息技术股份有限公司 | 一种基于二进制文件的软件成分分析方法、装置以及介质 |
CN116720211B (zh) * | 2023-08-07 | 2023-10-17 | 知心健(南京)科技有限公司 | 用于心脏康复的动态监测数据安全加密方法 |
CN117388643B (zh) * | 2023-12-11 | 2024-03-08 | 国网湖北省电力有限公司经济技术研究院 | 有源配电网故障区段的定位方法、系统、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043863A (zh) * | 2010-12-30 | 2011-05-04 | 浙江大学 | 一种Web服务聚类的方法 |
CN102915347A (zh) * | 2012-09-26 | 2013-02-06 | 中国信息安全测评中心 | 一种分布式数据流聚类方法及系统 |
US8561193B1 (en) * | 2010-05-17 | 2013-10-15 | Symantec Corporation | Systems and methods for analyzing malware |
CN103631928A (zh) * | 2013-12-05 | 2014-03-12 | 中国科学院信息工程研究所 | 一种基于局部敏感哈希的聚类索引方法及系统 |
CN104168272A (zh) * | 2014-08-04 | 2014-11-26 | 国家电网公司 | 一种基于通信行为聚类的木马检测方法 |
CN105205397A (zh) * | 2015-10-13 | 2015-12-30 | 北京奇虎科技有限公司 | 恶意程序样本分类方法及装置 |
CN105279434A (zh) * | 2015-10-13 | 2016-01-27 | 北京奇虎科技有限公司 | 恶意程序样本家族命名方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9237161B2 (en) * | 2013-12-16 | 2016-01-12 | Morphick, Inc. | Malware detection and identification |
US9516055B1 (en) * | 2015-05-29 | 2016-12-06 | Trend Micro Incorporated | Automatic malware signature extraction from runtime information |
US9836603B2 (en) * | 2015-12-30 | 2017-12-05 | Symantec Corporation | Systems and methods for automated generation of generic signatures used to detect polymorphic malware |
-
2016
- 2016-10-12 CN CN201610890389.0A patent/CN106599686B/zh active Active
-
2017
- 2017-07-10 US US15/645,548 patent/US10289848B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8561193B1 (en) * | 2010-05-17 | 2013-10-15 | Symantec Corporation | Systems and methods for analyzing malware |
CN102043863A (zh) * | 2010-12-30 | 2011-05-04 | 浙江大学 | 一种Web服务聚类的方法 |
CN102915347A (zh) * | 2012-09-26 | 2013-02-06 | 中国信息安全测评中心 | 一种分布式数据流聚类方法及系统 |
CN103631928A (zh) * | 2013-12-05 | 2014-03-12 | 中国科学院信息工程研究所 | 一种基于局部敏感哈希的聚类索引方法及系统 |
CN104168272A (zh) * | 2014-08-04 | 2014-11-26 | 国家电网公司 | 一种基于通信行为聚类的木马检测方法 |
CN105205397A (zh) * | 2015-10-13 | 2015-12-30 | 北京奇虎科技有限公司 | 恶意程序样本分类方法及装置 |
CN105279434A (zh) * | 2015-10-13 | 2016-01-27 | 北京奇虎科技有限公司 | 恶意程序样本家族命名方法及装置 |
Non-Patent Citations (1)
Title |
---|
恶意代码检测关键技术研究;韩晓光;《信息科技辑》;20150615;全文 |
Also Published As
Publication number | Publication date |
---|---|
US10289848B2 (en) | 2019-05-14 |
CN106599686A (zh) | 2017-04-26 |
US20180121652A1 (en) | 2018-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599686B (zh) | 一种基于tlsh特征表示的恶意软件聚类方法 | |
Aslan et al. | A new malware classification framework based on deep learning algorithms | |
CN107180192B (zh) | 基于多特征融合的安卓恶意应用程序检测方法和系统 | |
Xie et al. | Evaluating host-based anomaly detection systems: A preliminary analysis of adfa-ld | |
US9237161B2 (en) | Malware detection and identification | |
EP2975873A1 (en) | A computer implemented method for classifying mobile applications and computer programs thereof | |
CN109492395B (zh) | 一种检测恶意程序的方法、装置及存储介质 | |
WO2017128868A1 (zh) | 程序文件的分类方法、分类装置和分类系统 | |
Downing et al. | {DeepReflect}: Discovering malicious functionality through binary reconstruction | |
Gonzalez et al. | Authorship attribution of android apps | |
CN113901465A (zh) | 一种基于异质网络的Android恶意软件检测方法 | |
CN112148305A (zh) | 一种应用检测方法、装置、计算机设备和可读存储介质 | |
Bernardi et al. | A fuzzy-based process mining approach for dynamic malware detection | |
CN117454376A (zh) | 工业互联网数据安全检测响应与溯源方法及装置 | |
CN113468524B (zh) | 基于rasp的机器学习模型安全检测方法 | |
Tang et al. | Android malware detection based on deep learning techniques | |
Boot | Applying supervised learning on malware authorship attribution | |
Vahedi et al. | Cloud based malware detection through behavioral entropy | |
CN112347477A (zh) | 家族变种恶意文件挖掘方法和装置 | |
JP2019175334A (ja) | 情報処理装置、制御方法、及びプログラム | |
CN111611483B (zh) | 一种对象画像构建方法、装置、设备及存储介质 | |
Kyadige et al. | Learning from context: Exploiting and interpreting file path information for better malware detection | |
Al Fahdi et al. | Towards an automated forensic examiner (AFE) based upon criminal profiling & artificial intelligence | |
Kumar et al. | Detecting malware in Android applications by using androguard tool and xgboost algorithm | |
Xiaolin et al. | Research on malicious code homology analysis method based on texture fingerprint clustering |
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 |