A hozzáférési jogok ellenőrzése - az eszközablakok (hl
Ellenőrizze a hozzáférési jogokat
A Windows biztonsági modellje előírja, hogy a szál előre - az objektum megnyitása előtt - jelzi, hogy mely műveleteken fog működni az adott objektumon. A rendszer ellenőrzi a menet által kért hozzáférési típust, és ha megengedett, egy olyan fogantyúval rendelkezik, amely lehetővé teszi (és ugyanazon folyamat más szálainak), hogy műveleteket hajtsanak végre az objektumon. Amint azt a 3. fejezetben említettük, az objektumkezelő regisztrálja a kezelő számára biztosított hozzáférési jogokat a folyamat leíró táblázatában.
Az egyik olyan esemény, amely az objektumkezelő számára a hozzáférési jogosultságok ellenőrzését okozza, egy létező objektum nevének megadásával történő megnyitása. Amikor egy objektum név szerint megnyílik, az objektumkezelő a névtérben keresi. Ha ez a tárgy nem rendelkezik másodlagos névtér (például név tér adatbázis tartozó szabályozó konfiguráció vagy fájlrendszer nevét teret tartozó fájlrendszer driver), a tárgy vezetője kéri egy belső funkció ObpCreateHandle. Amint a neve is sugallja, létrehoz egy elemet a leíró táblázatba, amely az objektumra van leképezve. Azonban ObpCreateHandle kéri a végrehajtó rendszer ExCreateHandle, és létrehoz egy leíró csak ha egy másik függvény objektum vezetője, ObpIncrementHandleCount számol be, hogy az áramlás joga van hozzáférni az objektumot. Azonban az igazi teszt a hozzáférési jogok végeznek más függvény objektum vezetője, ObCheckObjectAccess, amely visszaadja az ellenőrzés eredményeit ObpIncrementHandleCount funkciót.
ObpIncrementHandleCount továbbítja ObCheckObjectAccess identitás védelme áram nyitó objektumtípusra kértek hozzáférést (olvasás, írás, törlés, és így tovább. D.), és a mutatót az objektum. A ObCheckObjectAccess először blokkolja az objektum és a szálvédelem kontextusának védelmét. Lock védelem tárgya megakadályozza annak megváltoztatását egy másik szál az ellenőrzés során a hozzáférési jogok és menet keretében zár megakadályozza egy másik szál ugyanazon vagy más eljárás változtatni a személyazonosságát az első áramlási védelmi ellenőrzése során a hozzáférési jogokat. További ObCheckObjectAccess védelmi eljárás hatására a tárgy, hogy a biztonsági beállítások egy tárgy (objektum módszerek leírását lásd fickó. 3). Hívás védelmi módszer vezethet függvényhívás másik eleme a büntetés-rendszer, de sok a tárgyak a végrehajtó rendszerek támaszkodnak szabványos támogatást a biztonsági menedzsment, a javasolt rendszer.
Ha a végrehajtó eleme a rendszernek, megjelölve a tárgy, nem fogja helyettesíteni a standard biztonsági politika, ez jelzi, hogy milyen típusú e tárgyak szokásos védelmet. Amikor az SRM meghívja az objektumvédelmi módszert, akkor először ellenőrzi, hogy az objektum szabványos védelmet használ. Egy szabványos védelemmel ellátott objektum védelmet nyújt a fejlécében, és védelmi módot biztosít SeDefaultObjectMethod néven. Az objektumot, amely nem használ szabványos védelmet, önmagában is meg kell őriznie a védelmi információkat, és saját védelmi módot kell biztosítania. A szabványvédelem olyan tárgyakat használ, mint a mutexek, események és szemaforák. A nem szabványos védelem alatt álló objektum például egy fájl. A vezérlő IO, meghatározza az objektum típusát „file”, van egy fájlrendszer-illesztőprogram, amely kezeli a védelmét a fájlokhoz (vagy úgy dönt, hogy nem hajtja végre azt). Ily módon, amikor a rendszer kér információt védelmére az objektum „fájl”, amely egy fájl egy NTFS térfogatú, ez lesz ezt az információt az NTFS fájl rendszer vezető, ami viszont fogadja azt a védelmi eljárást az objektum „fájl”, tartozó IO kontroller. Vegye figyelembe, hogy ha kinyitja ObCheckObjectAccess fájl nem a tárgyak „file” másodlagos névtér; a rendszer kéri a védelem tárgya „file” a módszert csak akkor potokyavno lekérdezések vagy beállítja a fájl biztonsági beállításokat (például a Windows-funkció SetFileSecurity vagy GetFileSecurity).
Miután megkapta az objektumvédelemre vonatkozó információkat, a ObCheckObjectAccess felhívja a SeAccessCheck SRM funkciót, amely a teljes Windows biztonsági modellen alapul. Elfogadja az objektumvédelmi paramétereket, a szálvédelem azonosító adatait (a ObCheckObjectAccess által megkapva) és a menet által kért hozzáférési módot. A SeAccessCheck igaz vagy hamis, attól függően, hogy megadja-e a szálhoz a kért hozzáférési típust.
Ezt követõen a szál megpróbálhat valamit írni a fájlban a Windows függvény WriteFile-en keresztül, a paramétert a fájlleírást továbbítja. Rendszer szolgáltatás NtWriteFile, ami WriteFile okozhat keresztül Ntdll.dll, vonzó lesz a függvény objektum manager ObReferenceObjectByHandle, hogy egy mutatót az objektum „file” annak leíró. Az ObReferenceObjectByHandle paraméterként elfogadja a kért hozzáférési típust. Megtaláljuk a leírásokat a table elem megfelelő a szükséges leíró, ObReferenceObjectByHandle le a kért hozzáférés típusát annak, amelyet az adott a fájl megnyitásakor. B ObReferenceObjectByHandle ebben az esetben azt jelzi, hogy az írási művelet sikertelen, mert a hívó szál, egy fájl megnyitásakor, nem kapta meg a jogot, hogy rögzítse.
A Windows biztonsági funkciói lehetővé teszik a Windows alkalmazások számára, hogy meghatároznak saját privát objektumokat, és hívják az SRM szolgáltatásokat az ilyen Windows biztonsági objektumokhoz való alkalmazásra. Az objektumkezelő és a végrehajtó rendszer más elemei által használt objektumok védelmére szolgáló számos rendszermag funkciót Windows felhasználói módként exportálnak. Például a SeAccessCheck egyenértékével a felhasználói mód a AccessCheck. Így a Windows alkalmazások alkalmazhatják a Windows biztonsági modelljét, és integrálhatók az operációs rendszer hitelesítési és felügyeleti interfészeihez.
Az SRM védelmi modell lényege egy matematikai kifejezést tükröz három bemeneti paraméterrel: a szál védelmi azonosítója, a kért hozzáférési típus és az objektumvédelmi információ. Eredménye az "igen" vagy a "nem" értéke, amely meghatározza, hogy a biztonsági modell megadja-e a kért hozzáférési típust. A következő fejezetekben ezekről a bemeneti paraméterekről és a védelmi modell beléptetési algoritmusáról fogunk beszélni.