漏洞挖掘的过去、现在、未来

上传人:ldj****22 文档编号:45506413 上传时间:2018-06-17 格式:PDF 页数:52 大小:3.19MB
返回 下载 相关 举报
漏洞挖掘的过去、现在、未来_第1页
第1页 / 共52页
漏洞挖掘的过去、现在、未来_第2页
第2页 / 共52页
漏洞挖掘的过去、现在、未来_第3页
第3页 / 共52页
漏洞挖掘的过去、现在、未来_第4页
第4页 / 共52页
漏洞挖掘的过去、现在、未来_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《漏洞挖掘的过去、现在、未来》由会员分享,可在线阅读,更多相关《漏洞挖掘的过去、现在、未来(52页珍藏版)》请在金锄头文库上搜索。

1、漏洞挖掘的过去、现在、未来Funnywei提纲 漏洞挖掘技术的发展 补丁的安全性漏洞挖掘技术的发展 过去?现在 未来Existing ParadigmsTestingFormal verificationcheapCostAssuranceexpensivelowhigh(sweet spot?)Extracted from D. wagners ppt漏洞发现 Fuzzing API测试 静态分析Fuzzing的目标 File Formats Network Protocols Web applications Environment variables COM Objects IPCsFu

2、zz技术 文件格式的Fuzz 图像格式 文档格式 等等 协议的Fuzz RPC协议 Http协议 等等Fuzz的优缺点 优点: 思想简单,容易理解 从发现漏洞?漏洞重现容易 不存在误报 缺点: 黑盒测试的全部缺点 不通用,构造测试用例周期长,如复杂的协议 Undocumented的接口无法测试文件格式的Fuzzer框架构 造 畸 形 数 据构 造 畸 形 数 据测 试测 试异 常 监 测异 常 监 测测 试 模 式测 试 模 式异 常 分 析异 常 分 析暴力测试等价类测试边界值测试组合字段测试记录异常情况分析找出有价 值的异常API测试 测试API的安全性 如netapi32.dll的303

3、号导出函数 NetpwPathCanonicalize 查找调用这些API的程序 验证调用该API的可执行文件的安全静态分析技术 提出问题: 给定程序和安全属性,验证程序是否满 足属性,如果不满足,找出原因。静态分析框架分 析 算 法分 析 算 法漏 洞 模 型漏 洞 模 型程 序程 序漏 洞漏 洞模 型模 型分 析 结 果分 析 结 果静态分析技术(1)bugscam静 态 分 析静 态 分 析模 式 匹 配词 法 分 析词 法 分 析AST分 析metaC+FlawFinder Rats ITS4静态分析技术(2)数 据 流 分 析数 据 流 分 析类 型 系 统类 型 系 统模 型 检

4、测模 型 检 测污 点 分 析污 点 分 析静 态 分 析静 态 分 析Cqual漏洞的建模 时序逻辑模型 约束模型 类型限定模型 依赖图模型时序逻辑模型 将安全相关的操作序列描述为时序安全 逻辑 采用FSA描述 可以参考”Model Checking One Million Lines of C Code”时序安全属性的简单例子 在调用chroot之后,进程应立即调用 chdir(“/”)来切换到根目录下。otherchrootchdir(“/“)约束模型David Wagner等人将缓冲区溢出的检测问题规范化为整数约束的 问题,并定义了约束语言(Constraint Language)。线

5、形约束条件的产生线形约束条件的产生符号len(s)表示当前使用的长度(包含结束字符0),范 围属性为a, b。Alloc(s)表示buffer实际分配的大小,范围 属性为c, d。 在对所有的变量进行了范围推断之后,再进行安全属性检 查: 如果bd,那么肯定发生。 如果dbca, 那么溢出有可能发生。类型限定模型 Jeffrey foster开发的type qualifier 框架 一个方法: 静态污点分析 扩展 C 的类型系统 例如 tainted char * 是不可信 untrusted string基于依赖图的分析 PDG是是1984年年Ottenstein等人提 出,用于等人提 出,

6、用于intra-procedural的中间 表示形式的中间 表示形式 什么是依赖图? 节点节点-表示语句表示语句 边表示边表示-控制流和数据流控制流和数据流 虚线边表示数据流依赖虚线边表示数据流依赖 实线边表示控制流依赖实线边表示控制流依赖PDG的简单例子PDG的简单例子entry func()sum=sum+ii=i+1printf(sum)while(i 0n5 READ(g)n6 a:= a-gn7 CALL Pn8 RETURN FROM PEXIT Pn9 PRINT(a, g)(11)(2)2pexitmainstartpstartmainexitDeclare g:intProc

7、edure mainBegindeclare x:intread(x)call P(x)EndProcedure P(value a:int)Beginif (a 0) thenread (g)a:= a-g call P(a)print(a, g)fiendCFL的可达性问题 路径 “startmain-n1-n2-startp- n4-exitp-n3”ee(1ee)1” 匹配和可行的 路径 “startmain-n1-n2-startp- n4”ee(1e” 可行的但是不匹配的 路径 “startmain-n1-n2-startp- n4-exitp-n8”ee(1ee)2” 既不是匹配

8、的也不是可行的未来 全方面的可视化 更高程度的自动化 运算的并行化 漏洞可用性的判定 静态分析和动态检测的结合瓶颈分析现象 Fuzzer技术 分析所产生的大量异常-耗时 静态分析 运算量大 NP问题 停机问题 精度与可伸缩性的权衡瓶颈分析原因 异常情况分析 可用性判定需要人的鉴别 需要更好的图形化 需要自动分析 静态分析 需要更高的精度可视化visualizationdevelopment of Exploitprogress of testingvulnerability discovery processexploitation processtesting processdebuggin

9、g and tracing processvulnerability modelsreason for vulerabilitydebug processdata flow并行化J. Wilander 的实验 采用基于依赖图的方法。 Wu-ftpd 2.6-4包含将近20,000行代码,产生130,000 个顶点。 在P4 2.66的机器上需要运行15个多小时。 Balakrishnan的实验自动化 测试过程的自动化 分析过程的自动化自动化的可用性判定 难问题 需要知道权限 权限推断 找出到达给定程序点的所有权限 静态分析 产生溢出的整型变量是否和数组操作有关 算法的精度决定了可用性判定的精度

10、 动态测试 栈覆盖情况分析 寄存器分析 结合静态分析,可以判定出错函数的出错类型补丁的安全性 为什么研究补丁的安全性 结构化比较的原理 改进的比较算法 一些新的比较方法为什么研究补丁的安全性 对抗bindiff技术 对抗0-day攻击5621869389906-00201141487306-0142142323705-047268006412252906-020340414666034137224368606-040启发式 匹配递归相同 入度相同素 数乘积相同字符 串引用唯一性 签名相同 名字补丁补丁分析的例子(FunnyDiff)249249116,2245.0.2600.2180Umpnp

11、mgr.dll1,0001249249116,2245.0.2600.2710Umpnpmgr.dllM05-03918318378,0965.0.2180.1Fontsub.dll9683518320479,6325.0.2195.7071Fontsub.dllMS06-002894894143,3602.81.1117.0Msadco.dll2,5943894896143,3602.81.1124.0Msadco.dllMS06-014249249116,2245.1.2600.2710Umpnpmgr.dll1,06219249268121,3445.1.2600.2744Umpnpmg

12、r.dllMS05-0472,6212,621425,4722001.12.4414.308Msdtcprx.dll10,82842,6212,623426,4962001.12.4414.311Msdtcprx.dllMS06-0201,1681,168326,9285.0.2195.7038Netapi32.dll7,15371,1681,172309,5205.0.2195.7105Netapi32.dllMS06-040运行时间 (ms)发生 改变匹配 个数函数 个数大小版本文件名补丁结构化签名补丁比较的原理 基于控制流 基于偏序关系改进的比较算法 初始化基点的可信 基于模糊聚类 基点传播过程的启发式校验 减少误匹配改进补丁的安全性 减少调试符号文件中dump的函数名字信息 改变函数结构化签名 增加无意义的if-else结构,破坏签名,造成误匹 配 改变引用字符串 对字符串进行编码 素数乘积的变化 做等价指令序列变换 填充随机无意义指令一些新的比较方法 Import/export表函数作为固定点 使用相同变量 RPC接口 相同栈布局 相同参数 具有循环属性The End

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号