Visible to the public Twine Stack: A Hybrid Mechanism Achieving Less Cost for Return Address Protection

TitleTwine Stack: A Hybrid Mechanism Achieving Less Cost for Return Address Protection
Publication TypeConference Paper
Year of Publication2021
AuthorsXu, Qizhen, Chen, Liwei, Shi, Gang
Conference Name2021 IEEE 30th Asian Test Symposium (ATS)
Keywordsauthentication, codes, composability, Costs, Hardware, human factors, message authentication code, Programming, pubcrawl, resilience, Resiliency, return oriented programming, Return Oriented Programming (ROP), return-oriented programming, rop attacks, Runtime, Scalability, shadow stack, Table lookup
AbstractReturn-oriented programming(ROP) is a prevalent technique that targets return addresses to hijack control flow. To prevent such attack, researchers mainly focus on either Shadow Stack or MAC-based mechanisms(message code authentication). But Shadow Stack suffers from additional memory overhead and information leakage, while MAC-based mechanisms(e.g. Zipper Stack) impose high runtime overhead for MAC calculations.In this paper, we propose Twine Stack, a hybrid and efficient return address protection mechanism with lightweight hardware extension. It utilizes a tiny hardware shadow stack to realize a new multi-chain Zipper Stack. Specifically, each entry in the shadow stack stores a return address and its MAC in each chain, allowing queueing calculation with just one hash module. At meantime, some return address verifications could be done by comparison with the hardware shadow stack, instead of calculation again. We implemented Twine Stack on RISC-V architecture, and evaluated it on FPGA board. Our experiments show that Twine Stack reduces over 95% hash verifications, and imposes merely 1.38% performance overhead with an area overhead of 974 LUTs and 726 flip flops. The result demonstrates that our hybrid scheme mitigates the drawbacks of each separate scheme.
DOI10.1109/ATS52891.2021.00014
Citation Keyxu_twine_2021