kasper
1.0.0
我们推出了 Kasper,一个用于 Linux 内核的推测执行小工具扫描器。 Kasper 使用污点分析策略来模拟能够利用瞬态路径上的任意软件/硬件漏洞来控制数据(例如,通过内存按摩或 LVI)、访问机密(例如,通过越界或使用后使用)的攻击者。免费访问),并泄露这些秘密(例如,通过基于缓存、基于MDS或基于端口争用的隐蔽通道)。尽管内核针对瞬时执行攻击进行了严格的加固,但 Kasper 发现数百个小工具尚未得到缓解。您可以在这里找到全文。
安装依赖项,包括 go-task 作为任务运行程序:
sudo apt install build-essential clang-11 lld-11 libelf-dev qemu-system-x86 bison flex golang libssl-dev cmake debootstrap python3-pexpect socat ninja-build ccache
sudo sh -c "$(curl -ssL https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin
初始化/更新 git 子模块(第一次运行时需要一段时间):
task update
创建一个 initramfs 和一个与 syzkaller 一起使用的磁盘映像:
task initramfs:create
task syzkaller:create-image
在 Kasper 支持下配置和构建 LLVM:
task llvm:config llvm:build
在 Kasper 支持下构建 syzkaller:
警告:我们使用的 syzkaller 版本仅适用于 golang 1.15(我们使用的是 golang 1.15.15)!
task syzkaller:build
配置并构建 Kasper 检测的 Linux 内核:
task kernel:config build kernel:bzImage
测试检测后的内核是否正确运行:
task qemu:test
对检测后的内核进行模糊测试:
task syzkaller:run-nobench
要聚合小工具并运行评估,请查看 kasper-results。