Codejail: Application-Transparent Isolation of Libraries with Tight Program Interactions

  • Yongzheng Wu
  • Sai Sathyanarayan
  • Roland H. C. Yap
  • Zhenkai Liang
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7459)


Dynamically linked libraries are commonly used in software programs to facilitate code reuse. Once a library is linked into a software program, a bug in the library can lead to compromise of the whole program. Moreover, the library may also contain malicious code. Existing solutions for software component isolation assume simple interactions between a library and the main program, otherwise, they require significant modification of the main program and the library. In this paper, we propose a novel solution, Codejail, which supports a partial isolation of libraries that have tight memory interactions with the main program. Codejail requires no modification to the main program or the library. We demonstrate using a Linux prototype that Codejail can work easily with real-world programs and libraries. The performance is good for a portable implementation with costs commensurate with the degree of tight interaction.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Roemer, R., Buchanan, E., Shacham, H., Savage, S.: Return-oriented programming: Systems, languages, and applications. ACM Trans. Info. & System Security (2012)Google Scholar
  2. 2.
    Wahbe, R., Lucco, S., Anderson, T., Graham, S.: Efficient software-based fault isolation. In: ACM SIGOPS Operating Systems Review (1994)Google Scholar
  3. 3.
    Erlingsson, Ú., Abadi, M., Vrable, M., Budiu, M., Necula, G.C.: Xfi: Software guards for system address spaces. In: Proc. of OSDI (2006)Google Scholar
  4. 4.
    Ford, B., Cox, R.: Vx32: Lightweight user-level sandboxing on the x86. In: Proc. of USENIX Annual Technical Conf. (2008)Google Scholar
  5. 5.
    Yee, B., Sehr, D., Dardyk, G., Chen, J.B., Muth, R., Ormandy, T., Okasaka, S., Narula, N., Fullagar, N.: Native client: A sandbox for portable, untrusted x86 native code. In: Proc. of IEEE S&P (2009)Google Scholar
  6. 6.
    Provos, N., Friedl, M., Honeyman, P.: Preventing privilege escalation. In: Proc. of the USENIX Security Symp. (2003)Google Scholar
  7. 7.
    Kilpatrick, D.: Privman: A library for partitioning applications. In: Proc. of the USENIX Annual Technical Conf. FREENIX track (2003)Google Scholar
  8. 8.
    Brumley, D., Song, D.: Privtrans: Automatically partitioning programs for privilege separation. In: Proc. of the USENIX Security Symp. (2004)Google Scholar
  9. 9.
    McCamant, S., Morrisett, G.: Evaluating sfi for a cisc architecture. In: Proc. of the USENIX Security Symp. (2006)Google Scholar
  10. 10.
    Douceur, J.R., Elson, J., Howell, J., Lorch, J.R.: Leveraging legacy code to deploy desktop applications on the web. In: Proc. of OSDI (2008)Google Scholar
  11. 11.
    Swift, M., Annamalai, M., Bershad, B., Levy, H.: Recovering device drivers. ACM Trans. on Computer Systems (2006)Google Scholar
  12. 12.
    Castro, M., Costa, M., Martin, J.P., Peinado, M., Akritidis, P., Donnelly, A., Barham, P., Black, R.: Fast byte-granularity software fault isolation. In: Proc. of ACM SOSP (2009)Google Scholar
  13. 13.
    Mao, Y., Chen, H., Zhou, D., Wang, X., Zeldovich, N., Kaashoek, M.F.: Software fault isolation with api integrity and multi-principal modules. In: Proc. of ACM SOSP (2011)Google Scholar
  14. 14.
    Bittau, A., Marchenko, P., Handley, M., Karp, B.: Wedge: splitting applications into reduced-privilege compartments. In: Proc. of NSDI (2008)Google Scholar
  15. 15.
    Jain, K., Sekar, R.: User-level infrastructure for system call interposition: A platform for intrusion detection and confinement. In Proc. of NDSS (2000)Google Scholar
  16. 16.
    Provos, N.: Improving host security with system call policies. In: Proc. of the USENIX Security Symp. (2003)Google Scholar
  17. 17.
    Kumar, R., Singhania, A., Castner, A., Kohler, E., Srivastava, M.: A system for coarse grained memory protection in tiny embedded processors. In: Proc. of DAC (2007)Google Scholar
  18. 18.
    Wang, Z., Jiang, X.: Hypersafe: A lightweight approach to provide lifetime hypervisor control-flow integrity. In: Proc. of IEEE S&P (2010)Google Scholar
  19. 19.
    Zeng, B., Tan, G., Morrisett, G.: Combining control-flow integrity and static analysis for efficient and validated data sandboxing. In: Proc. of ACM CCS (2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Yongzheng Wu
    • 1
  • Sai Sathyanarayan
    • 2
  • Roland H. C. Yap
    • 2
  • Zhenkai Liang
    • 2
  1. 1.Singapore University of Technology and DesignSingapore
  2. 2.School of ComputingNational University of SingaporeSingapore

Personalised recommendations