ESCristiano/BUSted

GitHub: ESCristiano/BUSted

该项目展示了针对 MCU 总线互连的微架构侧信道攻击,提供 DMA 隐蔽信道和智能锁攻击 PoC 的完整代码与实验数据。

Stars: 11 | Forks: 0

# BUSted 本仓库汇总了与论文《BUSted!!! Microarchitectural Side-Channel Attacks on the MCU Bus Interconnect》(已被 IEEE S&P 2024 接收)相关的所有产出物。有关该攻击的更多详细信息,请访问我们的专属[网站](https://bustedattack.com/),所有相关文档均集中于此。 ## 仓库结构 **DMA-Covert-Channel** - `Results`:隐蔽信道测量结果,包括信道容量。 - `src`:隐蔽信道的源代码。 - `capacity.sh`:用于自动化测量信道容量的脚本。 **PoC-TF-M** - `TF-M`:用作 Secure World 固件的 TF-M 源代码 (v1.4)。 - `TF_M_dma_side_channel`([查看](./PoC-TF-M/TF_M_dma_side_channel/README.md)):针对带有 TF-M 的 STM32L552 进行智能锁攻击的源代码。 - `Hardware`:攻击中使用的键盘接线说明([查看](./PoC-TF-M/Hardware/README.md))。 **tools** - `heatmap.py`:用于绘制信道矩阵的工具([示例](./DMA-Covert-Channel/README.md#3---results))。 - `profile.py`:用于从受害者的 trace 中获取修剪后矩阵的工具。 ## 前置条件 ### 1. 安装 Nix 包管理器 开发环境使用 Nix 进行可复现构建。安装 Nix 并将您的用户添加到 `nix-users` 组: ``` sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --no-daemon ``` 将以下内容添加到 `~/.config/nix/nix.conf` 或 `/etc/nix/nix.conf` 中以启用实验性功能: ``` experimental-features = nix-command flakes ``` ### 2. 安装 STM32 烧写工具 下载并安装 [STM32CubeProgrammer](https://www.st.com/en/development-tools/stm32cubeprog.html)(需要 ST 账号)。 验证安装: ``` STM32_Programmer_CLI --version ``` 确保 `STM32_Programmer_CLI` 位于您的 `PATH` 中。 ### 3. 配置 USB 权限(udev 规则) 创建 `/etc/udev/rules.d/99-stlink.rules` 文件,内容如下: ``` # ST-LINK V3 (STM32L5 Discovery / Nucleo) SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374e", MODE="0666", GROUP="plugdev" SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="0666", GROUP="plugdev" ``` 重新加载 udev 规则: ``` sudo udevadm control --reload-rules sudo udevadm trigger ``` ## 隐蔽信道 本仓库包含针对 11 款已测试 MCU 的隐蔽信道[数据](./DMA-Covert-Channel),以及来自智能锁应用程序(我们的受害者)的 [trace](./tools/data.txt)。我们还提供了必要的[工具](./tools/README.md),以复现实验并支持进一步的研究。 信道容量是使用 leakiEst 工具测量的([致谢](#credits))。在 [DMA-Covert-Channel](./DMA-Covert-Channel/README.md) 文件夹中,您会找到 `capacity.sh` 脚本,该脚本可自动化执行工具并提取信道容量测量结果。 ## BUSted 攻击 ### 1. 进入开发环境 ``` nix develop ``` 这提供了一个包含所有必需依赖项(ARM 工具链、CMake、Python 包等)的可复现 shell。 ### 2. 构建和部署 ``` # 转到 TF_M_dma_side_channel cd ./PoC-TF-M/TF_M_dma_side_channel # 配置 build system ./0_setup_code.sh # 编译 Secure 和 Non-Secure images ./1_compile.sh # 部署到目标板 ./2_deploy.sh ``` ## 致谢 信道容量是使用由伯明翰大学研究人员开发的 leakiEst 工具进行测量的。如需了解更多信息,请访问 [leakiEst 网站](https://www.cs.bham.ac.uk/research/projects/infotools/leakiest/#:~:text=leakiEst%20%E2%80%94%20Tool%20for%20%22Leaking%20information%20Estimation%22.,insecure%20system%20with%20a%20very%20small%20information)。 ## 引用论文 如果您觉得这些信息有用,请考虑引用我们的工作。 ``` @INPROCEEDINGS{BUSted, author = {C. Rodrigues and D. Oliveira and S. Pinto}, title = {BUSted!!! Microarchitectural Side-Channel Attacks on the MCU Bus Interconnect}, booktitle = {2024 IEEE Symposium on Security and Privacy (SP)}, year = {2024} } ```
标签:Bash脚本, DMA covert-channel, STM32, 侧信道攻击, 客户端加密, 嵌入式系统, 微控制器, 硬件安全, 逆向工具