In Vista securitas!

UAC

Ha öt évvel ezelőtt azt mondjuk, hogy a Windows egy biztonságos rendszer, sokan megmosolyogtak volna minket. Tény, hogy ekkor a Microsoft eléggé nagyvonalúan kezelte a biztonsági szempontokat, de a Vistában már főszerepet kapott a rendszervédelem. Az idei Hacktivity egyik legnagyobb érdeklődéssel várt programja a Windows Vista biztonsági szolgáltatásainak elemzése lesz. Safranka Mátyás (Microsoft Magyarország) már a legutóbbi konferenciának is sikeres szereplője volt, de a mostani fellépése kétségtelenül fontosabb lesz: meg kell győzni a közönséget, hogy a Vista igenis az eddigi legbiztonságosabb operációs rendszerük. Ennek kapcsán kérdeztük.

A biztonsági szoftvereket fejlesztő cégek éveken keresztül bizalmatlanul figyelték, mit keres a Microsoft az ő szakterületükön? Tényleg, mi lesz velük, ha egy operációs rendszer alapból megoldja a szükséges és elégséges védelmet? Ha például a Windows már a vírusvédelmet is teljes körűen ellátná…

A Windows platformnak biztonságot kell nyújtania a felhasználó számára, hiszen a mai online világban ez már elengedhetetlen követelmény egy operációs rendszer számára. A külső gyártók szerepe az, hogy tovább bővítsék az alap operációs rendszer által nyújtott biztonsági szolgáltatásokat, vagy esetleg egy más megközelítésű megoldási alternatívát nyújtsanak. Bizonyos értelemben a Windows már most is ellát víruseltávolítási feladatokat is, hiszen a Windows Update-ről havonta automatikusan letöltődik és lefut a „Malicious Software Removal Tool”, amely a leggyakoribb vírusok felderítését és eltávolítását elvégzi. Ez természetesen nem helyettesíti a valós idejű vírusvédelmet, de nagyban hozzájárult ahhoz, hogy a telepített Windows rendszerek fertőzöttsége és a világhálón levő zombiszámítógépek száma csökkenjen. Valós idejű vírusvédelem integrálása az operációs rendszerbe jelenleg nem célja a Microsoftnak, hiszen mi magunk is rendelkezünk egy vírusirtást is ellátó biztonsági termékcsomaggal. Ez az otthoni felhasználóknak szánt LiveOne Care és a vállalati felhasználóknak szánt ForeFront Client Security termékcsomag.

Néha az volt az érzésünk a hihetetlen fejlesztési ráfordítások hallatán, hogy Redmonban átestek a ló másik oldalára… Miért érte meg ekkora pénzt áldozni a biztonsági elemekre?

Mint szállítónak célunk minél nagyobb biztonságot és megbízhatóságot nyújtani a felhasználóinknak, hiszen a Windows platform a legelterjedtebb operációs rendszer, és így a támadásoknak ez a leggyakoribb célpontja. A biztonságot mi nem egy addicionális szolgáltatásnak, hanem minden rendszer szerves részének tekintjük.

Beszéljünk talán a legfontosabb biztonsági elemekről! Az UAC, amely egy angol rövidítés kezdőbetűiből (User Account Control) származik, és a magyar verzióban Felhasználói fiókok felügyelete néven található, fontos része lett a Windows Vistának. Elég nehezen bukkanhatunk rá az engedélyezését vagy a tiltását beállító panelre, de talán jobb is, ha nem módosítjuk az alapbeállításokat. Mi volt a cél az UAC bevezetésével, és mennyire vált be ez a megoldás a gyakorlatban?

Már Windows XP esetében is jelentősen kisebb a rendszer támadási felülete, amennyiben a felhasználó nem rendszergazdai jogokkal jelentkezik be. A standard felhasználói jogokkal bejelentkező felhasználók nevében futtatott alkalmazások nem tudnak kárt tenni sem az operációs rendszerben, sem más felhasználók állományaiban. Azonban a Windows platformra fejlesztett szoftverek sok esetben – az ellátott funkciójukhoz képest indokolatlanul – igénylik az adminisztrátori jogosultsággal való futást. A Vistában megvalósított UAC tulajdonképpen ennek a helyzetnek a kezelésére született. A cél az volt, hogy a felhasználó standard jogokkal futtasson minden alkalmazást, azoknál viszont, amelyek rendszergazdai jogokat igényelnek, egyszerűen lehessen ezt engedélyezni. Ez azt jelenti – függetlenül attól, hogy a felhasználó rendelkezik-e rendszergazdai csoporttagsággal, vagy sem –, hogy a nevében elindított alkalmazások automatikusan nem fogják megkapni a rendszergazdai jogkört. A felhasználónak külön engedélyeznie kell, amikor a rendszergazdai jogaival élni szeretne. Ez lehetőséget biztosít neki, hogy eldöntse: egy adott alkalmazás élhet-e a rendszergazdai jogokkal. A User Account Control bevezetésével tehát e kettős cél valósult meg: a felhasználó rendszergazdai jogok nélkül is tudja futtatni az alkalmazásait, de ha szükséges, a lehető legkényelmesebb módon tud adminisztrátori jogokkal futó programokat is indítani. Ez egyben azt is jelenti, hogy minden esetben információt lehet kapni arról, hogy milyen rendszergazdai joggal futó alkalmazások indulnak el.

Az UAC egyébként még biztosít egy fájlrendszer- és regisztrációsadatbázis-virtualizációs lehetőséget is. Ennek segítségével könnyebben biztosítható olyan rendszerek kompatibilitása a Vistán, amelyek rendszermappákban vagy regisztrációs adatbáziskulcsokban végeznek írási műveleteket, és mindezt úgy lehet megvalósítani, hogy a rendszer integritását semmi sem veszélyezteti.

Az UAC természetesen semmilyen további védelmet nem jelent, így olyan rosszindulatú kódok ellen sem véd, amelyek a felhasználói jogokkal is futnak (például a felhasználó profiljában végeznek módosítást, adatgyűjtést, stb.). Ugyanakkor tudatában kell lennünk annak is, hogy a UAC-engedélyezések inkább kényelmi funkciók, és nem jelentenek az operációs rendszeren belüli biztonsági határokat. Ezek esetében biztonsági előírások definiálják, hogy mi haladhat keresztül a biztonsági határon. A bejelentkezett felhasználó nevében standard felhasználói jogokkal futó rosszindulatú kód és a felhasználó által engedélyezett adminisztrátori jogokkal futó alkalmazás is a felhasználó kontextusában fut, ahol nincs köztük biztonsági határ, mely garantálná, hogy a rosszindulatú kód hozzáférjen az emelt jogokkal rendelkező alkalmazáshoz. Az UAC kijátszásához azonban a rosszindulatú kódnak kifejezetten fel kell erre készülnie. Így az UAC bekapcsolása továbbra is növeli a rendszer biztonságát, de nem szabad erre mint védelmi vonalra építeni. Az UAC-ról és a limitációiról részletes leírást adott Mark Russinovich.

Hallottunk olyan szakvéleményt, hogy az UAC kikapcsolásával a Vista még az XP SP2 biztonsági szintjét sem éri el. Miért maradt meg akkor a kikapcsolás lehetősége?

Konkrét érvek ellen tudnék csak konkrét cáfolatokkal szolgálni. Összességében kijelenthető, hogy a Vista a UAC kikapcsolása esetén is jóval biztonságosabb a XP SP2-nél. A Vista tartalmazza a Windows XP SP2 által bevezetett biztonsági szolgáltatásokat, hiszen abból lett tovább fejlesztve. Ezen felül a Vista tartalmaz egy csomó olyan biztonságot növelő újdonságot, mint a szolgáltatások védelmének növelése, az autentikációs újdonságok, kernelváltozások, az ASLR, a BitLocker, a Windows Firewall és IPSec újdonságok, Network Access Protection, stb. A Vista architektúrájának már a tervezéstől fogva része a biztonság.

Tűzfal és Defender

Sok kritika érte régebben a Windows XP tűzfalát, de a második javítócsomag óta látványos módosulások történtek – bár a kifelé irányuló adatforgalmat továbbra sem figyeli. Hogy van ez a Vistánál? A másik kérdés pedig az: rá lehet-e bízni az átlagfelhasználóra a döntési jogot: blokkoljon vagy beengedjen egy alkalmazást? Miért nem lehet ezt automatikusan kezelni?

Az első kérdésre a válasz: igen. A Vista tűzfala már egy kétirányú tűzfal. A hálózatkezelés a Windows NT4 óta nem látott újításokon ment át a Vista esetében, gyakorlatilag újra lett írva. Ennek elnevezése: Next Generation TCP/IP stack, amely lehetőséget biztosított arra, hogy az oly fontos hálózati kezelés architektúráját a modernkor követelményei szerint alakítsuk ki. A Vista esetében ez sok újdonságot jelent a hálózat teljesítmény-kihasználtsága, a protokollok támogatása szempontjából. A Vista natívan támogatja az IPv6-ot, amely szerves része az NG TCP/IP stacknek. Az új generációs hálózatkezelés tervezésénél – mint a Vista többi részének tervezésénél is – természetesen kiemelt szempontot kapott a biztonság. Vista esetében az IPSec és tűzfalfunkciók szervesen integrálódnak a hálózatkezelési modulokkal. Ez egy sokkal egyszerűbben konfigurálható és több szolgáltatást nyújtó tűzfal kialakítását tette lehetővé a Vista esetében.

A második két kérdés szerintünk nem is kérdés. A végső döntés a számítógép tulajdonosáé kell hogy legyen. Egy alkalmazás kommunikációjának szükségességét vagy tiltását a számítógép tulajdonosa, jogos használója döntheti el, az operációs rendszernek pedig meg kell adnia minden információt a döntés meghozatalához – esetlegesen javaslatot tehet még. Sem az operációs rendszer, sem más védelmi mechanizmus nem csorbíthatja a számítógép-tulajdonos jogát abban, hogy a saját számítógépén milyen jellegű kommunikációkat folytathasson. Csak egy példa: vegyünk egy olyan alkalmazást, amely mondjuk a képernyőképet továbbítja egy másik számítógép felé. Ez lehet egy támadó jellegű hálózati forgalom, de lehet, hogy csak egy baráttól való segítségkérés módja, és ezt a kérdést az operációs rendszer nem fogja tudni eldönteni. Vállalati környezetben természetesen más a helyzet, mint az otthoni környezetben. Vállalati környezetben a számítógép tulajdonosa a vállalat, akinek joga van korlátoznia, hogy a számítógépet használók milyen kommunikációt folytathatnak. A Vista természetesen erre is nyújt megoldást a központilag kialakítható csoportházirendek (Group Policy) segítségével. A Vista-tűzfal – mint az operációs rendszer minden más komponense is – központilag szabályozható, így is egyszerűsítve a vállalati rendszergazdák dolgát.

Az ASLR (Address Space Layout Randomization) viszonylag későn, a Beta 2 verzióban került be először a rendszerbe, de annyira hatékony védelemnek bizonyult, hogy végül szerves részévé vált a Windows memóriakezelésnek, így most már nem is lehet kikapcsolni, és természetesen engedélyezni sem kell – a háttérben észrevétlenül teszi a dolgát. Mi a lényege ennek a kevésbé ismert eljárásnak?

Röviden válaszolva, az elv egyszerű. A korábbi Windows-verziók memóriakezelése esetén a futtatható állományok és DLL-ek fix memóriacímekre töltődtek be. A buffer-túlcsordulásos támadások gyakran építettek arra, hogy a rendszerfunkciók ismert memóriacímeken helyezkednek el. A Vista a modulokat a 256 véletlen pont egyikére tölti be. Így nehezíti meg, hogy adott memóriaterület címzésével lehessen elérni a támadásra kiszemelt funkciókat.

A Windows Defender segítségével megszabadulhatunk a gépünkön lévő kártevőktől (kivéve a vírusoktól), főleg a kémprogramoktól. A Defender folyamatosan figyeli az automatikusan induló, valamint az éppen futó alkalmazásokat, a hálózati adatokat is átvizsgálja, a gyanús elemeket pedig letiltja. Állandóan frissülő adatbázisa van. Milyen módszerrel gyűjti össze a spyware-forrásokat a Microsoft? Honnan szerzi be ezeket az információkat?

Ma már a Microsoft is rendelkezik több, kártékony programok elleni védekezésre szolgáló megoldással. Ilyen a Malicous Software Removal Tool, a Sybari felvásárlásából származó Forefront for Exchange és Sharepoint termékek, a Forefront Client Security, a OneCare a LiveSafety Center és a Windows Defender is. Ezek közt vannak, amelyek víruseltávolítást is végeznek. Az ezen alkalmazások felismerőképességéhez szükséges szignatúrákat a Microsofton belül egy közös szervezet készíti – kivétel természetesen a Forefront For Exchange/Sharepoint 3rd party motorjai.

A kártékony kódok detektálása egyrészt az internetes forgalmak folyamatos vizsgálatával történik. Ennek sokféle módja van. Ilyenek a kihelyezett mérőgépek használata különböző OS-verziókkal és patch-szintekkel, a Microsoft Hosted Exchange szolgáltatáson átmenő forgalmak elemzése, a Windows Live Mail – korábbi Hotmail – forgalmának elemzése, valamint a saját vállalati infrastruktúránk külső és belső forgalmainak elemzése. Ezeken felül a manuális vagy a SpyNeten történő felhasználói bejelentések is szolgálnak információforrásként.

A Vistában a gyerekeikért aggódóknak egy fontos újdonság a Szülői felügyelet nevű szolgáltatás. Beállíthatjuk, hogy gyermekünk mikor használhatja a számítógépet, szűrhetjük a káros weboldalak tartalmát. Hogyan történik a tiltások beállítása? Mit lehet beállításokkal konkrétan kizárni, történik-e valamilyen naplózás az eseményekről?

A Szülői felügyelet használatának a feltétele a már említett UAC engedélyezése, majd pedig hogy a gyermek számára létrehozzunk egy standard felhasználói jogokkal rendelkező fiókot. Engedélyezése esetén az adminisztrátori jogosultságú szülői felhasználói fiók birtokában meghatározható, hogy az Internet Explorerben milyen tartalom-besorolásoknak megfelelő oldalakat jeleníthet csak meg az adott „gyerek-fiók”, vagyis a gyermek milyen jellegű tartalmakhoz férhet hozzá. Ezen felül meghatározható az is, mely kategóriába sorolható játékprogramokat használhatják. Amennyiben a játék nem képes magáról besorolási információt adni, vagy nem játékszoftverről van szó, úgy lehetőség van az alkalmazásszintű engedélyezés és tiltás beállítására is. A gyerekek számára beállítható az is, hogy milyen időszakban használhatják a számítógépet. Az engedélyezett idő lejártakor természetesen figyelmeztetéssel jelzi a Vista a játékidő végét. Amennyiben elérkezett az engedélyezett használati idő vége, akkor a Vista visszalép a bejelentkezési képernyőre (futva hagyva a gyermek alkalmazásait). A szülői felügyelet használatával beállítható még naplózás is, ennek segítségével monitorozható, hogy a gyermek milyen alkalmazásokat használ, milyen weboldalakat látogat, stb.

A BitLocker és a patchek

Mint egy undok nörsz… de be kell látnunk, szükség lehet a szigorra. Ejtsünk néhány szót a Vista még egy fontos, ám egyben veszélyesnek is tűnő adatvédelmi módszeréről, a BitLocker titkosítás használatáról. Csak a Vista Enterprise és Ultimate változatban található meg. Veszélyesnek azért gondoljuk, mert teljes meghajtónkat lekódolhatjuk úgy, hogy a kulcs elvesztésekor merevlemezünk tartalmához még akkor sem tudunk hozzáférni, ha más gépbe helyezzük be a vincsesztert. Mi a lényege a módszernek? Mit tehetünk, ha elveszítjük a dekódoló kulcsunkat? Mikor lesz általános része az összes Vistának a BitLocker?

Rögtön leszögezem: nem értek egyet azzal, hogy veszélyes lenne a BitLocker használata, csak megfelelően kell használni. Én magam is használom ezt a szolgáltatást a hordozható számítógépemen, s nekem az elmúlt egy év során nem volt vele semmilyen problémám. Amikor már az operációs rendszer fut, a beépített védelmi mechanizmusai védik a rendszert az illetéktelen hozzáféréstől, azonban a gép kikapcsolt állapotában már nincs védelem. BitLockerrel védett rendszer esetében a rendszer elindulásának feltétele, hogy a kulcsot (és a hozzátartozó PIN kódot) biztosítsuk, mivel ennek hiányában a diszk tartalma egy megfejthetetlen adathalmaz. A módszer lényege, hogy egy külső eszközön eltároljuk azt a kulcsot, amelynek segítségével a lemez tartalma bármikor visszafejthető. Ez lehet egy 1.2-es verziójú Trusted Platform Module chip vagy pedig akár egy USB kulcs is. A tárolt kulcsot még védhetjük egy PIN kóddal is – én magam is ezt a TPM és PIN kódos kombinációt használom és javaslom –, ha a gép rendelkezik a szükséges chippel. Amint a boot loadernek sikerült a kulcsot megszereznie, és vissza tudja fejteni a diszk tartalmát, utána már a bootfolyamat folytatódik a megszokott módon. Amennyiben a géphez illetéktelenek fizikailag hozzáférnek, a diszken tárolt adatokhoz sem az adott gépben, sem egy másikon nem tudnak hozzáférni, mivel minden adat titkosítva van. Ez egyébként megvédi a Vistát a jól ismert Linux boot floppys támadástól is, hiszen az operációs rendszer összes állománya és a registry is titkosítva van, így nem lehetséges a rendszergazdafiók jelszavának módosítása sem.

Ha a munkaállomás tartományi tag, akkor a Vista képes az Avtive Directoryban eltárolni – egy erre a célra létrehozott attribútumban – a visszafejtéshez szükséges kódot. Ezen kívül még felajánlja a kód kinyomtatásának lehetőségét is. Az én gépem esetében az Active Directoryba is publikáltam a kulcsot a biztonság kedvéért, és ki is nyomtattam. A kinyomtatott kulcsokat természetesen egy páncélszekrényben, lezárt borítékban tároltam el. Amennyiben elfelejteném a TPM chiphez megadott PIN kódomat, vagy megsérülne a TPM chip a gépemben, egy rendszergazda segítségével az Active Directoryból vagy a páncélszekrényből a szükséges visszaállító kulccsal újra hozzá tudnék férni a meghajtóm tartalmához.

Két dolgot emelnék még ki a BitLocker kapcsán: egyik, hogy nem jelent észlelhető teljesítménybeli különbséget a használata, másrészt pedig fontos szempont, hogy a telepítéskor már oda kell figyelni a meghajtópartíciók létrehozására, ugyanis csak egy partíció (a rendszerpartíció) titkosítható a BitLocker segítségével. A további partíciókon tárolt adatok védelmére jelenleg az Encrypted File System áll rendelkezésre. A BitLockert egy nagyvállalati szolgáltatásnak szántuk, ezért van az, hogy csak az Enterprise és Ultimate verziókban található meg. Egyelőre nem tervezzük, hogy a többi Vista-verzió is tartalmazza.

A Live OneCare biztonsági ellenőrzőeszköznél van egy ingyenes szolgáltatás, ahol ellenőrizhető a számítógépünk biztonsági állapota. Mire jó ez a vizsgálat, milyen időközönként érdemes az ellenőrzést elvégezni?

Két dolgot kell megkülönböztetnünk. Van a Windows Live OneCare, amely egy külön megvásárolható szoftvercsomag; ez többek között tartalmaz vírusvédelmet, biztonsági rendszermentést és automatikus karbantartó eszközöket. E csomagnak a részeként a felhasználó tehát egy rosszindulatú kódok elleni – valós idejű – védelmi eszközt kap. A Live OneCare Safety Center pedig – amire a kérdés irányul – egy ingyenes szolgáltatás: az online rosszindulatú kódok keresését és biztonsági ellenőrzését lehet adott időpontra elvégezni. Ez nem helyettesítheti a valós idejű védelmet egy számítógépen, arra viszont jó, hogy amennyiben gyanúnk van egy számítógép fertőzöttsége (vírussal, spyware-rel, stb.) kapcsán, akkor ennek az eszköznek a segítségével ellenőrizni tudjuk a gépet, és ha találunk fertőzést, el is tudjuk távolítani azokat.

A Vista megjelenése óta fórumainkon folyamatosan olvasható, hogy a hazai felhasználók többsége inkább megvárja az első javítócsomagot, és csak eztán fog XP-ről Vistára váltani. A várt csomag érkezése – ami fellendíthetné az eladásokat – késik, csak a jövő év első felére várható. Ezek mellett szintén friss hír a Microsoft háza tájáról, hogy az eddigi gyakorlattól eltérve – mely szerint minden hónap első keddjén érkeznek a frissítések és javítások – a vállalat rendkívüli javításokat tett elérhetővé, többek között kettőt a Vista-felhasználók számára is. Vannak-e biztonságot érintő változások a rendkívüli javításokban?

Az előre ütemezett rendszerességgel kiadott javítások tervezhetővé teszik a nagyvállalatoknak, hogy a telepítéseket előre ütemezhető módon tudják tesztelni, hiszen csak akkor telepítik a teljes klienskörnyezetükbe, ha már meggyőződtek, hogy a frissítés nem okoz problémát az üzleti alkalmazásaiknál. Ezt a tervezhetőséget biztosítja a minden hónap második keddjére („patch Tuesday”) ütemezett patch-kiadás, illetve a Service Packeknek a jó előre történő bejelentése. Ha egy olyan biztonsági rés kerül felderítésre, amelynek befoltozása nem várhat a következő tervezett frissítési napig – például zero day exploit miatt –, akkor egy azonnali javítást adunk ki. A javítások nemcsak biztonsági természetűek lehetnek, hanem tartalmazhatnak olyan módosításokat is, amelyek az operációs rendszer valamilyen működését módosítják (például egy alkalmazás kompatibilitása miatti módosítás). Az ilyen javítások sem ritkák, de csak akkor publikusak, ha jelentős felhasználói kört érintenek. Ha csak egy speciális felhasználási területet érint a módosítás, akkor azt a javítást nem tesszük publikussá, illetve csak az ügyfélszolgálaton vagy a Premier terméktámogatáson keresztül érhetők el azonnal, persze a következő Service Packbe ezek is bekerülnek. Az említett, augusztus 29-én kiadott javítások közt egyébként nem voltak biztonságot érintő frissítések. A Vistához készülő Service Pack 1 majd az addig megjelent frissítéseket, teljesítmény- és megbízhatóságnövelő módosításokat, újabb hardverek támogatását és it-üzemeltetést támogató újításokat fog tartalmazni.

Több olyan biztonsági eleme van még a Vistának, amiről majd egy más alkalommal fogunk beszélgetni. Nem került most szóba például a Windows rendszermag módosítását korlátozó PatchGuard, a MIC (Mandatory Integrity Control), ahol a rendszerszolgáltatások és az alkalmazások szintje szabályozható, de kimaradt a DEP (Data Execution Prevention) megbeszélése is. Fontos lesz megismerni a hálózati hozzáféréseket ellenőrző NAP (Network Access Protection) működését is. A hétvégi Hacktivity konferencián mindezekkel részletesebben is megismerkedhetünk majd Safranka Mátyás előadásából.

***

Következzen a rendezvény kapcsán tartott nyereményjátékunk újabb feladványa, Safranka Mátyás kérdése:

A Vista védett módban futtatott Internet Explorer (Protected Mode Internet Explorer) folyamata milyen integritási szinttel (Integrity Level) fut?

a) Untrusted
b) Medium
c) Low
d) System

Azóta történt

  • Mi nem lesz a Windows 7?

    Az utóbbi időben egyre nagyobb a zűrzavar a fejekben az új Windowst illetően. Öntsünk tiszta vizet a pohárba!

  • Kórház a lemez szélén

    Kevesen tudják, hogy ez a NOD rövidítés feloldása. Miért ilyen népszerű itthon a szlovák vírusirtó? Interjú a hazai forgalmazó vírusszakértőjével, Kiss Zoltánnal.

Előzmények