Research Publications
Pointless Tainting? Evaluating the Practicality of Pointer Tainting This paper evaluates pointer tainting, an incarnation of Dynamic
Information Flow Tracking (DIFT), which has recently
become an important technique in system security.
Pointer tainting has been used for two main purposes: detection
of privacy-breaching malware (e.g., trojan keyloggers
obtaining the characters typed by a user), and detection
of memory corruption attacks against non-control data
(e.g., a buffer overflow that modifies a user’s privilege level).
In both of these cases the attacker does not modify control
data such as stored branch targets, so the control flow of
the target program does not change. Phrased differently, in
terms of instructions executed, the program behaves ‘normally’.
As a result, these attacks are exceedingly difficult to
detect. Pointer tainting is considered one of the onlymethods
for detecting them in unmodified binaries. Unfortunately, almost
all of the incarnations of pointer tainting are flawed.
In particular, we demonstrate that the application of pointer
tainting to the detection of keyloggers and other privacybreaching
malware is problematic. We also discuss whether
pointer tainting is able to reliably detect memory corruption
attacks against non-control data. We found that pointer
tainting generates itself the conditions for false positives.We
analyse the problems in detail and investigate various ways
to improve the technique. Most have serious drawbacks in
that they are either impractical (and incur many false positives
still), and/or cripple the technique’s ability to detect
attacks. In conclusion, we argue that depending on architecture
and operating system, pointer tainting may have some value in detecting memory corruption attacks (albeit with
false negatives and not on the popular x86 architecture), but
it is fundamentally not suitable for automated detecting of
privacy-breachingmalware such as keyloggers. Keywords: dynamic taint analysis, pointer tainting Details
| Related Project
|
