网络攻防技术——幽灵攻击实验

本文通过实验详细介绍了幽灵攻击的原理和步骤,包括侧通道攻击、CPU缓存利用、无序执行与分支预测等。通过一系列的任务,如FlushReload、SpectreExperiment,展示了如何利用这些概念来实施攻击并获取敏感信息。实验揭示了CPU设计中的漏洞,为网络安全教育提供了宝贵案例。
摘要由CSDN通过智能技术生成

一、题目

幽灵攻击于2017年发现,并于2018年1月公开披露,它利用关键漏洞进行攻击,存在于许多现代处理器中,包括Intel、AMD和ARM处理器。漏洞允许程序突破进程间和进程内的隔离,以便恶意程序可以读取来自无法访问区域的数据。硬件保护不允许这样的访问机制(用于进程间的隔离)或软件保护机制(用于进程内的隔离),但CPU设计中存在漏洞,可能会破坏保护。因为缺陷存在于硬件中,很难从根本上解决问题,除非更换CPU。幽灵和熔断漏洞代表了CPU设计中的一种特殊类型的漏洞,它们还为安全教育提供了宝贵的一课。
本实验的学习目标是让学生获得幽灵攻击的第一手经验。攻击本身非常复杂,因此我们将其分解为几个小步骤,每个步骤都是易于理解和执行。一旦学生理解了每一步,就不难理解了把所有的东西放在一起进行实际的攻击。本实验涵盖了以下内容:
•幽灵攻击
•侧通道攻击
•CPU缓存
•CPU微体系结构内的无序执行和分支预测

二、过程

一、Task 1: Reading from Cache versus from Memory
缓存内存用于以更快的速度向高速处理器提供数据。与主存相比,缓存内存非常快。让我们看看时间差。在代码CacheTime.c中,我们有一个大小为104096的数组。我们首先访问它的两个元素,数组[34096]和数组[74096]。因此,包含这两个元素的页面将被缓存。然后,我们从数组[04096]读取元素到数组[94096],并测量3在内存读取中所花费的时间。需要注意的是,缓存是在缓存块级别完成的,而不是在字节级别。一个典型的高速缓存块大小为64字节。我们使用数组[k4096],因此程序中使用的两个元素不属于同一个缓存块。
在这里插入图片描述

使用gcc -march=native CacheTime.c编译

在这里插入图片描述
在这里插入图片描述

实验结果表明,数组[34096]和数组[74096]的访问速度是否比其他元素更快。
二、Task 2: Using Cache as a Side Cha

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值