fuzzing技术。其中二进制比较技术主要用于漏洞补丁分析,对于未知漏洞作用不大,在
1.1 手工测试
Web应用程序、浏览器及其他需要用户交互的程序。
1.2 静态分析
。静态分析重点检查函数调用及返回状态,特别是未进行边界检查或边界检查不正确的函数调用(如strcpy,strcat,snpfinf等可能造成缓冲区溢出的函数);由用户提供输入的函数;在用户缓冲区进行指针运算的程序等。
strcpy、strcat等。静态分析主要针对程序的高级语言代码或汇编代码,在静态分析过程中,可以将函数调用和可疑结构特征化,根据特征在目标程序的代码中搜索匹配,实现自动化。Splint、Bugscam就是漏洞静态分析工具,这些工具虽然都存在较高的误报率和错报率,但仍然在很大程度上减少了人工分析的工作量。
I.3 运行时分析技术
SoftIce、OllyDbg、WinDbg等
1.4 Fuzzing技术
Fuzzing是一种基于缺陷注入的自动软件测试技术。通过编写fuzzer工具向目标程序提供某种形式的输入并观察其响应来发现问题,这种输入可以是完全随机的或精心构造的。
Fuzzing测试通常以大小相关的部分、字符串、标志字符串开始或结束的二进制块等为重点,使用边界值附近的值对目标进行测试。
fuzzing技术 :dumb fuzzing 这种测试无需了解协议或文件本身格式,通过提供完全随机的输入或简单改变某些字节去发现问题。这种方法实现起来较简单,容易快速触发错误,但它的完全随机性会导致产生大量无效的输入或格式。Intelligent fuzzing 研究目标应用程序的协议或文件格式、功能配置,了解各类漏洞的成因,有目的地编写fuzzer。编写有效的fuzzer需要花费时间,但能够对某些感兴趣的部分集中测试,因此更有效。
fuzzing的过程中,也可能存在各种问题H]:校验和、加密、压缩等措施会大大增加fuzzer工具的编写难度;编写智能化的fuzzer依赖目标程序的协议文档,因此
fuzzing测试的效果,等等。Fuzzing测试过程中需要采取措施记录目标的状态,通常通过13志的方式记录下各种信息,以便后续分析。目前比较有名的fuzzer工具有SPIKE和Peach,它们提供了对许多协议接口的支持,现有的许多fuzzer都是基于这两个框架实现的
本篇文章来源于 黑客基地-全球最大的中文黑客站
原文链接:
阅读(1397) | 评论(0) | 转发(0) |