首页> 中文学位 >结合语义的统计机器学习方法在代码安全中应用研究
【6h】

结合语义的统计机器学习方法在代码安全中应用研究

代理获取

目录

文摘

英文文摘

论文说明:图表目录

声明

第1章绪论

1.1 恶意代码检测技术简介

1.1.1 什么是恶意代码?

1.1.2 恶意代码检测技术简介

1.1.3 代码分析技术

1.1.4 恶意代码反检测技术

1.2 统计机器学习相关技术简介

1.2.1 核心思想

1.2.2 概率图模型简介

1.2.3 常用模型简介

1.3 本论文工作

1.3.1 研究问题

1.3.2 问题细化

1.3.3 本文研究内容和创新点

1.3.4 本论文的组织结构和我们的工作

第2章结合语义的多态蠕虫签名提取算法

2.1 概述

2.2 对签名提取技术的攻击

2.2.1 规避检测的技术

2.2.2 误导签名产生的技术

2.3 我们的方法

2.3.1 为什么STG签名有用?

2.3.2 系统架构

2.3.3 反汇编模块算法

2.3.4 有效指令提取算法

2.3.5 负载聚类算法

2.3.6 STG签名产生算法

2.3.7 STG签名匹配算法

2.4 安全分析

2.4.1 优势

2.4.2 限制性

2.5 实验评估

2.5.1 与Polygraph和Hamsa的比较

2.5.2 每个多态引擎的评估

2.5.3 性能评估

2.6 相关工作

2.6.1 基于模式的签名提取

2.6.2 语义分析

2.7 结论

第3章体现语义的的多态shellcode归属性分析

3.1 概述

3.2 多态shellcode检测方法概述

3.2.1 背景介绍

3.2.2 针对Windows操作系统Shellcode检测思想概述

3.2.3 基于启发式规则的Windows Shellcode检测策略

3.2.4 讨论部分

3.3 预备知识:污点分析算法

3.3.1 污点分析算法概述

3.3.2 动态污点分析算法

3.3.3 静态污点分析算法

3.3.4 污点分析算法的优点和挑战

3.4 问题定义(Problem Formalization)

3.5 我们的解决方案

3.5.1 方法概述

3.5.2 混合Markov模型的建立

3.5.3 混合Markov模型的求解

3.6 实验及结果分析

3.6.1 准确率检测

3.6.2 性能分析

3.7 工作进一步改进

3.7.1 改进思路1

3.7.2 改进思路2

3.8 本章小结

第4章提升多维特征检测迷惑恶意代码

4.1 概述

4.2 预备知识

4.2.1 迷惑恶意代码定义和检测标准

4.2.2 N-perm算法

4.3 迷惑恶意代码检测原理

4.3.1 检测系统架构

4.3.2 待检测迷惑代码分析流程

4.4 特征提取和检测中的核心算法

4.4.1 n-perm特征提取和检测算法

4.4.2 n-perm算法抗攻击性分析

4.4.3 可执行文件函数调用流图分析算法

4.4.4 系统调用流图特征提取和分析算法

4.4.5 系统调用流图中相似性度量

4.5 实验结果分析

4.5.1 实验设置

4.5.2 实验结果

4.5.3 分析和不足

4.6 相关工作比较

4.7 总结和展望

第5章多线程程序时序分析的隐Markov模型

5.1 概述

5.2 数据竞争程序实例和分析过程

5.2.1 示例程序

5.2.2 线程数据竞争时序图

5.3 多线程程序时序影响因素分析

5.3.1 时序因素分析

5.3.2 进一步分析

5.4 多线程程序实验结果分析

5.4.1 优先级别影响的运行时序分布

5.4.2 系统负载影响的运行时序分布

5.4.3 系统运行时间影响的运行时序分布

5.4.4 数据结果的分析和比较

5.5 多线程程序时序分析的隐Markov模型

5.5.1 隐Markov模型建立

5.5.2 可见符号的模糊化过程

5.5.3 HMM模型λ计算

5.6 实验结果仿真

5.6.1 两个线程程序仿真结果

5.6.2 对n个线程的推广和不足之处

5.7 相关工作

5.8 结论

第6章全文总结

6.1 论文工作总结

6.2 进一步的工作

参考文献

附录Shellcode代码示例程序

在论文研究期间撰写的学术论文\参与的科研项目

致谢

展开▼

摘要

近两年美国因病毒、间谍软件等网络攻击损失近85亿美元,而中国大陆更是有数以亿计的大量主机和网络被恶意攻击、破坏和篡改。一方面,种类繁多功能各异的诸如病毒,蠕虫,rootkit,间谍软件等恶意代码层出不穷,黑客攻击方式、手段与过程不断复杂深化;另一方面,信息系统漏洞不断增长,漏洞越来越多。强大的经济利益的驱动使得恶意代码检测与防范问题仍是信息安全届亟需解决的首要问题。攻击者不断升级并复杂化新的攻击手段,防守者根据攻击提出防护措施,例如修补漏洞,注入防护疫苗等;进一步地,攻击者提出新的反检测和规避技术,防护者也要不断更新防护技术。攻防双方不断博弈,两者在动态平衡中,不断将局部的马鞍点向前推进。
   统计机器学习源于统计,长于关系推理和知识的自动学习,已在文本分析,视频分析,图像理解,语音信号识别取得极好的效果。我们把恶意代码检测与攻击比作一场猫捉老鼠的游戏,统计机器学习能不能有效的扮演“猫”的角色,能不能在已有的恶意代码检测与分析的基础上在如虎添翼?该问题的难点在于安全信息系统的一些特征需求与机器学习应用需求不是完全一致。例如信息安全中,对于误报率和漏报率的容忍度达到了苛刻的程度;对机器学习的结果缺少解释,模型的结果与实际的安全保障之间存在语义上的差距,很多结果在实际中不可行或者严重偏离信息系统程序和系统配置的现实;机器学习算法必须考虑攻击和攻击者各种各样的逃避检测策略。几乎信息安全的所有问题都是攻击者和防守者之间的博弈过程,必须站在双方的角度上着想,才有助于问题的解决。
   针对代码分析的具体领域,在结合代码分析领域内知识的基础上,我们提出以下问题作为本文的研究对象。a)机器学习能不能在恶意代码或者代码分析中使用?b)在恶意代码检测(扩展到代码分析甚至系统安全中),能起多大作用,如何使用并使其发挥最大功效?本文将此抽象问题具体化为几个子问题(Q1-Q4)进行细化,并通过具体的案例分析来回答。Q1:如何提取多态蠕虫签名?Q2:如何进行多态shellcode归属性分析?Q3:如何检测迷惑恶意代码?Q4:多线程程序中,如何消除时序相关的不确定性bug?本文关注的恶意代码包含两类,第一类是基于网络包的恶意代码,例如多态蠕虫,通过网络传播的shellcode;第二类是基于文件的恶意代码,例如被攻陷的可执行文件或者动态链接库文件;另外本文还分析了一个多线程程序安全中的案例。
   针对上述问题,我们进行了下列研究:结合语义和统计特征,对多态蠕虫提取签名;结合语义和统计特征,对多态shellcode进行归属性分析;结合语义特征和统计特征,检测迷惑恶意代码;结合多线程运行的上下文,来推测时序对不确定性bug的影响。
   我们的工作有以下创新点。a)提出了语义分析和统计分析相结合的代码分析新方法,用于检测或者分类恶意代码文件以及恶意代码包;与语义分析方法相比,融合了统计方法定量描述的特长;与统计方法相比,关注了更多的代码语义特性,使得分析更加接近代码语义本质。b)提出了基于数据流分析的状态转移图签名,用于多态蠕虫签名提取,通过数据流分析去除隐含在网络数据包中的噪声数据,较好刻画蠕虫的多态特性。c)提出了一种结合静态污点分析和混合Markov模型的shellcode归属性分析算法;通过静态污点分析保留语义相关字节,混合Markov模型获取数据包的统计结构特征;比单一的统计分析更加健壮,比仅仅的静态污点分析方法更易于定量描述和进行代码相似性比较。d)提出了一种结合控制流和系统调用特征的迷惑恶意代码检测算法,用于检测迷惑后的恶意代码;控制流和系统调用获取了代码的语义特征,而同时结合统计特征,相互补充,尽可能准确的进行迷惑恶意代码的类别检测。e)提出了使用HMM,刻画影响多线程运行的上下文,通过上下文(优先级,系统负载,运行时间等)捕获环境对程序运行的影响,并将这种影响进一步量化,为不确定性bug提供分析的依据。
   通过以上研究,我们发现,结合或者体现某种程度语义的机器学习可以较为有效的应用于代码分析和检测中。结合语义的多态shellcode签名提取和归属性分析的相关技术已经出现在DayZeroSystems产品中,提升多维特征的迷惑恶意代码检测方法已开始应用到下一代智能安全检测产品中(例如Damballa,Inc)。我们相信这些技术将会在智能信息安全检测中得到更广泛应用。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号