APIC/EPIC! Az Intel chipek olyan titkokat szivárogtatnak ki, amelyeket még a kernelnek sem kellene látnia… PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.

APIC/EPIC! Az Intel chipek olyan titkokat szivárogtatnak ki, amelyeket még a kernelnek sem kellene látnia…

Íme az e heti BWAIN, a mi vicces kifejezésünk a Hiba Lenyűgöző Névvel.

A BWAIN egy olyan elismerés, amelyet akkor osztunk ki, ha egy új kiberbiztonsági hiba nemcsak érdekesnek és fontosnak bizonyul, hanem saját logóval, domain névvel és weboldallal is megjelenik.

Ezt szinkronizálják ÆPIC szivárgás, szójáték a szavakra APIC és a EPIKUS.

Az előbbi a rövidítése Fejlett programozható megszakításvezérlő, és ez utóbbi egyszerűen az „epikus” szó, mint pl óriás, tömeges, szélső, mega, alázatos.

Az Æ betűt a szász idők óta nem használják az írott angolban. A neve æsc, kiejtett hamu (mint a fán), és nagyjából az A in hangját képviseli a modern ASH szóban. De feltételezzük, hogy ki kell ejteni a szót ÆPIC itt vagy „APIC-slash-EPIC”-ként, vagy „ah!-eh?-PIC”-ként.

Miről van szó?

Mindez öt lenyűgöző kérdést vet fel:

  • Mi az APIC, és miért van szükségem rá?
  • Honnan lehetnek olyan adatok még a kernel is nem tudsz lesni?
  • Mi okozza ezt az epikus kudarcot APIC-ben?
  • Ea ÆPIC szivárgás hat rám?
  • Mi a teendő, erről?

Mi az az APIC?

Térjünk vissza 1981-re, amikor először jelent meg az IBM PC.

A PC tartalmazott egy chipet, az úgynevezett Intel 8259A programozható megszakításvezérlő, vagy PIC. (A későbbi modellek, a PC AT-től kezdve, két PIC-vel voltak összekapcsolva, hogy több megszakítási eseményt támogassanak.)

A PIC célja szó szerint az volt, hogy megszakítsa a PC központi processzorán (CPU) futó programot, amikor valami időkritikus dolog történik, ami azonnali figyelmet igényel.

Ezek a hardveres megszakítások olyan eseményeket tartalmaztak, mint például: a billentyűzet billentyűleütést kapott; a soros port egy karaktert fogad; és egy ismétlődő hardveres időzítő ketyeg.

Ilyen hardveres megszakítási rendszer nélkül az operációs rendszernek tele kellene lennie funkcióhívásokkal, hogy rendszeresen ellenőrizze a bejövő billentyűleütéseket, ami a CPU teljesítményének pazarlása lenne, ha senki nem gépel, de nem reagálna. elég, amikor megtették.

Amint azt el lehet képzelni, a PIC-et hamarosan követte egy továbbfejlesztett chip, az úgynevezett APIC, Egy fejlett egyfajta PIC, ami magába a CPU-ba van beépítve.

Manapság az APIC-k sokkal többet nyújtanak, mint pusztán visszajelzést a billentyűzetről, a soros portról és a rendszeridőzítőről.

Az APIC eseményeket olyan események váltják ki (és valós idejű adatokat szolgáltatnak azokról), mint például a túlmelegedés, és lehetővé teszik a hardver interakcióját a modern többmagos processzorok különböző magjai között.

És a mai Intel chipek, ha lehet nagyon leegyszerűsítve, általában kétféle módon konfigurálhatók, hogy működjenek. xAPIC módban és a x2APIC mód.

Itt, xAPIC a „örökölt” módja az adatok kinyerésének a megszakításvezérlőből, és x2APIC a modernebb módszer.

Tovább leegyszerűsítve, az xAPIC az ún MMIO, röviden memória-leképezett bemenet/kimenet, adatok kiolvasására az APIC-ből, amikor az érdeklődésre számot tartó eseményt regisztrál.

MMIO módban megtudhatja, hogy mi váltotta ki az APIC eseményt, ha a memória egy adott régiójából (RAM) olvassa be, amely tükrözi magának az APIC chipnek a bemeneti/kimeneti regisztereit.

Ezek az xAPIC adatok egy 4096 bájtos memóriablokkba vannak leképezve valahol a számítógép fizikai RAM-jában.

Ez leegyszerűsíti az adatok elérését, de bosszantó, összetett (és mint látni fogjuk, potenciálisan veszélyes) interakciót igényel az APIC chip és a rendszermemória között.

Ezzel szemben az x2APIC megköveteli közvetlenül olvassa ki az APIC adatokat magából a chipből, az úgynevezett Modellspecifikus regiszterek (MSR-ek).

Az Intel szerint elkerülve a folyamat MMIO részét „Jelentősen megnövelt processzorcímzést és bizonyos fejlesztéseket biztosít a megszakítások kézbesítésében.”

Az APIC adatok közvetlenül a chipregiszterekből történő kinyerése azt jelenti, hogy a támogatott adatok teljes mennyisége és az egyidejűleg kezelhető CPU magok maximális száma nem korlátozódik az MMIO módban elérhető 4096 bájtra.

Hogy lehetnek olyan adatok, amiket még a kernel sem tud bekukucskálni?

Valószínűleg már sejtette, hogy az xAPIC mód használatakor az MMIO memóriaterületre kerülő adatokat nem mindig kezelik olyan gondosan, mint kellene…

…és így valamiféle „adatszivárgás” az MMIO területre a probléma lényege.

De tekintettel arra, hogy te már rendszergazdai szintű jogosultságokra van szükség elsősorban az MMIO-adatokat olvassa be, és így szinte biztosan minden adatot megkaphat a memóriában…

…miért jelentene olyat, hogy mások adatai véletlenül megjelennek az APIC MMIO adatterületén epikus szivárog?

Lehet, hogy a gyakorlatban némileg megkönnyíti az adatlopási vagy RAM-kaparó támadások bizonyos típusait, de biztosan nem adna több memória-lesnivalót, amivel elméletileg rendelkezett?

Sajnos ez a feltevés nem igaz, ha a rendszer bármely szoftvere Intel SGX-et használ. Software Guard kiterjesztések.


TUDJON TOVÁBBI AZ SGX-RŐL


Az SGX-et számos legújabb Intel CPU támogatja, és ez lehetőséget biztosít az operációs rendszer kernelének, hogy egy kód- és adatdarabot „bezárjon” a RAM fizikai blokkjába, hogy létrehozzon egy úgynevezett enklávét.

Emiatt legalább átmenetileg úgy viselkedik, mint a mobiltelefonok speciális biztonsági chipjei, amelyeket a titkok, például a visszafejtési kulcsok tárolására használnak.

Ha az enklávé SGX „zárolása” be van állítva, csak a lezárt memóriaterületen belül futó programkód tudja olvasni és írni a RAM tartalmát.

Ennek eredményeként az enklávé aktiválása után végrehajtott számítások belső részletei láthatatlanok a rendszer bármely más kódja, szála, folyamata vagy felhasználója számára.

Magát a kernelt is beleértve.

Van mód az enklávéba zárt kód meghívására, és mód van arra, hogy visszaadja az esetlegesen végrehajtott számítások kimenetét, de nincs mód a kód visszaállítására, a kémkedésre vagy a hibakeresésre. a kapcsolódó adatokat futás közben.

Az enklávé gyakorlatilag egy fekete dobozzá alakul, amelybe bemeneteket, például privát kulccsal aláírandó adatokat lehet betáplálni, és kimeneteket (például a generált digitális aláírást) kinyerni, de nem lehet kihúzni a kriptográfiai kulcsokat. az aláírási folyamatban használják.

Elképzelheti, ha az SGX enklávéba zárt adatok véletlenül az MMIO RAM-ba duplikálódnak, amelyet az APIC adatok „tükrözésére” használnak, amikor xAPIC „memória-leképezett” módot használ…

…ez sértené az SGX biztonságát, amely szerint az SGX enklávéból a létrehozása után soha nem szabad adatnak megjelennie, hacsak nem szándékosan exportálják azokat a már magában az enklávéban futó kóddal.

Mi okozza ezt az epikus kudarcot az APIC-ben?

A kutatók mögött ÆPIC Szivárgó papír felfedezte, hogy az APIC adatok kiolvasásának megszervezésével egy ravasz és szokatlan memória-hozzáférési sorozaton keresztül…

…becsaphatják a processzort, hogy az APIC MMIO-terét nemcsak magától az APIC-től frissen kapott adatokkal töltse fel, hanem olyan adatokkal is, amelyeket a CPU nemrégiben más célra használt fel.

Ez a viselkedés annak a ténynek a mellékhatása, hogy bár az APIC MMIO memóriaoldal 4096 bájt méretű, az APIC chip xAPIC módban valójában nem termel 4096 bájtnyi adatot, és a CPU nem mindig megfelelően semlegesíti. az MMIO régió nem használt részeit úgy, hogy először nullákkal tölti fel.

Ehelyett a CPU gyorsítótárában maradt régi adatokat kiírták az APIC chiptől kapott új adatokkal együtt.

Ahogy a kutatók megfogalmazták, a hiba az úgynevezett an inicializálás nélküli memóriaolvasás, ahol véletlenül újra felhasználod valaki másnak a RAM-ban megmaradt adatait, mert sem ők, sem te nem törölted ki előbb a korábbi titkait.

Az ÆPIC-szivárgás hatással van rám?

Az érintett chipek teljes listáját lásd Az Intel saját tanácsadója.

Amennyire meg tudjuk állapítani, ha 10. vagy 11. generációs Intel processzora van, valószínűleg Önt érinti.

De ha vadonatúj 12. generációs CPU-ja van (a cikk írásakor a legfrissebb), akkor úgy tűnik, hogy csak a szerverosztályú chipek érintettek.

Ironikus módon a 12. generációs laptopchipeknél az Intel lemondott az SGX-ről, így ez a hiba nem érvényesül, mert lehetetlen, hogy legyen olyan „lezárt” SGX enklávé, amely szivároghat.

Természetesen még egy potenciálisan sérülékeny chipen is, ha nem támaszkodunk semmilyen SGX-et használó szoftverre, akkor a hiba sem érvényesül.

És a hiba, szinkronizálva CVE-2022 21233-, csak olyan támadó használhatja ki, aki már rendelkezik helyi, rendszergazdai szintű (root) hozzáféréssel a számítógépéhez.

Rendszeres felhasználók nem tud hozzáférni az APIC MMIO adatblokkhoz, és ezért egyáltalán nem tud belekukucskálni semmibe, nem beszélve azokról a titkos adatokról, amelyek esetleg egy SGX enklávéból szivároghattak ki.

Szóval, vendég virtuális gépek A gazda operációs rendszer irányítása alatt futó virtuális gépek olyan hipervizorokban, mint a HyperV, a VMWare vagy a VirtualBox, szinte biztosan nem tudják használni ezt a trükköt a titkok kifosztására más vendégektől vagy magától a gazdagéptől.

Ennek az az oka, hogy a vendég virtuális gépek általában nem férnek hozzá a gazdagép processzor valódi APIC áramköréhez; ehelyett minden vendég saját szimulált APIC-t kap, amely egyedi az adott virtuális géphez.

Mit kell tenni?

Ne ess pánikba.

Laptopon vagy asztali számítógépen előfordulhat, hogy egyáltalán nincs veszélyben, vagy azért, mert régebbi (vagy szerencsére vadonatúj!) számítógépe van, vagy azért, mert amúgy sem támaszkodik az SGX-re.

És még ha kockázatos is, bárki, aki adminként/rootként lép be a laptopjába, valószínűleg elég ereje van ahhoz, hogy máris gondot okozzon.

Ha sérülékeny szerverei vannak, és működési biztonsága részeként az SGX-re támaszkodik, ellenőrizze az Intel biztonsági tanácsát. INTEL-SA-00657 védelmi és mérséklési információkért.

A kutatók szerint, akik ezt írták, "Az Intel mikrokód és SGX Software Development Kit frissítéseket adott ki a probléma megoldására."

Úgy tűnik, hogy a Linux kernel csapata jelenleg is dolgozik egy javításon, amely lehetővé teszi a rendszer beállítását úgy, hogy az mindig x2APIC-ot használjon (amely, mint korábban emlékszel, nem továbbít APIC adatokat megosztott memórián keresztül). és kecsesen megakadályozza, hogy a rendszer újra xAPIC módba kényszerüljön a rendszerindítás után.


Időbélyeg:

Még több Meztelen biztonság