Advertisement

A Lightweight Buffer Overflow Protection Mechanism with Failure-Oblivious Capability

  • Tz-Rung Lee
  • Kwo-Cheng Chiu
  • Da-Wei Chang
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5574)

Abstract

Buffer overflow has become a major source of network security vulnerability. Traditional schemes for detecting buffer overflow attacks usually terminate the attacked service, degrading the service availability. In this paper, we propose a lightweight buffer overflow protection mechanism that allows continued network service. The proposed mechanism allows a service program to reconfigure itself to identify and protect the vulnerable functions upon buffer overflow attacks. Protecting only the vulnerable functions, instead of the whole program, keeps the runtime overhead small. Moreover, the mechanism adopts the idea of failure-oblivious computing to allow service programs to execute through memory errors caused by the attacks once the vulnerable functions have been identified, eliminating the need of restarting the service program upon further attacks to the vulnerable functions. We have applied the mechanism on five Internet servers. The experiment results show that the mechanism has little impact on the runtime performance.

Keywords

Buffer Overflow Attacks Network Security Self Reconfiguration Failure-Oblivious Computing Guard Pages 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Dor, N., Rodeh, M., Sagiv, M.: Cssv: Towards a Realistic Tool for Statically Detecting all Buffer Overflows in C. In: ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, pp. 155–167 (2003)Google Scholar
  2. 2.
    Larochelle, D., Evans, D.: Statically Detecting Likely Buffer Overflow Vulnerabilities. In: 10th USENIX Security Symposium, pp. 177–190 (2001)Google Scholar
  3. 3.
    Baratloo, A., Singh, N., Tsai, T.: Transparent Run-time Defense against Stack Smashing Attacks. In: USENIX Annual Technical Conference, pp. 251–262 (2000)Google Scholar
  4. 4.
    Chiueh, T.C., Hsu, F.H.: RAD: A Compile-time Solution to Buffer Overflow Attacks. In: International Conference on Distributed Computing Systems, pp. 409–417 (2001)Google Scholar
  5. 5.
    Cowan, C., Beattie, S., Johansen, J., Wagle, P.: PointGuard: Protecting Pointers from Buffer Overflow Vulnerabilities. In: USENIX Security Symposium, pp. 91–104 (2003)Google Scholar
  6. 6.
    Cowan, C., Pu, C., Maier, D., Walpole, J., Bakke, P., Beattie, S., Grier, A., Wagle, P., Zhang, Q., Hinton, H.: StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks. In: 7th USENIX Security Conference, pp. 63–78 (1998)Google Scholar
  7. 7.
    Cowan, C., Wagle, P., Pu, C., Beattie, S., Walpole, J.: Buffer Overflows: Attacks and Defenses for the Vulnerability of the Decade. In: DARPA Information Survivability Conference and Exposition, pp. 119–129 (2000)Google Scholar
  8. 8.
    Dik, C.: Non-Executable Stack for Solaris, Posted to comp.security.unix (January 1997)Google Scholar
  9. 9.
    Etoh, H., Yoda, K.: Protecting from Stack-Smashing Attacks, http://www.trl.ibm.com/projects/security/ssp
  10. 10.
    The PaX Team: PaX Address Space Layout Randomization, http://pax.grsecurity.net
  11. 11.
    Ruwase, O., Lam, M.: A Practical Dynamic Buffer Overflow Detector. In: Network and Distributed System Buffer overflow Symposium, pp. 159–169 (2004)Google Scholar
  12. 12.
    Solar Designer: Non-Executable User Stack, http://www.openwall.com/linux/
  13. 13.
  14. 14.
    Newsome, J., Song, D.: Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software. In: 12th Annual Network and Distributed System Security Symposium (2005)Google Scholar
  15. 15.
    Rinard, M., Cadar, C., Dumitran, D., Roy, D., Leu, T., Beebee, J.W.: Enhancing Server Availability and Security Through Failure-Oblivious Computing. In: 6th Symposium on Operating Systems Design and Implementation, p. 21 (2004)Google Scholar
  16. 16.
    Rinard, M., Cadar, C., Roy, D., Dumitran, D.: A Dynamic Technique for Eliminating Buffer Overflow Vulnerabilities (and Other Memory Errors). In: 20th Annual Computer Security Applications Conference, pp. 82–90 (2004)Google Scholar
  17. 17.
    Sidiroglou, S., Keromytis, A.D.: A Network Worm Vaccine Architecture. In: 12th International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises, pp. 220–225 (2003)Google Scholar
  18. 18.
    Sidiroglou, S., Keromytis, A.D.: A Dynamic Mechanism for Recovering from Buffer Overflow Attacks. In: 8th Information Security Conference, pp. 1–15 (2005)Google Scholar
  19. 19.
    Sidiroglou, S., Locasto, M.E., Boyd, S.W., Keromytis, A.D.: Building a Reactive Immune System for Software Services. In: USENIX Annual Technical Conference, pp. 149–161 (2005)Google Scholar
  20. 20.
    Smirnov, A., Chiueh, T.C.: DIRA: Automatic Detection, Identification and Repair of Control-Hijacking Attacks. In: 12th Annual Network and Distributed System Security Symposium (2005)Google Scholar
  21. 21.
    Shacham, H., Page, M., Pfa, B., Goh, E.J., Modadugu, N., Boneh, D.: On the Effectiveness of Address-Space Randomization. In: 11th ACM Conference on Computer and Communications Security, pp. 298–307 (2004)Google Scholar
  22. 22.
    Liang, Z., Sekar, R.: Automated, Sub-Second Attack Signature Generation: A Basis for Building Self-Protecting Servers. In: 12th ACM Conference on Computer and Communications Security (2005)Google Scholar
  23. 23.
    Liang, Z., Sekar, R.: Automatic Generation of Buffer Overflow Attack Signatures: An Approach Based on Program Behavior Models. In: 21st Annual Computer Security Applications Conference, pp. 215–224 (2005)Google Scholar
  24. 24.
    Dahn, C., Mancoridis, S.: Using Program Transformation to Secure C Programs against Buffer Overflows. In: 10th Working Conference on Reverse Engineering, pp. 323–332 (2003)Google Scholar
  25. 25.
  26. 26.
    Cordy, J.R., Dean, T.R., Malton, A.J., Schneider, K.A.: Source Transformation in Software Engineering using the TXL Transformation System. Journal of Information and Software Technology 44(13), 827–837 (2002)CrossRefGoogle Scholar
  27. 27.
    Coker, R.: Postal Benchmark, http://www.coker.com.au/postal
  28. 28.
    Mindcraft Inc.: WebStone: the Benchmark for Web Servers, http://www.mindcraft.com/benchmarks/webstone
  29. 29.
    Jim, T., Morrisett, G., Grossman, D., Hicks, M., Cheney, J., Wang, Y.: Cyclone: a Safe Dialect of C. In: USENIX Annual Technical Conference, pp. 275–288 (2002)Google Scholar
  30. 30.
    Necula, G.C., McPeak, S., Weimer, W.: CCured: Type-Safe Retrofitting of Legacy Code. In: 29th ACM Symposium on Principles of Programming Languages, pp. 128–139 (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Tz-Rung Lee
    • 1
  • Kwo-Cheng Chiu
    • 1
  • Da-Wei Chang
    • 2
  1. 1.Department of Computer ScienceNational Chiao-Tung UniversityHsin-ChuTaiwan
  2. 2.Department of Computer Science and Information EngineeringNational Cheng-Kung UniversityTainanTaiwan

Personalised recommendations