Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具

admin 2023年1月29日13:30:35评论31 views字数 2364阅读7分52秒阅读模式
Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具


 关于Fuzzable 


对于需要对软件进行安全评估的漏洞研究人员来说,通常会使用AFL++和libFuzzer这样的强大工具来增强基于覆盖率的模糊测试。这一点非常重要,因为它可以自动执行错误查找过程,并快速发现和利用目标中存在的安全问题。然而,遇到大型复杂的代码库或闭源二进制文件时,研究人员必须花时间手动审查并对它们进行逆向工程分析,以确定目标可以进行模糊测试。

Fuzzable是一款基于静态分析实现的可模糊测试的自动化目标识别工具,该工具基于Python和C/C++开发,可帮助漏洞研究人员识别可用于模糊测试的功能目标。这是通过应用几种基于静态分析的启发式方法来确定软件中的风险行为以及执行这些行为的功能来实现的。然后,研究人员可以利用该框架生成基本的模糊测试增强模板,然后可以使用这些模板来查找漏洞,或者将其集成为连续模糊化管道的一部分,例如谷歌的oss fuzz项目。

除了作为独立工具运行外,Fuzzable还针对Binary Ninja反汇编程序制作了插件部分。


 功能介绍 


1、支持对代码进行分析(使用AngrBinaryNinjatree-sister实现);

2、支持以独立命令行工具或Binary Ninja插件执行静态分析;

3、利用生成的工具组件快速执行模糊测试任务;


 工具安装 


命令行(独立工具)


如果你安装了Binary Ninja,请确保安装了正确的API:

$ python3 /Applications/Binary Ninja.app/Contents/Resources/scripts/install_api.py

(向右滑动,查看更多)


接下来,我们可以使用pip看命令来安装Fuzzable:

$ pip install fuzzable


手动/开发构建


我们使用了poetry来实现依赖管理和项目构建,如需进行手动构建,则需要使用下列命令克隆项目代码以及第三方模块:

$ git clone --recursive https://github.com/ex0dus-0x/fuzzable

(向右滑动,查看更多)


接下来,切换到项目目录中,并使用下列命令完成项目的手动构建:

$ cd fuzzable/


# 不使用poetry
$ pip install .


# 使用poetry
$ poetry install


# 使用poetry 和开发virtualenv环境
$ poetry shell

(向右滑动,查看更多)


现在,我们就可以使用该工具来分析二进制文件或源代码了:

# 分析一个单独的共享对象库代码
$ fuzzable analyze examples/binaries/libbasic.so


# 分析一个单独的C源代码文件
$ fuzzable analyze examples/source/libbasic.c


# 分析一个包含多个C/C++文件和头文件的工作空间
$ fuzzable analyze examples/source/source_bundle/

(向右滑动,查看更多)


Binary Ninja插件


Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具


 工具使用 


静态分析启发式



$ fuzzable analyze <TARGET> --score-weights=0.2,0.2,0.2,0.2,0.2

(向右滑动,查看更多)


分析过滤


$ fuzzable analyze --list-ignored <TARGET>

(向右滑动,查看更多)


报告生成


$ fuzzable analyze --export=report.json <TARGET>

(向右滑动,查看更多)


 报告生成样例 


Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具


 许可证协议 


本项目的开发与发布遵循MIT开源许可证协议。


 项目地址 


Fuzzable:https://github.com/ex0dus-0x/fuzzable


参考资料

https://github.com/google/oss-fuzz
https://binary.ninja/
https://codemuch.tech/2021/06/07/fuzzabble/
https://www.blackhat.com/us-22/arsenal/schedule/index.html#automating-fuzzable-target-discovery-with-static-analysis-26726
https://angr.io/
https://tree-sitter.github.io/tree-sitter/
https://github.com/angr/angr
https://python-poetry.org/
https://scikit-criteria.quatrope.org/en/latest/tutorial/quickstart.html
https://resources.sei.cmu.edu/asset_files/WhitePaper/2010_019_001_53555.pdf
https://github.com/ex0dus-0x/fuzzable/blob/main/templates/linux_source_harness.cpp
https://github.com/ex0dus-0x/fuzzable/blob/main/templates/linux_closed_source_harness.cpp
https://github.com/mirrorer/afl/blob/master/qemu_mode/README.qemu
https://lief-project.github.io/
https://github.com/trailofbits/deepstate

精彩推荐







Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具

Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具

原文始发于微信公众号(FreeBuf):Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月29日13:30:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具http://cn-sec.com/archives/1527339.html

发表评论

匿名网友 填写信息