侧信道
side channel
破落之实
Into the Night.
展开
-
Meltdown Attack(6) - Seed Lab
Task 6 CPU的乱序执行这是Meltdown Attack的第l六个实验,原实验教程在此:https://seedsecuritylabs.org/Labs_16.04/System/Meltdown_Attack/从前面的任务中,我们可以知道,当一个程序试图读取内核内存时,访问会失败,并且产生一个异常。让我们看看下面的代码。number = 0;*kernel_address =...原创 2020-04-25 16:57:54 · 1222 阅读 · 0 评论 -
Meltdown Attack(5) - Seed Lab
Task 5 处理异常在Task4中,我们从用户空间去访问内核内存会导致程序crash。在meltdown攻击中,在访问了内存区域后,我们必须做点什么处理,以防止程序崩溃。访问不可访问的内存区域会产生一个SIGSEGV信号,如果一个程序不能处理这个异常,那么操作系统会来处理,并且将其终止。这就是为什么Task 4 的程序崩溃的原因。要解决这种崩溃,我们可以在程序中俘获这种异常并进行处理。不像C...原创 2020-04-25 15:24:25 · 892 阅读 · 0 评论 -
Meltdown Attack(4) - Seed Lab
Task 4 从用户空间访问内核内存现在我们知道了secret data的地址了,让我们做个实验来看看能否直接访问到这个地址的数据。查看这个地址的代码如下。AccessKernel.c#include<stdio.h>int main(){ char *kernel_data_addr = (char*)0xf9c6c000; //f9c6c000是从task3获得的...原创 2020-04-24 22:00:00 · 904 阅读 · 0 评论 -
Meltdown Attack (3) - Seed Lab
Task3 :把secret data放在内核空间中本次实验是为Meltdown Attack做准备。主要目的是把secret data放在内核空间。以便后续我们以用户态获取到内核态的信息。就有点像插个旗子在内核,然后等我们后面去拿。实现熔断攻击需要满足两个条件:我们需要知道目标secret data的地址。下面代码的内核模块将secret data的地址保存在了内核信息缓冲区中,这样使用...原创 2020-04-18 22:30:47 · 1541 阅读 · 2 评论 -
Meltdown Attack(2) - Seed Lab
这是Meltdown Attack的第二个实验,原实验教程在此:https://seedsecuritylabs.org/Labs_16.04/System/Meltdown_Attack/Task 2 : 使用Cache作为侧信道本实验的目的是利用函数的缺陷来从侧信道获取秘密信息。本次实验基于以下两点假设:存在缺陷的函数使用一个secret作为索引来从数组加载值。这个secret不能...原创 2020-04-18 20:21:41 · 1038 阅读 · 0 评论 -
Meltdown Attack(1) - Seed Lab
最近在了解Meltdown攻击,在网上发现了Syracuse University的Wenliang Du教授写的关于这方面的实验教程。感觉很受益,粗略地翻译了一部分,自己跟着做了实验,记录于此。感兴趣的可以去原网址查看,讲义和代码都可以找到:https://seedsecuritylabs.org/Labs_16.04/System/Meltdown_Attack/Task 1 :读Cach...原创 2020-04-18 20:08:33 · 1702 阅读 · 0 评论