190 likes | 314 Views
This paper investigates the parallelization of security checks to enhance performance on multicore systems. Traditional security check methods, described as lifeguards, are often slow, executing significant overhead. The Speck (Speculative Error Checking) technique decouples security checks from application execution, allowing them to run concurrently on idle cores. By employing OS-level support for speculative execution and rollback, this method optimizes both process memory analysis and system call assessments, leading to substantial speedups in security checks while maintaining system integrity.
E N D
Parallelizing Security Checks on Commodity Hardware E.B. Nightingale, D. Peek, P.M. Chen and J. Flinn U Michigan
Overview • Introduction • Speculator • Design • Parallel lifeguards • Evaluation • Conclusion
Introduction • Security checkers (lifeguards) are too slow (~30X with taintcheck) • Multi core systems are increasingly popular • Can we exploit idle cores to improve lifeguard performance • Speck (Speculative Error ChecKing), parallelizes lifeguards to improve performance
Introduction (2) • Security checks are decoupled from application execution • Security checks are executed in parallel on separate cores • Speculator for speculative execution and rollback
Speculator • OS level support for speculative execution and rollback • Checkpoint process state before system call execution • Use buffering to hide side effects (e.g I/O) of speculative execution • Block process if cannot hide side effects • Rollback to checkpoint state if necessary
Speck Design • Fork instrumented clones of monitored application to run on other cores • Security checks run on instrumented clones • OS logging to handle non deterministic execution e.g signal delivery, system call results • Speculator for speculative execution and rollback of system call
Parallel Lifeguards • Process Memory Analysis • System Call Analysis • Taint Analysis
Parallel Process Memory Analysis • Security violations can be detected in memory • Decrypted virus image • Leaked data • Check each store location for pattern • All checks are independent • Easy to parallelize
Parallel System Call Analysis • Analyze program behavior using system calls • Check system call parameters • Check system call history • Checks are independent • Easy to parallelize
Parallel Taint Analysis • Detect critical use of malicious input • Track propagation of input • Pin based sequential taintcheck is 18X • Checking is inherently sequential and hard to parallelize • Log based approach to parallelize • Parallel log generation by instrumented clones (workers) • Sequential log processing by master
Parallel Taint Analysis Workers • Generate log segments from replayed execution • Eliminate redundant log records using mark and sweep algorithm (6X compression ratio) • Send compressed segments to master for processing
Parallel Taint Analysis Master • Maintains metadata • Process segments in log order • Detects violations • Update metadata
Evaluation • 8-core (quad dual core) Intel Xeon • 2.66 GHz, 4GB RAM, 8MB L2, 1.33 GHz bus • Linux 2.6 (64 bit) kernel • 4-core (2 dual core) Intel Xeon • 2.8G Hz, 3GB RAM, 4MB L2, 800 MHz bus • Linux 2.4 (32 bit) kernel
Benchmarks • Process memory analysis • Frames per second of mplayer playing Harry Potter trailer • System call analysis • Transactions per second (TPS) of Postmark benchmark • Taint Analysis • Frames per second of mplayer playing Harry Potter trailer
Conclusion • Speck parallelizes security checks on commodity hardware • Pin based lifeguards • OS level support (Speculator) for speculative execution of system call • Speedups with (4 workers, 8 workers) • Process memory analysis (4X, 7.5X) • System Call Analysis (3.3X, 2.8X) • Taint Analysis (1.6X, 2X)