Az eredeti angol nyelvű leírást RessourectoR készítette.
FIGYELEM! Nem vagyok a virtualizáció szakértője, és nagyon kevés reverse engineering ismerettel rendelkezem. Windowst sem használok rendszeresen. Ha pontatlanságokat vagy téves információkat találsz azt kérlek privát üzenetben nCore-on jelezd nekem és javítani fogom!
- Ez egy magas szintű, oktatási célú útmutató arról, hogy:
- mi az a hypervisor,
- hogyan használja a Windows a rendszerbiztonság növelésére,
- hogyan használja a Denuvo-törések (crackek) egy új módszere egy olyan rendszer emulálására, amely átmegy a legnehezebb Denuvo-ellenőrzéseken is,
- miért nem férhet meg (könnyen) ez a két felhasználási mód egymás mellett,
- és milyen gyakorlati hatásai vannak ezen Windows-biztonsági funkciók kikapcsolásának.
Mi az a hypervisor?
A mi szempontunkból releváns kontextusban a hypervisor egy olyan szoftver, amely lehetővé teszi több operációs rendszer futtatását ugyanazon a számítógépen úgy, hogy a hardvererőforrásokat úgynevezett virtuális gépekre (VM-ekre) osztja. Az olyan szoftverek, mint a VirtualBox, a VMWare vagy a Hyper-V, normál programokként telepíthetők a rendszerre, és segítségükkel virtuális gépeket hozhatsz létre. Ezekkel különböző operációs rendszereket telepíthetsz „vendégként” (guest), amelyek szigorúan el vannak szigetelve a „gazda” (host) operációs rendszertől és egymástól is.
Intuitív módon egyértelmű, hogy ha egy operációs rendszert egy virtuális gépre telepítünk – saját virtuális CPU-magokkal, lefoglalt memóriával, a hardveres firmware-hez vagy a személyes fájlokhoz való közvetlen hozzáférés nélkül –, az nagyon erős védelmet nyújthat a VM-en belül futó kártékony szoftverekkel szemben.
Egy bare-metal (közvetlenül a hardveren futó) hypervisor egy lépéssel tovább megy: nem a te operációs rendszereden fut alkalmazásként, hanem közvetlenül a hardveren, így még a fő operációs rendszered is a hypervisoron keresztül fér hozzá a hardvererőforrásokhoz. Ezt a hardver virtualizációs funkciói – mint például az SVM/AMD-V és az Intel VT-x – segítik, hogy hatékonyabb legyen, és lehetővé tegyék az operációs rendszer számára, hogy rendszerindításkor betöltsön egy hypervisort, amely átveszi a hardvererőforrások kezelését az operációs rendszertől. Ez a hypervisor aztán képes más operációs rendszereket, speciális biztonsági szoftvereket, vagy akár egy másik hypervisort is futtatni, teljesen elszigetelve még attól a fő operációs rendszertől is, amelyet betöltöttél.
A Windows virtualizáció alapú biztonsági összetevői
A Secure Boot, TPM 2.0 és hardveresen támogatott virtualizációs képességekkel rendelkező modern rendszereken a Windows 10 és 11 – többnyire* alapértelmezés szerint – különböző biztonsági megoldásokat engedélyez a virtualizáció alapú biztonság (Virtualization-based Security, VBS, https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-vbs) révén. A VBS egy gyűjtőfogalom arra, amikor egy bare-metal hypervisor – a Windows hypervisor – segítségével olyan elszigetelt virtuális terek jönnek létre, amelyek még egy teljesen kompromittálódott operációs rendszertől is védve vannak. Ezekben a terekben futnak a biztonsági összetevők, amelyek felügyelik az operációs rendszert, vagy bizalmas információkat tárolnak.
A következő Windows-összetevők tartoznak ezek közé a biztonsági megoldások közé:
- Memory Integrity (HVCI): Ellenőrzéseket hajt végre a Windows kernel rosszindulatú, vagy legalábbis váratlan módosításainak észlelésére, és korlátozza a gyanús kernel memória-foglalásokat. Elképzelésem szerint ez védelmet nyújthat például az olyan rosszindulatú szoftverek ellen, amelyek rendszergazdai jogosultsággal futnak és rendszerfájlok módosítására tesznek kísérletet, vagy a felhasználó által futtatott alkalmazások memóriabiztonsági sebezhetőségeivel szemben.
- Credential Guard: Hozzáférési hitelesítő adatokat, például jelszavakat, hitelesítési adatokat, biometrikus adatokat stb. tárol egy elszigetelt környezetben.
- Windows Hello és Enhanced Sign-in Security: Lehetővé teszi a kényelmes bejelentkezést, például egy rövid PIN-kóddal, arcfelismeréssel vagy ujjlenyomat-olvasással. A VBS-t használja a rendkívül érzékeny adatok tárolására. Az általa biztosított bejelentkezési módszerek általában elromlanak, ha a fenti összetevők valamelyikét letiltják. Továbbá a System Guard is védi, ha az be van kapcsolva.
- System Guard (Secure Launch): Egy fejlett rendszerbiztonságot megerősítő keretrendszer, amely megvédi az operációs rendszer rendszerindítási folyamatát és a Rendszerkezelési módot (System Management Mode – SMM, amelyet a BIOS gyakran használ hardverkonfigurációs szoftverek futtatására) az (akár kifinomult) rootkit-ektől. Mivel az ilyen rootkit-ek magát a hypervisort is kompromittálhatnák, ezt a védelmet a modern processzorok különböző hardveres biztonsági funkciói segítik. A TPM 2.0 által támogatva ez lehetővé teszi a rendszer integritásának – beleértve az itt említett többi biztonsági összetevőt is – folyamatos felügyeletét a rendszerindítás után, és annak távoli rendszerről történő ellenőrzését.
A kutatásaim alapján ez egy élvonalbeli technológia, és alapértelmezés szerint nincs bekapcsolva.
*Bár a hardveres és rendszerindítási követelmények adottak, a Windows néha láthatóan nem képes engedélyezni azokat a funkciókat, amelyeknek automatikusan be kellene kapcsolniuk, mint például a VBS és a memóriaintegritás.
A Windows hypervisor nélkül ezen biztonsági funkciók egyike sem használható. Tervezéséből adódóan a hypervisort nem lehet közvetlenül letiltani. Ehelyett az összes fenti funkció, amely használni szeretné a VBS-t, jelzi az engedélyezési igényét, ami ezután betölti a hypervisort. Ezért le kell tiltanunk ezeket a funkciókat, hogy megakadályozzuk a Windows hypervisor betöltését.
Továbbá egy olyan boot opciót is hozzá kell adni, amely megakadályozza, hogy a Hyper-V betöltse a hypervisort.
A rendszer viselkedésének módosítása egy bare-metal hypervisorral
Egy bare-metal hypervisor ellenőrzi az operációs rendszer minden hozzáférését a CPU-hoz, a memóriához és az összes többi hardverhez, ami azt jelenti, hogy segítségével a hardverkörnyezet meghamisítható, és az operációs rendszer műveletei manipulálhatók. Ez óriási fegyvertény egy olyan másolásvédelemmel szemben, amely képes megvédeni magát az ugyanazon az operációs rendszeren belül futó más szoftverek számos ismert technikájával (például hibakeresőkkel, emulátorokkal vagy memóriamódosításokkal) szemben. Lényegében a hypervisoros törési módszer (crack) tartalmaz egy Windows kernel-illesztőprogramot, amely egy nagyon egyszerű hypervisorként ékelődik be, és amelynek fő feladata a Denuvo-ellenőrzések megtévesztése.
A legújabb Windows-verziók megtagadják azon kernel-illesztőprogramok betöltését, amelyeket a Microsoft a WHQL-en keresztül nem hagyott jóvá és nem látott el aláírással. Ezt hívják Driver Signature Enforcement-nek (DSE). Csak a legitim, olyan képviselőkkel rendelkező vállalatoknak van esélyük az illesztőprogramjaik aláíratására, amelyek szigorú személyazonossági ellenőrzéseken esnek át egy speciális tanúsítvány megszerzéséhez. Ez azt jelenti, hogy a saját, egyedi illesztőprogramunk betöltéséhez le kell tiltanunk a DSE-t is.
Miért nem lehet mindkettőt?
Ha a Windows hypervisor az operációs rendszer és a hardver között helyezkedik el, és támogatja az összes hardveres képességet, amire a Windowsnak szüksége van, miért nem tehetjük a Denuvo-megkerülő hypervisorunkat egyszerűen a Windows hypervisor és a Windows közé? Hypervisorception!
Technikailag ez lehetséges, és a neve beágyazott virtualizáció (nested virtualization), de a Microsoft úgy döntött, hogy ezt csak más Windows hypervisorok esetében támogatja a Hyper-V VM-ekben, és nem engedélyezi bármilyen harmadik féltől származó hypervisor számára. A Windows hypervisor egyszerűen nem adja át a hardveresen támogatott virtualizációs funkciókat az operációs rendszernek. Még ha át is adná, kérdéses, hogy egyszerűen engedélyezne-e egy másik bare-metal hypervisort maga és az operációs rendszer között – a beágyazott virtualizációt csak a virtuális gépek kontextusában említik, nem pedig több bare-metal hypervisor egymásra halmozásánál.
Más virtualizációs szoftverek, mint például a VMWare, kénytelenek a sajátjuk helyett a Windows hypervisort használni, vagy rávenni a felhasználóikat, hogy tiltsák le a fent felsorolt összes funkciót, így a Windows hypervisor nem töltődik be, és a VMWare közvetlenül hozzáférhet a hardveresen támogatott virtualizációs funkciókhoz.
Egy másik példa a VirtualBox, amely látszólag hardveresen támogatott virtualizáció nélkül próbál működni, és ennek eredményeként rendkívül lassú.
Tehát még az olyan „legitim”, virtuális gépek futtatására szolgáló szoftvereknek is komoly problémáik vannak, amelyek nem törekszenek bare-metal futtatásra.
Ez azt jelenti, hogy nincs más választásunk, mint megszabadulni a Windows hypervisortól, és ezzel együtt az összes említett biztonsági összetevőtől.
Játszani szeretnék az egyik új Denuvo-védett játékkal. Biztonságos mindezt letiltani és hypervisor-cracket használni?
Erre nincs egyszerű válasz. Ez egy olyan ember személyes véleménye, aki 10 éves tapasztalattal rendelkezik biztonságközpontú rendszergazdai munkában.
Igaz, hogy a leggyakoribb fenyegetések a kamu letöltés gombokból származó adatlopó kártevők, a fájlokat titkosító zsarolóvírusok (ransomware), vagy egy DDoS botnethez való csatlakoztatás. Feltételezem, hogy az ilyen rosszindulatú szoftvereket általában nem érdekli a magasabb szintű jogosultságok megszerzése vagy a hardveres szabotázs, ha már eleve hozzáférnek ahhoz, amire szükségük van. Az is igaz, hogy a legjobb védekezés az ilyen kártevők ellen egy jó reklámblokkoló, a megbízható oldalak látogatása és a felhasználói edukáció.
A tapasztaltabb PC-felhasználókban hamis biztonságérzet alakul ki, látva, milyen sikeresen kerülik el a kártevőket és fertőzéseket azzal, hogy „okosak”. Azzal érvelnek, hogy nincs szükségük ezekre a korlátozó, atyáskodó biztonsági funkciókra és a téves riasztásokkal bosszantó vírusirtókra (AV), mert a kártevőmentes múltjuk „bizonyítja”, hogy ők jobban tudják. Azzal is érvelnek, hogy a fejlettebb fenyegetések nem az otthoni felhasználókat veszik célba, hanem a vállalati hálózatokat, így a kockázat túl kicsi ahhoz, hogy foglalkozzanak vele. A játékosok számára különösen releváns: a virtualizáció csökkentheti a rendszer teljesítményét, és az, hogy ez észrevehető-e vagy sem, szintén vitatott pont.
Az érem másik oldala: Olyan technológiát kapcsolnál ki, amely évtizedes biztonsági kutatásokból fejlődött ki, figyelmen kívül hagyva azt, amit a szakértők manapság elengedhetetlennek tartanak. Önként lemondanál a szoftveres sebezhetőségek gyakori típusai elleni védelemről, és ha valaha is megfertőz egy fejlettebb kártevő, az simán átjuthat mindenen, így a számítógéped örökre egy botnet része maradhat, vagy könnyebben átterjedhet a helyi hálózat többi eszközére. Ha sokan távolítják el ezeket a védelmi opciókat – különösen a DSE-t és a memóriaintegritást – egy játék miatt (ami az otthoni Windows PC-k egyik fő felhasználási területe), akkor a kártevők írói számára megérheti célzottan ezekre a beállításokra fókuszálni. A HV (hypervisor) törések széles körű elterjedése ösztönözheti a manipulált kamu kiadásokat is, mivel az azokat letöltő emberektől joggal elvárható, hogy minden védelmet kikapcsoljanak, beleértve a vírusirtó kivételeit is. A megfelelő óvintézkedések megtételéhez és a fájlok ellenőrzéséhez szükséges tudás és erőfeszítés jóval nagyobb, mint a gyakori fenyegetések esetében, a lehetséges következmények pedig sokkal súlyosabbak.
A kikapcsolt Windows-funkciókon túl, még ha meg is bízol a hypervisor illesztőprogram készítőiben, és akár magad fordítod le a kódjukat, a kódjában lévő egyetlen komoly sebezhetőség azonnali, maximális és észrevehetetlen hozzáférést biztosíthat a rendszeredhez.
Hogy a játék megéri-e ezt a kockázatot, azt végső soron neked magadnak kell eldöntened.
Azonban, ha nem érted az ebben az útmutatóban leírt általános koncepciókat, vagy anélkül görgettél le ide, hogy elolvastad volna, akkor egész biztosan nem vagy felkészülve ennek a döntésnek a meghozatalára.