首页> 外文会议>IEEE Symposium on Security and Privacy >Counterfeit Object-oriented Programming: On the Difficulty of Preventing Code Reuse Attacks in C++ Applications
【24h】

Counterfeit Object-oriented Programming: On the Difficulty of Preventing Code Reuse Attacks in C++ Applications

机译:伪造的面向对象程序设计:论C ++应用程序中防止代码重用攻击的难点

获取原文

摘要

Code reuse attacks such as return-oriented programming (ROP) have become prevalent techniques to exploit memory corruption vulnerabilities in software programs. A variety of corresponding defenses has been proposed, of which some have already been successfully bypassed -- and the arms race continues. In this paper, we perform a systematic assessment of recently proposed CFI solutions and other defenses against code reuse attacks in the context of C++. We demonstrate that many of these defenses that do not consider object-oriented C++ semantics precisely can be generically bypassed in practice. Our novel attack technique, denoted as counterfeit object-oriented programming (COOP), induces malicious program behavior by only invoking chains of existing C++ virtual functions in a program through corresponding existing call sites. COOP is Turing complete in realistic attack scenarios and we show its viability by developing sophisticated, real-world exploits for Internet Explorer 10 on Windows and Fire fox 36 on Linux. Moreover, we show that even recently proposed defenses (CPS, T-VIP, vfGuard, and VTint) that specifically target C++ are vulnerable to COOP. We observe that constructing defenses resilient to COOP that do not require access to source code seems to be challenging. We believe that our investigation and results are helpful contributions to the design and implementation of future defenses against control flow hijacking attacks.
机译:代码重用攻击(例如,面向返回的编程(ROP))已成为利用软件程序中的内存损坏漏洞的普遍技术。已经提出了各种相应的防御措施,其中一些已经被成功地绕开了-军备竞赛仍在继续。在本文中,我们对最近提出的CFI解决方案以及针对C ++上下文中的代码重用攻击的其他防御措施进行了系统的评估。我们证明了许多没有精确考虑面向对象的C ++语义的防御措施在实践中都可以绕开。我们的新颖攻击技术被称为伪造的面向对象程序设计(COOP),它仅通过通过相应的现有调用站点调用程序中现有的C ++虚拟功能链来诱发恶意程序行为。在现实的攻击场景中,COOP是Turing完整的,我们通过为Windows上的Internet Explorer 10和Linux上的Fire fox 36开发复杂的,真实的漏洞来展示其可行性。而且,我们表明,即使是最近针对C ++提出的防御措施(CPS,T-VIP,vfGuard和VTint)也很容易受到COOP攻击。我们注意到,构建不需要访问源代码的可抵抗COOP的防御措施似乎具有挑战性。我们相信,我们的调查和结果将为设计和实施针对控制流劫持攻击的未来防御措施做出有益的贡献。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号