基于程序语义的静态恶意代码检测系统的研究与实现

基于程序语义的静态恶意代码检测系统的研究与实现

论文摘要

恶意代码不再仅是用来炫耀技术而是成为不法分子牟取不正当利益的工具。基于特征匹配的方法忽略了程序行为导致特征没有泛化性,一个特征只能检测一种变种,而动态检测的死穴在于可观行为局限在一个有限的时间段或程序分支中,而将来的或其他分支的行为是不可预期的。因此上述方法在面对暴利刺激下层出不穷的恶意代码变种时显得力不从心。程序语义提供了程序行为的形式化模型,意味着从语义角度可以检查可疑代码所有的执行路径,并能展现在语法层次上被故意隐藏的不同变种间的相似性。但理论上静态分析程序完整语义是不可判定和不可计算的,本文通过系统函数调用观察程序行为,经过两次抽象在两个不同的近似语义层次上将模型检测恶意行为和基于面向目标的关联度(Objective-Oriented Association, OOA)挖掘恶意代码检测统一在程序语义这一共同框架之下。模型检测恶意行为实质是检测可疑程序所有可能的执行路径中是否存在一条实现特定恶意行为的路径(恶意行为模板)。参考方法由于没有引入数据流分析,使得恶意行为模板及其繁杂。本文首先反汇编可疑程序并引入控制流和数据流分析构造语义模型,同时恶意行为被统一抽象为有限状态机的形式,并最终转化成对应的计算树逻辑(Computation Tree Logic, CTL)公式,最后由标记算法完成验证工作。实验证明由于数据流分析的引入本文方法可极大地简化恶意行为的描述。基于OOA挖掘的方法检测可疑程序调用的API集合是否存在特定的子集(规则)。本文利用IDA Pro插件提取可执行文件所调用的API集合,采用快速的OOApriori算法挖掘满足特定目标的规则,并由此规则分类。通过改进规则挖掘策略、强化规则选择条件、引入多规则积累和多分类器仲裁机制等措施在显著减少原OOApriori挖掘时间的同时提高了所挖掘规则的质量而且有效解决了参考方法的样本敏感性问题。针对上述两种方法对于加壳和API隐藏技术的局限性,本文基于程序语义的静态恶意代码检测系统引入启发式检测作为有力补充,最终该系统能自动脱壳加壳恶意代码,在不需特征库的情况下就能检测未知恶意代码及其变种,并能在一定准确度上提供恶意代码所属子类别和拥有的恶意行为的信息。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 课题的背景和意义
  • 1.1.1 课题背景
  • 1.1.2 课题意义
  • 1.2 国内外研究现状
  • 1.3 论文的主要研究内容和组织结构
  • 第2章 恶意代码分析与反分析技术
  • 2.1 背景知识
  • 2.1.1 PE文件格式
  • 2.1.2 加壳原理和壳的加载过程
  • 2.2 恶意代码的分析技术
  • 2.2.1 静态分析
  • 2.2.2 动态分析
  • 2.3 恶意代码的反分析技术
  • 2.3.1 反静态分析技术
  • 2.3.2 反动态分析技术
  • 2.4 本章小结
  • 第3章 SMD系统的设计与整体框架
  • 3.1 程序语义的理解和抽象
  • 3.2 SMD系统整体框架
  • 3.3 SMD子模块功能介绍
  • 3.3.1 查壳与脱壳模块
  • 3.3.2 模型检测恶意行为模块
  • 3.3.3 基于OOA挖掘的恶意代码检测模块
  • 3.3.4 启发式检测模块
  • 3.4 本章小结
  • 第4章 模型检测恶意行为
  • 4.1 引言
  • 4.2 CTL模型检测
  • 4.2.1 系统建模—迁移系统
  • 4.2.2 规范语言—CTL
  • 4.2.3 验证—CTL模型检测算法
  • 4.3 CTL模型检测恶意行为
  • 4.3.1 待检测可疑程序的语义模型的建立
  • 4.3.2 恶意行为的提取和描述
  • 4.3.3 模型检测恶意行为算法实现
  • 4.4 实验与结论
  • 4.4.1 实验结果
  • 4.4.2 方法改进
  • 4.4.3 模型检测恶意行为的问题
  • 4.5 本章小结
  • 第5章 改进的基于OOA挖掘的恶意代码检测
  • 5.1 引言
  • 5.2 OOA挖掘的概念和算法
  • 5.2.1 面向目标的关联规则挖掘
  • 5.2.2 OOA挖掘算法—OOApriori
  • 5.2.3 基于关联规则的分类
  • 5.3 OOA规则挖掘
  • 5.3.1 API集合的获取
  • 5.3.2 候选一项集的筛选
  • 5.3.3 快速规则挖掘
  • 5.3.4 规则挖掘策略改进
  • 5.4 基于OOA规则的分类
  • 5.4.1 CBA算法的改进
  • 5.4.2 仲裁机制的引进
  • 5.4.3 实验结果及其因素分析
  • 5.5 本章小结
  • 第6章 静态启发式恶意代码检测
  • 6.1 引言
  • 6.2 基于信息熵的壳判定
  • 6.2.1 信息熵
  • 6.2.2 基于信息熵的壳判定的基本思想
  • 6.2.3 基于信息熵的壳判定的结果
  • 6.3 基于PE文件结构异常的加壳/恶意代码检测
  • 6.3.1 PE文件异常信息的收集方法
  • 6.3.2 静态启发式恶意代码检测的分析方法
  • 6.3.3 启发式检测效果
  • 6.4 本章小结
  • 结论
  • 参考文献
  • 致谢
  • 相关论文文献

    • [1].利用代码重构改善软件设计[J]. 信息记录材料 2020(09)
    • [2].代码对比与动态规划[J]. 电脑编程技巧与维护 2017(03)
    • [3].什么样的代码才是好代码[J]. 计算机与网络 2017(06)
    • [4].安全通论(14)——病毒式恶意代码的宏观行为分析[J]. 成都信息工程大学学报 2017(01)
    • [5].恶意代码同源判定技术综述[J]. 通信技术 2017(07)
    • [6].基于方法的克隆代码检测[J]. 信息与电脑(理论版) 2017(13)
    • [7].市代码[J]. 山西教育(招考) 2020(03)
    • [8].有关信息代码[J]. 山西教育(招考) 2019(02)
    • [9].关于机场的冷知识[J]. 意林 2019(22)
    • [10].市代码[J]. 山西教育(招考) 2016(08)
    • [11].代码自动生成及代码上下文分析研究综述[J]. 数据通信 2020(02)
    • [12].智能代码补全研究综述[J]. 软件学报 2020(05)
    • [13].基于文本分类技术的恶意代码检测工具应用[J]. 科技经济导刊 2020(27)
    • [14].克隆代码映射的方法与应用[J]. 计算机工程与应用 2017(06)
    • [15].基于增强描述的代码搜索方法[J]. 软件学报 2017(06)
    • [16].银行代码安全审计工作探索与实践[J]. 网络安全技术与应用 2017(08)
    • [17].重视统一信用代码的应用[J]. 浙江经济 2017(19)
    • [18].代码依恋检测与重构研究[J]. 电子科技 2016(11)
    • [19].基于相识度的恶意代码检测[J]. 计算机科学 2015(01)
    • [20].有关信息代码[J]. 山西教育(招考) 2018(03)
    • [21].有关信息代码[J]. 山西教育(招考) 2016(Z1)
    • [22].有关信息代码[J]. 山西教育(招考) 2011(08)
    • [23].基于模糊识别恶意代码检测技术的研究[J]. 微电子学与计算机 2014(06)
    • [24].恶意代码加壳脱壳技术[J]. 辽宁警专学报 2014(05)
    • [25].代码复查的要点探讨[J]. 技术与市场 2013(06)
    • [26].代码规制:构建安全文明网络的必由之路[J]. 保密科学技术 2013(07)
    • [27].消除隔阂,提升效率——MATHWORKS推出基于MATLAB生成HDL代码的产品[J]. 世界电子元器件 2012(05)
    • [28].C~#托管代码调用非托管代码参数传递的实现方法[J]. 软件导刊 2011(01)
    • [29].恶意代码与信息安全[J]. 硅谷 2011(18)
    • [30].代码证书遗失声明[J]. 大众标准化 2010(12)

    标签:;  ;  ;  ;  ;  

    基于程序语义的静态恶意代码检测系统的研究与实现
    下载Doc文档

    猜你喜欢