Szerző: Gálffy Csaba

2018. június 28. 12:15

TLBleed: gondok a Hyper Threadinggel

Az OpenBSD már letiltja a funkciót, mivel biztonsági rést jelent. Megoszlanak a vélemények a veszélyességről.

Új, a Hyper Threading technológia részleteit kihasználó sebezhetőséget mutattak be az amszterdami Vrije Universiteit kutatói. A TLBleed névre keresztelt új támadási vektor lehetővé teszi, hogy egy magon futó két folyamat (process) egymástól adatot szerezzen meg. Az új támadási lehetőség nem rokon a korábban nagyot robbanó Spectre és Meltdown sebezhetőségekkel, de van kapcsolat azokkal: a kutatók világszerte elkezdték sokkal alaposabban szemügyre venni a CPU-k hardveres implementációját és a design-döntések biztonsági hozadékait.

TLBleed

Maga a támadás nagy vonalakban: a Hyper Threading lehetővé teszi, hogy egyetlen fizikai processzormagon felváltva két programszál is futhasson. Ez úgy érhető el, hogy az Intel bizonyos erőforrásokat megkettőz, így mindkét szál számára úgy tűnik, hogy a teljes processzormaggal rendelkezik. A technológia előnye, hogy képes a végrehajtó egységek kihasználtsági fokát közelebb vinni az ideálishoz, így ha az egyik szál éppen várakozik valamire, akkor az egységek dolgozhatnak a másik szálhoz tartozó utasításokon.

Az új támadás a TLB-t (translation lookaside buffer) használja, ez egy speciális gyorsítótár, amely a virtuális memória és a fizikai memória címterei közötti megfelelést tárolja, a cache-hierarchiában ismert struktúrában: a legutóbb lekérdezett címeket az elsőszíntű TLB tárolja el, amely nagyon gyors, de pici, sokkal több adatot tárol a másodszintű (de lényegesen lassabb), ha pedig ebben sincs benne a kérdéses cím, akkor a processzornak ki kell néznie a memóriába. Ez pedig (ahogy a Meltdown-Spectre esetében) lehetővé teszi, hogy a támadó megmérje a lekérdezések között eltelt időt, és ezt az információt adatkiolvasásra használja fel.

Alapozó Go fejlesztői képzést indítunk (x)

November 9-én 10 alkalmas, 30 órás, online formátumú Go képzést indít a HWSW.

Alapozó Go fejlesztői képzést indítunk (x) November 9-én 10 alkalmas, 30 órás, online formátumú Go képzést indít a HWSW.

A kutatók által ismertetett támadás mechanizmusa egészen pontosan nem ismert, de állításuk szerint sikerült egy Intel processzoron futó Curve 25519 EdDSA kriptográfiai algoritmus kulcsát ellopni egy, azonos fizikai, de más logikai magon futó programszállal. A támadás két ezredmásodpercnyi adatgyűjtést, 17 másodpercnyi tapogatózást és egy végső, a másodperc törtrésze alatt lefutó találgatást ölel fel, ennek végén 99,8 százalékos hatékonysággal sikerült a titkos kulcsot ellopni.

A hiba súlyosságára jellemző, hogy az OpenBSD fejlesztői múlt héten egyszerűen letiltották a Hyper Threadinget az inteles processzorokon biztonsági okokból, az implementáció ugyanis rendkívül súlyos biztonsági rést üt az operációs rendszeren.

Intel: programozzatok biztonságosabban

A The Register megszólaltatta az Intelt is a kérdésben, a chipgyártó szerint a létező és bevett szoftveres gyorsítótár-védelmi mechanizusok a TLBleed-típusú támadások ellen is védelmet nyújtanak, így maga a hardveres implementáció nem számít sebezhetőnek. Az álláspontnak megfelelően a sebezhetőség nem kap CVE-azonosítót sem, a probléma felfedezőinek pedig nem jár jutalom a cég bug bounty programjának keretében.

Az Intel védekezése szerint saját kriptográfiai megoldásai, amelyek a side-channel támadások elleni védelmeket alkalmazzák, nem sebezhetőek az új vektor által. A kutatók álláspontja szerint viszont rengeteg olyan kód van ma használatban, amely a TLBleed előtt biztonságosnak számított, ezzel az új vektorral azonban már nem ilyen - a példakódban használt libgcrypt is ilyen.

Az Ars Technica cikkében megszólaló szakértők véleménye megoszlik a súlyosságot illetően. Az ilyen side channel támadások a kriptofüggvények ellen viszonylag általánosnak számítanak, erre a fejlesztőnek is számítania kell és az adott algoritmusokat úgy kell implementálnia, hogy minél kevesebb információt szivárogtasson. Ehhez hozzáadódik, hogy a támadási vektor értelmesen csak ilyen függvények ellen vethető be, olyan veszélyes helyzetet, mint a Spectre és a Meltdown ez most nem hoz.

A HackerRank 2020-as, 116.000 fejlesztő válaszaiból készült kutatása szerint a legtöbbjük a Go-t szeretné megtanulni következőleg, amely eredménynek az okait most ebben a cikkben szedtük össze.

a címlapról