通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击
通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击
大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞。此洞可以说是个神洞,通过dirtycow,一个普通权限的app可以做到root权限的文件任意写,随后还可以转化为android上的通用root。就在大家纷纷埋头研究dirtycow的时候,Drammer横空出世,号称也可以root最新版的Android 6.0.1,同时还放出了CCS论文和POC。
那么这个Drammer到底是什么东西呢?
Drammer可以说是一种针对android设备的攻击方式,利用的是内存芯片设计上的一个缺陷。然而,这个问题并不是只出现在Android系统上,而是所有使用内存的系统都会出现这个问题。最早提出这种攻击方式的人是卡内基梅隆大学的Yoongu Kim写的一篇paper -《Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors》 在这篇文章中,作者提到有个有趣的现象,如果不断的访问两个具有"侵略者"性质的虚拟地址会让一个具有"受害者"性质的内存数据进行位翻转,更神奇的是这个具有"受害者"性质的内存可能会在当前进程可访问的虚拟地址以外。
为什么会有这种现象呢?
原因是内存厂商为了能让内存芯片存储更多的数据,于是将内存中的DRAM(The Dynamic Random Access Memory)cell越做越小并且离的越来越近,从而导致相邻的cell在通电的过程中会受到影响。因此,如果我们不断的访问某个位置上的内存,就可能会造成相邻的内存进行位翻转。随后google project zero还通过PC上的linux提权,证明了这种现象的确存在并且可以用来进行攻击(https://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-gain.html)并将这种攻击方式称为RowHammer。因此,这次出现的drammer是受之前研究的启发,从而实现了Android上的rowhammer攻击,所以drammer全称其实是DRoid and rowhAMMER。
在Android上,整个攻击的基本思路是:1. 先找到用户态可以flush内存的api,比如Android上的ION。2. 然后利用这个api配合上FLIP FENG SHUI技术进行rowhammer攻击。目的是位翻转Page Table Entry (PTE)并让其指向一个攻击者可以控制的内存上。3. 修改PTE从而控制整个物理内存。配合其他漏洞还可以做到远程攻击(DEMO:https://www.vusec.net/projects/drammer/)。
原来硬件上设计的缺陷还会出现这种问题,是不是感觉脑洞已经快要爆炸了。并且这次的攻击与操作系统和软件无关,纯粹是硬件上的漏洞导致的。因此,不光是linux和Android,Windows, OS X和iOS应该也是受影响的。唉,May god bless all electronic devices.
作者:蒸米@阿里移动安全,更多Android、iOS技术文章,请访问阿里聚安全博客
通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击的更多相关文章
- DedeCMS全版本通杀SQL注入漏洞利用代码及工具
dedecms即织梦(PHP开源网站内容管理系统).织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,近日,网友 ...
- CVE-2017-11882:Microsoft office 公式编辑器 font name 字段栈溢出通杀漏洞调试分析
\x01 漏洞简介 在 2017 年 11 月微软的例行系统补丁发布中,修复了一个 Office 远程代码执行漏洞(缓冲区溢出),编号为 CVE-2017-11882,又称为 "噩梦公式&q ...
- 【渗透实战】那些奇葩的WAF_第二期_无意发现通杀漏洞,空字节突破上传!
/文章作者:Kali_MG1937 CSDN博客号:ALDYS4 QQ:3496925334 未经许可,禁止转载/ 该博文为本人18年左右的渗透记录,文法粗糙,技术含量极低,流水账文章,且今日不知为何 ...
- 网站安全检测 漏洞检测 对thinkphp通杀漏洞利用与修复建议
thinkphp在国内来说,很多站长以及平台都在使用这套开源的系统来建站,为什么会这么深受大家的喜欢,第一开源,便捷,高效,生成静态化html,第二框架性的易于开发php架构,很多第三方的插件以及第三 ...
- Postsharp 破解工具(通杀版,持续更新)
2019.04.18 重要说明 VS2019 正式版已经发布了,Postsharp v6.2.2-Preview(预览版)也开始支持VS2019.不过截至目前,该预览版还不是特别稳定,因此提醒下大家在 ...
- 利用Ossim系统进行主机漏洞扫描
利用Ossim系统进行主机漏洞扫描 企业中查找漏洞要付出很大的努力,不能简单的在服务器上安装一个漏洞扫描软件那么简单,那样起不了多大作用.这并不是因为企业中拥有大量服务器和主机设备,这些服务器和设备又 ...
- linux查看系统的硬件信息
linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并做了分类,实例解说. cpu lscpu命令,查看的是cpu的统计信息. blue@blue-pc:~ ...
- 【阿里聚安全·安全周刊】 全美警局已普遍拥有破解 iPhone 的能力 | 女黑客破解任天堂Switch,称硬件漏洞无法修复
本周的七个关键词: 破解 iPhone丨 女黑客破解任天堂丨假的身份证 丨 扫黄打非丨华盛顿特区发现手机间谍设备 丨 Telegram被俄罗斯监管机构告上法庭丨价值5万美金的Firefox浏览器漏洞 ...
- linux查看系统的硬件信息【转】
linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并做了分类,实例解说. cpu lscpu命令,查看的是cpu的统计信息. blue@blue-pc:~ ...
随机推荐
- POCO库——Foundation组件之缓存Cache
缓存Cache:内部提供多种缓存Cache机制,并对不同机制的管理缓存策略不同实现: ValidArgs.h :ValidArgs有效键参数类,模板参数实现,_key:键,_isValid:是否有效, ...
- Linux内核源代码获取教程
Linux内核源代码获取方法 什么叫Linux 什么叫Linux内核 Linux内核源代码的获取 什么叫Linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UN ...
- Log4Net记录日志的使用
Log4net 基本样式: <log4net> <appender name="LogFileAppender" type="log4net.Appen ...
- webpack初试
前言: 知道这完儿,没用过.关于webpack有很多介绍了,就不多说了.放几个链接,方便新手理解.这是给纯没用过的人了解的.这里只是简单介绍一下webpack的基本用法.大多内容都是来自webpack ...
- react native 中webview内的点击事件传到外部原生调用
先说一下我使用webview的时候遇到的一个功能需求 是这样的,上图中的这个页面是用h5做的,但是由于点击"我的优惠劵"是需要跳转到我原生的页面,也就是说我需要获得这个h5提供的点 ...
- 微信禁用右上角的分享按钮,WeixinJSBridge API以及隐藏分享的子按钮等菜单项
<!--禁用微信分享按钮--> <script> function onBridgeReady() { WeixinJSBridge.call('hideOptionMenu' ...
- iOS 面试题搜集
1.#import和#include的区别,@class代表什么? 2.浅拷贝和深拷贝区别是什么? 3.Objective-C中类别和类扩展的区别? 4.Objective-C堆和栈的区别? 5.内存 ...
- 深入探索RB-tree数据结构
引子 部门在各个团队推广软件通用技能矩阵工具,希望通过度量找到能力薄弱点,引导团队进行改进.从我们团队的数据上看,团队在数据结构和算法上的短板明显,需要加强,这也是写这篇文章的背后的初衷. 数据结构和 ...
- [XAML]类似WPF绑定的Binding的读取方法
在WPF的XAML里,依赖属性可以使用基于BindingBase之类的MarkupExtensin 读取XAML时,会自动的把该BindingBase转换为BindingExpressionBase ...
- jmobile学习之路 ---- 视口
当我们的浏览器在窗口最大化的时候,此时屏幕的宽度,就是我们桌面的分辨率.这个规则仅仅适用于PC! 我们试图在iPhone中输出屏幕宽度,你会发现屏幕宽度是980!居然和PC屏幕差不多大! 苹果主导的这 ...