SQL Server és a speculative execution side-channel sérülékenység
Az elmúlt napokban a sajtó és az internet ezzel volt tele, hogy találtak olyan sérülékenységet, ami talán az eddig legnagyobb, érint minden platformot és operációs rendszert. A részletekbe nem mennék bele, erre ott van a ADV180002 security advisory (meg a hírportálok), ami részletesen leírja, hogy miről is van szó. Egy dolgot kiemelnék: olyan változtatást kell e miatt, ami hatással lehet az SQL Server(re is) teljesítményére. Ami jó hír, hogy a Microsoft összefoglalta, hogy SQL Server esetén mi az amit el kell végezni. Ezt a 4073225 cikkben lehet megtalálni. Innen kiemelnék valamit:
A mai napon Windows update is jött ezzel kapcsolatban (részleteket lásd: https://support.microsoft.com/en-us/help/4072698/windows-server-guidance-to-protect-against-the-speculative-execution-s):
- Windows 10: KB4056892
- Windows Server 2016: KB4056890
- Windows Server 2012 R2: KB4056898
- Windows Server 2012: nem elérhető
- Windows Server 2008 R2: KB4056897
Ezeket a Windows Update vagy a Windows Update Catalog-ból lehet letölteni.
Sajnos ez önmagában kevés, ugyanis, szükség van a gyártó által kiadott firmware frissítésre is! Ezeket a gyártó oldaláról lehet letölteni (amennyiben van már nekik!).
SQL Server fronton is jött ki frissítés a mai napon, ami ennek a hibának (is) a kiküszöbölése miatt történt:
- SQL Server 2017
- SQL Server 2016
Sajnos nem minden SQL Server verzióra jött még ki javítás, így nagyon fontos, hogy a hivatkozott leírásokat figyelmesen olvasva, izolációt alkalmazva próbáljuk védeni a környezeteket.
Szerencsére ki/be lehet kapcsolni a Windows frissítés által hozott változtatásokat, persze csak Registry módosításokkal. Ezt a https://support.microsoft.com/en-us/help/4072698/windows-server-guidance-to-protect-against-the-speculative-execution oldalon található leírás alapján lehet megtenni (csak így zárójelben jegyzem meg, hogy el volt írva, a második esetben a végén lemaradt egy f betű, jeleztem én is, azóta javították). Így lehet tesztelni, hogy valóban okoz e problémát vagy sem.
Ellenőrizni is lehet egy új PowerShell modul és cmdlet segítségével, a SpeculationControl modullal a beállításokat. Ennek a modulnak a telepítése az alábbi parancs segítségével történhet meg:
1Install-Module -Name SpeculationControl
Majd le is lehet kérdezni az állapotokat:
1Get-SpeculationControlSettings
Ennek az eredménye egy teljesen frissített rendszer esetén az alábbi kell legyen:
Összefoglalva: mindenki olvassa végig a hivatkozott linkeket és a megfelelő döntést hozva frissítse (vagy ne) a rendszerét. Fontos megjegyezni, hogy tesztelni kell. ez megint egy olyan eset, amikor is fontos a teszt környezet megléte, ami ideális esetben megegyezik az éles környezettel (vagy nem :)).