Adversarial CHERI Exercises and Missions
1.
Introduction
1.1.
Background reading
1.2.
Cross compilation and execution
1.2.1.
Helper scripts
2.
Skills Development Exercises
2.1.
Compile and run RISC-V and CHERI-RISC-V programs
2.1.1.
Answers
2.2.
Disassemble and debug RISC-V and CHERI-RISC-V programs
2.2.1.
Answers
2.3.
Demonstrate CHERI Tag Protection
2.3.1.
Answers
2.4.
Exercise an inter-object stack buffer overflow
2.4.1.
Answers
2.5.
Exercise an inter-object global buffer overflow
2.5.1.
Answers
2.6.
Explore subobject bounds
2.6.1.
Answers
2.7.
Corrupt a control-flow pointer using a subobject buffer overflow
2.7.1.
Answers
2.8.
Exercise integer-pointer type confusion bug
2.8.1.
Answers
2.9.
Extending Heap Allocators for CHERI
2.9.1.
Answers
3.
Focused Adversarial Missions
3.1.
Exploiting a buffer overflow to manipulate control flow
3.2.
Exploiting an uninitialized stack frame to manipulate control flow
4.
Appendix
Light
Rust
Coal
Navy
Ayu
Adversarial CHERI Exercises and Missions on CHERI-seL4 microkernel and CHERI-Microkit
Focused Adversarial Missions