恶意代码与安全漏洞.ppt

  1. 1、本文档共130页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
恶意代码与安全漏洞

控制流分析的目标是得到程序的一个控制流图(controlflowgraph).控制流图是对程序执行时可能经过的所有路径的图形化表示.通过根据不同语句之间的关系,特别是考虑由“条件转移”、“循环”等引入的分支关系,对过程内的一些语句进行合并,可以得到关于程序结构的一些结果.一个控制流图是一个有向图:图中的结点对应于程序中经过合并的基本语句块,图中的边对应于可能的分支方向,例如条件转移、循环等等,这些都是分析程序行为的重要信息。 * (4)数据流分析(dataflowanalysis).数据流分析试图确定在程序的某一点(语句)关于各个变量的使用或者可能取值情况.数据流分析一般从程序的一个控制流图开始.数据流分析主要有前向分析(forwardanalysis)、后向分析(backwardanalysis) 两种方法.前向分析的一个例子是可达定义(reachingdefinitions).它计算对于程序的每一点,可能到达该点的定义的集合.后向分析的一个例子是活跃变量(livevariables).它计算对于程序的每一点,程序后面的语句可能读取且没有再次修改的变量. 这个结果对于消除死代码(deadcode)很有用:如果一个变量在某个阶段被定义后,后面的语句一直不会用到这个定义,那么这个定义就是死代码,应该从程序中删除.基于格(lattice)与不动点(fixpoint)理论的数据流分析是目前被广泛使用的技术:首先对控制流图中的每个节点建立一个数据流等式(equations),并根据分析目标构造一个具有有限高度的格L,然后不断重复计算每个节点的输出,直到达到格的一个不动点.许多编译器为了进行编译优化而引入了数据流分析技术. 数据流分析方法中最常用的方法是跌代法,迭代算法的主要步骤是:初始化数据流信息状态以及工作列表,然后依次处理工作列表中的节点,更新各节点信息,同时把被它影响的节点加入工作列表中。由于传输函数在数据流信息的格中有不动点,所以迭代算法是可以终止的。 * 动态污染传播(Dynamic taint analysis),也称为动态信息流分析方法是在程序运行时,标记某些信息,例如变量、存储单位、寄存器的值等,从而跟踪攻击路径,获取漏洞信息。 第一步:标识污点源。 第二步:分析污染源的传播。 分析出什么样的操作导致了被污染对象x的信息被传递给了没有受污染的对象y记为x?t(y),其中t表示程序操作。 分析出所有受t操作影响的对象y并标识y为受污染对象。 第三步:污染数据到达触发点(taint sink)时,根据触发机制对具有污染标识的数据、内存等进行检查,从而发现可能的安全问题。 * 动态挖掘方法主要借鉴了软件测试的思想,即通过输入测试用例和输出测试结果来发现代码中存在的安全问题,如模糊测试、渗透测试等。此外动态挖掘方法还借鉴了软件监测的思想,即在不同层次上监测代码的运行状态来发现安全问题。如动态污染传播等。 * 半衰期指修复半数存在漏洞的系统所用的时间 漏洞消控 补丁修复 安全加固 * 补丁修复 打补丁是漏洞消减的技术手段之一。 数据显示,及时安装有效补丁可避免约95%的信息安全损失。 补丁修复中存在的两难问题: 是否要打补丁?——资源分配问题 打什么样的补丁?——补丁质量问题 如何打补丁?——操作方式问题 什么时间打补丁?——修复时机问题 现状: 出现了跨学科领域的研究方法(计算机科学、经济学、管理学) 从理论分析与用户最佳实践中共同寻找答案 * 安全加固 标准化的安全配置 2002年,美国率先在军队推行标准化的安全配置与核查(IAVA) 根据漏洞分析和风险评估的安全加固 传统的安全加固手段越来越难以应付日益复杂的攻击行为,漏洞信息的及时披露和分发越来越重要。 加固核查与问责 通过安全审计核实漏洞消除情况和效果。 * 谢谢,请提问题! * 禁止跟踪中断。针对调试分析工具运行系统的单步中断和断点中断服务程序,恶意代码通过修改中断服务程序的入口地址实现其反跟踪目的。“1575”计算机病毒采用该方法将堆栈指针指向处于中断向量表中的INT 0至 INT 3区域,阻止调试工具对其代码进行跟踪。 封锁键盘输入和屏幕显示,破坏各种跟踪调试工具运行的必需环境; 检测跟踪法。检测跟踪调试时和正常执行时的运行环境、中断入口和时间的差异,根据这些差异采取一定的措施,实现其反跟踪目的。例如,通过操作系统的API 函数试图打开调试器的驱动程序句柄,检测调试器是否激活确定代码是否继续运行。 其它反跟踪技术。如指令流队列法和逆指令流法等。 * 对程序代码分块加密执行。为了防止程序代码通过反汇编进行静态分析,程序代码以分块的密文形式装入内存,在执行时由解密程序进行译码,某一段代码执行完毕后立即清除,保证任何时刻分析者不可能从内

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档