SGX攻击浅谈

admin 2022年1月6日01:06:00评论114 views字数 3477阅读11分35秒阅读模式

Base-SGX-Attack

SgxPectre attack allows to reveal the content of the SGX enclaveSecurity  Affairs

0x00 起源研究

1.VOLTpwn(software-based)

a.介绍

VOLTpwn(CVE-2019-11157)是通过Intel处理器提供的用于控制CPU电压的软件接口MSR(Model Specific Register)0x150 来实现基于电压的故障注入

#目前为止未公布POC代码

a.危害

​ 通过恶意软件可以使用此接口将处理器电压降低到一个临界阀值,在该阀值下某些指令将无法正常运行。这意味着攻击者能够在使用这些指令实现的计算机中实现的计算中引起位翻转。因此攻击者能够操纵密码计算,甚至偏离程序的控制流程

b.局限性

​ 由于攻击是由软件控制的,因此攻击者不需要物理访问计算机。但是,攻击者需要操作系统特权才能使用电压接口。这意味着该漏洞并不直接威胁普通用户。主要目标是受信任的执行环境,例如intel sgx

c.如何修复

​ 大部分用户用不到基于软件的电压调节接口,将intel 该接口禁用即可

2.VoltPillager(Hardware-based)

a.介绍

在VOLTpwn的基础上,针对intel将基于软件的电压调节禁用以缓解故障注入对SGX的影响,提出了使用硬件手段来进行攻击。

b.影响

​ 打破了公认的“SGX可以在硬件计算服务提供商是恶意的情况下保证用户数据和计算过程的安全性”这个前提

0x01 Intel® SGX

1.概述

Intel® Software Guard Extensions (Intel® SGX)保护选定的代码和数据不被泄露和修改。开发者可以把应用程序划分到CPU强化的encalve(飞地)中或者内存中可执行的保护区域,即使在受攻击的平台中也能提高安全性。

2.特性

a.机密性和完整性

​ 即使在OS、BIOS、VMM或者SMM层存在特权恶意软件的情况下也能保证。

b.低学习曲线

​ 和父类应用程序蕾丝的OS编程模型,并且在主CPU上执行。

c.远程认证和提供

​ 远程部分能够认证一个应用程序enclave的身份,并且安全地将密钥、凭据和敏感数据提供给enclave

d.最小可能的攻击面

​ CPU边界成为攻击面外围,所有数据、内存、外围之外的I/O都是加密的。

3.解决的问题

传统应用程序的的约束

​ 开发者长期以来受到主要平台提供商暴露给应用开发的安全能力的限制。黑客也一样熟悉这些功能,他们能够利用弱点来加密敏感数据、凭据或者劫持代码来进行攻击。开发者必须依赖提供商的安全架构,在平台发布之后,他们没有能力设计一个符合他们需求的安全模型。

4.提供新的方法

​ Intel设计了一个可能具有最小攻击面的硬件辅助的可信执行环境:CPU边界。Intel SGX提供了17种新的Intel®架构指令,应用程序可以用来为代码和数据设置保留的私有区域,也能够阻止对执行中代码和内存中数据进行的直接攻击。

开发intel SGX保护的应用程序

a.组成
  • 不可信代码
  • 可信代码enclave(可以被安全调用)
b.运行流程
  • 1.App由可信和不可信部分构成
  • 2.App运行和穿件enclave,enclave放入可信内存中
  • 3.可信函数被调用,执行会转换到enclave中
  • 4.enclave可以访问所有进程数据,外部要访问encalve数据被禁止
  • 5.可信函数返回enclave数据
  • 6.App进行执行不同代码
c.认证enclave和加密数据
  • intel SGX使用enclave之间本地认证或者第三方认证的方式来保证应用程序没有收到破坏

    过程
    • 1.intel SGX通过指令生成CPU和enclave特定的密封密钥
    • 2.应用程序受保护的部分会被加载到一个enclave
    • 3.对应的代码和数据都会受到测量
    • 4.将对应的报告发送给远端应用程序拥有着的服务器上
    • 5.验证这个enclave报告是不是一个可靠的intel处理器生成的
    • 6.验证成功远端信任并安全的提供密钥、凭证和数据
d.可能存在的攻击面
  • 对enclave未授权访问
  • 对enclave内存侦听

5.实现新的安全模型和创新

intel SGX使用案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
保护应用程序和数据	Tamper-resistant code tool vendors

保护支付对话以及云和数据安全 Financial services industry (FSI) companies

加强生物识别; 强化认证 Security authentication companies

强化浏览器体验 Browser vendors

强化DRM,增强高清,4K超高清(UHD)内容保护 Content playback ISVs and content owners across over-the-top (OTT) and media services

加强终端安全性 Security ISVs and OEMs

保护通信-终端到管理控制台 Security ISVs

保护电子病历(EMR),敏感和机密数据 Governments and major health care organizations

保护本地文件系统上的密钥; 强化磁盘保护 Disk encryption ISVs

保护密钥管理,优化嵌入式应用程序 Cloud, infrastructure, and SaaS providers

保护TLS密钥库管理 Cloud, content delivery networks, frequency scanning interferometry (FSI), infrastructure, SaaS

安全的分析工作负载 Big data ISVs and enterprises

安全的文档共享和查看 Government and secure document sharing ISVs

飞地优化的嵌入式应用程序 Major defense contractors

安全的IoT边界设备和云通信 IoT gateway and device manufacturers

0x02实验准备

1.System

1
2
3
4
5
6
7
8
9
- 1.Ubuntu 18.04.3 LTS 64-bit
- 2.Kernel 5.0.0-23-generic
- 3.Intel SGX driver V2.6

- https://github.com/intel/linux-sgx-driver

- 4.IntelSGX-SDK V 2.8

- https://github.com/intel/linux-sgx

2.Others

1.Teensy 4.0 Development Board(350¥)

2 *Bus Driver,you can choose between the following

  • b.SN74LVC1G07DRLR(7¥)

  • a.NL17SZ07XV5T2G(1-3¥)

3.SOT IC Adapter(172¥)

0x03攻击方式

1.选择明文攻击差分攻击获取AES密钥

2.延迟写攻击

​ 作者发现在拉低电压的情况下会出现写操作延迟,流水线调度出现问题,造成结果错误的问题。

eg:流水线已经执行下一条数据相关的指令但是上段流水的写操作尚未完成,导致计算出错,理论上可以用于绕过密码判断等,也可以造成数据写越界

3.攻击步骤

1.找到主板上的SVID和电压调节器(VR)

2.通过tenssy和其他的工具,并接在SVID总线上,以进行指令注入

3.执行基于电压的故障注入攻击

0x04 缓解方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1.重新设计协议,增加SVID协议的密码认证

2.CPU监视总线上的数据包,检测注入的SVID数据包,如果非自己发出的数据包CPU可能依法异常并中止执行

- 攻击者可以在CPU和VR间充当中间人,隐藏恶意的数据包

3.检测自身电源电压,如果电压低于以下的值则终止,电压监控电路

- 不能依赖基于测量CPU电压的缓解措施,SGX不提供信任的方式来访问MSR,因此此类对策都可以通过有问题的操作系统

4.检测在运行内核上的多个关键代码路径

- 这种对此对策大量的硬件更改并产生开销

5.使用完全集成的稳压器(FIVR)

- 第4代Intel Core SoC(已废弃)

0x05参考链接

https://www.usenix.org/system/files/sec21summer_chen-zitai.pdf

https://zhuanlan.zhihu.com/p/39976702

https://www.youtube.com/watch?v=5Mr1FCZ7VBQ

https://github.com/intel/linux-sgx-driver

FROM :ol4three.com | Author:ol4three

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月6日01:06:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SGX攻击浅谈http://cn-sec.com/archives/721024.html

发表评论

匿名网友 填写信息