Content area

Abstract

Memory errors have been around for the entirety of computing, starting as innocent mistakes on shared systems and eventually being leveraged for malicious reasons. These issues are more pronounced in C and C++ and thus there has been a widespread effort in the cybersecurity community to introduce protections to these languages (and associated compilers) to prevent memory errors. Many solutions proposed in the research literature are fairly effective in mitigating these problems. However, often the penalties of using these mechanisms do not provide the necessary insight for practitioners to make informed decisions on where to put their efforts. This thesis increases the scope of comparison to include modern and natively memory-safe languages when comparing performance penalties incurred by protection mechanisms for C/C++ programs. Standardized abstract tasks that can be implemented across languages give a more complete picture as to the true penalties of attempting to backport memory safety protections to a language that is unsafe by design, rather than using a language that had memory safety built in from the start. This thesis reviews the plausibility of using combinations of state-of-the-art memory safety mechanisms to achieve greater breadth of protection comparable to native memory safe languages while reviewing the resulting performance penalties of those combinations. Most protections did not lose their provided protections when combined with each other but performance degradation of these combinations does not scale linearly and is highly dependent on the pattern of memory usage.

Alternate abstract:

内存错误贯穿了整个计算机发展史,最初是在共享系统上的无心失误,最终被用于恶意目的。这些问题在 C 和 C++ 中尤为突出,因此网络安全领域广泛致力于为这些语言(及其相关编译器)引入防护,以防止内存错误。研究文献中提出的许多方案在缓解这些问题方面相当有效。然而,这些机制的使用代价往往缺乏足够的参考信息,难以为实践者提供关于应将精力投入何处的明智指引。

本文在比较 C/C++ 程序的内存安全防护机制所带来的性能开销时,将比较范围扩展到纳入现代的、原生内存安全的语言。可在多种语言中实现的标准化抽象任务,能够更完整地展现这样做的真实代价:与其在一种从设计上就不安全的语言中回填内存安全防护,不如从一开始就使用内置内存安全的语言。本文还评估了将多种最先进的内存安全机制进行组合的可行性,旨在获得可与原生内存安全语言相当的更广泛防护,并考察这些组合由此带来的性能开销。大多数防护在相互组合后并未削弱其保护效果,但由此产生的性能下降并非线性叠加,而且高度依赖于内存使用模式。

Details

1010268
Title
Performance Analysis of Compounding Memory Safety Modifications for the C Language
Alternate title
C 语言复合内存安全修改的性能分析
Number of pages
149
Publication year
2025
Degree date
2025
School code
1283
Source
MAI 87/6(E), Masters Abstracts International
ISBN
9798265483546
Committee member
Xie, Mimi; Wang, Wei
University/institution
The University of Texas at San Antonio
Department
Computer Science
University location
United States -- Texas
Degree
M.S.
Source type
Dissertation or Thesis
Language
English
Document type
Dissertation/Thesis
Dissertation/thesis number
32282235
ProQuest document ID
3281747361
Document URL
https://www.proquest.com/dissertations-theses/performance-analysis-compounding-memory-safety/docview/3281747361/se-2?accountid=208611
Copyright
Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.
Database
ProQuest One Academic