0%

onefuzz 简单分析

deploy agent (部署)

1
2
3
unzip onefuzz-deployment-$VERSION.zip
pip install -r requirements.txt
./deploy.py $REGION $RESOURCE_GROUP_NAME $ONEFUZZ_INSTANCE_NAME $CONTACT_EMAIL_ADDRESS

Azure CLI logged in 后,执行上面命令可以在 Azure 上部署 agent

需要订阅 Azure, 可能要收费

安装 onefuzz CLI

1
2
3
wget https://github.com/microsoft/onefuzz/releases/download/1.0.0/onefuzz-1.0.0-py3-none-any.whl
wget https://github.com/microsoft/onefuzz/releases/download/1.0.0/onefuzztypes-1.0.0-py3-none-any.whl
pip install ./onefuzz*.whl

执行 fuzz 任务

1
onefuzz template libfuzzer basic my-project my-target build-1 my-pool --target_exe fuzz.exe

支持的平台

  1. Python 的 CLI 客户端,需要 Python 3.7 +
  2. Azure 的 OS image 支持 Windows 10 和 Ubuntu Server 18.04
  3. libfuzzer 支持 llvm 8+ (windows, Linux x86/x64), MSVC 16.8+ (支持 ASAN)

支持的 Fuzz 工具

onefuzz 中集成了几个 fuzz 工具: afl afl++ libfuzzer 和 radasma

OneFuzz 的主要工作

主要工作是利用微软的 Azure 云平台进行 fuzz,实现了 Python 版本的接口,可以远程直接操作 Azure 的资源进行 fuzz

api 接口: api-service
agent: agent

项目进展情况

onefuzz 项目主要是一个 fuzz 框架,项目成熟度不高和 Google 的 ClusterFuzz 相比有较大差距。Fuzz 过程也是简单调用fuzz 工具,没有处理特殊情况。文档完备程度也不高,比较感兴趣的 MSVC 和 libfuzzer、ASAN 的集成也没有看到具体代码。另外和微软的 Azrue 深度绑定,用起来也不是太方便,后续将继续关注此项目的进展情况。

一些有用的链接

https://github.com/microsoft/onefuzz/blob/main/docs/getting-started.md
https://github.com/microsoft/onefuzz/blob/main/docs/supported-platforms.md

在线演示

launching-job