首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CFI技术新探索,struct_san今日登场

为了抵御上面的代码复用攻击,加州大学和微软公司于2005年提出了控制流完整性(Control-Flow-Integrity, CFI)的防御机制。...CFI分为Forward Edges CFI和Backward Edges CFI。前者是在间接调用前验证控制流,而后者是在函数返回时验证返回地址是否属于调用者。...下面罗列了Linux下相关实现,如下: 目前还有硬件实现的Backward CFI * Intel CET 基于硬件的只读影子调用栈 * ARM V8.3a Pointer Authentication...struct_san与上面的CFI方案相比,struct_san在对结构体指针的验证要比已有的CFI技术更严苛。...七、开源地址 我们对struct_san进行了开源,期望和业界一起探讨CFI技术的改进。后续我们也会推出一些其它的漏洞缓解技术。

60440
您找到你想要的搜索结果了吗?
是的
没有找到

Android 内核控制流完整性

本文永久链接:github.com/xitu/gold-m… 译者:nanjingboy 校对者:gs666 由 Android 安全研究工程师 Sami Tolvanen 发布 Android 的安全模型由 Linux...几十年来,Linux 一直使用 GNU 工具链来汇编,编译和链接内核。...在 Linux 内核中实现 CFI LLVM 的 CFI 实现在每个间接分支之前添加一个检查,以确认目标地址指向一个拥有有效签名的函数。...启用内核 CFI 需要开启以下内核配置选项: CONFIG_LTO_CLANG=y CONFIG_CFI_CLANG=y 复制代码 在调试 CFI 违规或设备启动期间,使用 CONFIG_CFI_PERMISSIVE...可通过使用 __nocfi 属性禁用单个函数的 CFI 来解决这些类型的故障,甚至可以使用 Makefile 中的 $(DISABLE_CFI) 编译器标志来禁用整个文件的 CFI

3K40

控制流完整性简介

随着对溢出类漏洞的利用逐渐增多,1996年 Aleph One 在 Phrack 杂志上发表了一篇名为《Smashing the Stack for Fun and Profit》的文章,详细描述了Linux...2001年 ASLR (地址空间布局随机化)的提出 2001年,ASLR 作为 Linux 内核的一个补丁提出。它通过对堆、栈、共享库映射等线性区布局的随机化增加攻击者预测目的地址的难度。...因此又提出了对 CFI 机制的改进,接下来简单讲解一段 CFI 分析的过程。...2014-2015年 其他CFI 基于前述方案的缺陷,又提出了上下文敏感的 CFI(Context sensitive CFI)机制。...个人想法 粗粒度的CFI安全性不够 细粒度的CFI性能开销太大 出现很多CFI无法防护的攻击——Data oriented programming等 以上对于 CFI 机制的介绍偏策略。

96820
领券