当前位置: 首页 > news >正文

Klotski: Efficient Obfuscated Execution against Controlled-Channel Attacks

标题:Klotski: Efficient Obfuscated Execution against Controlled-Channel Attacks
作者:Pan Zhang,Chengyu Song,Heng Yin,Deqing Zou,Elaine Shi and Hai Jin
发布:ASPLOS【计算机体系结构顶会】
时间:2020

摘要

Intel Software Guard eXtensions(SGX)为安全敏感计算提供了一个基于硬件的可信执行环境。在可信域(飞地)内运行的程序受到保护,免受其他软件的直接攻击,包括操作系统(OS)、系统管理程序和低级固件等特权软件。

然而,最近的研究表明,SGX容易受到一组侧信道攻击,这些攻击允许攻击者破坏飞地执行的机密性,例如受控信道攻击。

不幸的是,现有的防御要么提供了不完整的保护,要么带来了太多的性能开销。

在这项工作中,我们提出了Klotski,这是一种有效的模糊执行技术,通过在安全性和性能之间进行可调的权衡来击败受控通道攻击。从高层来看,Klotski模拟了一个安全的内存子系统。它利用增强的ORAM协议将代码和数据加载到两个具有可配置大小的软件缓存中,并在可配置的间隔后重新随机化。更重要的是,Klotski采用多种优化来减少由基于软件的地址转换和软件缓存替换引起的性能开销。评估结果表明,Klotski对受控信道攻击是安全的,其性能开销远低于以前的解决方案。

引言

可信执行环境(TEE)旨在保护应用程序执行的机密性和完整性,使其免受不受应用程序开发人员物理控制的潜在敌对平台(如公共云)上的各种安全威胁。此类威胁包括恶意软件、恶意或受损的操作系统(OS)、流氓云管理员等。软件[16,24,32]和硬件[4,21,33]都可以提供TEE。在这些解决方案中,Intel Software Guard eXtensions(SGX)[33]因其在商品Intel CPU中的可用性(自Skylake微体系结构以来)和强大的基于硬件的安全保证而成为最有前途的解决方案。具体来说,在SGX保护的TEE(也称为飞地)内运行的应用程序只需要信任处理器,这是一个比基于软件的解决方案小得多的受信任计算基础(TCB)。与此同时,英特尔也做出了重大努力,正式验证SGX的硬件规范及其加密操作的实现[26]。由于这些原因,各种基于SGX的应用程序开发,包括数据分析[34,40]、机器学习[36]、Tor[29]、容器[6]和库操作系统,以支持遗留应用[7,46,52]。

不幸的是,SGX也有弱点。特别是,侧通道攻击超出了其设计的威胁模型,研究人员已经证明了针对在飞地内运行的应用程序的几种类型的侧通道攻击的可行性,包括基于页面故障的攻击(也称为控制通道攻击)[45,56]、基于缓存的攻击[9,19,23,42,54]、基于分支预测的攻击[30],和瞬态攻击[10,14,31,41]。在这些攻击中,我们认为受控信道攻击是最关键的,因为大多数其他细粒度攻击[10,14,23,30,31,41,53,54](除了Meltdown[31])成本更高。因此,对手通常依靠受控信道攻击来精确定位感兴趣的功能,并且仅在执行目标功能时才发起细粒度攻击

受控通道攻击是可能的,因为(1)攻击者可以观察内存访问模式[51],(2)应用程序的内存访问模式依赖于输入。因此,可以通过解决其中任何一个根本原因来击败受控信道攻击。

用户空间页面故障检测方法[44,45]旨在防止攻击者通过故意注入的页面故障获取页面访问模式。不幸的是,它们对不依赖于页面故障的受控信道攻击无效(例如,基于访问位的攻击[54])。

SGX Shield[43]试图通过内存布局随机化来混淆内存访问。但由于它在加载时只随机化一次,因此可以通过在线评测【应该是分支预测攻击】来击败它[30]【[30]是branch shadowing】。

Oblivious execution(疏忽执行技术)[2,3,37,39,45]对在线评测是安全的,但会带来更高的性能开销。例如,deterministic multiplexing(确定性复用)[45]的运行时性能开销超过4000倍,多程序路径执行[37]的开销为9倍,OBFSCURO[2]的开销为简单基准测试的51倍。

在这项工作中,我们的目标是通过在安全保证和性能开销之间进行可调的权衡来击败受控信道攻击。在高层次上,我们提出的系统Klotski充当内存子系统。它由两个软件缓存(一个执行vCache和一个数据vCache)、一个软件内存管理单元(sMMU)和一个虚拟主内存组成。与物理CPU类似,所有执行的指令都是从执行vCache中提取的,所有数据都是从数据vCache中读取/写入的。sMMU将我们称之为逻辑地址的编译时虚拟地址转换为运行时虚拟地址(即硬件MMU的线性地址)。该机制允许我们将内存块加载到vCache的任何插槽中。为了在执行过程中混淆内存访问模式,sMMU使用Ring ORAM协议[38]来访问主内存。此外,由于“客户端”ORAM操作,包括对元数据的访问(例如,隐藏和位置图)也容易受到侧通道攻击,Klotski使用额外的保护措施,以确保在我们的威胁模型下,所有此类行动都不会被遗忘。最后,通过随机替换策略和强制刷新对vCache进行重新随机化

虽然上面的设计是安全的,并且类似于以前的工作[2,3,39],但简单的实现会带来非常高的性能开销。Klotski的另一个重要贡献是几种优化技术。首先,Klotski通过缓存结果来减少地址转换的次数。类似于硬件转换后备缓冲区(TLB),Klotski利用程序局部性来避免冗余的地址转换。其次,Klotskii改进了程序的局部性,以减少缓存替换的数量,包括对齐循环以避免交叉缓存块循环体,以及将常量重新定位到同一代码块。最后,Klotski通过可配置的参数提供了性能和安全性之间的可调权衡。在spectrum的一端,当开发人员选择较小的vCache大小(例如,4KB)时,Klotski可以保证不经意的执行,代价是更高的性能开销(大约10倍)。另一方面,开发人员可以选择使用更大的vCache大小(例如,足够工作集使用)来减少性能开销,代价是降低安全保证。然而,在实践中,随着vCache的重新随机化,对于大多数应用程序来说,即使是减少的安全保证也是合理的(见§6)。

我们已经基于Intel SDK for Linux、LLVM工具链和musl-libc实现了Klotski。我们的实验评估表明:

(1)Klotski对飞地程序的已知受控信道推断攻击是有效的,

(2)Klotsky与飞地程序具有良好的兼容性,

(3)在提供合理的安全保证的同时,Klotski在实际程序上施加的性能开销可以降低到1.3倍。

贡献

新的基于ORAM的防御控制信道攻击

我们设计并实现了一种新的模糊执行技术,以保护飞地程序免受受控通道攻击。我们的安全评估表明,我们的设计能够防止我们的威胁模型下的所有攻击

优化技术

我们开发了几种优化技术来减少开销。评估还表明,我们的优化技术非常有效,可以将性能提高6.7倍。对于实际应用,Klotski的性能也是可以接受的,只有2.3倍,在安全性方面有很好的平衡。

开源实现

我们实现了一个端到端的工具链,支持各种飞地程序。源代码和文档将在接受此工作后向公众开放(https://github.com/nczhang88pan/KlotskiSGX.git)。

背景

Intel SGX

SGX提供两种安全保障:机密性和完整性。

首先,它防止属于飞地的代码和数据在飞地之外被访问,包括特权软件,如操作系统和系统管理程序。

其次,它使用内存加密[22]来防止诸如窥探和冷启动之类的内存攻击。

它还维护飞地内存的完整性措施,以防止恶意篡改和重放攻击。当飞地内发生硬件异常/中断时,处理器在调用系统软件的异常处理程序之前生成异步飞地退出(AEX)。SGX首先将飞地的执行状态保存到状态保存区(SSA),并将所有寄存器重置为预定义值,以避免泄露机密。例如,当发生页面故障时,SGX将清除故障地址的最低12位。然后将控制权转移到异常处理程序。最后,在完成该过程之后,处理程序恢复飞地程序

(待更新)

相关文章:

Klotski: Efficient Obfuscated Execution against Controlled-Channel Attacks

标题:Klotski: Efficient Obfuscated Execution against Controlled-Channel Attacks 作者:Pan Zhang,Chengyu Song,Heng Yin,Deqing Zou,Elaine Shi and Hai Jin 发布:ASPLOS【计算机体系结构顶会】 时间:2020 摘要 Intel Soft…...

阿里云无影云电脑角色AliyunServiceRoleForGws什么意思?

阿里云无影云电脑服务关联角色是指角色名称:AliyunServiceRoleForGws,并赋予角色权限策略:AliyunServiceRolePolicyForGws的过程,简单来说,就是允许无影云电脑服务访问您VPC、CEN和NAS中的资源,使用该权限查…...

操作系统--------调度算法篇

目录 一.先来先服务调度算法(FCFS) 二.短作业优先调度算法(SJF) 2.1.SJF调度算法缺点 三.优先级调度算法 3.1优先级调度算法的类型 1.非抢占优先级调度算法 2.抢占优先级调度算法 3.2优先级的类型 3.1静态优先级 3.2动态…...

宝塔composer 安装laravel依赖出现的问题

环境宝塔、PHP版本8.0.2、laravel9 问题1:PHP Fatal error: Uncaught Error: Call to undefined function Composer\XdebugHandler\putenv() 办法:把PHP版本disable_functions这个中的putenv去掉,这个意思就是putenv被PHP对应的版本禁用了&…...

OpenCV自学笔记二十四:支持向量机

在OpenCV中,支持向量机(Support Vector Machine,简称SVM)算法的实现包含在ml模块中。SVM是一种常用的监督学习算法,主要用于分类问题。 SVM的原理:通过在特征空间中找到一个最优超平面,将不同类…...

网络初识

一 IP 地址 概念: IP 地址主要用于表示网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址 格式 IP 地址是一个32为的二进制数,通常被分割为4个“8位二进制数“(也就是4个字节&…...

极坐标和直角坐标的雅克比矩阵推导

我们经常需要在一些问题中研究坐标系的关系,这里讲讲最常见的极坐标和直角坐标的雅克比矩阵的推导。以二维坐标为例,三维坐标也是同理。 1. 直角坐标和极坐标 直角坐标表示为 ( x , y ) (x,y) (x,y),极坐标表示为 ( ρ , φ ) (\rho,\varph…...

经管博士科研基础【25】概率论中的相关基础概念

1. Support 在概率论中,"support"(支撑集)是指随机变量可能取值的集合。对于离散型随机变量,支撑集包含了所有可能的取值;而对于连续型随机变量,支撑集是指其密度函数或概率质量函数非零的区域。…...

计算机网络的相关知识点总结(一)

1.谈一谈对OSI七层模型和TCP/IP四层模型的理解? 不管是OSI七层模型亦或是TCP/IP四层模型,它们的提出都有一个共同的目的:通过分层来将复杂问题细化,通过各个层级之间的相互配合来更好的解决计算机中出现的问题。 说到分层&#xf…...

下载github.com上的依赖资源

下载github.com上的依赖资源(需要反复试才能成功,所以单独安装) export GIT_TRACE1 export GIT_CURL_VERBOSE1 pip install githttps://github.com/PanQiWei/AutoGPTQ.git -i https://pypi.mirrors.ustc.edu.cn/simple --trusted-hostpypi.mi…...

编写 GPT 提示词的公式 + 资源分享

GPT 能够给我们带来很大的帮助,因此我们要好好利用它。我们希望 GPT 输出令我们满意的内容,影响 GPT 输出内容的因素有模型和输入(Prompt,提示词)。 模型:我们可以选择不同的 GPT 产品,它们的模…...

用HTML、CSS和JavaScript制作的通用进制转换器

随着编程和计算机科学越来越受欢迎,我们经常需要进行进制转换。本文将介绍一个简洁、美观、适用于移动设备的进制转换工具,并详细讨论其实现。 目录 🌍 用HTML、CSS和JavaScript制作的通用进制转换器 1.项目图片展示 2. 技术栈 3. 主要功…...

ArcGIS 10.3软件安装包下载及安装教程!

【软件名称】:ArcGIS 10.3 【安装环境】:Windows 【下载链接 】: 链接:https://pan.baidu.com/s/1K5ab7IHMYa23HpmuPkFa1A 提取码:oxbb 复制这段内容后打开百度网盘手机App,操作更方便哦 软件解压码点击原文…...

【数据增强】

【数据增强】 1 数据增强的情形2 数据增强的方法 1 数据增强的情形 当数据比较小,难以获取新的训练数据时,可以考虑数据增强,如随机裁剪部分,随机左右上下翻转、随机旋转一个角度、随机亮度变化等微小变化,数据的多样…...

Ae 效果:CC Force Motion Blur

时间/CC Force Motion Blur Time/CC Force Motion Blur CC Force Motion Blur (CC 强制运动模糊)主要用于为动态图像添加强制的运动模糊效果,增加动态画面的流畅感和真实感。 相对于时间轴面板上的“运动模糊”开关,CC Force Moti…...

2023华为杯研究生数学建模竞赛CDEF题思路+模型代码

全程更新华为杯研赛CDEF题思路模型及代码,大家查看文末名片获取 华为杯C题思路分析 问题一 在每个评审阶段,作品通常都是随机分发的,每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性,不同专家评审的作…...

FP独立站之黑科技:AB站收款、斗篷CLOAK

最近一段时间经常有不少小伙伴来咨询我独立站的相关的业务,因为很多独立站卖家觉得独立站不好做,再加上跨境平台禁止特货类产品的销售(如FP产品、成人用品、电子烟、灰黑类产品等等),但这类产品市场需求大,…...

【Linux网络编程】gdb调试技巧

这篇博客主要要记录一下自己在Linux操作系统Ubuntu下使用gbd调试程序的一些指令,以及使用过程中的一些心得。 使用方法 可以使用如下代码 gcc -g test.c -o test 或者 gcc test.c -o test ​ -g的选项最好添加,如果不添加,l指令无法被识别 …...

ElementUI之登录与注册

目录 一.前言 二.ElementUI的简介 三.登录注册前端界面的开发 三.vue axios前后端交互--- Get请求 四.vue axios前后端交互--- Post请求 五.跨域问题 一.前言 这一篇的知识点在前面两篇的博客中就已经详细详解啦,包括如何环境搭建和如何建一个spa项目等等知识…...

报错处理:Error: Redis server is running but Redis CLI cannot connect

嗨,读者朋友们!今天我来跟大家分享一个我在运维过程中遇到的一个关于Linux上运行Redis服务时的报错及解决方法。 报错信息如下: Error: Redis server is running but Redis CLI cannot connect 这个报错信息表明Redis服务器已经运行&#xff…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来&#xf…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...