skip to main content
10.1145/2858930.2858936acmotherconferencesArticle/Chapter ViewAbstractPublication Pagescs2Conference Proceedingsconference-collections
research-article

Tag-Protector: An Effective and Dynamic Detection of Out-of-bound Memory Accesses

Published: 20 January 2016 Publication History

Abstract

Programming languages permitting immediate memory accesses through pointers often result in applications having memory-related errors, which may lead to unpredictable failures and security vulnerabilities. A light-weight solution is presented in this paper to tackle such illegal memory accesses dynamically in C/C++ based applications. We propose a new and effective method of instrumenting an application's source code at compile time in order to detect out-of-bound memory accesses. It is based on creating tags, to be coupled with each memory allocation and then placing additional tag checking instructions for each access made to the memory. The proposed solution is evaluated by instrumenting applications from the BugBench benchmark suite and publicly available benchmark software, Runtime Intrusion Prevention Evaluator (RIPE), detecting all the bugs successfully. The performance and memory overhead is further analysed by instrumenting and executing real world applications.

References

[1]
P. Akritidis, M. Costa, M. Castro, and S. Hand. Baggy bounds checking: An efficient and backwards-compatible defense against out-of-bounds errors. In USENIX Security Symp., pages 51--66, 2009.
[2]
K. Avijit, P. Gupta, and D. Gupta. Tied, libsafeplus: Tools for runtime buffer overflow protection. In USENIX Security Symposium, pages 45--56, 2004.
[3]
D. Dhurjati, S. Kowshik, and V. Adve. SAFECode: Enforcing alias analysis for weakly typed languages. In Proceedings of the 27th ACM SIGPLAN Conference on Programm. Lang. Design and Imp., pages 144--157, New York, NY, USA, 2006. ACM.
[4]
D. Dhurjati, S. Kowshik, V. Adve, and C. Lattner. Memory safety without runtime checks or garbage collection. In Proceedings of the 2003 ACM SIGPLAN Conference on Language, Compiler, and Tool for Embedded Systems, LCTES '03, pages 69--80, New York, NY, USA, 2003. ACM.
[5]
I. Doudalis, J. Clause, G. Venkataramani, M. Prvulovic, and A. Orso. Effective and efficient memory protection using dynamic tainting. Computers, IEEE Trans. on, 61(1):87--100, 2012.
[6]
M. R. Guthaus, J. S. Ringenberg, D. Ernst, T. M. Austin, T. Mudge, and R. B. Brown. Mibench: A free, commercially representative embedded benchmark suite. In Workload Characterization, 2001. WWC-4. 2001 IEEE International Workshop on, pages 3--14, 2001.
[7]
N. Hasabnis, A. Misra, and R. Sekar. Light-weight bounds checking. In Proceedings of the Tenth International Symposium on CGO, CGO '12, pages 135--144, New York, NY, USA, 2012. ACM.
[8]
R. W. Jones and P. H. Kelly. Backwards-compatible bounds checking for arrays and pointers in c programs. In Proceedings of the 3rd International Workshop on Automatic Debugging, pages 13--26. Citeseer, 1997.
[9]
V. Kuznetsov, L. Szekeres, M. Payer, G. Candea, R. Sekar, and D. Song. Code-pointer integrity. In USENIX Symposium on Operating Systems Design and Implementation (OSDI), 2014.
[10]
S. Lu, Z. Li, F. Qin, L. Tan, P. Zhou, and Y. Zhou. Bugbench: Benchmarks for evaluating bug detection tools. In Workshop on the Evaluation of Software Defect Detection Tools, pages 1--5, 2005.
[11]
S. Nagarakatte, J. Zhao, M. M. Martin, and S. Zdancewic. Softbound: highly compatible and complete spatial memory safety for c. In ACM Sigplan Notices, volume 44, pages 245--258. ACM, 2009.
[12]
G. C. Necula, J. Condit, M. Harren, S. McPeak, and W. Weimer. Ccured: type-safe retrofitting of legacy software. ACM Trans. Program. Lang. Syst., 27(3):477--526, 2005.
[13]
O. Ruwase and M. S. Lam. A practical dynamic buffer overflow detector. In 11th Annual Network and Distributed System Security Symp., 2004.
[14]
K. Serebryany, D. Bruening, A. Potapenko, and D. Vyukov. Addresssanitizer: A fast address sanity checker. In USENIX ATC, volume 2012, 2012.
[15]
H. Shacham. The geometry of innocent flesh on the bone: Return-into-libc without function calls (on the x86). In Proceedings of the 14th ACM Conf. on Comp. and Comm. Security, pages 552--561. ACM, 2007.
[16]
J. Wilander, N. Nikiforakis, Y. Younan, M. Kamkar, and W. Joosen. RIPE: Runtime intrusion prevention evaluator. In Proceedings of the 27th Annual Computer Security Applications Conference. ACM, 2011.
[17]
Y. Younan. 25 Years of Vulnerabilities: 1988--2012. http://labs.snort.org/blogfiles/Sourcefire\\-25-Years-of-Vulnerabilities-Research-Report.pdf.
[18]
Y. Younan, P. Philippaerts, L. Cavallaro, R. Sekar, F. Piessens, and W. Joosen. PAriCheck: an efficient pointer arithmetic checker for c programs. In Proceedings of the 5th ACM Symp. on Info., Comp. and Comm. Security, pages 145--156. ACM, 2010.

Cited By

View all
  • (2023)TaintSE: Dynamic Taint Analysis Combined with Symbolic Execution and Constraint Association2023 IEEE 14th International Conference on Software Engineering and Service Science (ICSESS)10.1109/ICSESS58500.2023.10293040(111-117)Online publication date: 17-Oct-2023
  • (2020)BoundWarden: Thread-enforced spatial memory safety through compile-time transformationsScience of Computer Programming10.1016/j.scico.2020.102519(102519)Online publication date: Jul-2020
  • (2019)Joint forces for memory safety checking revisitedInternational Journal on Software Tools for Technology Transfer10.1007/s10009-019-00526-2Online publication date: 6-Aug-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
CS2 '16: Proceedings of the Third Workshop on Cryptography and Security in Computing Systems
January 2016
61 pages
ISBN:9781450340656
DOI:10.1145/2858930
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

  • Politecnico di Milano: Politecnico di Milano
  • HiPEAC: HiPEAC Network of Excellence

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 January 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Compile-time code instrumentation
  2. buffer overflows
  3. illegal memory accesses

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

CS2 '16

Acceptance Rates

CS2 '16 Paper Acceptance Rate 10 of 19 submissions, 53%;
Overall Acceptance Rate 27 of 91 submissions, 30%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)1
Reflects downloads up to 01 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)TaintSE: Dynamic Taint Analysis Combined with Symbolic Execution and Constraint Association2023 IEEE 14th International Conference on Software Engineering and Service Science (ICSESS)10.1109/ICSESS58500.2023.10293040(111-117)Online publication date: 17-Oct-2023
  • (2020)BoundWarden: Thread-enforced spatial memory safety through compile-time transformationsScience of Computer Programming10.1016/j.scico.2020.102519(102519)Online publication date: Jul-2020
  • (2019)Joint forces for memory safety checking revisitedInternational Journal on Software Tools for Technology Transfer10.1007/s10009-019-00526-2Online publication date: 6-Aug-2019
  • (2018)Joint Forces for Memory Safety CheckingModel Checking Software10.1007/978-3-319-94111-0_7(115-132)Online publication date: 16-Jun-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media