下一代数据中心安全:Web3之基础架构
0. 下一代数据中心
什么是下一代数据中心?不同的视角会得到不同的答案,社区中已经有从环保,性能,边缘端为核心的去中心化等视角探讨过这个问题,我们今天会聚焦下一代数据中心的安全和去中心化的属性来讨论这个问题。要谈“下一代”那一定得回过头去弄明白“上一代”是第几代,简单的回顾一下数据中心的发展历程,从计算的角度,这里我们简单的把数据中心发展分为四个阶段。
- v1.0,1990年代至2006年的机房时代,包含了大型计算机,小型计算机以及今天意义上的x86通用计算机。
- v2.0,2007至2013的通用计算云时代,这一时期主要的特征是商业模式构建以租户为中心,不论是物理机的服务器托管服务还是云计算的虚拟机租用模式。
- v3.0,2014至2021的行业云时代,云服务提供商成为主流,而其中高价值的行业云诞生,数据中心的规模空前,而这也意味着计算和数据的高度的集中化。
- v4.0,2022至未来的Web3时代(?),去中心化/邦联化成为商业应用的主流,而数据中心的计算和存储的方式和特性会发生变化。
1. 不可能的三角:去中心化 vs. 邦联化
不可能的三角分别是:扩展性,去中心化和安全。
意味任何系统的设计只能满足其中两个,比如极端的去中心化方案BTC(比特币)和XMR(门罗)都是以牺牲可扩展性为代价的,这导致BTC/XMR技术架构无法提供更复杂的业务,Layer 2的存在是必然的,但Layer 2对于安全主要有几个方面的挑战:
- 安全和可扩展性对于去中心化系统也至关重要,超级节点的引入会增加系统安全的风险(注:HardenedVault的节点可以免疫经典EOS超级节点漏洞攻击)。
- 跨链协议实现中的缺陷。
- 供应链风险,开发人员是否会植入后门以及build基础设施的安全加固等问题。
但如果牺牲一部分去中心化的特性,采用邦联化的架构,那这个三角就可以成为可能,当然下一代数据中心是一个重要条件。
2. 互联网的未来
如果你随机问几名老派黑客或者密码朋克对于今天互联网觉得满意吗,你必然会得到否定的答案,这也是Vault Labs的回答,对于什么才是互联网“应该”具备的形态每个人都有不同的预期,至少老派黑客和密码朋克绝对不会赞同极端中心化的形态,这里我们描绘一个理想的场景:
- 图中表示分别是A农业小镇,B金融小镇,C矿业小镇,D工厂小镇。
- 4个小镇的互联不是一个100%去中心化的架构,而是一个邦联化的架构,蓝色圆圈代表业务节点,绿色代表邦联化服务器,小镇数据中心里的各个业务节点可以根据需求跟其他小镇的业务节点进行交互,邦联化在极端去中心化和效率之间得到了平衡,这也是我们认为的下一代互联网(不论是否叫Web3)的主流形态,当然有一些应用比如比特币或者门罗币依然应该保持极端去中心化的规则。
- 在分布式账本(区块链)的上下文中,邦联化服务器类似于超级节点,这种节点需要把自身的安全等级公开,比如我们曾经在Security Chain的设计中是把安全防护等级和日志公布在区块链上。
- 4个小镇使用了第四代数据中心架构,服务器单节点都具备高性能特征(比如搭载AMD EPYC3的服务器每个机柜可提供超过4000的CPU核),这让原本需要10个机柜的运算能力现在或许只需要2个,另外一方面,邦联化架构也受益于单节点的高性能。
- 4个小镇使用的服务器固件是开源实现,开源虽然不能直接保证安全,但其可审计性可以降低后门的风险。
- 4个小镇的用户如果把服务器部署在自己的家里,那么安全性会有保证,至少Evil Maid的攻击风险会降低,但如果要让用户任意的把物理服务器放置在4个小镇的任意数据中心中的话,那就需要硬件级别的安全特性以保证用户可以随时通过远程证明进行验证自己的机器是否处于“预期”的运行状态。
3. 下一代数据中心的铁三角
数据中心的核心是计算和存储,下一代数据中心的单节点(计算服务器或者存储单元)必须具备高性能,高安全,高透明度(开源)的特性。
本文着重讨论透明度和安全,性能方面已经有不少公开针对AMD EPYC3和AWS Graviton系列的测评文章。
3.1 高透明度
这里从四个分类中来看待透明度,即看开源实现和实际生产环境的差距。
硬件架构方面目前主流的是x86和arm64,x86以Intel(10nm)和AMD(TSMC的5nm)为代表,arm64以AWS Graviton系列为代表,但他们都是闭源的设计和实现,使用自由开源工具链制造的芯片只有LibreSilicon的500nm(落后业界数十年),从芯片设计的角度,目前开源实现OpenROAD依然缺乏芯片制造厂商物理库的支持,硬件这块中短期内开源实现都不可能威胁到闭源实现。虽然很多人对RISC-V抱有很高期望,但实际的情况是RISC-V的开放仅在于ISA(指令集)这部分,商业IP以及其他外设IP的开放度不会和x86/arm64有较大差异。硬件不论是设计还是制造来看,透明度都非常低。
固件是一种特殊软件,也是最接近硬件的软件,长期以来固件主流都是由BIOS/UEFI占据,由于其自身的生态问题无法得到解决严重危害到了安全性,下一代数据中心采用更为简洁设计的coreboot开源架构,目前Google/Meta/ByteDance等大厂都主推coreboot作为服务器固件标配,HardenedVault也推出了兼容coreboot和UEFI的固件安全方案vaultboot,其负责芯片安全特性以及可信(TPMv2.0/TXT/CBnT)/机密计算方案(SGX/TDX/SEV)的开箱。固件的透明度相比硬件高了不少,但依然有不少组件没有开源实现,比如Intel FSP,微码以及Intel CSME/AMD PSP等。
软件方面包括操作系统和应用软件,这两块的透明度都非常高,可以用开源实现完成相关工作。
3.2 高安全
高级安全防护是下一代数据中心节点的核心之一,因为在邦联化或者去中心化的网络中传统的边界已经被打破,依赖于以检测为中心的“外挂式”(比如杀毒软件,HIDS,EDR等)方案难以面对当前的挑战,实际上我们应该回归老派安全的"Build Security In“的哲学,即加强系统的自防护能力,这个在今天的有一个时髦的术语:弹性(Resiliency)。只有当系统具备足够的自防护的能力才能把安全工程师从为各种安全产品编写规则/测试的轮回中解脱出来,像疫苗一样的防护模式会更高效,比如:
- VED(Vault Exploit Defense)或者其他疫苗式的安全方案,即可以针对漏洞利用类型进行防护而不是针对单个漏洞。
- 整合JVM扩展以及密码工程可以有效的降低Java反序列化漏洞的风险以免疫类似Log4Shell的漏洞。
这里我们假设两个最为极端的威胁模型,先来看看远程攻击的场景:
攻击路径:
- Ring 3 的漏洞利用(webshell或者应用程序的远程利用)获得普通执行权限
- 利用Ring 0内核漏洞进行提权或者容器逃逸,这里值得注意的是虽然操作系统内核早已经不是 2007年“Attacking the CORE”上下文的那个“CORE”但依旧非常重要,因为内核是通向更底层的入口
- 从目前攻击样本来看不需要过多关注Ring -1虚拟化层
- 通过绕过芯片组防护机制或者物理攻击攻陷Ring -2的固件,比如SMM,以达到获得写 SPI flash的能力
- 触发 Ring -3(CSME)早期启动阶段(RBE,kernel 等在>=CSMEv11 版本中无法关闭的模块)或者 CSME 代码模块的 0day 或者已知漏洞(比如 SA-00086)以获得 CSME 完整控制权,攻击者可以使用 CSME 作为跳板开启 VISA 访问 PCH 的内部接口
另外一个是Evil Maid的场景,即攻击者可以物理接触到你运行在数据中心的节点,攻击方式有:
- 借助于USB3380或者Thunderclap的FPGA模板实现DMA攻击,可参考PCILeech
- 借助于廉价硬件实现TPM Genie针对TPM(可信平台模块)的中间人劫持攻击
- 借助于USB HID发起键盘模拟攻击
- 借助于廉价SPI编程器针对特殊区域进行修改
3.2.1 打破堡垒悖论
堡垒悖论是指在构建系统安全防护体系过程中的复杂性导致威胁建模的不准确。假设一台高级防护节点经过了从应用层,内核层,固件层,芯片层以及密码工程的纵深加固后上线:
1)假设攻击者的目标是拿到内核权限并且植入内核rootkit,那么攻击者攻破了应用层和内核层防护后已经达到目的,自然不会去攻击下一层,即使之后通过取证和应急响应拿到了相关攻击的证据,也只能说明攻击者具备攻击内核层的能力,并不能证明攻击者没有攻陷虚拟化,SMM以及CSME的能力,这种情况会让企业或者机构的决策者出现盲区。
2) 假设攻击者已经攻陷了UEFI/SMM固件层并且成功持久化,如果攻击者没有进行大规模行动而只是定向打击高价值目标,那此类攻击由于设计上的“不可访问”等逻辑,也难以发现,而在这个层面取证的难度和成本大幅增加,并且缺少有效方法。
3)假设攻击者已经攻陷了包括CSME在内的PCH上大部分IP并成功持久化,到这个阶段大部分检测和取证手段都失效,这个阶段通常企业和机构决策者会认为系统是安全的。
也就是说,用户即使拥有顶级威胁情报网络依然难以得出是否应该应对以上两种极端威胁模型的结论,因为威胁模型不可能依赖于“不完整”的威胁情报拼图,但下一代数据中心节点安全必须满足依靠自防护能力最大程度免疫以上两种极端的威胁模型,否则其大部分的预期都无法实现。
密码朋克的遗失:机器的隐私
保护机器的隐私是一个很简单的理念,上帝就照着自己的形象造人(创世记1:27),而机器则是人类逆向大自然(科学)的结果,既然人对隐私保护有需求那机器同样会有。不论是互联网应用还是工业4.0,机器和机器之间的高频“交流”已经存在,以上面小镇的模型,如果未来的互联网有数以亿计的节点以去中心化的方式“交谈”,那是否应该保护这些机器节点的隐私呢?vault1317就是这样的一个原型,或许讨论这个议题有点太早了。
结论:真实的荒漠
互联网的未来,Web3的终极形态以及下一代数据中心都是令人兴奋的议题,但其中的挑战也是不言而喻的,这些挑战几乎涉及到所有的基础架构安全领域,包括硬件,固件,操作系统,密码通讯协议等。黑客和密码朋克社区再一次踏上远征,最终的结果依然会是无数个体选择的涌现,个体的力量的大小取决于能承受多少”真相“,而这又回到了个体面对人生时红蓝药丸的选择:真实的荒漠还是虚幻的荣耀。真实的荒漠,就以这个作为这篇以赛博堡垒视角讨论下一代数据中心的结尾,之前有不少反馈问我们对Web3的看法,如果直接让读者去读Security Chain的白皮书可能会劝退大部分人,况且Security Chain毕竟早已是历史,这篇文章希望能在技术和哲学之间有一个平衡,祝老派黑客和密码朋克继续在世俗的世界中去实现那神圣的愿景。