当前位置: 首页 > 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…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...