C 코드를 전면 rewrite 없이 capability 하드웨어에서 실행할 수 있다
CHERI의 하이브리드 ABI를 사용하면 기존 C 코드를 capability 하드웨어로 점진적으로 이식할 수 있다. 컴파일 방법, 어떤 문제가 발생하는지, 그리고 전체 codebase를 rewrite하지 않고 해결하는 방법을 알아본다。
Rust로 rewrite하기에는 너무 크고, 버퍼 오버플로우에 노출된 채로 두기에는 너무 중요한 C codebase가 있다고 하자. CHERI capability 하드웨어는 CPU 수준에서 메모리 안전성 위반을 잡아낼 수 있지만, 인터넷에서는 CHERI 포인터가 128비트이고 기존…