近期各大新闻媒体皆在高度关注Meltdown与Spectre安全漏洞对Windows PC设备造成的影响,但可以想见,二者带来的真正隐患其实在于对服务器以及云带来的冲击。
Meltdown与Spectre处理器bug正牵动万千桌面用户的心,自己的计算机被一款编写质量糟糕的英特尔或AMD CPU补丁弄到性能衰减确实很难让人接受。然而从配件事件来看,无论是Linux、MacOS还是Winows,PC设备都不会受到太大的影响。Meltdown与Spectre的真正灾难将主要降临在服务器,而非个人设备身上。
这是因为Meltdown与SPectre能够影响到应用程序与操作系统专用内存之间的内存空间。在PC设备上,这仅代表着其可提取密码等敏感信息。但在云端,则有可能导致企业客户的机密数据被他人所窃取。
SANS安全专家Jake William警告称,"在众多半虚拟化实例(例如Xen)与内核沙箱(例如Docker)用例当中,Meltdown都有可能破坏容器与主机内核之间所共享的内核地址。"
微软的虚拟机管理程序Hyper-V并未使用半虚拟化机制,但其仍然可能受到影响。微软Windows与设备部门执行副总裁Terry Myserson在博文当中解释称:"在多服务器共享功能环境当中(例如某些云服务配置中的功能),此类漏洞可能意味着某人能够访问处于其它虚拟机之内的信息。"
微软公司很早就已经意识到这个问题,并着手安装Azure以及Hyper-V补丁以作为解决方案。然而,Myerson警告称这还远远不够。"运行在本地或者云环境中的Windows Server客户还需要评估是否已经在各Windows Server虚拟机访客或物理实例当中部署了安全缓解措施。"
为什么?这是因为"当您在Windows Server实例当中运行不受信任的代码时(例如允许您的客户上传二进制文件或者代码片段,并在Windows Server实例当中运行),您需要上述缓解措施以控制应用程序二进制文件或代码,确保其无法访问Windows Server实例当中与其权限水平不符的内存空间。您不需要利用这些缓解措施隔离Windows Server虚拟机以及虚拟化服务器上的其它虚拟机,而仅需要利用其隔离特定Windows Server实例当中运行的不可信代码。"
要保护您的服务器--无论其运行在服务器机柜的裸机当中抑或是云端--您必须为以下安全漏洞安装修复补丁:CVE-2017-5715(分支目标注入)、CVE-2017-5753(边界检查绕过)以及CVE-2017-5754(流氓数据缓存加载)。
但这些补丁并非适用于全部Windows Server版本。截至目前,所有陈旧的Server 2003版本以及2008与2012版本皆可能遭受攻击。微软公司正在为2008与2012版本开发补丁程序。如果您一直在尝试更新2003版本,请不要再浪费精力了--过去的已经过去,除了此次曝光的最新安全漏洞之外,近几年来其它漏洞也都会影响到2003版本。
另外,单纯安装补丁还不足以解决问题--您还需要做得更多。正如桌面版Windows一样,您同样必须确保使用与补丁相兼容的反病毒程序以避免服务器发生BSOD。如果您未在服务器上运行反病毒软件,则必须使用regedit以设置以下注册表项:
Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWAREMicrosoftWindowsCurrentVersionQualityCompat"
Value="cadca5fe-87d3-4b96-b7fb-a231484277cc" Type="REG_DWORD" Data="0x00000000"
无论是否使用反病毒软件,您都必须作出其它注册表变更。如果您的服务器为Hyper-V主机或者远程桌面服务主机(简称RDSH),或者您的服务器实例正在运行容器或不可信数据库扩展、不可信Web内容或者包含来自外部来源代码的工作负载,那么更是需要完成进一步调整。总而言之,您的大部分甚至全部服务器都需要进行注册表变更。
具体注册表修改项包括:
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionVirtualization" /v
MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f
到这里,任务仍没有完成。现在,大家必须将芯片固件应用于您的服务器硬件当中。该固件应由您的硬件供应商负责提供。
一旦完成这一切,您还需要进行最后一步操作--重启您的服务器。
在Azure当中,当补丁更新完成后,微软将自动重启您的服务器与虚拟机。您可以查看您的虚拟机状态,并通过Azure门户中Azure服务健康计划内的维护部分了解重新启动是否已经完成。
然而,虽然微软公司已经立足Hyper-V层级开始处理这个问题,并表示客户不需要自行更新虚拟机镜像,但其同时警告称客户应继续为自己的Linux与Windows虚拟机镜像应用安全最佳实践。因此让我们面对现实吧:请更新您的镜像。如果这些安全问题可能入侵虚拟机,那么您的所有资产都有可能面临威胁,因此各服务器实例必须尽可能接受安全修复。
微软公司指出,"大多数Azure客户应该不会因为此项更新而遭遇明显的性能影响。我们一直在努力优化CPU与磁盘的I/O路径,并在修复应用之后并没有发现明显的性能衰减。客户可能会遇到一些网络性能方面的影响,您可通过启用Azure加速网络(适用于Windows、Linux)来解决此类问题。Azure加速网络是一基以免费方式供全部Azure客户使用的功能。"
加速网络是一项刚刚进入通用状态的新功能。其通过回避Azure主机与虚拟交换机的方式加速虚拟机网络流量。其能够减少虚拟机的负载并将其转移到Azure的内部可编程SmartNIC处。要使用这项功能,您必须启动一套新的虚拟机,并在创建时为其添加一个新的网卡。要对其进行管理,大家还需要使用较新的Azure资源管理器门户。
尽管能够配合加速网络,我仍然认为微软的态度有点过于乐观。我们都知道,安装了修复补丁的Linux系统会遭遇部分工作负载运行速度降低的问题--无论其运行在何种云之上。因此,没有理由认为Windows Server不会遭遇类似的性能问题。
除此之外,目前亦出现了一些Azure虚拟机在安装补丁后出现问题的报告。
因此,在修复工作完成后,请测试您的服务器以确保其能够以与您期待相符的方式工作。在此之后,请进行性能测试。越早意识到自己在面对怎样的问题,您就能够越快开始解决问题并着手调整云及服务器资源,最终搞定各类性能不佳的服务。
发布评论请先 登录
相关推荐
评论