漏洞自动挖掘技术

漏洞发掘技术主要包括:

1黑盒自动测试

2静态自动分析

3补丁比较

4动态调试污点检查

 

在这个领域,人的经验还是最重要的

A适当的漏洞数据源--〉B知识发现或者数据挖掘--〉C漏洞预测模型--〉D漏洞自动发掘模型

 

A漏洞样本一定要合适

C漏洞的共性,软件的什莫部分最有可能存在漏洞?软件在什莫情况下最有可能触发漏洞?

 

下面逐个分析

 

1黑盒自动测试

无法真正理解程序的流程

可否借鉴一些软件行为学的东西?模拟非正常的软件行为

需要人工介入?

 

2基于源码的静态分析

定位为辅助工具

FlowFinder/ITS4支持C/C++语言

RATS支持C/C++/Perl/PHP/Python语言

可检查缓冲区溢出、格式化字符串、竞争条件、PATH欺骗等安全问题

这种方法已经有成熟的商业软件

 

3补丁比较

源码补丁比较(开源)

二进制文件比较

这种方法一般用于探究已知漏洞的位置,用于编写漏洞利用代码

我觉得这种方法应该算是漏洞分析而非漏洞发掘

但是补丁已经发布,再写漏洞利用代码又有何用?

 

4基于IDA Pro的脚本挖掘技术

利用IDC编写漏洞发掘脚本 (Halvar Flake 2001年 BlackHat 演讲)

动态调试污点跟踪/检查是如何实现的?

你可能感兴趣的:(闲话安全)