CPU漏洞的Symantec解决之道(湖北国菱联整理)
来源:荆州松滋软件开发 荆州松滋网站建设 荆州松滋网络安全
时间:2018-01-30
前言
1月4日,国外安全研究机构公布了两组CPU漏洞,由于漏洞严重而且影响范围广泛,引起了全球的关注,成为2018开年以来第一个信息安全焦点。本文从漏洞背景和原理分析入手,给出Symanec针对这两个漏洞的解决方案,希望能够帮助读者不仅仅是理解这两个漏洞,更从黑白名单两种最经典的信息安全防护技术角度了解symantec的解决方案,避免类似威胁再次发生。漏洞背景和原理
Meltdown(熔断),应对漏洞CVE-2017-5754;
Specter(幽灵),对应漏洞CVE-2017-5753/CVE-2017-5715。
利用Meltdown漏洞,低权限用户可以访问内核的内容,获取本地操作系统底层的信息。
当用户通过浏览器访问了包含Spectre恶意利用程序的网站时, 用户的如帐号,密码,邮箱等个人隐私信息可能会被泄漏;在云服务场景中,利用Spectre可以突破租(用)户间的隔离,窃取其他租(用)户的数据。
Meltdown漏洞影响几乎所有的Intel CPU和部分ARM CPU,而Spectre则影响所有的Intel CPU和AMD CPU,以及主流的ARM CPU。从个人电脑、服务器、云计算机服务器到移动端的智能手机,都受到这两组硬件漏洞的影响。云环境下的影响更为突出,不过该漏洞可以导致VM1的用户访问到VM2的数据,但是不能访问到宿主的内存数据。
相关漏洞利用了芯片硬件层面执行加速机制的实现缺陷实现侧信道攻击,可以间接通过CPU缓存读取系统内存数据。在此过程中,英特尔没有很好地将低权限的应用程序与访问内核内存分开,这意味着攻击者可以使用恶意应用程序来获取应该被隔离的私有数据。
如果要在CPU层面完全弥补这一漏洞,CPU的性能将会退回2000年以前的水平。
相关漏洞主要借助于CPU用来加速的『分支预测』和『乱序执行』两种流水线设计。先来简述这两个机制:
2.1. 分支预测
分支预测(Branch Prediction):从P5时×××始的一种先进的解决处理分支指令(if-then-else)导致流水线失败的数据处理方法,由CPU来判断程序分支的进行方向,能够加快运算速度。是一种CPU优化技术,CPU会执行一些可能在将来会执行的任务。当分支指令发出之后,无相关优化技术的处理器,在未收到正确的反馈信息之前,是不会做任何处理;而具有优化技术能力的新型处理器,可以预测即将执行的指令,会预先处理一些指令所需的数据,例如将下一条指令所需 要访问的内存提前加载到CPU缓存中,这就避免了执行具体指令时再去读内存,从而加快了CPU的执行速度
流程图如下:
1, CPU要执行进程1,将该数据从内存调入缓存
2, 进程1的数据从缓存进入寄存器
3, 计算器进行运算
4, 基于分支预测的设计,虽然进程2和3暂时还执行不到,但是为了加快流水线处理速度控制器会把进程2和3的数据加载到缓存
5, 此时根据进程1的执行过程判断,结果为『YES』,进程2调入寄存器进而执行
6, 根据判断结果进程3将不会得到执行,但是已经调入到缓存,CPU也不会把它清除导致该段内存是无权限执行的
2.2. 乱序执行
乱序执行(out-of-order execution):是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。这样将根据各电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路
为了加速CPU的处理效果,在设计执行流程时可以不按照程序的先进先出的顺序来执行,这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后,将能 提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。采用乱序执行技术的 目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。
一个类比来形象理解漏洞是如何泄漏信息的:
1.KFC里卖的有薯条、鸡块、汉堡、可乐。
2.A去KFC点了个汉堡,吃完走了。
3.B排在A后面的后面,和点餐服务员说:我要点和A一样的。
4.点餐服务员说,不好意思您前面还有一位,稍等下,但是后厨听到了,麻溜的做了个汉堡。
5.轮到B点餐了,点餐服务员说。不能这样点哦,侵犯别人隐私了!
6.C排在B后面,跟服务员说:我薯条、鸡块、汉堡、可乐各点一份,饿死了饿死了,哪个快先把哪个给我!
7.C先拿到了“汉堡”!
8.C知道了A今天在KFC买了个汉堡!
CPU漏洞原理图:
对于具有预测执行能力的新型处理器,在实际CPU执行过程中,后续指令所需的内存加载环节不依赖于前序指令是否能够正常执行,而且从内存到缓存加载这个环节不会验证访问的内存是否合法有效。即使指令3出现异常,指令4无法执行,但指令4所需的内存数据已加载到CPU缓存中,这一结果导致指令4即使加载的是无权限访问的内存数据,该内存数据也会加载到CPU缓存中。因为CPU是在缓存到寄存器这个环节才去检测地址是否合法,而CPU分支预测仅仅是完成内存到CPU 缓存的加载,实际指令4并没有被真正的执行,所以他的非法访问是不会触发异常的。
CPU漏洞的利用首先需要目标机中病毒或通过浏览器执行恶意的JS代码,无论是服务器侧还是终端侧,防护解决方案必须从非可信程序管理或者恶意代码防护视角入手。3.Symantec的安全白名单技术解决方案-DCS/SA
3.1. 对于虚拟化环境
Data Center Security(DCS)是Symantec针对数据中心安全所提供的新一代安全解决方案,用户可以通过DCS解决虚拟化环境、物理环境中所面临的安全威胁。DCS架构参考下图:
在虚拟化环境中DCS通过SVA(Security Virtual Appliance)交付主机恶意代码安全防护服务,并在vSphere环境中提供基础架构保护,包括vCenter平台加固与ESXi主机监控服务。
无代理的恶意代码防护能力
DCS安全解决方案提供面向SDDC(software define data center)的恶意代码防护能力。DCS有效的与VMware vSphere和VMware NSX融合,向客户提供无安全代理的病毒及恶意代码防护能力。恶意代码防护服务及能力的交付跟随虚拟资源组的变化而变化,业务的上线时间将不在受到复杂的安全措施及策略配置所影响。Symantec DCS提供了业界领先的恶意代码防护技术,可作为软件定义数据中心的基础安全服务交付给所有的系统使用,作为一种永不下线的安全服务无缝保护所有数据中心的主机。
3.2. 对于物理服务器和IaaS环境
开始介绍DCS:SA防御原理之前先简要回顾一下操作系统的架构
操作系统的架构图:
在操作系统的架构设计中内核负责管理所有硬件设备并将其抽象化,有系统库提供API来供应用程序使用。一般情况下一个程序运行的大致流程如下:当应用态程序提出执行请求时,CPU发出中断并由内核态进程负责分配内存空间,操作磁盘DMA把该程序的数据调入已分配的内存空间;同时把内存的物理地址翻译为逻辑地址进而将数据调入缓存、寄存器,下一步由运算器负责计算。得出运算结果后再把内存的页面文件翻译为物理地址写入内存,由内核进程再回写到硬盘或是网络栈、外设等。
DCS:SA防御体系如下:
它的特点是对于安全需求较高的主机(无论是虚拟主机还是物理主机)提供基于本地代理Advanced Agent的主机安全加固能力,区别对待不同重要性的虚拟主机
基于主机代理的安全加固与主动防御能力
DCS在基于代理的系统上提供的防护能力是系统安全锁定防护,这种防护措施基于操作系统代理部署,建议部署于关键业务的虚拟或物理服务器,提供主动的安全防护措施。DCS安全防护基于白名单机制,不同于防病毒等黑名单机制,更加适用于功能任务相对单一、维护变更较少的服务器环境。DCS可有效抵御零日漏洞的攻击,减少补丁管理的成本。
DCS是基于代理的沙盒技术进行安全防护;应用只需要有限的资源以完成相关工作,但大多数程序拥有远远超出其自身要求的资源,恶意的入侵攻击常常利用这些空隙逐步完成系统的渗透。如下图所示,用户、程序、参数、行为、资源,只有从左到右是一个“通路”这样的资源访问才是允许的。相当于将系统每一个允许的行为限制在一个沙盒中,超出沙盒的资源或行为是明确禁止的。不必去穷举所有的恶意行为,只需要将明确允许的行为即可保证系统安全稳定运行。DCS系统自带了大量的沙盒,用户只需要勾选自己需要的沙盒即可完成策略配置。
对于运行核心业务或专用业务的服务器,其运行任务单一,需要业务长期、稳定、不间断的运行。因传统的基于特征库升级、打补丁等技术已经不能满足客户的业务需求。
未知的威胁不断变化,基于特征库的防护无法有效防御0-Day威胁。但在这些业务单一的服务器上面,我们明确知道什么业务是运行运行的,这就是白名单技术。
将系统每一个允许的程序放入一个沙箱,只允许指定的应用访问指定的系统资源,其他访问定位为非法访问。
在实际环境中常常会发现某个应用程序存在漏洞,但由于应用可用性要求或者应用只能在该版本下运行导致无法对该漏洞进行补丁更新,这时DCS就可提供基于自定义应用的保护策略,实现对该应用的最小化资源权限保护,相对于补丁安全成本更低风险更小,因为DCS的策略可以回退,而补丁安装失败一般是不可回退的。这一点对系统的可用性至关重要。
Symantec DCS提供了一套按需的数据中心安全防护套件,交付VMware SDDC环境中的安全服务集成与基础架构保护。这只是Symantec面向数据中心安全整合的一部分,Symantec将不断提供更多类型的安全服务能力帮助用户搭建面向快速应用交付、弹性化、智能化的软件定义数据中心。
受DCS:SA保护下的系统架构图
安装DCS:SA后会在内核基础上添加一层保护,任何在白名单内的用户态进程发起内存申请/访问、文件读取/写入、外设访问、用户提权/变更等操作在CPU切换到内核态进程前都会过DCS:SA HIPS的沙箱进行控制和约束及HIDS的审计,从根本上保护了系统的安全。
对比刚才一般程序执行的流程,当应用态程序提出执行请求时,CPU发出中断并由内核态进程负责分配内存空间(此时DCS:SA会根据应用白名单来判断该程序是否允许运行),操作磁盘DMA(DCS:SA会检查该程序的目录及数据是否有读写权限)把该程序的数据调入已分配的内存空间;同时把内存的物理地址翻译为逻辑地址进而将数据调入缓存、寄存器,下一步由运算器负责计算(DCS:SA会约束进程在沙盒内以最小的权限运行)。得出运算结果后再把内存的页面文件翻译为物理地址写入内存(如果出现内存溢出、泄漏等危险DCS:SA会保护各个程序的内存空间不会被非法访问),由内核进程再回写到硬盘或是网络栈、外设等(DCS:SA会判断对应的目录、文件、设备是否有写权限,防止篡改被保护的内容)。整个程序的加载、运算、回写会在DCS:SA的严密约束、监控和保护下进行,即便是出现零日攻击也会因为其没有响应的权限而无法实现。
回到CPU漏洞的场景,实现攻击的前提是有病毒先进入主机,同时与漏洞进行配合。那么分为以下两种可能进行分析:
A. 不可信的程序
病毒也是一种程序,假设配合CPU漏洞的病毒已经躲过杀毒软件的防护,但是如果它想在有DCS:SA保护的服务器上运行就得先能够被调入内存。DCS:SA会以白名单的形式来允许可信的程序运行,显然病毒不在这个列表,那么它就根本无法运行,何谈造成攻击。
B. 可信的程序
如果病毒感染了可信的程序,根据『分支预测』和『乱序执行』的原理实现无条件执行指令的内存数据滞留在缓存中,造成有可能被恶意窃取的可能。但是DCS:SA是会严格控制每个程序可访问的内存空间并且给予最小的权限,即便出现类似内存泄露、溢出的情况也不允许其他进程超范围访问。
基于以上的分析,DCS:SA基于流程和方法的防护理念天生就具有防护零日攻击的基因,不需要管理员频繁更新特征码,达到一劳永逸的目的。
对于CPU漏洞的防御Symantec官方链接和解释
熔毁和幽灵本地权限提升漏洞这意味着必须首先在目标系统上安装恶意软件才能利用这些漏洞。赛门铁克数据中心安全:服务器高级(DCS:SA)通过确保只有授权软件是允许执行的。
对于Windows更新修补程序,不需要对安全代理进行更改。作为对内核级更改的额外预防措施,我们分析了Microsoft的修补程序信息,并在发布补丁时对其进行测试。Windows 2016、2012R2、2008 R2已获得全面认证,迄今未发现任何其他问题。对于Linux平台,我们在发布补丁时进行测试。到目前为止,所有平台都已成功测试。只有Amazon Linux需要一个驱动程序更新。
4.Symantec 动态威胁解决方案-SEP
SEP(Symantec Endpoint Protection) 专为解决当今威胁态势而设计,在整个攻击链中实行全面保护并提供深层防御。运用全球最大胁情报网络的力量,SEP借助多维机器学习、信誉分析和实时行为监控等新一代技术,有效拦截高级威胁。它可结合同样举足轻重的基本防护技术,为企业提供全面保护。 Symantec Endpoint Protection 是一款单一管理控制台的轻量型代理,可与安全基础架构中的其他产品集成,从而快速响应威胁,实现最佳的端点防护,以不折不扣的实力傲视同类产品。
入侵防御
• 网络入侵防护、URL和防火墙策略:赛门铁克的网络威胁防护技术可分析传入和传出数据,及时阻止威胁通过网络攻击端点。这个防护技术同时还包含基于规则的防火墙以及浏览器保护功能,可有效抵御网络攻击。总体而言,借助强大的网络防护技术,一半以上的威胁都会在到达端点前被查杀和拦截。
• 应用程序行为控制:控制文件和注册表访问权限,以及设置允许进程运行的方式。
• 设备控制:限制对选定硬件的访问,并控制哪些类型的设备可以上传或下载信息。外设控制可以结合应用程序控制,提供更灵活的控制策略。
• 漏洞利用防护:根除供应商尚未发布修补程序的流行软件中的零日漏洞利用,包括 Heap Spray、SEHOP Overwrite 和Java 漏洞利用。这种无特征技术效果显著,有效防止恶意软件利用任何缺陷、错误或漏洞发起攻击。
感染防御
• 信誉分析:赛门铁克独有的信誉分析技术利用我们的情报网络关联用户、文件和网站之间存在的数百亿种关系,可主动拦截更多威胁并快速抵御恶意软件变体。通过分析关键文件属性(例如文件下载的频率、文件存在的时长和下载的源位置),我们可以在文件传到端点之前,精准判定文件是否安全并指定一个信誉分数。利用文件信誉分析后,用户只需仅扫描有风险的文件,从而显著减少扫描工作量。
• 机器学习:端点上的多维机器学习技术运用学习到的内容拦截新型威胁和未知威胁,从而极度减少我们在辨别威胁时对特征的依赖程度。机器还经过全球威胁情报网络中数万亿安全文件和恶意文件示例的反复训练,确保将误报率降至最低。
• 模拟:高速模拟器可检测利用多态自定义封装程序隐藏的恶意软件。静态数据扫描程序在轻量型虚拟机中运行每个文件仅需几毫秒,从而让威胁瞬间原形毕露,不仅提高检测率,而且改善了工作性能。
• 防病毒文件保护:基于特征的防病毒功能和高级文件启发式技术可发现并根除系统上的恶意软件,从而抵御病毒、蠕虫、特洛伊木马、间谍软件、僵尸程序、广告软件和 Rootkit 等。
• 行为监控:Symantec Endpoint Protection 中的行为监控功能展现出了极高效率,尽管有极少数的威胁悄无声息地抵达了端点。它利用机器学习提供零日防护,可监控将近 1400 种应用程序并且实时确定文件风险,从而有效阻止最新和未知威胁。
泄漏防护
• 强力清除器:这款主动清理工具可远程触发,从而能够找到高级持续性威胁并删除难以清除的恶意软件。
• 主机完整性检查和策略实施:通过强制实施策略、检测未经授权的更改、开展损害评估以及隔离不合规端点等功能,确保端点得到妥善保护且合规。结合威胁检测产品使用,可协调响应以隔离受感染端点,从而快速遏制感染传播,便于您修复端点或重建端点映像。
• 系统锁定:允许运行列入白名单的应用程序(已知为安全)或阻止运行列入黑名单的应用程序(已知为不安全)。Symantec Advanced Threat Protection (ATP) 和 Secure Web Gateway 可利用可编程 API 与 SEP Management (SEPM) Console进行通信,协调响应措施以通过应用程序控制功能将新发现的恶意应用程序列入黑名单。它可跨 Windows®、Mac®、Linux®、虚拟机和嵌入式系统运行。
• Secure Web Gateway集成:全新可编程 REST API 支持 SEP 与 Secure Web Gateway 等第三方产品集成,协调端点响应措施,快速遏制感染传播。
赛门铁克的SEP解决方案,不仅适用于常见的Windows类终端的防护,也可以为MAC OS乃至移动终端(手机)用户提供动态的安全防护。总结
DCS:SA解决方案从根本上解决了服务器的防御问题,因为它是基于方法和流程的防御并不是基于签名来进行的,可谓是一劳永逸,白名单技术配置简单,运行资源占用少,能够大幅度减轻运维人员和安全人员对服务器的维护工作。
SEP(Symantec Endpoint Protection)强大的机器学习、应用信誉、漏洞防御体系能够在不过多增加终端负载的前提下实现更加完善的防御,及时动态调整防护测量,将病毒和威胁拒之门外。
本文只是从服务器和端点保护的角度来介绍Symantec给您带来的解决方案,临渊慕鱼不如退而结网,被动应对不如主动防御,Symantec为企业和个人用户提供完整的信息安全防护平台和服务,从云、大数据、网络安全、邮件、移动应用和终端、认证和单点登录、数据加密、ATP和广域网加速等方面提供全方位的信息安全防护平台。