freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Fuzzable:一款基于静态分析实现的可模糊测试的自动化目标识别工具
2023-01-15 09:24:56
所属地 广西

关于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 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>

报告生成样例

许可证协议

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

项目地址

Fuzzable:【GitHub传送门

参考资料

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

# 模糊测试 # 启发式扫描 # 静态分析 # 模糊测试工具
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录