www.eecs.umich.edu/~dpeek/asplos.pdf
by Edmund B. Nightingale et al. (ASPLOS’08)
These guys decouple security check from the normal run (which continues speculatively). Doing this, they accelerate taint analysis 1.6x-2x. Nice work.
www.eecs.umich.edu/~dpeek/asplos.pdf
by Edmund B. Nightingale et al. (ASPLOS’08)
These guys decouple security check from the normal run (which continues speculatively). Doing this, they accelerate taint analysis 1.6x-2x. Nice work.
Anthony Cozzie has built a system for detecting datastructures in applications’ heap memory. In this paper he presents the method and applies it to malware detection. His premise is that data layout is much harder to vary automatically than instructions (polymorphism). Therefore, data offers a better signature than instructions. He verifies this intuition by comparing multiple versions of Kraken and Storm (among others). A great example of generic system’s work applied to security. The full paper at OSDI 2008 can be found here.
By A. Dinaburg, P. Royal, M. Sharif and W. Lee
Proceedings of the 15th ACM Conference on Computer and Communications Security 2008 (CCS’08)
Ether is a malware analysis framework which leverages hardware virtualization extensions (specifically Intel VT) to remain transparent to malicious software. It supports both fine- (single instruction) and coarse- (system call) granularity tracing. (I’m curious what the performance penalty for the fine-grain tracing is. The authors only say that it’s “significant”.)
Both the GPL’ed source code for Ether and the paper are available for download at http://ether.gtisc.gatech.edu.
By S. Bhatkar, A. Chaturvedi and R. Sekar
Proceedings of the 2006 IEEE Symposium on Security and Privacy
Usually intrusion detection system based on modeling behaviours of programs in terms of system call sequences focus on control flows, with little emphasis on data flow involving system call arguments. In contrast, this paper presents an intrusion detection technique that is based on learning temporal properties involving arguments of different system calls, thus capturing the flow of security-sensitive data through the program. Basically, the approach hypothesizes the flows that may be present, based on relationships observed between the parameters of different system calls. Dataflow properties are categorized into unary relations that involve properties of a single system call argument, and binary relations that involve arguments of two different system calls.
The paper can be found here.
Back from 2006, published in ASPLOS.
An extension to dynamic taint-analysis to capture non-control flow data attacks.
Somewhat limited because it’s based on doing some binary analysis beforehand, but still interesting.
By Andreas Moser and Christopher Kruegel and Engin Kirda
Proceedings of the 2007 IEEE Symposium on Security and Privacy
Authors of the paper address the problem of malware which doesn’t display malicious behaviour unless certain trigger conditions are present. Dynamic taint-tracking is used to discover conditionals in the program that are dependent on tainted inputs. When one of the two branches of such a conditional is about to be taken, they create a checkpoint and a snapshot of the analyzed process, and keeps exploring one of the branch. Subsequently, when the exploration of the taken branch ends or after a timeout threshold is reached, they force the execution of the unexplored branch.
The paper can be found here.
A somewhat older paper. DFI goes beyond detecting control flow attacks to also handle criticial variables being overwritten (look at the SSH exploit). This solution requires source code and recompilation, but despite some limitations it’s very impressive.
http://bitblaze.cs.berkeley.edu/papers/panorama.pdf
by Heng Yin and Dawn Song and Manuel Egele and Christopher Kruegel and Engin Kirda (Proceedings of CCS’07).
The paper describes how potential malware can be monitored to see if it misbehaves, using a variety of clever tricks (one of which is pointer tainting). Note that non-control data attacks have the potential to become bigger problems than attacks that divert control, because they are harder to detect. As they use full pointer tainting, I wonder how they contain the propagation of taint.