当前位置:   article > 正文

恶意代码---N-gram特征_opcode n gram

opcode n gram

1)N-Gram特征的创建:设定滑动窗口长度(字节片段长度N),对恶意代码内容按字节特征大小进行滑动,每一个字节片段称为gram;统计gram出现的频度,设定阈值进行归一化。
2)恶意代码特征提取方法:n-gram字节、抽象语义、PE文件格式信息、动态行为信息等。
3)最初是由Jeremy等人提出通过提取文件n-gram字节特征实现恶意代码的检测------Learning to Detect Malicious Executables in the Wild[C]
**

Jeremy方法

**
思想*:(n-gram字节特征提取方法)输入—十六进制字符串,对连续的n个字节(n-gram)计算信息增益,选择N个信息增益最大作为特征数据。
检测:分别判断这个N个特征数据是否存在,存在–1 or 不存在–0,一个测试文件对应一个N维的特征向量。
缺点:1.只判断了特征数据是否存在在样本中,忽略了特征数据出现的频率,因为可能会存在特征数据在测试文件中偶然出现的情况,但实际并没有重要的意义;2.特征向量中仅包含0和1两种数据,不利于分类算法训练和检测。
改进:不仅判断特征数据是否存在与待测文件中,还要统计其在待测文件中出现的频数;特征向量从只包含0和1,变为了取值范围在[0,+∞];根据特征值不同,对每个样本的特征值数量进行统计并以{key,value}字典形式存储特征词频,key代表特征值,value代表该特征在当前样本中出现的次数。统计一类恶意家族的所有恶意代码样本,然后挑选出词频最高的N个特征,每个样本转换为N维向量,每个维度代表该特征在样本中出现的次数,样本集—特征词频矩阵TFIDF算法–将词频矩阵转换为特征矩阵;信息增益—对特征矩阵进行特征筛选。

n-gram解法:十六进制数据:FF 25 F8 80 00 10 FF,当n=4时,共有4个4-gram分别为:FF25F880、25F88000、F8800010、800010FF
常见的机器学习算法:k-Means、逻辑回归、K-最近邻(KNN)、决策树、随机树、随机森林、朴素贝叶斯(NB)、贝叶斯网络(BN)–BayesNET、支持向量机(SVM)–SMO、C4.5决策树(DT)–J48、GBDT(Gradient Boosting Decision Tree)。

**

其余想法

**

实验策略:计算每类恶意家族中所有样本的n-gram(这里n可以分别取1~5,做对比)的个数,然后对N进行取值,形成一种多对多的实验对比。

恶意代码字节码序列特征提取速度不足:将字节码N-gram特征的提取、选择和特征矩阵的TFIDF计算部分转移到GPU上,提高字节码序列特征提取速度。GPU负责密集计算型的大规模数据并行计算;CPU处理任务调度并执行复杂的逻辑处理和事物管理等控制密集型计算任务。

TF(词频)是文本信息量统计方法之一,统计文本中每个词出现的频率;IDF逆向文档频率,衡量一个词的普遍重要性,文档总数除包含该词汇的文档数,再取对数;TFIDF倾向于过滤掉常见的词语,保留重要的词语。

Opcode操作码:机器语言指令的一部分,操作码的操作可以包括算术数据操作逻辑操作程序控制

N-gram特征是给定恶意样本中每相邻n个字节的序列模型,可以理解为一阶马尔科夫链,即字节序列的出现顺序是离散事件的随机过程。

迁移学习的概念:运用已有知识对不同但相关领域的问题进行求解的学习方法。

蜜罐技术:常用的动态检测方法,引诱黑客来攻击,记录黑客行为和对方的重要信息;分为服务器端蜜罐和客户端蜜罐,前者部署在服务器上等待黑客的攻击,并记录下黑客的信息;后者模仿客户访问网站等客户端行为,主动出击获取恶意行为的信息。

恶意代码加壳工具:ASPACK、PECOMPACT等;查壳技术的方向:一是根据壳的特征码,二是计算信息熵,工具(PEID、FILESCANNER);脱壳软件:VMUNPACKER、WASPACK、UNDBPE、UNFSG、EUNPACJER等;主流的反汇编工具:IDA Pro、W32Dasm、C32Asm等。

相关安全论坛以及恶意代码研究网站:vx netlux、vx heavens、VirusTotal等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/724999
推荐阅读
相关标签
  

闽ICP备14008679号