标签:总结 名称 机制 地址 lib 时间复杂度 分配 c++类 build
Hextype:c++类型混淆错误的快速检测,论文选自CCS‘17
C++非常适合大型软件项目,因为它将高级模块化和抽象与低级内存访问和性能相结合,但它运行时的效率和对C的向后兼容性是以安全为代价的。类型转换是在 c++中实现模块化的核心原则。为了提高性能,大多数类型转换仅进行静态检查,即该检查仅测试是否允许给定的类型层次结构进行强制类型转换,而忽略对象的实际运行时类型。这种安全性的缺乏导致了类型混淆漏洞,利用这类漏洞攻击程序,攻击者可以获得受害程序的全部特权。
HexType:一种保护c++软件免受类型混淆的机制,它使所有类型转换都显式化。源语言中的每个强制转换(显式或隐式、静态或动态)都转换为动态运行时检查。本文主要贡献如下:
- 实现了具有低开销和高覆盖率的开源类型混淆检测器(性能优于最先进的检测器);
- 提出一个新颖的优化,大大减少了需要跟踪的对象的数量从而减少了开销;
- 设计了有效的数据结构,该结构使用快速路径(O(1)时间复杂度)进行类型信息的插入和查找;
- 实现强大的分配标识,可大大提高覆盖率同时还涵盖了替代的转换方法;
- 发现QT基本库和 ApacheXerces-C++中的四个新漏洞;
给定源代码作为输入,①HexType 生成一个包含所有类型关系信息的类型表,并且在运行时,②在对象映射表中收集关于每个分配对象的真实类型的信息。③Hextype使用类型关系信息和对象映射表来确定每个强制转换的正确性。
20199319 2019-2020-2 《网络攻防实践》综合实践
标签:总结 名称 机制 地址 lib 时间复杂度 分配 c++类 build
原文地址:https://www.cnblogs.com/fanxiaonan/p/13199661.html