nwf / cheri-exercises

Learning exercises for CHERI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CHERI Exercises and Missions

Robert N. M. Watson (University of Cambridge), Brooks Davis (SRI International), Nathaniel Wesley Filardo (Microsoft Research), Jessica Clarke (University of Cambridge), John Baldwin (Ararat River Consulting) and Konrad Witaszczyk (University of Cambridge).

This repository contains a series of skills development exercises for CHERI, aimed at familiarizing C/C++ programmers with the nuances of CHERI C. Thereafter, it contains more open-ended adversarial missions, specifically intended to be of interest to red teams.

Workshop at ASPLOS 2022

The chapters of the book have been specifically reviewed and prepared for the CHERI Workshop at ASPLOS 2022. If you are participating in the workshop, you should consider chapters highlighted with the icon 🍒 to prepare yourself for the workshop:

  • Before the workshop, you should read subsections from the Introduction chapter. We recommend to use the CHERI Software Release with Docker if it is your first experience with CHERI. Make sure to follow instructions for CHERI-RISC-V, not Morello.
  • During the workshop, we will work with subsections from the ASPLOS'22 Exercises chapter.

The rest of the chapters are included in this book to provide you additional content to study CHERI and customise your environment, as your time permits.

Acknowledgements

The authors gratefully acknowledge Reuben Broadfoot, Lawrence Esswood, Brett Gutstein, Joe Kiniry, Alex Richardson, Austin Roach, and Daniel Zimmerman for their feedback and support in developing these exercises.

Some portions of this document remain a work-in-progress. Feedback and contributions are welcomed. Please see our GitHub Repository for the source code and an issue tracker.

Building

Building the book from the Markdown sources requires mdBook. Once installed, mdbook build will build the static HTML files in the book/ directory, whilst mdbook serve will build and serve them at http://localhost:3000. Please refer to the mdBook documentation for futher options.

About

Learning exercises for CHERI

License:Other


Languages

Language:C 87.2%Language:Shell 6.5%Language:C++ 5.1%Language:CSS 1.1%