Intrusion Recovery Using Selective Re-execution

RETRO repairs a desktop or server after an adversary compromises it, by undoing the adversary's changes while preserving legitimate user actions, with minimal user involvement. During normal operation, RETRO records an action history graph, which is a detailed dependency graph describing the sy...

Full description

Bibliographic Details
Main Authors: Kim, Taesoo (Contributor), Wang, Xi (Contributor), Zeldovich, Nickolai (Contributor), Kaashoek, M. Frans (Contributor)
Other Authors: Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science (Contributor)
Format: Article
Language:English
Published: USENIX Association, 2011-03-15T14:13:18Z.
Subjects:
Online Access:Get fulltext
LEADER 02416 am a22002533u 4500
001 61699
042 |a dc 
100 1 0 |a Kim, Taesoo  |e author 
100 1 0 |a Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science  |e contributor 
100 1 0 |a Zeldovich, Nickolai  |e contributor 
100 1 0 |a Kim, Taesoo  |e contributor 
100 1 0 |a Zeldovich, Nickolai  |e contributor 
100 1 0 |a Kaashoek, M. Frans  |e contributor 
100 1 0 |a Wang, Xi  |e contributor 
700 1 0 |a Wang, Xi  |e author 
700 1 0 |a Zeldovich, Nickolai  |e author 
700 1 0 |a Kaashoek, M. Frans  |e author 
245 0 0 |a Intrusion Recovery Using Selective Re-execution 
260 |b USENIX Association,   |c 2011-03-15T14:13:18Z. 
856 |z Get fulltext  |u http://hdl.handle.net/1721.1/61699 
520 |a RETRO repairs a desktop or server after an adversary compromises it, by undoing the adversary's changes while preserving legitimate user actions, with minimal user involvement. During normal operation, RETRO records an action history graph, which is a detailed dependency graph describing the system's execution. RETRO uses refinement to describe graph objects and actions at multiple levels of abstraction, which allows for precise dependencies. During repair, RETRO uses the action history graph to undo an unwanted action and its indirect effects by first rolling back its direct effects, and then re-executing legitimate actions that were influenced by that change. To minimize user involvement and re-execution, RETRO uses predicates to selectively re-execute only actions that were semantically affected by the adversary's changes, and uses compensating actions to handle external effects. An evaluation of a prototype of RETRO for Linux with 2 real-world attacks, 2 synthesized challenge attacks, and 6 attacks from previous work, shows that RETRO can often repair the system without user involvement, and avoids false positives and negatives from previous solutions. These benefits come at the cost of 35-127% in execution time overhead and of 4-150 GB of log space per day, depending on the workload. For example, a HotCRP paper submission web site incurs 35% slowdown and generates 4 GB of logs per day under the workload from 30 minutes prior to the SOSP 2007 deadline. 
546 |a en_US 
655 7 |a Article 
773 |t Proceedings of the 9th USENIX Symposium on Operating Systems Design and Implementation (OSDI '10)