Baljós árnyak a modern processzorok felett

kami911 képe

Tovább növekszik a botrány a 3-án megszellőztetett modern processzorokkal kapcsolatos hibák körül. Tavaly a Google biztonsággal foglalkozó Project Zero csoporton belül tevékenykedő Jann Hor, valamint tőle függetlenül a grazi és a pennsylvaniai egyetem kutatói, független biztonsági szakértők és további cégek szakértőinek közreműködésével (Daniel Gruss, Moritz Lipp, Yuval Yarom, Paul Kocher, Daniel Genkin, Michael Schwarz, Mike Hamburg, Stefan Mangard, Thomas Prescher és Werner Haas) felfedezett hibákról szóló tájékoztatást az érintett gyártók (Intel, AMD és ARM) 2017. június elsején kapták meg. Fél évvel később az információ-közlési embargó lejártával 4-én kerültek a részletesen a publikum elé. Többé-kevésbé minden gyártó érintett, akik népszerű, modern processzorokat gyártanak, a mobiltelefonoktól kezdve, az asztali és mobil gépeken át, egészen a szerverekig. Bár kezdetben csak egy hibát lehetett sejteni, végül kiderült összesen 3 sebezhetőségről van szó, amelyet két hibatípusra lehet bontani.

A két hiba

Ez a két hiba a Spectre és a Meltdown neveket kapták, és olyan memóriatartalom listázását tesznek lehetőve, amelyhez – normál esetben a felhasználói jogosultsággal futó programnak nem lenne jogosultsága:

  • 1-es hiba: bounds check bypass (CVE-2017-5753) – Minden egyes bináris érintett lehet, az adott alkalmazások javításával és új futtatható állományok, programkönyvtárak kiadásával javítható a hiba.
  • 2-es hiba: branch target injection (CVE-2017-5715) – Javítható CPU mikrókód frissítéssel is, valamint a Retpoline technikával szoftveres oldalon is.
  • 3-as hiba: rogue data cache load (CVE-2017-5754) – Az érintett processzoroknál operációs rendszer javításával – ahogy arról már beszámoltunk: teljesítményvesztés mellett – elkerülhető, Linuxnál: KPTI (Kernel Page Table Isolation) nevű patch-készlet foglalkozik a hiba korrigálásával.

A hibák abból a szempontból is nagyon kellemetlenek, hogy láthatólag a CPU-k még mikrókód frissítéssel sem minden javíthatók. Így a meglévő hibás mechanizmusokat szoftveres javításokkal kell körül bástyázni, amelynek hatására jelentős 5-30%-os teljesítmény csökkenés tapasztalható a Meltdown hiba esetéban. A megtalált hibák lényegében a mai modern processzorok sebességét hozó fő ütőkártyáinak jellegzetességeit használják ki:

  • a spekulatív végrehajtást, azaz a CPU egy programban megszabott feltételteles elágazást programsorait, a döntéshez szükséges adat adott pillanatban lévő hiánya miatt – becslés alapján – előre elkezdi végrehajtani – ezt használja ki a Spectre;
  • valamint azt a jellegzetességet, hogy a modern processzorok sebességre optimalizáltan, és nem sorrendben hajtják végre az utasításokat (out-of-order) – amelyet pedig a Meltdown nevű hiba használ ki.

A processzorgyártók válaszai

A processzor gyártói reakciók vegyesek voltak. Az AMD és az ARM hamar kiadtak lényegre törő információkat, míg az Intel első körben a többi gyártó érintettségét és a probléma bagatellizálásával kommunikált. Az AMD szerint saját processzoraikat csak az egyes számú hiba érinti. A többi hibát felépítésbeni eltérés miatt nem érintett, vagy ahogy a bejelentése fogalmaz, a 2. esetben eddig AMD processzoron nem sikerült reprodukálni. A telesítménycsökkenést hozó Meltdown patch így a Linux kernel esetében is az AMD processzoroknon nem aktíválódik. Az első, már beolvasztott patch minden CPU-t hibásnak jelzett, de az AMD a LKML szerint beküldött egy olyan javítást, amely az AMD processzoroknál kikapcsolja ezt a további védelmet.

AMD processors are not subject to the types of attacks that the kernel
page table isolation feature protects against.  The AMD microarchitecture
does not allow memory references, including speculative references, that
access higher privileged data when running in a lesser privileged mode
when that access would result in a page fault.

Tehát az AMD nem érintett abban a támadási formában ami ellen a kernel page table isolation (KPTI) védene. Az eredetileg beküldött patch az AMD processzorait is hibásnak jelölte. A Phoronix-en megjelent tesztek szerint, a játékokat nem igazán, azonban az I/O érzékeny alkalmazásokat (adatbázis-kezelő, virtualizáció, sok fájlrendszer-műveletet végző alkalmazások) meglehetősen érinti ez a hibajavítás. Amennyiben a KPTI-t az AMD processzoron is aktíválják, hasonló teljesítményvesztést jelent, mint az Intel processzorok esetében.

Az ARM processzorok esetében – azaz a mobilos ökoszisztémák 99%-nál is van érintettség. Az még nem tisztázott, hogy az ARM eredeti processzordizánjai mellett, az egyedi processzor magokat tervező cégek mennyire (Qualcomm, Apple, Samsung, stb.) érintettek, de a ARM terveknek megfelelő magokat használó Cortex-R7, Cortex-R8, Cortex-A8, Cortex-A9, Cortex-A15, Cortex-A17, Cortex-A57, Cortex-A72, Cortex-A73, Cortex-A75 magokat érinti a Spectre (1-es és 2-es hiba), a Cortex-A15, Cortex-A57, Cortex-A72 magokat pedig a Meltdown sebezhetőség is.

Az Intel kezdetben csak kerülgette a forró kását, az olyan kijelentésekkel, mint

Intel believes these exploits do not have the potential to corrupt, modify or delete data.

Tehát az Intel meg van győződve, hogy ezek a hibák nem okoznak adatok elrontására, módosítására vagy törlésére lehetőséget. Ez igaz is, mert a hibák adatszivárgásról, tehát az adatok helyi megszerezhetőségéről szólnak. A bejelntésben továbbá taglalta, hogy a többi versenytárs is érintett és nem úgy gondolja, hogy ez hiba, vagy tervezési hiányosság lenne. Később azonban jelentek meg még közlemények az Intel részéről:

Intel Issues Updates to Protect Systems from Security Exploits, Industry Testing Shows Recently Released Security Updates Not Impacting Performance in Real-World Deployments, Security Exploits and Intel Products, Facts about The New Security Research Findings and Intel Products

A hibákban érintett Intel processzorok:

  • Intel® Core™ i3 processzorok (45nm és 32nm)
  • Intel® Core™ i5 processzorok (45nm és 32nm)
  • Intel® Core™ i7 processzorok (45nm és 32nm)
  • Intel® Core™ M processzorok család (45nm és 32nm)
  • 2. generációs Intel® Core™ processzorok
  • 3. generációs Intel® Core™ processzorok
  • 4. generációs Intel® Core™ processzorok
  • 5. generációs Intel® Core™ processzorok
  • 6. generációs Intel® Core™ processzorok
  • 7. generációs Intel® Core™ processzorok
  • 8. generációs Intel® Core™ processzorok
  • Intel® Core™ X-sorozat processzorok család for Intel® X99 platforms
  • Intel® Core™ X-sorozat processzorok család for Intel® X299 platforms
  • Intel® Xeon® processzorok 3400 sorozat
  • Intel® Xeon® processzorok 3600 sorozat
  • Intel® Xeon® processzorok 5500 sorozat
  • Intel® Xeon® processzorok 5600 sorozat
  • Intel® Xeon® processzorok 6500 sorozat
  • Intel® Xeon® processzorok 7500 sorozat
  • Intel® Xeon® processzorok E3 család
  • Intel® Xeon® processzorok E3 v2 család
  • Intel® Xeon® processzorok E3 v3 család
  • Intel® Xeon® processzorok E3 v4 család
  • Intel® Xeon® processzorok E3 v5 család
  • Intel® Xeon® processzorok E3 v6 család
  • Intel® Xeon® processzorok E5 család
  • Intel® Xeon® processzorok E5 v2 család
  • Intel® Xeon® processzorok E5 v3 család
  • Intel® Xeon® processzorok E5 v4 család
  • Intel® Xeon® processzorok E7 család
  • Intel® Xeon® processzorok E7 v2 család
  • Intel® Xeon® processzorok E7 v3 család
  • Intel® Xeon® processzorok E7 v4 család
  • Intel® Xeon® processzorok Scalable család
  • Intel® Xeon Phi™ processzorok 3200, 5200, 7200 sorozat
  • Intel Atom® processzorok C sorozat
  • Intel Atom® processzorok E sorozat
  • Intel Atom® processzorok A sorozat
  • Intel Atom® processzorok x3 sorozat
  • Intel Atom® processzorok Z sorozat
  • Intel® Celeron® processzorok J sorozat
  • Intel® Celeron® processzorok N sorozat
  • Intel® Pentium® processzorok J sorozat
  • Intel® Pentium® processzorok N sorozat

 Apple: “Our testing with public benchmarks has shown that the changes in the December 2017 updates resulted in no measurable reduction in the performance of macOS and iOS as measured by the GeekBench 4 benchmark, or in common Web browsing benchmarks such as Speedometer, JetStream, and ARES-6.”

Microsoft: “The majority of Azure customers should not see a noticeable performance impact with this update. We’ve worked to optimize the CPU and disk I/O path and are not seeing noticeable performance impact after the fix has been applied.”

Amazon: “We have not observed meaningful performance impact for the overwhelming majority of EC2 workloads.”

Google: “On most of our workloads, including our cloud infrastructure, we see negligible impact on performance.”

Az Intel tehát partnereivel egyetemben tagadja, hogy a hiba jelentős lassulást okozna. Ez talán igaz is az asztali gépekkel kapcsolatban, ugyanakkor a jelentős anyagi terheket jelethet a felhős szolgáltatók számára, akik főként Intel processzorral szerelt kiszolgálókat üzemeltetnek. Az biztonság oltárán feláldozott teljesítmény 5-15%-os teljesítményvesztés esetén, dollármilliókat jelenthet ezeknek a cégeknek. Ráadásul a Meltdown hiba típikusan a virtualizációs, adatbáziskezeléssel és egyéb I/O műveletben gazdag terhelés esetén a legszembetűnőbb, amely leginkább jellemző a felhős és nagyvállalati felhasználáskor. Következésképpen az Intel szerveres dominanciája egy ilyen globális hiba esetén éppen visszaüthet, hiszen nem kizárt, hogy több cég gondolkozik el a teljesítményeben, fogyaztásban és árban is versenyképessé váló AMD EPYC processzorok beszerzésén.

A Linux kernelben a

nopti  [X86-64] Disable kernel page table isolation

kernel paraméterrel tiltható a KPTI használata. Azonban fontos megjegyezni, hogy noha – a biztonsági szakértők által készített kódon kívül  – nincs ismert támadás azen hibák kihasználására. De vélhetően ez csak idő kérdése, s hamarosan lesznek olyan vadon elterjedő kódóok, amelyek személyes, értékes adatok után kutatnak ilyen módon.

 Az elérhető információk alapján a sebezhetőségez az Intel és AMD esetén így alakulnak:

Hozzászólások