ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Automatically patching errors in deployed software
Full text PdfPdf (471 KB)
Source
ACM Symposium on Operating Systems Principles archive
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles table of contents
Big Sky, Montana, USA
SESSION: Debugging table of contents
Pages: 87-102  
Year of Publication: 2009
ISBN:978-1-60558-752-3
Authors
Jeff H. Perkins  MIT, Cambridge, MA, USA
Sunghun Kim  HKUST, Hong Kong, MA, USA
Sam Larsen  VMWare, Redwood, MA, USA
Saman Amarasinghe  MIT, Cambridge, MA, USA
Jonathan Bachrach  MIT, Cambridge, MA, USA
Michael Carbin  MIT, Cambridge, MA, USA
Carlos Pacheco  MIT, Cambridge, MA, USA
Frank Sherwood  None, Scottsville, VA, USA
Stelios Sidiroglou  MIT, Cambridge, MA, USA
Greg Sullivan  BAE, Burlington, MA, USA
Weng-Fai Wong  NUS, Singapore, MA, Singapore
Yoav Zibin  Come2Play, Haifa, MA, Israel
Michael D. Ernst  Washington University, Seattle, WA, USA
Martin Rinard  MIT, Cambridge, MA, USA
Sponsors
ACM: Association for Computing Machinery
SIGOPS: ACM Special Interest Group on Operating Systems
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 60,   Downloads (12 Months): 213,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1629575.1629585
What is a DOI?

ABSTRACT

We present ClearView, a system for automatically patching errors in deployed software. ClearView works on stripped Windows x86 binaries without any need for source code, debugging information, or other external information, and without human intervention.

ClearView (1) observes normal executions to learn invariants thatcharacterize the application's normal behavior, (2) uses error detectors to distinguish normal executions from erroneous executions, (3) identifies violations of learned invariants that occur during erroneous executions, (4) generates candidate repair patches that enforce selected invariants by changing the state or flow of control to make the invariant true, and (5) observes the continued execution of patched applications to select the most successful patch.

ClearView is designed to correct errors in software with high availability requirements. Aspects of ClearView that make it particularly appropriate for this context include its ability to generate patches without human intervention, apply and remove patchesto and from running applications without requiring restarts or otherwise perturbing the execution, and identify and discard ineffective or damaging patches by evaluating the continued behavior of patched applications.

ClearView was evaluated in a Red Team exercise designed to test its ability to successfully survive attacks that exploit security vulnerabilities. A hostile external Red Team developed ten code injection exploits and used these exploits to repeatedly attack an application protected by ClearView. ClearView detected and blocked all of the attacks. For seven of the ten exploits, ClearView automatically generated patches that corrected the error, enabling the application to survive the attacks and continue on to successfully process subsequent inputs. Finally, the Red Team attempted to make Clear-View apply an undesirable patch, but ClearView's patch evaluation mechanism enabled ClearView to identify and discard both ineffective patches and damaging patches.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
AUSTIN, T., BREACH, S., AND SOHI, G. Efficient detection of all pointer and array access errors. In PLDI (June 2004).
 
3
4
 
5
 
6
7
8
9
 
10
 
11
 
12
13
14
15
 
16
 
17
18
 
19
 
20
 
21
JONES, R., AND KELLY, P. Backwards-compatible bounds checking for arrays and pointers in C programs. In AADEBUG (May 1997).
 
22
JULA, H., TRALAMAZZA, D., ZAMFIR, C., AND CANDEA, G. Deadlock immunity: Enabling systems to defend against deadlocks. In OSDI (Dec. 2008), pp. 295--308.
 
23
KENDALL, S.C. Bcc: Run-time checking for C programs. In USENIX Summer (1983).
 
24
25
 
26
 
27
LOCASTO, M.E., SIDIROGLOU, S., AND KEROMYTIS, A.D. Software self-healing using collaborative application communities. In SNDSS (Feb. 2005).
 
28
 
29
NEWSOME, J., AND SONG, D. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In NDSS (Feb. 2005).
30
31
32
33
 
34
 
35
36
 
37
RUWASE, O., AND LAM, M.S. A practical dynamic buffer overflow detector. In NDSS (February 2004).
38
 
39
SIDIROGLOU, S., GIOVANIDIS, G., AND KEROMYTIS, A.D. A dynamic mechanism for recovering from buffer overflow attacks. In ISC (Sep. 2005).
 
40
41
 
42
 
43
SMIRNOV, A., AND CHIUEH, T. DIRA: Automatic detection, identification and repair of control-hijacking attacks. In NDSS (Feb. 2005).
 
44
 
45
Stackshield. www.angelfire.com/sk/stackshield.
46
 
47
Symantech Internet security threat report. www.symantec.com, Sep. 2006.
48
49

Collaborative Colleagues:
Jeff H. Perkins: colleagues
Sunghun Kim: colleagues
Sam Larsen: colleagues
Saman Amarasinghe: colleagues
Jonathan Bachrach: colleagues
Michael Carbin: colleagues
Carlos Pacheco: colleagues
Frank Sherwood: colleagues
Stelios Sidiroglou: colleagues
Greg Sullivan: colleagues
Weng-Fai Wong: colleagues
Yoav Zibin: colleagues
Michael D. Ernst: colleagues
Martin Rinard: colleagues