| 关键词: fuzzing 分析 测试 fuzzer 静态 目标 函数 程序 输入 技术 |
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都是基于这两个框架实现的 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|