Double fetch漏洞挖掘技术

本篇主要给大家科普Double fetch漏洞通用挖掘技术。

什么是Double fetch?

Double fetch类型漏洞产生于多线程数据访问时,并且没有做必要的安全同步措施。多线程时,对同一数据一个线程读一个线程写,可能引起数据访问异常,而这个异常如果能被利用,这就是一个漏洞。

典型的情况,一个数据ring3应用访问,ring0也能访问,如果没有同步安全措施,可能会引起系统崩溃。

Double fetch漏洞挖掘技术

Double Fetch原理(图片来自网络,如有侵权,联系秒删)

技术探讨一

Google公司开源的bochspwn。

Bochspwn是在boch源码基础上修改,能够捕捉double fetch漏洞。

Bochspwn主要用到bx_instr_lin_access这个boch的api。

看下boch文档的介绍,这个回调是当模拟器有线性内存访问时会触发。

Double fetch漏洞挖掘技术

Boch中原api实现:

Double fetch漏洞挖掘技术

Bochspwn中bx_instr_lin_acess的实现,当ring0层代码访问ring3数据时,对应的指令会被bochspwn记录下来。

Double fetch漏洞挖掘技术
Double fetch漏洞挖掘技术

技术探讨二

利用intel pt技术特性挖掘。

Double fetch漏洞挖掘技术

按intel pt官方文档介绍,intel pt可以在硬件层记录程序的执行流程。

Double fetch漏洞挖掘技术

Pt可以对内核地址,多进程追踪 。pt不需要对系统打补丁,就可以对内核及应用进行动态分析。利用这一特性,找double fetch这类漏洞应该是可行的。

总结

以上探讨两种double fetch漏洞挖掘技术,pt是基于硬件,速度更优于模拟器。

本篇更倾向科普,同时也感谢开源给我们带来的技术进步,感谢前辈们的技术分享。

四维创智***实验室原创文章 转载请注明来源

Double fetch漏洞挖掘技术

转载于:https://blog.51cto.com/13694685/2356887

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值