SIFT: a low-overhead dynamic information flow tracking architecture for SMT processors
SIFT: a low-overhead dynamic information flow tracking architecture for SMT processors
复制标题
SIFT:用于 SMT 处理器的低开销动态信息流跟踪架构
DOI:
--
复制
发表时间:
2011
期刊:
影响因子:
--
通讯作者:
Tameesh Suri
中科院分区:
文献类型:
--
作者:
Meltem Ozsoy;D. Ponomarev;N. Abu;Tameesh Suri
Dynamic Information Flow Tracking (DIFT) is a powerful technique that can protect unmodified binaries from a broad range of vulnerabilities such as buffer overflow and code injection attacks. Software DIFT implementations incur very high performance overhead, while comprehensive hardware implementations add substantial complexity to the microarchitecture, making it unlikely for chip manufacturers to adopt them. In this paper, we propose SIFT (SMT-based DIFT), where a separate thread performing taint propagation and policy checking is executed in a spare context of an SMT processor. However, the instructions for the checking thread are generated in hardware using self-contained off-the-critical path logic at the commit stage of the pipeline. We investigate several optimizations to the base design including: (1) Prefetching of the taint data from shadow memory when the corresponding data is accessed by the primary thread; (2) Optimizing the generation of the taint instructions to remove unneeded instructions. Together, these optimizations reduce the performance penalty of SIFT to 26% on SPEC CPU 2006 benchmarks--much lower than the overhead of previously proposed software-based DIFT schemes. To demonstrate the feasibility of SIFT, we design and synthesize a core with SIFT logic and show that the area overhead of SIFT is only 4.5% and that instruction generation can be performed in one additional cycle at commit time.