baron · 3月30日 · 四川

防止Stack smash的技术

快速连接

👉👉👉【精选】ARMv8/ARMv9架构入门到精通-目录 👈👈👈


 title=

防止Stack smash attack buffer overflow的方法:

  • (1)、部署 Canary 漏洞缓解措施
    GCC编译器默认开启该机制,可加-fno-stack-protector 关闭该机制
    原理: 其实就是在ebp之前(aarch64应该叫FP之前)加入一个canary值,如果发生了Stack smash attackreturn addr的攻击,那么canary的值势必也会被修改。所以在程序返回时通过监测canary的值是否被修改来判断是否遭受了Stack smash attack攻击
    在这里插入图片描述
  • (2)、ShadowCallStack
    使用Clang编译器,加入 -fsanitize=shadow-call-stack 编译选项,即可开启ShadowCallStack
    其原理就是在子函数进入时,将return addr也保存到[X18]处,在子函数返回时LR寄存器从[X18]恢复
    在这里插入图片描述
  • (3)、PAC:Pointer authentication和BTI:Branch target instructions介绍
  • (4)、ALSR

其它的一些安全技术

  • BTI:Branch target instructions
  • MTE

backup
Stack smash attack的示例
部署 Canary 漏洞缓解措施
ShadowCallStack
PAC:Pointer authentication和BTI:Branch target instructions介绍

关注"Arm精选"公众号,备注进ARM交流讨论区。
图片1.png

推荐阅读
关注数
9440
内容数
191
以易懂、渐进、有序的方式,深入探讨ARMv8/ARMv9架构的核心概念。我们将从基础知识开始,逐步深入,覆盖最新的架构,不再纠缠于过时技术。本系列内容包含但不限于ARM基础、SOC芯片基础、Trustzone、gic、异常和中断、AMBA、Cache、MMU等内容,并将持续更新。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息