分享

数据随机化

 求是1025 2023-04-01 发布于山东

该技术是在编译阶段在原始程序的数据操作指令前后加入一系列处理指令,使得原始数据以加密形式存储到内存中,只有正确解密内存数据的指令才能够正常执行。因此,攻击者将因为不了解原始密钥,而无法正确改写数据(如,指针地址)或泄漏内存中的原始数据。例如,攻击者若采用控制流劫持攻击,其想要覆盖的内存地址值是密文,不知道密钥的攻击者便无法构造正确的内存地址因而无法篡改程序的控制流。

2003年,C.考恩(Crispin Cowan)等人提出了PointGuard技术,是数据随机化技术的雏形。该技术将指针加密存储于内存中,仅在指针解引用(dereference)时才进行解密,使得攻击者无法直接覆盖指针以实现劫持程序的控制流。但该技术仅限于保护指针,而无法对抗非指针覆盖类型的攻击。2008年,微软研究院的C.查德尔(Cristian Cadar)等人首次正式提出数据随机化技术的概念,能够全面保护存储到内存中的数据。该技术是将在编译阶段通过静态分析识别数据操作相关指令,在内存数据操作指令前后加入一系列处理代码,使得数据在加密后才写入内存,并且通过在不同的内存操作处采用不同的随机密钥以增强随机性。

数据随机化能够有效弥补地址空间布局随机化和指令集随机化技术的局限性,运行期间引入的开销相对较小(约增加11%),能够抵御代码注入攻击和数据流攻击(例如,数据导向返回编程攻击(Data Oriented Programming Attack))等内存数据相关的软件漏洞利用攻击。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多