A flexible generator architecture for improving software dependability

Improving the dependability of computer systems is increasingly important as more and more of our lives depend on the availability of such systems. Wrapping dynamic link libraries is an effective approach for improving the reliability and security of computer software without source code access. We describe a flexible framework to generate a rich set of software wrappers for shared libraries. We describe the architecture of the wrapper generator, the problems of how to generate wrappers efficiently, and our solutions to these problems. Based on a set of properties declared for a function, the generator can create a variety of wrappers to suit the diverse requirements of application programs. Performance measurements indicate that the overhead of the generated wrappers is small.

[1]  Robbert van Renesse,et al.  Horus: a flexible group communication system , 1996, CACM.

[2]  Yi-Min Wang,et al.  Xept: a software instrumentation method for exception handling , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[3]  Larry L. Peterson,et al.  A dynamic network architecture , 1992, TOCS.

[4]  Zhen Xiao,et al.  An automated approach to increasing the robustness of C libraries , 2002, Proceedings International Conference on Dependable Systems and Networks.

[5]  Mark Garland Hayden,et al.  The Ensemble System , 1998 .

[6]  Peter A. Buhr,et al.  Advanced Exception Handling Mechanisms , 2000, IEEE Trans. Software Eng..

[7]  Narain H. Gehani,et al.  Exceptional C or C with exceptions , 1992, Softw. Pract. Exp..

[8]  Jean Arlat,et al.  MetaKernels and fault containment wrappers , 1999, Digest of Papers. Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing (Cat. No.99CB36352).

[9]  Peter M. Chen,et al.  Exploring failure transparency and the limits of generic recovery , 2000, OSDI.

[10]  Fred B. Schneider,et al.  Implementing fault-tolerant services using the state machine approach: a tutorial , 1990, CSUR.

[11]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[12]  Zhen Xiao,et al.  Detecting heap smashing attacks through fault containment wrappers , 2001, Proceedings 20th IEEE Symposium on Reliable Distributed Systems.