Guarded Control Stack on arm64: Challenges in Enabling Shadow Stack Support...
summary
Adds Arm64 GCS support to CRIU by adapting x86 shadow‑stack work, using a FVP simulator and Fedora Rawhide with GCS patches for testing. Implements dump/restore logic that injects GCS token into sigframe via ptrace/poke and performs a temporary-to-original stack switch, hits kernel mismatches around expected tokens, and fixes parasite trampoline handling. Debugging moves from noisy printk to ftrace with kprobes, and proposes kernel improvements: controllable PRCTL stack size, mremap behavior clarifications, and optional tracepoints.
AI-written summary · about
chapters (11)
- 0:00Introduction and overview
- 1:57What is Guarded Control Stack
- 3:03Setting up the development environment
- 4:30Verifying GCS kernel patches
- 5:57Key kernel functions for GCS
- 7:30Challenges in dumping processes
- 8:56Restoring process and stack switching
- 10:00Debugging with F trace
- 12:31Upstream improvements needed
- 15:02Summary and acknowledgments
- 16:29Q&A session
related talks
54mSecurity Features status update
41mRISC-V Control-Flow Integrity (CFI)
42mDefending the Branch: PAC, BTI & GCS on Linux
01h 34mA Little Introduction to Control Flow Integrity in C++
34mSTACKLEAK: A Long Way to the Linux Kernel Mainline
29mA Technical Deep Dive Into Intel CET Implementation in Linux
45mBreaking and Protecting Linux Kernel Stack
27mgVisor Container on Arm64: Let‘s Talk about Our Progress!
