Operációs rendszerek
Biztonsági alrendszer Teljesíti az USA Védelmi Minisztériuma által előírt C2-es szintű követelményeket: így ezek megbízható OPR-ek, azonosított hozzáférést biztosítanak, a Windows NT Server és Workstation 3.51, 1996. októberében kapta meg, míg a Windows NT 4.0, 1999. márciusában.
Biztonsági szolgáltatások I. A biztonsági szolgáltatások és alapvető tulajdonságaik: Biztonságos bejelentkezési (logon) lehetőség: felhasználónként egyedi logon azonosító és jelszó, bejelentkezéskor user azonosítás.
Biztonsági szolgáltatások II. Tetszőlegesen konfigurálható (discretionary) elérési ellenőrzés: az erőforrás tulajdonosa határozza meg, hogy ki érheti el azt, és mit tehet vele, különböző erőforrás-hozzáférések engedélyezése az egyedi felhasználóknak vagy felhasználói csoportoknak. Biztonsági ellenőrzés (audit-álás): a biztonságot érintő események felismerése és feljegyzése, a rendszer-erőforrások létrehozására, elérésére vagy törlésére irányuló lépések adminisztrálása, így lehetséges az illetéktelen hozzáférések felderítése.
Biztonsági szolgáltatások III. Memóriavédelem: egy processz egy másik processz virtuális memóriáját jogosulatlanul nem érheti el, a Windows NT garantálja, hogy egy új memóriaoldalon soha nincsenek más folyamattól régi adatok. A felsorolt követelmények teljesülését a WNT biztonsági alrendszere és a kapcsolódó komponensek biztosítják.
A biztonsági alrendszer komponensei I. Biztonsági referencia monitor (Security Reference Monitor -SRM): Megvalósítása az executive-ban (NTOSKRNL.EXE - kernel mód). Objektumok biztonsági elérésének ellenőrzése. A felhasználói jogok (privilégiumok) kezelése. Biztonsági audit-álási üzenek előállítása.
A biztonsági alrendszer komponensei II. Helyi biztonsági jogosultság ellenőrző (Local Security Authority -LSA): Felhasználói módú folyamat (LSASS.EXE: Local Security Authentication Server). Helyi rendszer biztonsága. Felhasználók bejelentkezési jogait és jelszavát ellenőrzi. Ellenőrzi a felhasználóknak és csoportoknak adott privilégiumokat. A biztonsággal kapcsolatos audit-álás üzeneteket küld az események naplójába.
A biztonsági alrendszer komponensei III. LSA adatbázis: A rendszer biztonsági beállításait tartalmazza. Registry (rendszerleíró adatbázis [paraméterek tárolása]): HKEY_LOCAL_MACHINE\Security.
A biztonsági alrendszer komponensei IV. Biztonsági témaszám kezelő (Security Accounts Manager, -SAM) szerver: Szubrutinok halmazából álló szolgáltatás. A SAM rutinok az LSASS folyamat környezetében futnak. A felhasználói neveket és a csoportokat tartalmazó adatbázis kezeli. A nevek és csoportok érvényessége: helyi gép, ha a gép tartomány (domain) vezérlő, az adott domain-re.
A biztonsági alrendszer komponensei V. SAM adatbázis: a meghatározott felhasználókat, csoportjaikat, jelszavaikat és egyéb attribútumokat tárol. Registry: HKEY_LOCAL_MACHINE\SAM.
A biztonsági alrendszer komponensei VI. Logon processz: Felhasználói módú folyamat (WINLOGON.EXE). A folyamat a felhasználói nevet és jelszót kéri. Elküldi őket az LSA-hoz ellenőrzés céljából. Kedvező válasz esetén létrehozza a felhasználó első folyamatát.
A biztonsági alrendszer komponensei VII. Hálózati logon szolgáltatás: Felhasználói módú szolgáltatás (SERVICES.EXE). Hálózatról érkező logon kérésekre válaszol. A jogosultságot úgy kezeli, mint a helyi logon-okat, azaz a nevet és jelszót elküldi az LSA processzhez.
SRM-LSA folyamatok kommunikációja Helyi eljáráshívás (LPC), a dedikált csatorna induláskor. (Event Logger, a WNT esemény naplózója.) LSASS WinLogon Event Logger LSA SAM LSA adatok SAM adatok user mode SRM (kernel) kernel mode
Az objektumok védelme Az objektumvédelem: konfigurálható elérési ellenőrzés, audit-álás alapja.
A Windows NT védhető objektumai I. A file-ok. A hardver eszközök. A mail box-ok. Az elnevezett és névtelen csővezetékek. A processzek. A szálak. Az események. A szemaforok.
A Windows NT védhető objektumai II. A timer-ek (időmérők). Az elérési token-ek (biztonsági azonosító). Az ablak-állomások. A desktop-ok. A hálózati megosztások. A szolgáltatások. A nyomtatók.
Objektumvédelem alapjai Felhasználók azonosítása: hitelesített logon. Egy objektumhoz tartozó handle megnyitása: a hozzáférés ellenőrzése (objektumkezelő + biztonsági rendszer), a biztonsági azonosító alapján.
Objektumok leírása A védett objektumok biztonsági leíróadatokkal vannak ellátva (security descriptors). Ezek határozzák meg, hogy kinek milyen jellegű hozzáférési joga van az adott objektumhoz.
A biztonsági leíróadatok I. A tulajdonos biztonsági azonosítója (security ID, SID). A tulajdonos felhasználói csoportjának a biztonsági azonosítója (group security ID; ezt csak a POSIX használja). Konfigurálható elérési lista (ACL Access Control List): meghatározza, hogy kinek milyen elérési jogosultsága van az adott objektumhoz, az ellenőrzés a HANDLE nyitásakor történik meg. Rendszer elérési lista (System ACL): meghatározza, hogy mely felhasználók mely műveleteit kell felsorolni a biztonsági audit-álási naplóba.
Elérési token-ek Adott objektum elérést kezdeményező folyamatok, illetve szálak biztonsági adatait tartalmazzák. Elérési token (access token): biztonsági azonosító, azon csoportok listája, amelyeknek a felhasználó is tagja, a megengedett és letiltott privilégiumok listája.
Elérési token Felhasználói módba vannak exportálva. Lehet létrehozni, illetve változtatni rajtuk (Win32 függvényekkel). Belső ábrázolás: kernel módban elérhető adatterületen.
Folyamatok Elsődleges elérési token. Öröklés az előállító folyamattól.
Logon Ha a felhasználói név és a jelszó összhangban van a SAM adatbázisában levő információval, akkor az LSA a logon processznek visszaad egy elsődleges elérési token-t, amelyet a WinLogon hozzárendel a kezdeti folyamathoz. Ennek a folyamatnak a gyerek folyamatai ezt az elsődleges elérési token-t öröklik.
Megszemélyesítés A szálaknak szintén lehet saját elérési token-jük: Megszemélyesítés (kliens - szerver működés). Külön elérési token-t kér. Megszemélyesítést kér a rendszertől (pipe, RPC, DDE, Log On). A szál elérési token-je különbözhet a folyamat elérési token-jétől.
A biztonsági audit-álás I. Objektumkezelő elérési ellenőrzésének eredménye: audit-álási esemény, audit-álási rekord generálás.
A biztonsági audit-álás II. A Win32-es alkalmazások: Léteznek audit-álási eseményeket generáló API függvények. A kernel mód: mindig generálhat audit-álási eseményt. Felhasználói mód: csak a SeAuditPrivilege privilégiummal, így a rosszindulatú felhasználói módú program nem tudja elrontani a biztonsági naplózást.
Event Log File generálása LSASS LSA SAM Alrendszer SRM (kernel) Event Logger Win32 alrendszer Az NT kernel módú komponensei: Object manager, NTFS, Process Manager user mode kernel mode
Az audit-álási rekordok kezelése I. Megérkezésük után azonnal bekerülnek az LSA-nak küldendő rekordok sorába. Nincs várakozás (pl. csomagok összeállítása). Az audit-álási rekordok az SRM-ről a biztonsági alrendszerhez kétféle képpen kerülhetnek át: Ha a rekord kicsi (kisebb, mint a maximális LPC üzenetméret), akkor LPC üzenetként lesz elküldve, így az auditálási rekordok az SRM címteréből az LSA folyamat címterébe másolódnak át.
Az audit-álási rekordok kezelése II. Ha a rekord nagy, az SRM megosztott memóriát használ, hogy elérhetővé tegye az üzenetet az LSA számára, ilyenkor egyszerűen csak egy pointert továbbít egy LPC üzenetben.
A logon A bejelentkezés (logon): a WinLogon processz, az LSA, és egy vagy több hitelesítő rutin (biztonsági ellenőrző DLL-ek), valamint a SAM közreműködésével megy végbe.
A WinLogon feladatai I. Megbízható folyamat. A biztonsággal kapcsolatos felhasználói beavatkozásokat kezeli. Koordinálja a logont. Kezeli: a logoff-ot, a jelszavak bevitelét és megváltoztatását, a munkaállomás lezárását és felszabadítását.
A WinLogon feladatai II. A biztonsággal kapcsolatos műveletek elrejtése más processzektől: pl.: egy megbízhatatlan folyamat nem juthat hozzá a desktop vezérléséhez (potenciális jelszó lopás).
A WinLogon működése Egyetlen folyamat, amely logon kérés fogad a billentyűzetről. Jelszó ellenőrzés az LSA-n keresztül. OK esetén egy logon shell indítása.
A logon folyamatban résztvevő rendszer-komponensek LSA szolgáltató (service) processz LPC kommunikációs csatorna WinLogon processz SAM LSA
A WinLogon inicializálás Rendszer inicializálás: a rendszer ”feláll”, a WinLogon megszerzi a vezérlést. Létrehoz és megnyit három desktop-ot: egy alkalmazási desktop-ot, egy WinLogon desktop-ot, és egy képernyő-mentési desktop-ot.
WinLogon által használt desktop-ok A WinLogon desktop: biztonságos, mert csak a WinLogon képes elérni. A másik két desktop: a felhasználók számára is elérhető.
WinLogon által használt desktop-ok Ha a WinLogon desktop az aktív, akkor: csak a WinLogon érheti ezen desktop-pal kapcsolatos kódokat és adatokat. Védett műveletek: belépés, desktop zárása, desktop zárás feloldása.
Inicializálás A WinLogon desktop létrejön. A WinLogon az aktív desktop. A WinLogon desktop lezárt állapotban van. A WinLogon feloldja: csak a WinLogon tud desktop-ot lezárni illetve feloldani. Ezután azonnal átkapcsol az alkalmazási desktop-ra, vagy a képernyő-mentési desktop-ra.