发明名称 确定计算机恶意程序样本家族数的系统和方法
摘要 本发明涉及确定计算机恶意程序样本家族数的系统和方法。确定计算机恶意程序样本家族数的系统包括:恶意程序样本特征提取模块,其提取恶意程序样本的特征并计算每两个恶意程序样本间的距离,得到距离矩阵D。恶意程序样本距离计算模块,其计算恶意程序样本间的距离。家族间距离计算模块,其计算两个家族之间的距离。恶意程序样本聚类模块,其逐层对恶意程序样本进行聚类,并计算每层聚类结果的V<sub>NFS</sub>;V<sub>NFS</sub>计算模块,其计算每层分家族结果的V<sub>NFS</sub>。上述系统可通过比较各个层次的V<sub>NFS</sub>值,找到V<sub>NFS</sub>值最小层的分家族结果,即可得到最优家族个数。
申请公布号 CN101604365A 申请公布日期 2009.12.16
申请号 CN200910040998.7 申请日期 2009.07.10
申请人 珠海金山软件股份有限公司 发明人 叶艳芳;陈勇;王幼玉;万里
分类号 G06F21/00(2006.01)I;G06F17/30(2006.01)I 主分类号 G06F21/00(2006.01)I
代理机构 广州新诺专利商标事务所有限公司 代理人 杨焕军
主权项 1、确定计算机恶意程序样本家族数的系统,其特征在于,包括:恶意程序样本特征提取模块,其提取恶意程序样本的特征并通过下述恶意程序样本距离计算模块计算每两个恶意程序样本间的距离,得到距离矩阵D;恶意程序样本距离计算模块,其对不同的恶意程序样本特征采用不同的计算公式,计算恶意程序样本间的距离。家族间距离计算模块,其计算两个家族之间的距离,计算公式为:<maths num="0001"><![CDATA[<math><mrow><msub><mi>D</mi><mi>KL</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><msub><mi>N</mi><mi>K</mi></msub><msub><mi>N</mi><mi>L</mi></msub></mrow></mfrac><msub><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><msub><mi>C</mi><mi>K</mi></msub></mrow></msub><msub><mi>&Sigma;</mi><mrow><mi>j</mi><mo>&Element;</mo><msub><mi>C</mi><mi>L</mi></msub></mrow></msub><mi>d</mi><mrow><mo>(</mo><msub><mi>X</mi><mi>i</mi></msub><mo>,</mo><msub><mi>Y</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow></math>]]></maths>公式(3);在公式(3)中,D<sub>KL</sub>表示家族K与家族L间的距离,d(X<sub>i</sub>,Y<sub>j</sub>)表示分别位于家族K与家族L的两个恶意程序X<sub>i</sub>和Y<sub>j</sub>特征之间的距离,X<sub>i</sub>和Y<sub>j</sub>分别表示第L族中的第i个样本和第K族中的第j个样本,C<sub>K</sub>表示家族K,N<sub>K</sub>表示家族K中恶意程序样本的个数,C<sub>L</sub>表示家族L,N<sub>L</sub>表示家族L中恶意程序样本的个数。恶意程序样本聚类模块,逐层对恶意程序样本进行聚类(家族),并根据下述V<sub>NFS</sub>计算模块计算每层聚类结果(分家族结果)的V<sub>NFS</sub>;V<sub>NFS</sub>计算模块,其计算每层分家族结果的V<sub>NFS</sub>,计算公式为:<maths num="0002"><![CDATA[<math><mrow><msub><mi>V</mi><mi>NFS</mi></msub><mo>=</mo><mi>scat</mi><mrow><mo>(</mo><mi>c</mi><mo>)</mo></mrow><mo>-</mo><mi>sep</mi><mrow><mo>(</mo><mi>c</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>c</mi></munderover><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>i</mi></msub></munderover><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>x</mi><mi>ik</mi></msub><mo>-</mo><msub><mi>v</mi><mi>i</mi></msub><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>-</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>c</mi></munderover><msup><mrow><mo>|</mo><mo>|</mo><msub><mi>v</mi><mi>i</mi></msub><mo>-</mo><mover><mi>v</mi><mo>&OverBar;</mo></mover><mo>|</mo><mo>|</mo></mrow><mn>2</mn></msup><mo>*</mo><mrow><mo>(</mo><msub><mi>n</mi><mi>i</mi></msub><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>公式(4);在公式(4)中,c代表家族数,n<sub>i</sub>是家族i包含的样本数,x<sub>ik</sub>是家族i的第k个样本,是家族i的中心点,v<sub>i</sub>表示与该家族中所有样本点距离和最小的样本点(恶意程序样本),v<sub>i</sub>的计算公式为:<img file="A2009100409980003C1.GIF" wi="879" he="144" />公式(5);在公式(5)中,x<sub>ik</sub>表示家族i中的第k个样本,x<sub>ij</sub>表示家族i中的第j个样本,(x<sub>ik</sub>-x<sub>ij</sub>)表示,样本x<sub>ik</sub>与样本x<sub>ij</sub>的距离,n<sub>ci</sub>表示家族i中的样本总数;是整个数据集的全局中心点,v表示与全局所有样本点距离和最小的样本点,v的计算公式为:<img file="A2009100409980003C2.GIF" wi="668" he="140" />公式(6);在公式(6)中,x<sub>k</sub>表示全局的第k个样本,x<sub>j</sub>表示全局的第j个样本,n表示全局样本的总数。
地址 519015广东省珠海市珠海吉大景山路莲山巷8号金山电脑大厦