Results 1 -
2 of
2
TaintPipe: Pipelined symbolic taint analysis
- In Proceedings of the 24th USENIX Security Symposium (2015), USENIX Association
"... Taint analysis has a wide variety of compelling applica-tions in security tasks, from software attack detection to data lifetime analysis. Static taint analysis propagates taint values following all possible paths with no need for concrete execution, but is generally less accurate than dynamic analy ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
(Show Context)
Taint analysis has a wide variety of compelling applica-tions in security tasks, from software attack detection to data lifetime analysis. Static taint analysis propagates taint values following all possible paths with no need for concrete execution, but is generally less accurate than dynamic analysis. Unfortunately, the high performance penalty incurred by dynamic taint analyses makes its de-ployment impractical in production systems. To amelio-rate this performance bottleneck, recent research efforts aim to decouple data flow tracking logic from program execution. We continue this line of research in this paper and propose pipelined symbolic taint analysis, a novel technique for parallelizing and pipelining taint analy-sis to take advantage of ubiquitous multi-core platforms. We have developed a prototype system called TaintPipe. TaintPipe performs very lightweight runtime logging to produce compact control flow profiles, and spawns mul-tiple threads as different stages of a pipeline to carry out symbolic taint analysis in parallel. Our experiments show that TaintPipe imposes low overhead on applica-tion runtime performance and accelerates taint analysis significantly. Compared to a state-of-the-art inlined dy-namic data flow tracking tool, TaintPipe achieves 2.38 times speedup for taint analysis on SPEC 2006 and 2.43 times for a set of common utilities, respectively. In ad-dition, we demonstrate the strength of TaintPipe such as natural support of multi-tag taint analysis with several security applications. 1
LOOP: Logic-Oriented Opaque Predicate Detection in Obfuscated Binary Code
"... Opaque predicates have been widely used to insert super-fluous branches for control flow obfuscation. Opaque predi-cates can be seamlessly applied together with other obfusca-tion methods such as junk code to turn reverse engineering attempts into arduous work. Previous efforts in detecting opaque p ..."
Abstract
- Add to MetaCart
(Show Context)
Opaque predicates have been widely used to insert super-fluous branches for control flow obfuscation. Opaque predi-cates can be seamlessly applied together with other obfusca-tion methods such as junk code to turn reverse engineering attempts into arduous work. Previous efforts in detecting opaque predicates are far from mature. They are either ad hoc, designed for a specific problem, or have a considerably high error rate. This paper introduces LOOP, a Logic Ori-ented Opaque Predicate detection tool for obfuscated binary code. Being different from previous work, we do not rely on any heuristics; instead we construct general logical formu-las, which represent the intrinsic characteristics of opaque predicates, by symbolic execution along a trace. We then solve these formulas with a constraint solver. The result ac-curately answers whether the predicate under examination is opaque or not. In addition, LOOP is obfuscation resilient and able to detect previously unknown opaque predicates. We have developed a prototype of LOOP and evaluated it with a range of common utilities and obfuscated malicious programs. Our experimental results demonstrate the effi-cacy and generality of LOOP. By integrating LOOP with code normalization for matching metamorphic malware vari-ants, we show that LOOP is an appealing complement to existing malware defenses. 1.