只要平时对安全领域感兴趣的读者肯定都听过spectre&Meltdown侧信道攻击,今天简单介绍一下这种攻击的原理( https://www.bilibili.com/video/av18144159?spm_id_from=333.788.b_765f64657363.1 这里有详细的视频介绍,墙裂推荐). 1.CPU顺序执行指令 众所周知,程序是由一条条指令顺序排列构成的,老的cpu也是逐行执行指令:随着cpu的技术发展(著名的摩尔定律),cpu执行指令的速度越来越快,和内存读写速度的差距越…
今天介绍raw hammer攻击的原理:这次有点“标题党”了.事实上,raw hammer是基于DRAM内存的攻击:所以理论上,只要是用了DRAM内存的设备,不论是什么cpu(intel.amd,或则x86.arm架构),也不论是什么操作系统(windows.linux.ios.arm等),都可能受到攻击:常见的raw hanmmer攻击效果: 提权+宕机,却无需利用软件层面的任何漏洞 打破进程间隔离.user-kernel隔离.VM间隔离以及VM-VMM间隔离,对内存地址的内容进行读+写,却无…
上面一篇介绍了spectre&meltdown基本原理和简单的demo方案,今天继续学习一下该漏洞发现团队原始的POC:https://spectreattack.com/spectre.pdf 1.先展示一下运行结果,便于有个直观的认识:从打印的结果来看,成功猜测出了secret字符串的内容: 2.下面详细解读代码 (1)整个漏洞利用核心的两个函数:rdtscp和clflush都在这两个头文件里申明了: #ifdef _MSC_VER #include <intrin.h> /* f…
前面简单介绍了row hammer攻击的原理和方法,为了更好理解这种底层硬件类攻击,今天介绍一下cpu的cache mapping: 众所周知,cpu从内存读数据,最开始用的是虚拟地址,需要通过分页机制,将虚拟地址转换成物理地址,然后从物理地址(默认是DRAM,俗称内存条)读数据:但内存条速度和cpu相差近百倍,由此诞生了L1\L2\L3 cache:cpu取数据时,会先从各个层级的cache去找,没有的再从内存取:那么问题来了,L3 cache里面有set.slice.line等模块将整个ca…
前面介绍了row hammer,理论上很完美,实际操作的时候会面临很尴尬的问题:内存存储数据最小的单位是cell(就是个电容,充电是1,放电是0),无数个横着的cell组成row,无数个竖着的cell组成colume:数个row和colume组成bank,多个bank组成chip,然后是rank,接着是dimm.channel,总的逻辑包含顺序是:channel->dimm->rank->chip->bak->row/colume->cell:怎么把物理地址映射到具体的…
第四十三个知识点:为AES描述一些基础的(可能无效)的对抗侧信道攻击的防御 原文地址:http://bristolcrypto.blogspot.com/2015/07/52-things-number-43-describe-some-basic.html 侧信道防御:为什么 对于一个现代的严肃的密码学方案,我们一般需要某种形式的安全证明.在AES中,我们认为如果攻击者不知道密钥,那么它就是一个随机排列.然而如果攻击者有侧信道信息,这可能不再安全.因此,我们能做什么防御它呢?理想的,我们可以创…
第四十五个知识点:描述一些对抗RSA侧信道攻击的基础防御方法 原文地址:http://bristolcrypto.blogspot.com/2015/08/52-things-number-45-describe-some-basic.html 为了让这篇文章保持简单,我们将会我们将讨论所谓的"香草"RSA(在加密中不使用随机性),并强调少量潜在的侧通道攻击和对策. 让我们回顾一下简单的RSA加密方案. 密钥生成:选择一对秘密的素整数\(p\)和\(q\),然后计算模\(N = pq\…
作者:backahasten 发表于小米安全中心微信公众号 0x00 前言 Unicorn可以模拟多种指令集的代码,在很多安全研究领域有很强大的作用,但是由于需要从头自己布置栈空间,代码段等虚拟执行环境,阻碍了他的使用,本文将会分析一个实例,并介绍Unicorn虚拟运行环境的构建. 本文的例子是一个白盒实现的DES算法,在riscrue的文章Unboxing the white box[1]中介绍了白盒攻击的类侧信道和类错误注入方法,并用这个程序作为例子.在riscure的代码中,由于pytho…
0x00 前言 随着物联网IOT的飞速发展,各类嵌入式设备, 路由器安全研究也越来越火. 但因为跟以往纯软件安全研究的要求不同, 这类研究往往需要结合相应的硬件知识. 很多朋友困惑如何开始, 甚至卡在了该选何种工具上. 因此汪汪将会在系列文章中分享一些实战案例和相应的工具使用. 希望能对嵌入式安全研究起到抛砖引玉作用. 在WINKHUB这个案例中我们将使用几款简单的入门工具如万用表; UART 转接头和导线等. 同时将介绍一种通过芯片阻断的方式, 获取系统ROOT权限的攻击方法. 这种方法是俗称…
做SCTF时碰到一个没看过的题型,比赛结束之后才知道是orw的一个玩法,测信道攻击.主要特点就是只给使用open,read,但是不给write,即无法把flag输出到终端.这里可以通过把flag读到栈上,再逐个爆破比较,来确定flag.原理和web的时间盲注类似. 下面给出一个UNCTF的测信道攻击的例题: 1 __int64 __fastcall main(__int64 a1, char **a2, char **a3) 2 { 3 unsigned int v3; // eax 4 __i…