背景 原文地址(http://www.cnblogs.com/wenBlog/p/8435229.html) 最近針對我們的處理器出現了一系列的嚴重的bug。這種bug導致了兩個情況,就是熔斷和幽靈。 這就是這幾天鬧得人心惶惶的CPU大Bug。消息顯示,以英特爾處理器為代表的現代CPU中,存在可以導 ...
背景
原文地址(http://www.cnblogs.com/wenBlog/p/8435229.html)
最近針對我們的處理器出現了一系列的嚴重的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提供了一個安全咨詢和補丁,他們也推出了自己的補丁:
- 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的廠商
註意當不置信的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引起的問題。