基于N-gram的恶意代码检测 (监督式)

看的论文:Abou-Assaleh T , Cercone N , Keselj V , et al. N-gram-based detection of new malicious code[C].Proceedings of the 28th Annual International Computer Software and Applications Conference, 2004. COMPSAC 2004. IEEE, 2004.

摘要

先前的恶意检测软件只能检测已出现或已造成伤害的病毒,受到基于标准签名的恶意病毒技术和成功的文本分类的驱动,由此作者提出一个自动检测新恶意代码的方法:用已经收集到的恶意代码和良好代码的数据集检测新的恶意代码。通过实验在训练集中的准确度为100%,在三倍交叉验证中准确度为98%。

介绍

恶意代码的子串,签名常用于恶意代码的检测,所以自然选用子串集作为一个自动检测系统的输入。而N-grams所有文件的子串长度都是n。使用n-grams的方法之前就有人提出,但是找不到太多的报道结果。n-gram分析成功应用于语言建模, 语音识别和文本分类(字符n-gram)。用于文本分类的通用N-Gram分析(CNG)方法最近已成功地用于自动作者身份归属,文本聚类等。由于n-gram重叠(n-grams overlap),因此它们不仅捕获有关长度子串的统计信息,而且还隐式捕获较长子串的频率。NLP中指出了这一点,尽管tri-grams似乎太短而无法捕获任何重要信息,但它们经常表现良好。随着越来越多的恶意代码编写者使用工具来编写和编译其代码,n-gram可以检测特定于某些工具或工具家族(包括代码生成器,编译器和编程环境)的代码功能。此外,n-gram可以捕获特定的作者的特征,编码样式甚至行为特征。 由于捕获的特征隐含在提取的n-gram中,因此即使病毒编写者可以完全访问检测算法,病毒编写者也很难刻意编写使n-gram分析蒙蔽的病毒。

检测恶意代码的CNG 分类方法

从训练日期开始收集n-grams集,L个最常见的n-grams及其归一化的频率表示一个类别的配置文件(总共由两个配置文件)。
配置文件参数:

  • n: n-gram中n的取值

  • L :配置文件的长度
    通过以相同的方式构建其概要文件并使用k = 1的kNN算法对新实例进行分类。
    在这里插入图片描述

  • s : 来自于恶意代码配置文件或者良好代码配置文件的中的任意一个n-grams序列。

  • fi(s): 在两个配置文件中n-gram序列 s 的频率。
    频率之差除去频率和的一半是为了平衡低频和高频的权重。

小注:
K倍交叉验证(K>=2)。将样本数据集随机划分为K个子集(一般是均分),将一个子集数据作为测试集,其余的K-1组子集作为训练集;将K个子集轮流作为测试集,重复上述过程,这样得到了K个分类器或模型,并利用测试集得到了K个分类器或模型的分类准确率。用K个分类准确率的平均值作为分类器或模型的性能指标。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值