当前位置: 首页 > news >正文

注册账号自建网站今日军事新闻视频

注册账号自建网站,今日军事新闻视频,用户管理系统admin,两学一做教育纪实评价系统网站关于Buzzer Buzzer是一款功能强大的模糊测试工具链,该工具基于Go语言开发,可以帮助广大研究人员简单高效地开发针对eBPF的模糊测试策略。 功能介绍 下面给出的是当前版本的Buzzer整体架构: 元素解析: 1、ControlUnit&#xff1a…

关于Buzzer

Buzzer是一款功能强大的模糊测试工具链,该工具基于Go语言开发,可以帮助广大研究人员简单高效地开发针对eBPF的模糊测试策略。

功能介绍

下面给出的是当前版本的Buzzer整体架构:

元素解析:

1、ControlUnit:通过命令行标志--fuzzing_strategy启动指定的FuzzingStrategy;

2、eBPFGenerationLibrary:包含生成 eBPF 程序的逻辑;

3、ExecutionUnit:FFI 层与 eBPF Syscall 交互并加载/执行 eBPF 程序;

4、FuzzingStrategy:所有策略必须实现的接口;

模糊测试策略是eBPF 程序的生成方式和错误检测方式的结合。

目前,Buzzer 有三种可能的策略:

1、PointerArithmetic:生成随机 ALU 和 JMP 操作,然后尝试对映射指针进行指针算术运算,并写入它。如果写入的值在用户空间不可见,则假设我们写入了 OOB;

2、VerifierLogParser:生成随机 ALU 操作并解析 eBPF 验证程序日志的输出。在程序运行时,寄存器的值会被存储,然后与验证程序通过日志公开的假设进行比较;

3、Playground:这里没有进行真正的模糊测试,此策略只是为了帮助试验 eBPF;

Buzzer 还具有一个集成的指标服务器,能够呈现覆盖率信息,该组件的架构如下所示:

每当ExecutorUnit验证一个程序时,都会将下列信息传递给MetricsUnit:

1、程序是否通过验证;

2、kcov 收集的任何覆盖信息(如果启用);

MetricsUnit税后便会处理这些信息,然后将 kcov 地址解析为代码位置,并在 Web 界面中显示这些信息。

工具要求

Go运行时环境

bazel

clang

工具安装

由于该工具基于Go语言开发,因此我们首先需要在本地设备上安装并配置好最新版本的Go运行时环境。然后按照步骤安装好bazel和clang,并配置好正确的CC和CXX环境变量:

export CC=clangexport CXX=clang++

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/google/buzzer.git

然后切换到项目目录中,运行Buzzer:

cd buzzerbazel build :buzzer

以root权限运行Buzzer:

sudo ./bazel-bin/buzzer_/buzzer

或使用CAP_BPF运行Buzzer:

sudo setcap CAP_BPF=eip bazel-bin/buzzer_/buzzer./bazel-bin/buzzer_/buzzer

工具使用

按照syzkaller 的说明设置运行 Debian 映像的虚拟机,请确保在编译 Linux 内核时启用 BPF。

生成bullseye镜像:

./create-image.sh -d bullseye

运行syzkaller生成的虚拟机:

qemu-system-x86_64 \-m 20G \-smp 2 \-cpu host \-kernel PATH_TO_KERNEL_REPO/arch/x86/boot/bzImage \-append "console=ttyS0 root=/dev/sda nokaslr earlyprintk=serial net.ifnames=0" \-drive file=PATH_TO_DEBIAN_IMAGE/bullseye.img,format=raw \-net user,host=10.0.2.10,hostfwd=tcp:127.0.0.1:10022-:22,hostfwd=tcp:0.0.0.0:8080-:8080 \-net nic,model=e1000 \-enable-kvm \-nographic \-pidfile vm.pid \2>&1 | tee vm.log

将vmlinux镜像传输到VM中:

scp -i PATH_TO_DEBIAN_IMAGE/bullseye.id_rsa -P 10022 PATH_TO_KERNEL_REPO/vmlinux root@localhost:~/

传输到您想要覆盖的源文件:

mkdir /root/sourceFiles

然后将您想要 fuzzer 可视化覆盖信息的任何源文件(例如验证器源代码)传输到该目录中,在运行:

scp -i PATH_TO_DEBIAN_IMAGE/bullseye.id_rsa -P 10022 PATH_TO_KERNEL_REPO/kernel/bpf/verifier.c  root@localhost:~/sourceFiles

运行Buzzer并访问指标服务器:

scp -i PATH_TO_DEBIAN_IMAGE/bullseye.id_rsa -P 10022 PATH_TO_BUZZER  root@localhost:~/./buzzer

此时如果你在主机上访问 localhost:8080,你应该能够看到指标服务器:

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可协议。

项目地址

Buzzer:【GitHub传送门】

参考资料

The Go Programming Language

https://bazel.build/

Clang C Language Family Frontend for LLVM

bpf: Fix incorrect verifier pruning due to missing register precision taints - kernel/git/torvalds/linux.git - Linux kernel source tree

Linux Kernel: Vulnerability in the eBPF verifier register limit tracking · Advisory · google/security-research · GitHub

http://www.15wanjia.com/news/16822.html

相关文章:

  • 网站如何做seo的免费的html网站
  • 网站建设单位是什么意思网站关键词排名快速提升
  • 人社网站和微信平台建设方案b站推广网站
  • 中国室内设计师联盟网站网络营销推广公司
  • 论坛网站建设余姚网站制作公司
  • 温州网站建设服务中心搜索引擎营销的手段包括
  • 搭建网站的免费程序市场推广方案模板
  • 岑巩网站建设南昌网优化seo公司
  • 镇江建站推广报价广告推广接单平台
  • 日本乐天购物网站百度 营销推广费用
  • 中山网站建设文化2023年最新新闻简短摘抄
  • 四川遂宁做网站的公司seo推广优化多少钱
  • 用网站做宣传的方案互联网营销推广方案
  • 制作什么网站做毕业设计怎么在百度发帖
  • 网站制作前需要进行规划设计搜索引擎的工作原理是什么?
  • 做餐饮的餐具网站有哪些seo技术自学
  • 想看外国的网站怎么做91关键词排名
  • 山东省建设教育集团网站做一个官网要多少钱
  • 无网站无产品链接如何做SOHO怎样做网站推广
  • 网站开发工程师绩效兰州seo优化
  • 东莞石龙网站建设莞网站制作潍坊住房公积金
  • 做网站的费用怎么做账海豹直播nba
  • 低成本做网站关键词查询爱站网
  • 无障碍网站建设网站关键词优化报价
  • 品牌网站建设 优帮云佛山网站设计实力乐云seo
  • 企业网站源码搜一品资源百度百科推广费用
  • 个性化定制客户和网站建设成品网站源码1688免费推荐
  • 网站怎么做防盗武汉做seo
  • 在线简历模板seo外包优化公司
  • 镇江网站建设优化站长工具大全集