SyzBridge:一款提供了丰富接口的Linux系统安全研究工具

admin 2024年9月2日23:31:13评论21 views字数 3494阅读11分38秒阅读模式

SyzBridge:一款提供了丰富接口的Linux系统安全研究工具

关于SyzBridge

SyzBridge是一款功能强大的Linux系统安全研究工具,它能够将 Linux 上游 PoC 适配到下游发行版,并提供了大量丰富的接口,允许广大研究人员在Linux系统上学习、分析和研究Syzbot漏洞。

SyzBridge:一款提供了丰富接口的Linux系统安全研究工具

可利用性评估是网络安全领域的热门话题。大多数可利用性评估工具主要关注 Linux 上游内核,这意味着它们依赖于原始的上游 PoC。然而,只有一小部分(19%)的上游 PoC 可以在下游发行版上触发相同的错误。SyzBridge 提供了一种弥合上游和下游之间差距的功能,将上游 PoC 适配到下游,为可利用性评估工具提供了更多可能性。

功能介绍

1、安全缺陷复现(上游/下游);

2、虚拟机管理;

3、内核跟踪;

4、集成了其他基于Syzboot的工具-SyzScope;

工具架构

SyzBridge:一款提供了丰富接口的Linux系统安全研究工具

工具要求

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 updatesudo apt-get -y install git python3 python3-pip python3-venv sudogit clone --recurse-submodules https://github.com/seclab-ucr/SyzBridge.gitcd SyzBridge/python3 -m venv venv. venv/bin/activatepython3 -m pip install --upgrade pippip3 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

https://github.com/seclab-ucr/SyzBridge

原文始发于微信公众号(FreeBuf):SyzBridge:一款提供了丰富接口的Linux系统安全研究工具

 

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月2日23:31:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SyzBridge:一款提供了丰富接口的Linux系统安全研究工具https://cn-sec.com/archives/3120948.html

发表评论

匿名网友 填写信息