Parallelizing Security Checks on Commodity Hardware

  • Edmund B. Nightingale ,
  • Daniel Peek ,
  • Peter M. Chen ,
  • Jason Flinn ,
  • Ed Nightingale

Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '08) |

Speck1 is a system that accelerates powerful security checks on commodity hardware by executing them in parallel on multiple cores. Speck provides an infrastructure that allows sequential invocations of a particular security check to run in parallel without sacrificing the safety of the system. Speck creates parallelism in two ways. First, Speck decouples a security check from an application by continuing the application, using speculative execution, while the security check executes in parallel on another core. Second, Speck creates parallelism between sequential invocations of a security check by running later checks in parallel with earlier ones. Speck provides a process-level replay system to deterministically and efficiently synchronize state between a security check and the original process. We use Speck to parallelize three security checks: sensitive data analysis, on-access virus scanning, and taint propagation. Running on a 4-core and an 8-core computer, Speck improves performance4xand7.5xforthesensitivedataanalysischeck,3.3x and 2.8x for the on-access virus scanning check, and 1.6x and 2x for the taint propagation check.