机密计算乃当务之急

J.Gold Associates 研究报告

引言:

  • 本报告将探讨企业转向机密计算模式所需的条件,并阐明机密计算这一方法为何如此重要,企业和机构如何从中受益,减少代价高昂的数据泄露事件,以及如何通过该方法为云、数据中心和个人计算环境提供更有效的安全保护。

  • 本报告介绍了机密计算是什么、数据泄露带来的负面影响,探讨了企业部署机密计算所需的条件,并阐明机密计算这一方法为何如此重要,企业和机构如何从中受益以减少代价高昂的数据泄露事件,以及如何通过该方法为云、数据中心和个人计算环境提供更有效的安全保护。

author-image

简介

大大小小的企业都十分清楚,不法分子正将目标瞄准他们的数据,或者是想获取信息,从中谋得经济利益、盗用知识产权,或者纯粹就是为了造成破坏。事实上,安全性始终是几乎各种规模的企业最关心的三大问题之一。无论是对于主要使用内部数据中心的企业,还是对于已迁移到云的企业,也不论他们采用的是全公有云部署还是混合云/多云方式,都是如此。而虚拟化技术在当今计算环境中的广泛运用也让安全工作变得更加复杂,因为这可能会暴露在同一物理硬件上运行所带来的 “跨虚拟机” 安全风险。

应用解决方案提供商、硬件供应商和云提供商纷纷下大力气提高安全性,并在过去几年中取得了显著进展。但是,过去在安全方面的大多数措施都集中在通过应用数据加密和/或传输加密技术来保护静态或传输中的数据。事实上,对数据库中、LAN/WAN 上或在 5G 网络中移动的数据进行加密,几乎是每个此类计算系统的关键要素。在大多数情况下,这一直是一种成功的保护策略。

如今,几乎每个计算系统,甚至是智能手机等个人设备,都内置了数据加密功能,并往往通过处理器芯片中的专用计算引擎来强化该功能。但是它们却相对忽略了一个问题,那就是,如果有不法分子通过恶意应用、破坏操作系统的 “root 权限” 或其他手段来访问设备硬件,那么所有这些加密技术都有可能被攻破。加密数据在处理过程中需采用明文形式,这无疑存在漏洞。如果此时可以访问物理内存,那么就能轻松查看/复制所有数据。而如果在一台运行多个虚拟机的机器上利用该漏洞,那么可利用的数据量便会大幅增加。机密计算的初衷就是要消除这类风险。

本报告将探讨企业转向机密计算模式所需的条件,并阐明机密计算这一方法为何如此重要,企业和机构如何从中受益,减少代价高昂的数据泄露事件,以及如何通过该方法为云、数据中心和个人计算环境提供更有效的安全保护。

趋势:安全是一场持久战,各个公司都努力走在不法分子前面,防患于未然。尽管现在已经有很多安全技术和产品,但是在计算系统中处理数据时仍缺乏对数据的保护,这一点可能会导致数据泄露。机密计算方案的目的就是降低这一风险。我们预计机密计算将成为所有计算的主要组成部分,无论是云计算、本地数据中心服务器、个人计算设备,甚或是移动设备。在未来 2-3 年内,企业必须采用机密计算优先模式,在所有云计算部署中明确规定这些功能,并采购供企业和/或个人使用的计算设备。 -----J.Gold Associates LLC.

何谓机密计算?

2019 年,Linux 基金会成立了机密计算联盟。其既定目标是定义机密计算的标准,支持和推广开源机密计算工具和框架的开发。联盟成员包括阿里巴巴、AMD、Arm、脸书、Fortanix、谷歌、华为、IBM(红帽)、英特尔、微软、甲骨文、瑞士电信、腾讯和 VMware。未来,预计会有更多的公司加入其中。
 

该基金会在其目标中指出:“联盟将专注于 ‘使用中的数据’领域。‘传输中的数据’ 和 ‘静态数据’ 的机密性不在联盟考虑的范围之内。” 据联盟网站介绍,成员对机密计算联盟的贡献包括:
• 软件保护扩展(英特尔® SGX)软件开发套件,旨在帮助应用开发人员利用受保护的内存飞地,防止选定的代码和数据在硬件层遭到泄露或篡改。
• 开放飞地软件开发套件 (Open Enclave SDK),系开源框架,它允许开发人员通过单个飞地抽象,构建可信执行环境 (TEE) 应用。开发人员可以一次性构建运行在多个 TEE 架构上的应用。
• Enarx,一个使用 TEE 提供硬件独立性,确保应用安全的项目。

由于这是一项持续开展的 “进行中” 标准化工作,未来可能会有更多的项目出现。每个成员公司都从自身专业知识和角度(如芯片、机器、互连、应用)出发来运用机密计算这一概念。这种多样性对机密计算的发展很重要。虽然有几家公司已经拥有了专有工具,但考虑到 Linux 基金会的背景,未来这些工具很可能会被整合到一个更加开源的机密计算框架中。从更长远的角度来看,标准化对于机密计算获得认可和发展都至关重要。

为何机密计算与众不同

不同于数据加密对单个数据集进行加密保护,机密计算使用基于硬件的功能来创建 “可信执行环境”(又称 “飞地”),用于操作数据、特定计算功能,或执行整个应用。机密计算将该安全区域隔离开来,使操作系统、系统管理程序、虚拟机或其他应用无法访问这一区域,从而防止任何潜在的交叉感染,因为任何人在未获得 TEE 访问权限的情况下都无法访问该区域。任何试图更改应用代码或篡改数据的行为都会被阻止。这在多用户系统(例如虚拟化和公有云系统)中尤其重要,因为数据交叉感染对此类系统而言无疑是一种风险。事实上,一些公有云计算的潜在用户正是出于对这一风险的考量而拒绝迁移。从理论上讲,如果拥有系统硬件的物理访问权限、复杂的工具集以及大量的时间来发动攻击,还是有些许可能对机密计算进行“旁路”攻击,但是与非机密计算系统的潜在风险相比,这类风险微不足道。

图 2 展示了典型计算堆栈的主要模块,图 3 则显示了潜在的攻击面。现代计算机中一直存在潜在的攻击面,而恶意软件制造者在利用攻击面方面也是花样百出。我们需要一种方法,能够尽可能地减少攻击面。

机密计算旨在将当前正在使用的任何可被发现的数据或代码放到可以安全进行处理的加固 “安全区” 中,从而绕过许多潜在的攻击面。图 4 高屋建瓴地展示了这一过程的大致流程。当然,实际流程远比图表所展示的要复杂得多,不过该图表可以让大家直观地了解这一概念。机密计算提供的正是这类保护。

为什么是现在?

随着企业纷纷迁移到更加虚拟化的处理环境(尤其是在公有云和私有云中),他们需要一种方法,确保在其中一个虚拟机(运行虚拟机往往是为了满足另一个完全不同的企业或机构的需求)发生故障的情况下,不会影响到本公司的流程和数据。但这不仅仅是云计算才有的问题,传统的本地数据中心计算系统也存在类似的漏洞。此外,不仅是数据中心服务器会遇到这样的问题,甚至连 PC 和移动设备最终也需要创建机密计算环境来防止数据泄露。虽然一些设备已经实现了比较基本的 TEE 功能,但是由于目前重点放在了更为关键的大型数据处理系统方面,因此,大多数个人和移动设备可能要在晚些时候才能实现更全面的机密计算功能。

过去,人们曾试图在处理系统中构建机密计算功能,但是却遇到了严重影响性能的瓶颈,对于许多有高性能和/或高吞吐量要求的计算应用而言,这毫无意义。随着新一代机密计算系统的问世,这一问题已得到解决。预计其对处理开销和/或性能下降方面的影响将远低于 5%。对于大多数处理任务而言,这样微小的性能下降是可以接受的,尤其从积极方面来看,机密计算方案还提供了安全优势。

由于各方面都强调零信任计算模型(该模型认为在安全上不应信任任何用户或设备,开放访问权限的系统必须采取措施应对可能发生的最糟糕的情况),因此计算系统不得不提高安全要求,以维护可信任的环境,保障数据安全。机密计算在这种零信任模型中扮演着重要角色,因为它提供了一种机制,将任何潜在的“不法分子”与整个计算中心隔离开来,让其只能处理机密计算飞地区域内的选定数据,而无法访问整个计算中心。

数据泄露带来的负面影响

对大多数企业和机构而言,因数据泄露而付出的代价在不断增加。这不仅体现在金钱方面,同时也体现在客户对其可信度的负面评价。此外,在许多国家和/或地区,任何数据泄露事件都可能会违反越来越多的法规。这不仅会导致罚款,还有可能受到刑事处罚。因此,任何能够提高整体安全性,消除数据泄露隐患的方法不仅大受青睐,而且对节省资金和保护声誉都有积极作用。

数据泄露带来的高昂代价

尽管每次的数据泄露事件都有其独特性,而且从发现泄露、采取补救措施,到支付任何可能的罚款,产生的成本也各不相同,但根据有关信息,还是可以基于诸多公司的实际结果评估泄露事件的平均成本。由 IBM 和 Ponemon 联合发布的 2020 年数据泄露成本报告》显示,全球数据泄露的平均成本为 386 万美元,其中美国的成本最高,为 864 万美元,如表 1 所示。

发现数据泄露所需的时间越来越久且代价高昂

即使拥有 SIEM 等各类安全工具,企业和机构发现数据泄露所需的时间也仍在增加。由 IBM 和 Ponemon 联合发布的《2020 年数据泄露成本报告》显示,2020 年,发现并遏制数据泄露的平均时间为 280 天。此外:
• 在 200 天之内遏制数据泄露的可能要比 200 天以上节省 100 万美元成本;
• 报告还显示,泄露事件发生一年多后导致的成本占数据泄露总成本的 39%。

攻击来自何处?

目前,入侵计算机系统所使用的攻击方法和攻击向量层出不穷。根据 IBM 和 Ponemon 联合发布的《2020 年数据泄露成本报告》:
• 恶意攻击导致的数据泄露事件占总泄露事件的 59%;
• 凭证被盗占攻击事件的 19%。

根据 Verizon 发布的《2020 年数据泄露调查报告》:
• 45% 的数据泄露事件是黑客入侵所致,22% 由失误造成,而 17% 与恶意软件有关;
• 72% 的泄露事件发生在大企业,而 28% 涉及中小企业;
• 70% 的泄露事件由外部因素造成,而 30% 由内部因素造成;
• 物理泄露只占总泄露事件的 5% 左右,但是不法分子一旦访问设备,则会造成严重损害;
• 服务器约占总泄露事件的 70%(鉴于出现大规模转向基于 Web 的应用及 “XX 即服务”
产品的趋势,这一占比也比较合理),而个人设备约占总泄露事件的 25%;
• 按行业划分,发生泄露事件最多的行业是医疗行业,其次是金融、专业服务、信息和公共部门等垂直行业。

种种结果表明,无论是大企业,还是中小企业,数据泄露问题始终存在,甚至日益加剧,因此亟需解决这一问题。

安全与隐私

安全与隐私虽然息息相关,但在企业数据资产利用方面不可等同视之。事实上,企业已经在其基础设施的各个方面增加了许多层级的安全产品,以确保其数据资产的安全。但是随着当前人们日益重视数据(尤其是供内部使用的个人数据或是企业间共享的敏感数据)的私密性,企业除了要确保数据的安全性,还要确保数据的私密性,这一点就变得愈发重要。实际上,几乎每个国家/地区和政府机构都实施了保护隐私的法规。任何违反此类隐私的行为都会对企业产生重大影响,还可能导致在经济和法律上遭受严厉处罚。

采用机密计算方案处理数据其中一个基本优势是,机密计算利用其隔离和保护数据,避免数据暴露的功能,可以显著提高内部和共享环境中处理数据资产的私密性。这几乎对各个行业都大有裨益,尤其是对银行、金融、保险、医疗、公共部门、教育等受到高度监管的行业。

减少虚拟机漏洞

几乎所有云实施方案,尤其是公有云实施方案,都需要在云数据中心内部署的硬件资产上运行多个虚拟机。当然,未来使用虚拟机的情况还会越来越多。虚拟机使计算成本能在很多不同客户中分担,既降低了成本,又实现了灵活的负载共享,创造出真正的计算即商品,也因此推动了云的发展。

但是,很多针对这类虚拟机的安全工作还不到位。单个虚拟机的安全与否完全取决于它运行其上的硬件和操作系统/系统管理程序是否安全。如果其中任何一个基础平台遭到破坏,那么该虚拟机,实际上是运行在该系统平台上的所有虚拟机,也会受损。因此,确保基础级别的硬件和系统管理程序与各个虚拟机完全分开进行保护至关重要。机密计算在此基础上进一步提高了安全性,通过保护虚拟机或应用免受恶意操作系统或系统管理程序的侵害,使得被利用或遭黑客入侵的操作系统仍旧无法访问数据。

虚拟机还可能存在一些特定类型的漏洞,包括:
• 虚拟机 “幽灵” – 在虚拟机部署方面缺乏控制和策略,导致很多虚拟机即使在不使用的情况下仍然继续运行;
• 系统管理程序劫持 – 通过控制机器中的系统管理程序机制,黑客可以访问各种虚拟机及其功能、数据集和控件;
• 虚拟机逃逸 – 客操作系统可以破坏虚拟机,并允许直接访问机器硬件资产;
• 虚拟机隔离不到位 – 将每个虚拟机与主机上运行的其他虚拟机完全隔离开来,对于防止虚拟机交叉感染和避免泄露至关重要;
• 主机漏洞 – 单个虚拟机的安全与否完全取决于它运行其上的主机是否安全,因此确保主机不会继续承受任何潜在的安全风险至关重要。

为了将风险降至最低,并最大程度地提高安全性,机密计算可以有效确保虚拟机保持隔离状态、独立性和安全性。

计算引擎所需具备的特性

为了提高机器安全性,并且符合许多机密计算理念,机器至少应具备:
• 可以让执行环境绕过主操作系统,直接与 CPU 和内存交互的方法;
• 内存全加密,以防止某些类型的物理攻击,如冻结内存和删除 DIMM;
• 加密加速,以最大程度地减少编码和解码所产生的影响。此类操作的任何影响都应保持在最低限度,最好控制在 2-5% 的范围以内;
• 固件恢复,可检测和纠正任何入侵固件的行为,防止通过固件漏洞侵入机器。

机密计算:一探究竟

可信执行环境 (TEE) 是机密计算发挥作用的关键要素。我们拥有 TEE 已经有一段时间了,包括在基于 Arm 的芯片(TrustZone,即安全区域)以及 x86 芯片(如英特尔® SGX)中。事实上,这一概念的早期雏形可以追溯到十多年前在许多 PC 上可用的 TPM 模块。当今 TEE 的不同之处在于,其内置于处理器内核当中,能够运行各种通用工作负载,而不仅仅是为小型专用功能提供受保护的存储。

尽管我们拥有支持 TEE 的系统已经有些时日,但很少有企业尝试使用该类系统,许多应用提供商也不提供相关支持。原因在于实施这类系统有一定的难度,并且需要在应用中启用特定的代码,才能强制使用 TEE 环境。此外,并非所有处理器都提供 TEE(例如,有些英特尔® 至强® 芯片支持 SGX,有些则不支持),而 TEE 也不能兼容所有芯片系列。因此,尽管这可能是一种非常重要的安全方法,但是许多企业和机构都尚未实施。

迁移至机密计算系统

随着向非本地和多租户云计算环境迁移,现在更加需要保护客户数据处理的完整性,保护处理过程中所运行的某些专有算法。为此,云提供商(如 Azure 机密计算与 IBM 机密计算)正在简化新机密计算实例的运行,方便客户使用。如此一来,企业和机构自己便无需拥有支持机密计算的系统。这是一种双赢局面,既可满足客户保护其数据资产的需求,又可以让云提供商提供那些客户自己不一定拥有的必要硬件资产。这得益于内置了机密计算功能且基于云的处理器的增加。由于云提供商一般在处理器上市早期阶段就获得了新的高端处理能力,因此用户群体获得此种能力的速度远比自己部署要快得多。此外,由于有了可在云端运行的硬件和工具包,应用提供商可以快速将机密计算加入产品设计当中,并且获得就绪程度更高的市场,以便回笼在开发上投入的资金。

机密计算益处(除安全以外)示例

机密计算可以为部署此类使其计算模型更加安全和机密的系统的公司带来诸多益处。实际上,机密计算不仅可以防止数据泄露,还可以将需要保密的共享数据放置到 “隔离区域” 予以保护,从而为企业间共享私密数据开辟新的方法。因此,越来越多有关机器学习/人工智能、多方计算、多方分析、共享数据集以及联邦学习的用例都能从中受益。例如:
• 在医疗领域,机器学习/人工智能为医院之间提供关于早期疾病检测或快速药物试验的协作学习模型,同时可以保持个人数据的隔离状态和私密特性;
• 在医疗相关教育领域,一家研究型医院可能存有几千份脑部扫描数据,用于训练肿瘤诊断模型。而其他医院的扫描数据可以帮助提高模型的准确性并扩大其涵盖范围,但隐私法规可能不允许医院之间共享数据。借助机密计算,许多医院因此可以贡献他们的数据来训练模型,同时维护其他医疗机构患者的隐私;
• 在银行和金融领域,多方计算和联邦学习就如何分析合并后的敏感数据集达成共识,无需获得访问权限即可提供洞察。这使得金融机构既能满足机密性要求,又能从提高欺诈检测率、降低误报率以及提供迭代学习中获益;
• 政府在共享个人身份信息 (PII) 和知识产权 (IP) 时必须保护此类信息,即使是在州和联邦一级的医疗机构(医疗保险和医疗补助)等政府各部门之间共享信息(州身份证、选民身份证、出生和死亡记录以及国家癌症登记信息等)。

企业应如何部署机密计算?

机密计算背后的概念并不是什么新鲜事物,但是对于需要保护其数据免受应用漏洞和/或隐私影响的企业而言,机密计算在云中的可用性让他们对部署机密计算非常感兴趣。大多数本地服务器的使用期限为 3-5 年或者更久。因此,企业本地升级到机密计算很可能需要很长的时间,因为已安装的机器不可能轻易升级到机密计算,而替换当前设备则需在其使用寿命到期之后。快速实施机密计算的最佳途径是采用基于公有云的服务,因而可以在符合机密计算标准的最新硬件上提供任何运行时服务。在当今竞争激烈的云环境中,这应该很容易实现,因为所有主流云提供商都可以在其产品中提供此类功能。如果您的云提供商无法提供该类产品,您可以咨询他们何时会推出这类产品,或者考虑更换云提供商。

建议

我们强烈建议各企业采取以下行动:

  • 企业必须在未来 6-12 个月内探索机密计算技术的使用情况,并向其主要应用解决方案提供商明确表示,希望他们遵照机密计算策略,在同一时期内提供技术实施方案;
  • 要求任何公有云计算实施方案均应规定,所提供的云实例需符合机密计算标准;
  • 确定本地数据中心设备的更换周期,并规定任何新购买的机器均应符合机密计算标准;
  • 从长远来看,需探索一种策略,其中包括迁移到机密计算功能,不但适用于部署在服务器上的所有内部设备,还适用于个人计算和移动设备;
  • 那些未能采用机密计算模式来部署安全增强型计算系统的企业,未来将面临更大的安全漏洞风险。这些风险很有可能会导致数百万美元的经济损失,严重影响公司的正常运营,甚至导致企业经营失败。

结论

我们建议企业在未来 6-12 个月内探索机密计算技术的使用情况,并向其主要应用解决方案提供商明确表示,希望他们遵照机密计算策略,在同一时期内提供技术实施方案。机密计算基本上可以避免使用中的数据被利用的情况,显著提高企业的安全性。虽然不能做到百分百的安全,但机密计算已经向前迈出了重要一步,应尽可能予以实施,特别是对于那些在云端部署应用的企业而言。我们预计机密计算将在未来 1-2 年内成为计算方面的行业标准方法,尤其是在云计算上。

本研究报告由英特尔公司授权发布。未经版权所有者 J.Gold Associates LLC. 的书面许可,
任何人不得复制、发布和/或重新发布本研究报告的部分或全部内容。