正文
史上最大的CPU Bug(幽灵和熔断的OS&SQLServer补丁)
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
背景
最近针对我们的处理器出现了一系列的严重的bug。这种bug导致了两个情况,就是熔断和幽灵。
这就是这几天闹得人心惶惶的CPU大Bug。消息显示,以英特尔处理器为代表的现代CPU中,存在可以导致数据泄漏的大漏洞。这两类主要的漏洞被命名为Meltdown(熔断)和Spectre(幽灵),其中Meltdown漏洞会导致某些代码越过权限访问任意内存地址,直击敏感数据,这主要影响英特尔CPU;而Spectre漏洞机理不同,但作用类似,同时几乎影响所有的处理器,英特尔、ARM和AMD均不能幸免。不过和Meltdown漏洞相比,利用Spectre漏洞进行攻击的难度更高,漏洞带来的风险要更低。
这里我将会总结针对不同的系统如何补丁。
SQL Server 受影响的版本
首先这是一个CPU硬件问题,那么几乎所有的系统都会受到影响,SQL Server运行在X86或者X64架构下,也必然受到不小影响,下面是受到影响的版本:
- SQL Server 2008
- SQL Server 2008R2
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- SQL Server 2017
- Azure SQL Database
除了上面几个外,还有一些像SQL Server 2005, SQL Server 2000, SQL Server 7,和SQL Server 6.5虽然也有影响但是已经不再有对应的补丁出现了,非常遗憾。
注意: 根据微软的解释,IA64系统被认为不会受到此bug的影响,小幸运啊。
解决方案:
目前网路上公布的情况是主要依靠软件补丁来秀谷,但是必然因此带来一定的性能损失。
那么该如何修复这次爆出的漏洞,其实业界也有了对策。这次的漏洞无法通过微码修复,需要OS层面的更新,但如果修复Meltdown漏洞的话,则会造成性能损失,英特尔处理器打了PTI补丁后,性能会有5%~30%的降幅,某些特定的应用甚至会下降50%的性能。而AMD则不受Meltdown漏洞影响,如果是修复Spectre漏洞的话,并不会造成性能损失。ARM主要也是受Spectre漏洞影响,少部分受Meltdown漏洞影响,目前Android已经发布了修复补丁,但性能影响还不得而知。
SQL Server 补丁
这里有一篇讨论如何防止攻击的文章,有兴趣的可以去读一下(https://support.microsoft.com/en-us/help/4073225/guidance-protect-sql-server-against-spectre-meltdown)
不多数直接上补丁了,如下:
- SQL Server 2017 CU3 (download)
- SQL Server 2017 CU3 RTM (download)
- SQL Server 2017 GDR (download)
- SQL Server 2016 SP1 CU7 (download)
- SQL Server 2016 SP1 GDR (download)
- SQL Server 2016 RTM CU (download)
- SQL Server 2016 RTM GDR (download)
- SQL Server 2014 CU10 for SP2 (download)
- SQL Server 2012 SP4 GDR (download)
- SQL Server 2012 SP3 (后续)
- SQL Server 2008 R2 SP3 GDR (download)
- SQL Server 2008 SP 4 GDR (download)
以后会定时更新其他版本。方便大家及时获取。
OS 补丁
The Window KB for guidance is 4072698.
这里推荐一篇关于如何防止边信道攻击的指导文章(speculative execution side-channel vulnerabilities),微软还是技术积累丰富啊,这点国内公司还有很长路要走,目前阿里的补救措施很缓慢。
下面是已经找到的操作系统的补丁,疯狂下载吧:
- Windows Server (Server Core) v 1709 - KB4056892
- Windows Server 2016 - KB4056890
- Windwos Server 2012 R2 - KB4056898
- Windows Server 2012 - N/A
- Windows Server 2008 R2 - KB4056897
- Windows Server 2008 - N/A
- Red Hat v.7.3 - Kernel Side-Channel Attacks CVE-2017-5754, 5753, 5715
- SUSE Linux - 7022512
- Ubuntu - Update on the patches
VMWare has a security advisory (VMSA-2018-0002) and patches. They have released:
VMWare提供了一个安全咨询和补丁,他们也推出了自己的补丁:
- ESXi 6.5
- ESXi 6.0
- ESXi 5.5 (partial patch)
- Workstation 12.x - Upgrade to 12.5.8
- Fusion 8.x - Updated to 8.5.9
那种情况下需要立即补丁
1.如果数据库是SQLServer2017 or 2016 ,那么请立即打补丁吧。
2.SQL Server (Windows) VM in your data center 虚拟机运行的SQLServer -
解决:需要打补丁到操作系统或将SQLServer隔离在物理硬件上。查看Windows操作系统的微程序更改。
3.SQL Server 主机或者虚拟机上,同时代码和数据库在同一台机器上。使用了非置信的代码。
解决:需要打补丁到操作系统、数据库。
4.Linux系统的SQLServer。
解决:打补丁到Linux系统和SQLServer,检查linux的厂商
Note that when untrusted SQL Server extensibility mechanisms are mentioned, they mean
注意当不置信的SQL Server扩展代码被引用,它们包括如下 :
- SQL CLR
- R 和Python 包需要通过通过sp_external_script执行, 或者在一台独立机器上的R/ML。
- SQL Agent 运行着ActiveX scripts
- 链接服务器上的非微软OLEDB 驱动
- 非微软的 XPs
微软提供的迁移方案SQL Server KB.
你可以偷懒的条件如下
如果你用的是SQL Server 2008, 2008 R2, 2012, 2014,你可以等待SQLServer补丁。它们还没有出来...惨。我也会定时更新这个补丁。还有一个好消息就是一下几种情况可以不需要补丁。
如下情况你可以喝茶聊天了(不需要打补丁的):
如果你是在Azure、AWS。当然阿里云也已经打了补丁。,但是。
注意:AWS的EC2的VMS需要自行补丁。阿里云的ECS也需要自行补丁数据库。当然云上的虚拟机大家也要自己进行手动补丁了。
本次事件的影响:
除了2013年之前发布的Intel Itanium和Intel Atom CPU以外,自1995年以来,每个处理器都受到这些漏洞的影响,无论您是使用Windows,Linux,MacOS,Android,Chrome OS还是FreeBSD。安全研究人员为Google的Project Zero,Cyberus技术公司和格拉茨技术大学(Graz University of Technology)工作人员报告了这个崩溃和幽灵问题。
总结:
截止1月份目前主流操作系统都通过补丁的方式进行了修补,当然必然带来一些性能损失。目前来看微软反馈最迅速,其次是苹果,最后是谷歌...,我深度怀疑微软是已经知道这个漏洞的,爆发后迅速祭出了bug补丁。希望跟大家及时交流解决这个bug引起的问题。
史上最大的CPU Bug(幽灵和熔断的OS&SQLServer补丁)的更多相关文章
-
C语言中史上最愚蠢的Bug
C语言中史上最愚蠢的Bug 本文来自“The most stupid C bug ever”,很有意思,分享给大家.我相信这样的bug,就算你是高手你也会犯的.你来看看作者犯的这个Bug吧.. 首 ...
-
史上最臭名昭著五大软件Bug
在现今数字年代,计算机bug不但困扰着每个程序员,更会无可避免影响我们的生活,小到每个人的衣食住行,大到国家经济,世界局势.随着我们的生活方式渐渐的数字化.互联网化,数字世界的找虫和杀虫就变得越来越重 ...
-
史上最简单的排序算法?看起来却满是bug
大家好,我是雨乐. 今天在搜论文的时候,偶然发现一篇文章,名为<Is this the simplest (and most surprising) sorting algorithm ever ...
-
【腾讯Bugly干货分享】OCS——史上最疯狂的iOS动态化方案
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/zctwM2Wf8c6_sxT_0yZvXg 导语 在 ...
-
GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
-
【干货总结】:可能是史上最全的MySQL和PGSQL对比材料
[干货总结]:可能是史上最全的MySQL和PGSQL的对比材料 运维了MySQL和PGSQL已经有一段时间了,最近接到一个数据库选型需求,于是便开始收集资料整理了一下,然后就有了下面的对比表 关键词: ...
-
JVM面试题(史上最强、持续更新、吐血推荐)
文章很长而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三部 ...
-
消息队列面试题、RabbitMQ面试题、Kafka面试题、RocketMQ面试题 (史上最全、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
-
Netty 面试题 (史上最全、持续更新)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
随机推荐
-
POJ 1655 Balancing Act【树的重心】
Balancing Act Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14251 Accepted: 6027 De ...
-
RMQ算法
1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A ...
-
[Golang]一道考察defer与命名返回值的题目
题目 输出: 4 1 3 解释 当函数有可命名结果形参时,结果形参的初始值被设置为零值,函数的return语句会设置结果形参的值 当函数有可命名结果形参时,defer函数是可以修改它,然后再将它的值返 ...
-
[国嵌笔记][025][ARM指令分类学习]
算术和逻辑指令 1.mov 格式:mov {条件}{s} <dest>, <op> 作用:把一个值从一个地方移动到另一个地方,<dest>必须是寄存器 示例: @m ...
-
nxlog4go 简介 - 基于log4go的下一代go语言日志系统
nxlog4go的项目网址: https://github.com/ccpaging/nxlog4go 项目历史 ccpaging's log4go forked from https://githu ...
-
Android之MaterialDesign应用技术
PS:纵观现在大大小小软件的界面都变的比较漂亮,还有一些系统了,比如小米的MIUI,华为的EMUI等,虽然底层都是安卓,但他们的界面多多少少都会不同,谷歌对这个UI也是非常重视的,MaterialDe ...
-
AVFrame转换到Mat,yuv420p转换到RGB源代码
FFmpeg中AVFrame到OpenCV中Mat的两种转换方法 方法一:查表法 void AVFrame2Img(AVFrame *pFrame, cv::Mat& img) { int f ...
-
再叙ASM
上一篇文章,我们已体验到ASM的威力,那么结合上面的代码解释ASM是怎么执行的. ClassWriter clazzWriter = new ClassWriter(0); 首先看下官方文档对Clas ...
-
跟我一起读postgresql源码(十四)——Executor(查询执行模块之——Join节点(下))
3.HashJoin 节点 postgres=# explain select a.*,b.* from test_dm a join test_dm2 b on a.xxx = b.xxx; QUE ...
-
ETL工具--kettle篇(17.10.09更新)
ETL是EXTRACT(抽取).TRANSFORM(转换).LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环也是工作量较大的一块.当前知道的 ...
C语言中史上最愚蠢的Bug 本文来自“The most stupid C bug ever”,很有意思,分享给大家.我相信这样的bug,就算你是高手你也会犯的.你来看看作者犯的这个Bug吧.. 首 ...
在现今数字年代,计算机bug不但困扰着每个程序员,更会无可避免影响我们的生活,小到每个人的衣食住行,大到国家经济,世界局势.随着我们的生活方式渐渐的数字化.互联网化,数字世界的找虫和杀虫就变得越来越重 ...
大家好,我是雨乐. 今天在搜论文的时候,偶然发现一篇文章,名为<Is this the simplest (and most surprising) sorting algorithm ever ...
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/zctwM2Wf8c6_sxT_0yZvXg 导语 在 ...
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
[干货总结]:可能是史上最全的MySQL和PGSQL的对比材料 运维了MySQL和PGSQL已经有一段时间了,最近接到一个数据库选型需求,于是便开始收集资料整理了一下,然后就有了下面的对比表 关键词: ...
文章很长而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三部 ...
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
-
POJ 1655 Balancing Act【树的重心】
Balancing Act Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14251 Accepted: 6027 De ...
-
RMQ算法
1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A ...
-
[Golang]一道考察defer与命名返回值的题目
题目 输出: 4 1 3 解释 当函数有可命名结果形参时,结果形参的初始值被设置为零值,函数的return语句会设置结果形参的值 当函数有可命名结果形参时,defer函数是可以修改它,然后再将它的值返 ...
-
[国嵌笔记][025][ARM指令分类学习]
算术和逻辑指令 1.mov 格式:mov {条件}{s} <dest>, <op> 作用:把一个值从一个地方移动到另一个地方,<dest>必须是寄存器 示例: @m ...
-
nxlog4go 简介 - 基于log4go的下一代go语言日志系统
nxlog4go的项目网址: https://github.com/ccpaging/nxlog4go 项目历史 ccpaging's log4go forked from https://githu ...
-
Android之MaterialDesign应用技术
PS:纵观现在大大小小软件的界面都变的比较漂亮,还有一些系统了,比如小米的MIUI,华为的EMUI等,虽然底层都是安卓,但他们的界面多多少少都会不同,谷歌对这个UI也是非常重视的,MaterialDe ...
-
AVFrame转换到Mat,yuv420p转换到RGB源代码
FFmpeg中AVFrame到OpenCV中Mat的两种转换方法 方法一:查表法 void AVFrame2Img(AVFrame *pFrame, cv::Mat& img) { int f ...
-
再叙ASM
上一篇文章,我们已体验到ASM的威力,那么结合上面的代码解释ASM是怎么执行的. ClassWriter clazzWriter = new ClassWriter(0); 首先看下官方文档对Clas ...
-
跟我一起读postgresql源码(十四)——Executor(查询执行模块之——Join节点(下))
3.HashJoin 节点 postgres=# explain select a.*,b.* from test_dm a join test_dm2 b on a.xxx = b.xxx; QUE ...
-
ETL工具--kettle篇(17.10.09更新)
ETL是EXTRACT(抽取).TRANSFORM(转换).LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环也是工作量较大的一块.当前知道的 ...