关于SyzBridge
SyzBridge是一款功能强大的Linux系统安全研究工具,它能够将 Linux 上游 PoC 适配到下游发行版,并提供了大量丰富的接口,允许广大研究人员在Linux系统上学习、分析和研究Syzbot漏洞。
可利用性评估是网络安全领域的热门话题。大多数可利用性评估工具主要关注 Linux 上游内核,这意味着它们依赖于原始的上游 PoC。然而,只有一小部分(19%)的上游 PoC 可以在下游发行版上触发相同的错误。SyzBridge 提供了一种弥合上游和下游之间差距的功能,将上游 PoC 适配到下游,为可利用性评估工具提供了更多可能性。
功能介绍
1、安全缺陷复现(上游/下游);
2、虚拟机管理;
3、内核跟踪;
4、集成了其他基于Syzboot的工具-SyzScope;
工具架构
工具要求
pandas==1.1.5
angr==9.0.5405
pwntools==4.11.0
console==0.9907
toposort==1.7
pytz==2022.1
slack-sdk==3.16.0
beautifulsoup4==4.11.1
requests==2.27.1
google-api-core==2.7.1
google-api-python-client==2.39.0
google-auth==2.6.0
google-auth-httplib2==0.1.0
google-auth-oauthlib==0.5.0
googleapis-common-protos==1.55.0
protobuf==3.19.4
pygsheets==2.0.5
rich==12.5.1
filelock==3.0.12
importlib-resources==6.1.1
工具安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
接下来,广大研究人员可以运行下列命令完成工具的下载与配置:
sudo apt-get update sudo apt-get -y install git python3 python3-pip python3-venv sudo git clone --recurse-submodules https://github.com/seclab-ucr/SyzBridge.git cd SyzBridge/ python3 -m venv venv . venv/bin/activate python3 -m pip install --upgrade pip pip3 install -r requirements.txt
运行下列命令安装工具所需的代码包并编译关键工具:
python3 syzbridge build --all
工具使用
首先,我们需要设置好SyzBridge的配置文件,下面给出的是一个配置文件模板:
{ "kernel": { "Upstream":{ # The upstream image and key are generated by syzkaller create-image.sh # https://github.com/google/syzkaller/blob/master/tools/create-image.sh "ssh_key":"/projects/SyzBridge/tools/img/stretch.img.key", "distro_name":"upstream", "distro_image":"/projects/SyzBridge/tools/img/stretch.img", "type": "upstream", "normal_user": "etenal", "root_user": "root" }, "Ubuntu-Jammy-22.04":{ # Refer to "Deploy Distro Image" in the wiki "distro_image":"/vendors/ubuntu/kernel-jammy-22.04-Apr_21_2022/ubuntu-snapshot.img", "ssh_key":"/.ssh/syzbridge", "distro_src":"/vendors/ubuntu/kernel-jammy-22.04-Apr_21_2022/ubuntu-jammy", "distro_name":"ubuntu-22.04", "distro_code_name": "jammy", "distro_version": "5.15.25", # Effective cycle use to pick Syzbot bugs based on their reported date "effective_cycle_start": "Apr 21 2022", "effective_cycle_end": "", "type": "distro", "normal_user": "etenal", "root_user": "root" } }, "plugin": { "GoogleSheets": { "credential": "/tmp/google_sheet.json", "private_sheet": "ndss_experiment-ubuntu", "main_sheet": "ndss_experiment" }, "Syzscope": { "timeout": 14400, "max_round": 3, "repro_mode": "c" }, "TraceAnalysis": { "timeout": 600 }, "RawBugReproduce": { "timeout": 300 }, "BugReproduce": { "timeout": 300, "skip_regular_reproduce": false }, "SyzFeatureMinimize": { "timeout": 300, "attempt": 3 } } }
通过哈希获取指定漏洞信息:
python3 syzbridge syzbot --proj test --config ./template.cfg --get 380acd1f7d59c28809f18bb577d645aab34d23b0
通过关键字和内核获取漏洞信息:
python3 syzbridge syzbot --proj test --config ./template.cfg --filter-by-kernel=upstream --key=KASAN --filter-by-c-prog
获取在发行版结束日期之前报告的漏洞信息:
python3 syzbridge syzbot --proj test --config ./template.cfg --filter-by-distro-cycle-end
SyzBridge 命令
usage: syzbridge [-h] {test,empty,run,image,bitcode,build,poc,syzbot,case,service,fuzz} ... positional arguments: {test,empty,run,image,bitcode,build,poc,syzbot,case,service,validateTrace,fuzz} test 模块化测试 (仅调试) empty 创建一个空项目 run 运行分析 image 构建Linux发行版镜像 [ubuntu|fedora|debian] bitcode 构建内核bitcode以执行静态分析 build 构建关键组件 poc 构建PoC syzbot 通过哈希或包含多个哈希的文件获取测试样例 case 获取测试样例信息 service 持久化运行syzbridge fuzz 执行模糊测试 optional arguments: -h, --help 显示工具帮助信息和退出
工具运行样例
启用某些插件(SyzFeatureMinimize、RawBugReproduce、TraceAnalysis、ModulesAnalysis、BugReproducer):
python3 syzbridge run --proj test --config ./template.cfg --syz-feature-minimize --raw-bug-reproduce --trace-analysis --modules-analysis --bug-reproduce
项目地址
SyzBridge:【GitHub传送门】
参考资料
https://github.com/plummm/SyzScope
https://github.com/seclab-ucr/SyzBridge/blob/master/SyzBridge-Camera_Ready.pdf
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)