操作系统/虚拟化安全知识域:系统强化之代码和数据完整性检查以及异常检测

监视器,无论是在虚拟机管理程序还是在操作系统中,也可用于监视系统的异常事件 - 异常检测。例如,连续崩溃数百次的系统可能会受到试图破坏系统地址空间布局随机化的人的攻击。当然,没有确凿的证据,仅仅因为 发生了异常并不意味着有攻击。异常检测系统必须在引发太多错误警报(处理成本高昂)和引发太少(这意味着它错过实际攻击)之间取得平衡。

监视器,无论是在虚拟机管理程序还是在操作系统中,也可用于监视系统的异常事件 - 异常检测。例如,连续崩溃数百次的系统可能会受到试图破坏系统地址空间布局随机化的人的攻击。当然,没有确凿的证据,仅仅因为 发生了异常并不意味着有攻击。异常检测系统必须在引发太多错误警报(处理成本高昂)和引发太少(这意味着它错过实际攻击)之间取得平衡。

代码和数据完整性检查

减少操作系统中代码可利用性的一种方法是确保代码和/或数据未经修改并由受信任的供应商提供。例如,多年来,Windows一直采用驱动程序签名。一些较新的版本更进一步,使用硬件和软件安全功能的组合来锁定计算机,确保它仅运行受信任的代码/应用程序-此过程被Microsoft称为“Device Guard”。即使是特权恶意软件也无法轻松让未经授权的应用程序运行,因为 检查是否允许应用程序运行的机制位于硬件辅助虚拟化环境中。大多数代码签名解决方案将与操作系统扩展关联的数字签名相关联,允许操作系统检查代码的完整性是否完整以及供应商是否合法。类似的过程通常用于更新。

但是,检查签名的代码以及操作系统本身呢—我们确定它没有被恶意引导工具包篡改吗?确保在引导期间加载的系统软件的完整性涉及许多步骤,主要与引导过程本身的多个步骤有关。从最早的商用计算机开始,启动涉及多个阶段。即使是 IBM 701,年代初期流行的计算机,安装多达19次,也已经具有这样的多阶段启动过程,从按下特殊的“加载”按钮开始,使系统加载单个36位字通常来自打孔卡。它将执行(部分)这个词以加载更多指令,然后开始执行这些指令作为“引导程序”。

通常,安全启动设备从启动启动过程的初始“信任根”开始,并且通常基于硬件,例如,微控制器从内部不可变存储器或根本无法重新编程的内部闪存开始执行软件,或者只能通过严格的身份验证和授权检查。例如,现代Apple计算机使用单独的处理器T2安全芯片来为安全启动等提供硬件信任根,而Google还为此开发了一种称为Titan的定制处理器。我们现在将讨论硬件信任根如何帮助验证系统是否安全启动。

启动通用计算机通常从固件开始,固件启动一系列阶段,以完全启动的系统结束。例如,固件可以加载一个特殊的引导加载程序,然后加载操作系统内核,而操作系统内核又可以加载额外的引导驱动程序,直到最终操作系统完全初始化并准备好与用户或应用程序交互。所有这些阶段都需要保护。例如,统一可扩展固件接口(UEFI)可以通过安全启动来保护第一阶段(即验证引导加载程序的完整性)。安全启动验证启动加载程序是否使用适当的密钥进行签名,即使用与固件中存储的密钥信息一致的密钥。这将防止没有适当签名的加载程序和驱动程序获得对系统的控制。引导加载程序现在可以在加载操作系统内核之前验证其数字签名。接下来,内核在启动操作系统的所有其他组件(例如启动驱动程序和可能集成的反恶意软件)之前对其进行验证。通过在其他驱动程序之前启动反恶意软件程序,它随后可以检查所有这些后续组件,并将信任链扩展到完全已初始化操作系统。

下一个问题是:我们怎么知道是这种情况?换句话说,我们如何知道系统确实安全启动,并且我们可以信任屏幕?这里的诀窍是使用证明,(远程)方可以检测到对我们系统所做的任何更改。远程证明通常使用特殊硬件,例如充当信任根的受信任平台模块(TPM),包括分步验证系统是否加载了“正确”类型的软件。特别是,TPM是一个加密硬件模块,支持一系列加密功能、密钥生成和管理、安全存储(例如,密钥和其他安全敏感信息),以及重要的完整性测量。有关进一步讨论,请参阅硬件安全CyBOK知识领域[65]。

对于完整性测量,TPM具有一组称为PCR-0、PCR-1的平台配置寄存器。. .,在每次引导时都设置为已知值。这些寄存器不是用于直接写入,而是用于扩展。因此,如果PCR-0寄存器的当前值为X,并且我们想用Y扩展它,则TPM计算哈希(X,Y)并存储PCR-0的结果。现在,如果我们想进一步扩展它,比如使用Z,TPM会再次计算Z哈希和当前在中的值,并将结果存储在PCR-0中。换句话说,它将计算哈希(Z哈希X,Y))。我们现在可以进一步扩展它,并创建一个任意长的“哈希链”。

PCR中的值可以作为系统处于可信状态的证据。具体而言,引导系统时执行的第一个代码是固件引导代码,有时称为用于测量的核心信任根(CRTM) 或BIOS引导块。此代码将通过生成其内容的哈希来“测量”完整固件,在开始执行之前,它会将其发送到TPM以扩展PCR-0。接下来,现在正在执行的固件将测量启动过程的下一个组件,并在执行之前再次将值存储在TPM的中(例如,通过扩展PCR-0)。经过多个阶段后,PCR寄存器包含系统启动时采取的所有步骤的哈希链。远程方现在可以通过向TPM请求“报价”来验证系统是否安全启动:当前在PCR中的一组PCR值的报告(以及远程方提供的随机数),该密钥使用TPM的专用证明标识密钥进行签名,该密钥永远不会离开TPM(并且派生自硬编码在制造时创建的密钥)。由于公钥是众所周知的,因此任何人都可以验证报价是否来自TPM。收到报价并验证它来自TPM并且它是最新的后,远程方知道启动过程只能遵循在PCR中创建这些哈希的步骤.如果它们对应于已知和受信任代码的哈希值,则远程方知道系统已安全启动。

代码和数据完整性检查很可能会在运行时继续进行。例如,虚拟机管理程序可以提供对其虚拟机执行自省的功能:代码是否仍然相同,数据结构是否仍然有意义?此技术称为虚拟机侦测(VMI)。VMI功能可能驻留在虚拟机管理程序本身中,尽管它可能位于单独的应用程序中。除了代码之外,VMI解决方案中要检查的常见内容还包括进程列表(是否有任何rootkit试图隐藏?)、系统调用表(是否有人劫持特定的系统调用?)、中断向量表等。

异常检测

监视器,无论是在虚拟机管理程序还是在操作系统中,也可用于监视系统的异常事件-异常检测。例如,连续崩溃数百次的系统可能会受到试图破坏系统地址空间布局随机化的人的攻击。当然,没有确凿的证据,仅仅因为发生了异常并不意味着有攻击。异常检测系统必须在引发太多错误警报(处理成本高昂)和引发太少(这意味着它错过实际攻击)之间取得平衡。

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月6日 17:30
下一篇 2023年5月6日 17:30

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信