Miért hagyományos?
Azért, mert a Windows XP és a Windows Server 2003 előtt gyakorlatilag csak ez a szolgáltatásfiók létezett. A klasszikus NT-kben (ide sorolandó ebből a szempontból a Windows 2000 is) a háttérben futó szolgáltatások ennek a fióknak a "virtuálisan" határtalan jogosultságait használták. Biztonsági szempontból ez nem túl okos dolog, nyilván ezért lett néhány szolgáltatás "átállítva" a sorozat előző részeiben már tárgyalt két új - LocalService ill. NetworkService - fiókra, amelyeknek már korlátozott lehetőségeik vannak. Azonban ha jól megnézzük a szervizek listáját, azt láthatjuk, hogy túlnyomó többségük még mindig ezt a fiókot használja a Windows Server 2003-ban is, olyan alapvető fontosságúak is mint például a DHCP Server/Client, a DNS Server, az összes IIS komponens, az RRAS, vagy akár az RPC. Szinte biztosak lehetünk abban is, hogyha telepítünk egy külső programot, amely a céljai eléréséhez rendelkezik egy szervizzel, akkor az is ezt a fiókot fogja használni. Ergo, elöljáróban tekintsük át néhány fontos jellemzőjét és tulajdonságát eme fióknak, mielőtt a nevében futó szolgáltatokkal elkezdünk foglalkozni.
A LocalSystem fiókról
Ez a fiók ugyanaz, mint amelyikkel a Windows 2000-től kezdve a user módú operációs rendszer komponensek futnak, beleértve a, Session Manager-t (WindowsSystem32Smss.exe), a Win32 alrendszer processzt (Csrss.exe), a helyi biztonsági alrendszert (Lsass.exe), és a Winlogon processzt (Winlogon.exe). Mint már volt róla szó, a LocalSystem fiók eléggé "izmos" jogosultsági szempontból, a lokális rendszert tekintve sokkal erősebb mint bármelyik helyi vagy tartományi felhasználói fiók. A következő fő jellemzői miatt igaz ez az állítás:
- A legtöbb állományhoz és regisztrációs adatbázis kulcshoz alapból teljeskörű hozzáférése van, ám ha történetesen nincs, akkor is van :D, ti. az ezzel a fiókkal futó processzek "át tudják venni" (take-ownership) az objektumok tulajdonjogát, így rögtön elérhetővé válik a hiányzó jogosultság is.
- A fiókot használó folyamatok az alapértelmezett felhasználói profil alatt futnak (HKEY USERS.DEFAULT), ezért nincs lehetőségük elérni azokat konfigurációs beállításokat (azaz nem is hatnak rájuk) amelyeket az operációs rendszer üzemeltetője a többi felhasználói profilra kötelezően előír.
- Ha a gép egy Windows 2000/2003 tartomány tagja, akkor ennek a fióknak további, a lokális gépen kívüli, más gépekre is kiható tulajdonságai is előtérbe kerülhetnek. Például az, hogy a fiók tartalmazza annak a gépnek a biztonsági azonosítóját (SID) amelyiken fut az adott szerviz, ezért automatikusan és probléma nélkül "hitelesítődik" ennek az azonosítónak a segítségével egy bármelyik másik gépen, amelyik ugyanabban erdőben található.- A helyi rendszergazda csoport tagja, ám jónéhány olyan priviléguma is van, amely ezen csoport többi tagjainak alapból nincs.
Nézzük néhányat az e fiók által birtokolt jogosultságok közül, amelyek nem szokványos volta miatt szeretnek a szolgáltatások ezen fiók égisze alatt futni:
- Act As Part Of The Operating System. Magyarul az operációs rendszer részeként való működés, azaz egy processz számára lehetőség arra, hogy a rendszerben lévő bármelyik felhasználó nevében azonosíthassa magát, így hozzáférve gyakorlatilag bármelyik lokális erőforráshoz.
- Create A Token Object. Egy hozzáférési token létrehozására szolgáló jog. Például az Active Directoryban a felhasználó hitelesítése után, a helyi biztonsági rendszer létrehoz a felhasználó számára egy tokent azaz egy olyan speciális "csomagot", amely (többek között) tartalmazza a felhasználó nevét, SID-jét és a felhasználót tartalmazó csoportok SID-jeit is. Innentől a rendszer használatának lehetőségei az ebben a tokenben tárolt információktól függnek. Ennek kreálásához megint csak kell ez az erős jogkör.
- Log On As A Service. Jogosultságok megadása, abból a célból, hogy egy-egy felhasználói fiók egy szolgáltatás biztonsági kontextusának előnyeit élvezve léphessen be a rendszerbe. A LocalSystem fiók mindig így lép be (ezt nem is lehet megváltoztatni), azonban alapértelmezés szerint semmilyen fiók nem kapja meg ezt a lehetőséget, ezért a külön fiókot igénybe vevő alkalmazásnak kell erről a telepítés során gondoskodni, vagy ha például egy Exchange Server-t saját fiókkal futtatunk, akkor nekünk kell megadni a fióknak ezt az engedélyt a vonatkozó csoportházirendben, ezen a helyen:
- Computer ConfigurationWindows SettingsSecuritySettingsLocal PoliciesUser Rights AssignmentCreate Permanent Shared Objects. Ez a jogosultság azt definiálja, hogy mely fiókok "gyárthatnak" címtár objektumot az Object Managerben. Alapértelmezés szerint erre csak azok a kernel módú komponensek képesek, amelyek a LocalSystem fiók biztonsági környezét használják. Ezen kívül nincs is másik fiók, amely rendelkezne ezzel a joggal.
- Generate Security Audits. Meghatározza azon fiókokat, amelyeket használó processzek képesek a biztonsági naplóhoz bejegyzéseket hozzáadni. Ez is egy igen fontos lehetőség, gondoljunk bele, mi minden múlhat ezen bejegyzések értelmezésén. Alapból ezt is csak a LocalSystem "tudja".
- Replace A Process Level Token. Ennek a jogosultságnak is kizárólagos tulajdonosa a LocalSystem fiók, azaz csak ennek nevében lehetséges kezdeményezni egy olyan processzt, amely kicseréli egy másik futó processz meglévő hozzáférési tokenjét.