170 likes | 294 Views
Carnegie Mellon University. *. University of Texas at Austin. §. Intel Research Pittsburgh. †. Parallelizing Dynamic Information Flow Tracking. Olatunji Ruwase * Phillip B. Gibbons † Todd C. Mowry * Vijaya Ramachandran § Shimin Chen † Michael Kozuch † Michael Ryan †.
E N D
Carnegie Mellon University * University of Texas at Austin § Intel Research Pittsburgh † Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase* Phillip B. Gibbons†Todd C. Mowry* Vijaya Ramachandran§ Shimin Chen†Michael Kozuch†Michael Ryan†
Slows down the program Lifeguards: Pros and Cons + program lifeguard Monitors a running programin order to detect bugs & security attacks • E.g., detect any accessesto unallocated memory 1 1 1 1 1 2 1 1 1 3 1 1 1 4 2 2 2 2 2 2 2 3 3 3 3 3 3 • 3X to 30X program slowdown 4 4 3 4 4 4 Parallelize lifeguards to make them faster Can run lifeguard on separate core 4 4 Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
TaintCheck : A Dynamic Information Flow Tracking Lifeguard • Catch security bugs • [NewSome et al NDSS ‘05] • TAINTED/UNTAINTED • Propagation of taint status My PACKET My PACKET R2 R1 R2 DIFT Parallelism Challenge: Embarrassingly sequential lifeguards R1 Mx R1 My Mx My R1 R1 • Memcheck[Nethercote et al PLDI’05] • memory bugs Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
A Parallel DIFT Algorithm • Symbolic Inheritance Tracking Ο(n/p) • Inheritance Resolution Ο(n/p) n Asymptotic Linear Speedup Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Symbolic Inheritance Tracking = Mx = My R1 Mx R1 R2 = R1 R2 = R2 R3 R3 segment j + 1 segment j segment j - 1 • Collapsed propagation chain Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Inheritance Resolution • Resolve segments in sequential order • Locations within segment are resolved in parallel Mx My R2 R1 R2 R3 segment j + 1 segment j - 1 segment j Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Symbolic Inheritance Tracking (Harder Case) = R1 = + R2 R2 R1 R1 My R2 R1 Mx = My R1 My = My Mx R1 JMP R1 ? segment j + 1 segment j segment j - 1 • Unary propagation [Costa et al SOSP ‘05] Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Inheritance Resolution (Harder Case) • Detect security attack R1 Mx R2 My R1 R1 My My JMP ? segment j + 1 segment j - 1 segment j Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Implementation : Parallel TaintCheck Algorithm Implementation • Speedup achieved because inheritance information is smaller than code segment Parallel workers Master Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Achieving speedups with few workers 2 workers sequential Constant Factors • Inheritance info ~ ½ segment time Require up to 4 workers to match sequential performance Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Hybrid Parallelism sequential 1 worker 2 workers • Use inheritance tracking as accelerator for taint propagation • Achieves speedup even with 1 worker Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Application Lifeguard Operating System Core 1 Core 2 dispatch capture Log Transport (e.g. L2 cache) Decompress Compress Evaluation • Log Based Architectures [Chen et al ISCA ’08] • Simics simulation • 16 core • 64K execution window • 10 SPEC 2000 integer benchmarks Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Slowdown Improvement using Pure Parallelism Number of Workers 0 workers = Sequential Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
gcc slowdown with few workers Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Related Work • Sequential DIFT: [Suh et al ASPLOS 04, Costa et al SOSP ’05, Newsome et al NDSS ’05, Nethercote et al PLDI ’07, Dalton et al ISCA ’07, Venkataramani et al HPCA ‘08] • Parallel DIFT : Speck[Nightingale et al ASPLOS ’08] • Parallel taint analysis lifeguard on commodity CMPs • Parallel compression of code segments • Sequential analysis of compressed segments • Cannot achieve linear speedup (unary propagation not considered) • Video decoder slowdown reduced from 18X to 9X using 9 lifeguard threads. Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase
Conclusion • Parallel DIFT algorithm • Symbolic Inheritance Tracking • Unary propagation • Asymptotic Linear speedup • Parallel TaintCheck Lifeguard • Program slowdown reduced from 3X – 5X to 1.2X – 3X with 8 worker threads • Hybrid parallelism is useful with few workers Parallelizing Dynamic Information Flow Tracking Olatunji Ruwase