首页> 外文学位 >Compiler-Based Mitigations of Vulnerabilities in Systems Software
【24h】

Compiler-Based Mitigations of Vulnerabilities in Systems Software

机译:系统软件中基于编译器的漏洞缓解

获取原文
获取原文并翻译 | 示例

摘要

Systems software written in C/C++ is plagued by bugs, which attackers exploit to gain control of systems, leak sensitive data, or perform denial-of-service attacks. This plethora of vulnerabilities is caused by C/C++ not enforcing memory or type safety in language by design, instead they leave security checks to the programmer.;Previous research primarily focuses on preventing control-flow hijack attacks. In a control-flow hijack attack, the attacker manipulates a return address or function pointer to cause code of her choosing to be executed. Abadi et al. propose Control- Flow Integrity (CFI), to prevent such attacks, but as our CFI survey shows, CFI mechanisms have varying degrees of precision. Researchers exploit the imprecision in CFI implementations to evade their protection. One area of imprecision in CFI mechanisms is virtual functions in C++ programs. Attackers can re-target virtual function calls to other invalid functions as part of an exploit. Our work, VTrust, provides specialized protection for C++ virtual functions with low overhead.;As CFI mechanisms improve, and are widely deployed, attackers will follow the path of least resistance towards other attack vectors, e.g., non-control-data attacks. In a non-control-data attack the attacker manipulates ordinary variables (not return addresses, function pointers, etc.) to carry out the attack. Non-control-data attacks are not prevented by CFI, because the control-flow follows a valid path in the original program. The attack is carried out by modifying only non-control-data. To address this emerging problem, we have developed Data Confidentiality and Integrity (DCI) which allows the programmer to select which data types should be protected from corruption and information leakage by the attacker.;In this dissertation, we propose that by using static analysis and runtime checks, we can prevent attacks targeted at sensitive data with low overhead. We have evaluated our techniques, VTrust and DCI, on the SPEC CPU2006 benchmarks, the Firefox web browser, and the mbedTLS cryptographic library. Our results show our implementations have lower performance overhead than other state-of-the-art mechanisms. In our security evaluation, we have several case studies which show our defenses mitigate publicly disclosed vulnerabilities in widely deployed software. In future work, we plan to improve our static sensitivity analysis for DCI and investigate new methods for automatically identifying sensitive data.
机译:用C / C ++编写的系统软件遇到了漏洞困扰,攻击者利用这些漏洞来控制系统,泄漏敏感数据或执行拒绝服务攻击。过多的漏洞是由C / C ++并未通过设计强制执行语言中的内存或类型安全性,而是将安全性检查留给了程序员。先前的研究主要集中在防止控制流劫持攻击。在控制流劫持攻击中,攻击者操纵返回地址或函数指针来执行她选择的代码。 Abadi等。提出控制流完整性(CFI)来防止此类攻击,但是正如我们的CFI调查显示,CFI机制具有不同程度的精度。研究人员利用CFI实施中的不精确性来逃避其保护。 CFI机制中不精确的领域之一是C ++程序中的虚函数。攻击者可以将虚拟函数调用重新定向到其他无效函数,这是漏洞利用的一部分。我们的工作VTrust以较低的开销为C ++虚拟功能提供了专门的保护。随着CFI机制的改进和广泛部署,攻击者将沿着对其他攻击媒介(例如非控制数据攻击)的抵抗力最小的途径。在非控制数据攻击中,攻击者操纵普通变量(而不是返回地址,函数指针等)进行攻击。 CFI不能阻止非控制数据攻击,因为控制流遵循原始程序中的有效路径。通过仅修改非控制数据来执行攻击。为了解决这个新出现的问题,我们开发了数据机密性和完整性(DCI),它使程序员可以选择保护哪些数据类型免受攻击者的破坏和信息泄露。运行时检查,我们可以以较低的开销防止针对敏感数据的攻击。我们已经在SPEC CPU2006基准,Firefox Web浏览器和mbedTLS密码库上评估了我们的技术VTrust和DCI。我们的结果表明,与其他最新机制相比,我们的实现具有较低的性能开销。在我们的安全评估中,我们有一些案例研究表明,我们的防御措施可以缓解广泛部署的软件中公开披露的漏洞。在未来的工作中,我们计划改善对DCI的静态灵敏度分析,并研究自动识别敏感数据的新方法。

著录项

  • 作者

    Carr, Scott A.;

  • 作者单位

    Purdue University.;

  • 授予单位 Purdue University.;
  • 学科 Computer science.
  • 学位 Ph.D.
  • 年度 2017
  • 页码 187 p.
  • 总页数 187
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号