freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Double fetch漏洞挖掘技术
2019-03-01 17:24:03

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

 什么是Double fetch? 

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

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

1.jpg

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

 技术探讨一 

Google公司开源的bochspwn。

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

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

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


2.jpg

Boch中原api实现:


3.jpg

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


4.jpg5.jpg

 技术探讨二 

利用intel pt技术特性挖掘。


6.jpg

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


7.jpg

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

 总结 

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

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

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

QQ截图20190228171044.jpg

# 漏洞分析
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者