[x86]服务器平台常见安全功能简介

发布于 2021-10-17 19:30

随着人们对于计算机和网络的越来越依赖,人们将越来越多的个人信息,包括一些敏感信息都存储到了网络上,其中最后大部分被放在了数据中心的服务器之中。而随着人们的安全意识提高,服务器的安全性也被越来越重视。下面,我就带着大家简要的过一下服务器相关的常见安全技术。
在开始之前,我先介绍一下安全的概念。安全不仅仅是保密性,通常可以从以下几个方面来考虑:
保密性(Confidentiality:就是防止非授权的信息纰漏。换句话说,保密性保障信息的隐私性和安全性。
完整性(Integrity:完整性是防止数据被非法篡改,保证存储于磁盘上的数据是它应有的样子。
可用性(Availability:可用性通常指保证服务可持续可用,不会因为一次安全攻击而导致服务无法持续。现实生活中的一个例子就是对方用一个“呼死你”来让你的电话无法被接通,然后开始欺骗你家人说你被绑架,然后家里人又联系不上你,就可能因此上当受骗。在安全方面,可用性通常指的是安全授权服务的持续可用性。
非否认性(Non-repudiation:发送者和接收者都不能否认自己没发送或没收到相应的消息。比如你说过的话不能否认说“你没说过”。
鉴定性(Authentication:这个比较简单,就是每件事情,能鉴定是谁做的。常见的方式就是每个用户拥有唯一ID,进行唯一鉴定。
访问控制(Access Control:这个也比较容易理解,即登入的访问控制,比如不允许未授权的人登入。
责任性(Accountability:这个通常就是记录登入和授权日志,让相关安全操作和事件可被追踪。
下面,我们将从上述几个角度进行分类来简要介绍服务器相关的安全技术。当然,很多安全技术其实同时具有以上角度的多个方面,我的分类也未必足够准确,仅仅是为了让大家更容易理解。
1. 保密性相关

A.内存中的数据安全

1) AMD安全内存加密 SME (Secure Memory Encryption): 通过CPU自带的AES引擎加密整个系统内存(包含页表)或部分内存,需要操作系统支持。

2) AMD 透明的安全内存加密TSME (Transparent Secure Memory Encryption): SME类似,但是只能加密整个系统内存,对操作系统和上层软件不可见,不需要操作系统支持。

3) AMD 安全虚拟化加密SEV (Secure Encrypted Virtualization): 通过给每个虚拟机分配独立的加密密钥,从而实现虚拟机之间以及虚拟机和主机(Hypervisor)的安全隔离。

注:SME/TSME/SEV, 加密密钥都是随机生成,并且存储在CPU芯片内部,外部无法访问,所有软件都无法获取,以保证这些密钥不被窃取和篡改;相同的明文但存储在不同的内存位置也将被加密成不同的结果,以防止密钥被反推算;对于SME/TSME,密钥是在系统启动阶段产生的。

4) AMD虚拟机状态加密SEV-ES (Encrypted State): 保护虚拟机的CPU寄存器等信息,在虚拟机停止运行时将之加密,避免被篡改。否则黑客可以通过篡改虚拟机的这些寄存器以改变后续的虚拟机程序执行,比如修改虚拟机的指令寄存器,从而执行恶意代码。

5) AMD 虚拟机的嵌套内存分页SEV-SNP (Secure Nested Paging): 防止恶意程序基于HyperVisor主机攻击虚拟机,比如数据回访,内存重映射等。以给虚拟机建立安全隔离的执行环境。关于这块细节,笔者理解也有限,难以精准描述,有兴趣的可以自行阅读AMD相关技术文献。

6) Intel 完整内存加密TME (Total Memory Encryption): AMD SME类似,加密整个或部分系统内存。

7) Intel 扩展内存页表EPT (Extended Page Table): AMD的嵌套内存分页类似。

8) Intel多密钥完整内存加密 MK-TME (Multiple Key Total Memory Encryption): 主要用于将多个虚拟机进行隔离,每个虚拟机一个独立密钥。

9) Intel 软件保护扩展SGX (Software Guard Extensions): 单个软件创建一块内存飞地(Enclave),并且使用独立的密钥进行加密,以实现单个软件的安全隔离,据说之前对软件执行性能有一定影响。

10) DMA Protection (DMA-remapping):防止DMA写溢出进而篡改系统内存资料。

B. 磁盘中的数据安全

1)SED (Self-Encrypted Drive) SSD: 固态硬盘自加密,加密引擎在硬盘中。

2)KPIO (Keyper IO for NVMe SSD): TCG的一个建议标准,基于每一个IO命令来加密用户存放于SSD中的数据。

3)BitLocker: 微软基于TPM的磁盘数据安全技术,将存储器根密钥 SRK (Storage Rook Key) 置于TPM中,对磁盘数据进行加密以保护磁盘中的数据,并且启动过程会测量启动完整性。

C. 信用安全

1) 密码复杂性要求和检测。

2) 密码安全管理技术,保障密码本身的安全性,包含默认密码的规则,首次登入强制密码修改等。

3) 密钥安全标准和管控:服务器通常包含了多个密钥,尤其是BMCBase Management Controller)中,通常会存储多个厂商以及客户的密钥。

4) NIST 800-131A:美国信息安全部门定义的密钥管理规范,定义了加密算法的要求,密钥长度等。

D. 数据传输安全

1)PCIe Link Encryption (IDE – Integrity and Data Encryption)PCIE链路加密,目前尚未广泛使用,主要使用者存储设备,如NVMe

2)SSL (Secure Sockets Layer) & TLS (Transport Layer Security):对敏感信息的网络传输进行安全加密。

3)IPMI over Redfish:由于IPMI over LAN基于的RCMP+天然的安全缺陷,导致IPMI over LAN的不安全。而Redfish是基于HTTPSHTTPS采用了SSL进行安全传输加密,所以是安全的。因为IPMI仍然被大量使用,为了兼容当前应用以及保障安全性,有的服务器会提供该技术。

E. 数据安全擦除 :欧盟得定义了ERP Lot 9,成为数据安全擦除的事实规范,要求服务器必须提供让用户安全擦除其上数据的功能,避免服务器在回收后带来用户信息泄露的安全风险。

F.TPM(国际)/TCM(中国):众所周知的安全设备,主要用于产生一些根密钥并存储于TPM/TCM芯片中,并且该密钥不可被外部访问,甚至在侦测到暴力访问时有自毁装置。系统固件或操作系统通常用它来进行用户信息的加密,磁盘数据加密(如BitLocker),启动过程完整性测量(Intel TXT)等。

2. 完整性相关
A.     软件固件的安全升级和更新

1) 安全刷新Secure Flash: 系统固件需要被进行数字签名,以防止非法更新。

2) Remote Secure Flash (NIST 800-147B): 专门针对服务器的远程安全刷新。

3) SPI Protection: 防止第三方软件绕过系统固件检测以恶意更新系统固件。

4) Immutable boot block:不可篡改的系统固件根启动块。

5) 倒刷的最低版本限制:防止更新为有已知重大安全漏洞的系统固件。

B.     系统的安全启动

1) 硬件可信根(Platform Firmware Resilience, NIST 800-193): 启动前通过数字签名技术检查系统固件代码的完整性,如UEFI, FPGA, BMC等。

2) AMD Platform Secure Boot: AMD基于CPU的硬件可信根,检查UEFI代码的完整性。

3) Intel Boot Guard: Intel基于芯片的硬件可信根,检查UEFI代码完整性。

4) Intel TXT(Trusted Execution Technology): Intel的一种基于硬件的动态可信测量技术,检测系统配置以及操作系统环境等是否被篡改,该技术需要TPM

5) Intel CBnT(Converged Boot Guard and TXT):整合了Boot GuardTXT。

6) UEFI Secure Boot: UEFI启动过程和操作系统启动过程,进行安全可信启动链的检查。主要确保UEFIPCIE卡固件,操作系统加载器以及操作系统代码不给篡改。

7) 有些厂商也对BMC实现类似UEFISecure Boot。

C. 程序的安全执行

1) IntelExecution Disable/AMD No Execute: 分隔内存中的数据和代码,避免数据被当着代码执行,而这时早期病毒的常见做法。

2) SMM (System Management Mode) 保护: UEFI的人可能都知道SMM具有最高运行权限,如果让SMI (System Management Interrupt)的代码可以调用SMRAM之外的代码将带来巨大安全隐患。

3) ROP(Return-oriented programming) 保护: 实现一个堆栈的拷贝,防止堆栈溢出攻击(常见的一种软件恶意攻击方式)。

D. 数据完整性:前面介绍的各种数据加密技术,事实上也常用于甚至主要用于数据完整性的保护。

3.可用性相关:最常见的是BMC服务可用性,通常通过BMC内置一个防火墙实现。
4.非否认性相关

A. 一般使用数字签名机制,如SSLTSL,主要用于网络事务安全机制。

B. LDAP认证。

C. TPM物理攻击检测技术:各家实现不同,一个例子是在TPM上贴防篡改胶纸,一旦TPM被物理破坏,很容易留下破坏痕迹。

5.鉴定性相关

A. 基于ID的认证,比如BMC Web账号, Redfish账号的,需要保证所有访问接口都有账号认证

B. 基于角色的认证

C. 基于ID和角色的权限管控机制

6. 访问控制相关

A. 登入超时控制

B. 各种网络服务接口的开关控制

C. 非安全接口(如IPMI)默认关闭

D. 实体存在(Physical Presence)控制 :一种TCG安全规范技术,有些厂商实现了远程实体存在以代替,解决便利性问题

E. 机箱防盗技术Chassis Intrusion

F. 每个硬件接口独立开关控制

7.责任性相关

A. 用户登入日志

B. 攻击检测日志

C. FIPS 140-2认证

D. FIPS 140-3认证

最后,安全不能仅仅靠技术,它还包含很多跟人有关的流程管制。技术和流程一样,都主要从两个方面考虑,一个是防范措施,一个是建立信任链。技术有可信根,人的可信根通常最终是政府,然后是被政府审批并且公众认可的安全机构(比如那些发可信根证书的机构),然后到合法登记的公司,再到合法公民。对于人(组织)相关的安全措施和流程,在此就不做太多描述了,有兴趣的可以单独联系我。
安全相关技术就简单介绍分享就到此结束。鉴于笔者本身也不是从事安全行业,只是近期因为工作需要略有涉略,但对不少技术细节也是一知半解,如有误处,还望海涵指正!

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材