ARM PAC/BTI/MTE三剑客精讲与实战
一、PAC指针认证精讲与实战
思考
1、什么是栈溢出攻击?什么是代码重用攻击?区别与联系?
2、栈溢出攻击的软&硬件缓解技术有哪些?在TF-A&OPTEE上的应用?
3、什么是ROP攻击?对ROP攻击的缓解技术?
4、PAC下的ROP如何缓解?对返回地址的签名与验证?
5、PAC的架构细节?硬件原理?PAC如何生成?如何检查?指令集?
6、PAC如何启用?构建PAC的编译选项控制?
7、PAC功能如何验证?PAC检查失败时发生什么?问题如何定位?
8、PAC性能开销?如何进行优化?
9、PAC存不存在安全性问题?侧信道攻击?
10、PAC与BTI、MTE的关系如何?标记是否有冲突?
课程大纲
1、代码重用攻击及栈溢出攻击
2、栈溢出攻击的软&硬件缓解技术
3、面向返回编程ROP问题及挑战
4、PAC下的ROP问题
5、PAC的架构细节
6、PAC的启用与构建
7、QEMU上PAC功能验证与异常解析
8、PAC性能开销权衡及优化措施
9、对PAC的侧信道攻击
10、PAC与BTI、MTE的关系
二、BTI分支目标识别精讲与实践
思考
1、什么是代码重用攻击?什么是ROP攻击?区别与联系?
2、什么是JOP攻击?间接分支跳转指令?
3、JOP攻击的缓解技术?控制流完整性保护?
4、BTI下的JOP如何缓解?什么是目标着陆台?
5、BTI的架构细节?硬件原理?间接分支类型?指令集?
6、BTI如何启用?编译选项控制?
7、构建BTI编译工具支持?在OPTEE上应用?官方文档真的可行?
8、BTI功能如何验证?错误间接分支时发生什么?问题如何定位?
9、BTI性能开销?如何进行优化?
10、BTI与PAC的关系如何?
课程大纲
1、代码重用攻击及ROP攻击
2、面向跳转编程JOP问题及挑战
3、JOP攻击的缓解技术
4、BTI下的JOP问题
5、BTI的架构细节
6、BTI的启用与构建
7、构建BTI的编译工具支持
8、QEMU上BTI功能验证与异常解析
9、BTI性能开销权衡及优化措施
10、BTI与PAC的关系
三、MTE内存标记扩展精讲与实战
思考
1、常见的内存安全问题有哪些?举例说明?
2、内存安全的软件缓解技术有哪些?在optee上的应用?
3、MTE下的内存安全性如何保证?空间安全性?时间安全性?
4、MTE的架构细节?硬件原理?TAG存在哪?TAG哪些地址?
5、MTE在SOC上的硬件部署?缓存一致性和总线互联考虑?
6、MTE功能如何验证?TAG比较失败时发生什么?问题如何定位?
7、MTE性能开销?同步模式?异步模式?如何进行优化?
8、MTE存不存在安全性问题?侧信道攻击?
9、MTE与PAC的关系如何?标记是否有冲突?
课程大纲
1、内存安全问题及挑战
2、内存安全的软件缓解技术
3、MTE下的内存安全性
4、MTE的架构细节
5、MTE在SOC上的硬件部署及示例
6、QEMU上MTE功能验证与异常解析
7、MTE性能开销权衡及优化措施
8、对MTE的侧信道攻击
9、MTE与PAC的关系