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。