FaultLine
FaultLine is a software-based fault injection attack vector. It uses delay-lines (located in memory controllers) as memory transfer glitch injectors.
Install / Use
/learn @Remote-HWA/FaultLineREADME
FaultLine: Software-based Fault Injection on Memory Transfers
FaultLine is a software-based fault injection attack vector. It uses delay-lines (located in memory controllers) as memory transfer glitch injectors.
Content
This repository provides:
- The source code required to reproduce the FaultLine Baremetal and Linux attacks.
- A tutorial to reproduce the baremetal experiments.
Baremetal Requirements
- A Zynq-7000 dev board.
- Xilinx Vivado + Vitis Software Suite
Baremetal tutorial
- Launch Vivado and create a platform project for your board (xsa file).
- Launch Vitis and create a platform project (name: FaultLineHP) using the xsa file generated.
- Double click on the platform.spr file and modify the domains to obtain one domain per CPU core.
- Create an empty application project for the adversary (name: adversary_cpu0) and select processor ps7_cortexa9_0
- Create an empty application project for the victim (name: victim_cpu1) and select processor ps7_cortexa9_1
- Add the content provided here in the adversary_cpu0 project.
- Add the content provided here in the victim_cpu1 project.
- For each project, add its include paths to the Directories in Properties->Settings->Directories
- Compile the victim and adversary projects.
- Go to Project->Run Configurations, Right click on Single Application Debug and select New configuration.
- Go to the Application tab and check ps7_cortexa9_1 so both projects will be launched simultenaously in different cores.
- Select Apply.
- Power up the board, open a serial terminal and Run the configuration. The welcome prompt should appear (if you successfully setup the project you should see a message from each core. CPU#0 and CPU#1)
- Enter
calibto find the faulty delay-line values - Enter
piret,PFAorrtestto reproduce the attacks presented in the paper.
Linux Requirements
- A Zynq-7000 dev board.
- A micro SD card.
- Linux distribution (linaro-jessie-developer-20161117-32).
Linux Tutorial
To do
Related Skills
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
