用 JavaScript 实现内存位翻转漏洞

研究人员在今年初披露了一个利用计算机硬件弱点的Rowhammer攻击方法,现在一个研究团队公布了基于JavaScript的概念验证攻击代码,让看起来不可能利用的物理漏洞变得日益实用。 Rowhammer漏洞是指DRAM临近内存单元之间电子的互相影响,当重复访问特定内存位置数百万次后,攻击者可以让该位置的值从0变成1,或从1变成 0。这种位翻转漏洞可以让一个不受信任的应用获得几乎任意的系统权限,或绕过防止恶意代码访问敏感系统资源的沙盒机制。研究人员公布了一个工作在浏览器上概念验证攻击代码Rowhammer.js,目前该代码只适用于默认设置的联想x230 Ivy Bridge 笔记本电脑,或刷新间隔逐渐增加的Haswell CPU。研究人员说,攻击者可以在网站上隐藏脚本,攻击任意的访问者,它能同时攻击数百万系统。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-09-25 12:41:03

用 JavaScript 实现内存位翻转漏洞的相关文章

DDR3 内存存在硬件漏洞:可被修改数据

在通常,黑客都是研究系统和软件等的漏洞.不过这次黑客把目标瞄准了硬件.根据外媒报道,黑客发现在某些类型的DDR芯片上存在设计缺陷,可以用来提升Linux系统权限. 谷歌的Project Zero博客周一发表文章称,已经将去年科学家发现的在DDR3内存中存在的"位翻转"多次访问内存缺陷变为实际可行的攻击. 为 了保护整个系统的安全性与完整性,DDR3内存每个大的内存块仅由一个给定的应用程序或操作系统进程访问的"沙盒".黑客现在有能力来修改禁止的内存区域 的内容,这种硬

Rowhammer漏洞致“比特位翻转”,如何解决?

读者们也许会觉得Rowhammer和比特位翻转是音乐及舞蹈行业的专业术语,但其实他们指的是存在于动态随机访问存储(DRAM)--大多数电子设备中都存在的一种核心组件中的某种非常严重的漏洞.随着驱动器中在每个单独的DRAM芯片上的存储容量的提升,造成了其自身严重的漏洞,其允许攻击者把DRAM中比特位的值从1改成0,或翻转为相反的数值.这一基于硬件的攻击能够绕过核心系统保护措施,使数据安全和流程之间产生隔离.这威胁到了电子数据安全的基本原则,即内存位置的内容只有在它们被写入时才发生变化. DRAM芯

插件:检测javascript的内存泄漏_javascript技巧

转自:http://www.ajaxjs.com/yuicn/bbs/ShowPost.asp?ThreadID=6 2006-10-18 @ 07:59:29 · 作者 volcano Javascript的内存泄漏,不是太可怕.它只会悄悄的,慢慢的把你的浏览器拖的巨慢无比,让你愤怒的拍案而起,大骂微软出品的破烂浏览器危害社会.这一切有可能并不是浏览器的错,可能只是因为网页上有些javascript的内存泄漏罢了. 在科技日益发达今天,我们有必要武装自己,以及自己的浏览器,这样万一浏览器倒下了

JavaScript的内存释放问题详解_javascript技巧

本文详细的讲解了JavaScript及IE浏览器对内存的管理和释放的时机和方法,希望对前端开发人员有所帮助. 一个内存释放的实例 复制代码 代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- strTest = "1"; for ( var i = 0; i < 25; i ++ ) { strTest += strTest; } alert(strTest); delete strTest; CollectG

JavaScript避免内存泄露及内存管理技巧_javascript技巧

本文实例讲述了JavaScript避免内存泄露及内存管理技巧,非常实用.分享给大家供大家参考之用.具体方法如下: 本文内容源自谷歌WebPerf(伦敦WebPerf集团),2014年8月26日. 一般来说,高效的JavaScript Web应用必须流畅,快速.与用户交互的任何应用程序,都需要考虑如何确保内存有效使用,因为如果消耗过多,页面就会崩溃,迫使用户重新加载.而你只能躲在角落哭泣. 自动垃圾收集是不能代替有效的内存管理的,特别是在大型,长时间运行的Web应用程序中.本文中,我们将演示如何通

浅议javascript的内存泄露

简介: 如果您知道内存泄漏的起因,那么在 JavaScript 中进行相应的防范就应该相当容易.在这篇文章中,将带您亲历 JavaScript 中的循环引用的全部基本知识,向您介绍为何它们会在某些浏览器中产生问题,尤其是在结合了闭包的情况下.在了解了您应该引起注意的常见内存泄漏模式之后,您还将学到应对这些泄漏的诸多方法  js 是用来向 Web 页面添加动态内容的一种功能强大的脚本语言.它尤其特别有助于一些日常任务,比如验证密码和创建动态菜单组件.JavaScript 易学易用,但却很容易在某些

java,javascript对18位身份证格式的验证算法

参考资料 1 java实现的18位身份证格式验证算法 http://fanqiang.chinaunix.net/program/java/2006-06-22/4639.shtml 原码中有少许错误,我已经调整过来了 2 身份证效验规则,经典 http://since2006.com/blog/176 公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 1.地址码 表示编码对象常住户口所

详细分析 javascript 的内存分配

JavaScript语言是一门优秀的脚本语言.其中包含脚本语言的灵活性外还拥有许多高级语言的特性.例如充许构建和实例化一个对象,垃圾回 收机制(GC:Garbage Collecation).通常我们使用new创建对象,GC负责回收对象占用内存区域.因此了解GC,可以加深对JavaScript垃圾回收 机制的理解. 1.用局部变量和全局变量解释GC GC在回收内存时,首先会判断该对象是否被其它对象引用.在确定没有其它对象引用便释放该对象内存区域.因此如何确定对象不再被引用是 GC的关键所在. 1

javascript的内存管理详解_基础知识

介绍 低层次的语言,如C,具有低级别的内存管理命令,如:malloc()和free(),需要开发者手工释放内存.然而像javascript这样的高级语言情况则不同,对象(objects, strings 等)创建的时候分配内存,当他们不在使用的时候内存会被自动回收,这个自动回收的过程被称为垃圾回收.因为垃圾回收的存在,让javascript等高级语言开发者产生了一个错误的认识,以为可以不用关心内存管理. 内存生命周期 不管什么样的编程语言,内存的生命周期基本上是一致的. 1.分配你需要的内存 2