COMPUTERWORLD
Specializovaný týdeník o výpočetní technice

Seriál
o bezpečnosti
a informačním soukromí

Část 52 - CW 28/98

Bezpečnost Windows NT

Milan Jirsa

Od roku 1993, kdy byla na trh uvedena verze Windows NT 3.1, se model bezpečnosti tohoto operačního systému příliš neměnil. Rozsáhlejších změn se dočkáme teprve v roce 1999, kdy mají být k prodeji uvolněna Windows NT 5.0.

O různé aspekty bezpečnosti dbá ve Windows NT bezpečnostní podsystém, který se skládá z přihlašovacích procesů a 3 modulů: místní bezpečnostní autority (Local Security Authority -- LSA), správce bezpečnosti účtů (Security Account Manager -- SAM) a monitoru bezpečnosti referencí (Security Reference Monitor -- SRM).

Jádrem bezpečnostního podsystému je modul LSA, který zajišťuje, že uživatelé mají přístup k objektům operačního systému. LSA generuje tzv. přístupové známky (Access Token), což jsou zvláštní datové struktury, o kterých ještě bude zmínka v dalším textu, dále se tento modul stará o správu místní bezpečnostní politiky a poskytuje autentizační služby přihlašujícím se uživatelům. LSA také řídí politiku auditu a zaznamenává zprávy auditu, generované modulem SRM. Modul SAM odpovídá za údržbu databáze uživatelských účtů, která obsahuje informace o všech uživatelských a skupinových účtech.

Monitor bezpečnosti referencí kontroluje, zda má uživatel právo přistupovat k požadovanému objektu operačního systému (jedná se o soubor, adresář, tiskárnu apod.) a zda s ním může provést požadovanou činnost (čtení, zápis, změna). Tento modul generuje zprávy auditu na základě politiky auditu, definované prostřednictvím LSA.

Přihlášení do systému

Předtím, než začne uživatel v prostředí Windows NT cokoli dělat, musí se do systému přihlásit. Přihlásit se může zadáním jména účtu a hesla, případně i názvu domény, což je název organizační struktury počítačů v síti. Přihlašovací procesy mohou být buď interaktivní nebo vzdálené. Při interaktivním přihlašování se jméno a heslo zapíše přímo z klávesnice; vzdálené přihlašování probíhá v okamžiku, kdy se uživatel pokusí využít některý z prostředků sítě, a to na základě informace zadané při interaktivním přihlášení.

Uživatelský účet může být uložen buď lokálně, na počítači s instalovanými Windows NT Workstation či Windows NT Server v roli samostatného serveru, nebo centrálně na tzv. řadiči domény, což je zvláštním způsobem instalovaný NT Server. Při interaktivním přihlašování spolu bezpečnostní moduly navzájem spolupracují následujícím způsobem: Uživatel zadá jméno a heslo svého účtu, případně i název počítače u kterého se právě nachází. Tato informace je předána LSA, s pomocí SAM je porovnána s informací uloženou v lokální databázi uživatelských účtů, a je-li výsledek porovnání pozitivní, LSA vygeneruje přístupovou známku a spustí Explorera Windows NT, kterému známku předá.

Pokud uživatel zadal nikoliv jméno svého počítače, ale jméno domény, proběhne přihlašování na základě uživatelského účtu, centrálně uloženého na některém z řadičů domény. Když modul LSA zjistí, že účet není z lokální databáze účtů, požádá o spolupráci systémovou službu NETLOGON, která zprostředkuje síťové spojení se stejnou službou běžící na řadiči domény. Tato vzdálená služba NETLOGON provede potřebné porovnání údajů, výsledek porovnání vrátí službě NETLOGON běžící na klientovi a ta ho poskytne modulu LSA, který opět vygeneruje přístupovou známku a spustí Explorera.

Objekty Windows NT podporují tzv. delegované řízení přístupu (Discretionary Access Control), kdy vlastník objektu má možnost určit, kdo bude mít přístup k tomuto objektu a jakého typu tento přístup bude. Pomocí nástrojů, jako je Explorer, Print Manager, User Manager for Domains a Server Manager, lze modifikovat seznam řízení přístupu (Access Control List -- ACL) spjatý s každým objektem. Tento seznam představuje pouze část jiné bezpečnostní datové struktury -- deskriptoru bezpečnosti (Security Descriptor). Kromě delegovaného ACL obsahuje deskriptor ještě systémový ACL, pomocí něhož se generují zprávy auditu, a bezpečnostní identifikátor vlastníka objektu (Security Identifier -- SID). Seznam řízení přístupu obsahuje položky ACE (Access Control Entry), které popisují přístupová práva všech uživatelů a skupin majících k objektu přístup.

Nyní se vraťme k přístupové známce, která je vytvořena po úspěšném přihlášení do systému Windows NT. Přístupová známka obsahuje bezpečnostní identifikátor uživatele i všech skupin, do kterých patří, a provází uživatele po celou dobu jeho práce se systémem. Zároveň se kopie této známky přikládá ke každému procesu, který uživatel spustí. Při požadavku na přístup k objektu se porovná obsah přístupové známky s obsahem ACL a výsledkem této operace je buď odmítnutí přístupu, nebo přidělení požadovaného přístupového práva.

Novinky ve Windows NT 5.0

Další verze Windows NT bude nabízet některé dodatečné bezpečnostní prvky. Jedná se zejména o distribuované bezpečnostní služby (Distributed Security Services) a šifrovaný souborový systém (Encrypted File System). Až dosud byla distribuovaná bezpečnost založena na protokolu NTLM (Windows NT/LAN Manager), který představoval vhodné řešení zejména v jedné doméně, pro kterou zajišťoval autentizaci, integritu a důvěrnost dat. V prostředí s více doménami však tento protokol není ideální.

Místo vylepšování a podpory svých existujících protokolů se Microsoft rozhodl dodávat NT 5.0 s implementovaným protokolem Kerberos (CW 7/97), který zajišťuje autentizaci, integritu a důvěrnost dat, ale má oproti NTLM některé vlastnosti navíc. V NTLM mohl klient prokázat svou identitu serveru, ale naopak to nešlo. Kerberos tuto obousměrnou autentizaci poskytuje.

Z důvodů kompatibility a interoperability však NT 5.0 podporuje více bezpečnostních protokolů prostřednictvím obecného rozhraní SSPI (Security Support Provider Interface).

Jak vypadá implementace Kerbera verze 5 v prostředí nových Windows? Každá doména má svůj Kerberos server, který sdílí databázi s tzv. aktivním adresářem. Kerberos server tedy musí běžet na řadiči domény, kde je v rámci domény replikován stejně jako zmíněný řadič. Uživatel požadující bezpečný přístup k nějaké vzdálené službě se musí nejprve přihlásit na Kerberos server. Po úspěšném přihlášení obdrží TGT (ticket-granting ticket), který pak používá jako průkaz, když se na Kerberos server obrací s požadavkem na další TGT ke konkrétním aplikačním serverům. Uživatel pak TGT, odpovídající určitému aplikačnímu serveru, použije ke své vlastní autentizaci na tomto serveru.

I když Microsoft implementuje standardní Kerberos verze 5, tento protokol bohužel přesně neurčuje, jaká informace má být použita k identifikaci klienta. Existují tedy různé firemní implementace, ke kterým Microsoft přidává tu svou a k identifikaci klienta používá pro NT specifické bezpečnostní identifikátory. To by mohlo vést k problémům s interoperabilitou mezi různými implementacemi.

Šifrovaný souborový systém (Encrypted File System -- EFS) umožňuje provádět šifrování a dešifrování souborů a adresářů na NTFS disku. Vlastní data jsou šifrována symetrickým algoritmem (v NT 5.0 beta 1 se jedná o DES) za použití klíče FEK (File Encryption Key). Tento klíč je poté zašifrován veřejným klíčem uživatele a vložen do speciálního atributu EFS. Před dešifrováním souboru nebo adresáře je nejprve privátním klíčem uživatele dešifrován FEK klíč a vzápětí i vlastní data. Celá tato operace je pro uživatele transparentní, přičemž šifrování i dešifrování lze vyvolat prostřednictvím Exploreru nebo z příkazové řádky příkazem CIPHER.

Záplaty

Žádný operační systém není zcela bez chyb, proto musí být nějakým způsobem vyřešen problém distribuce jeho oprav uživatelům. V případě Windows NT jsou zjištěné chyby odstraňovány prostřednictvím tzv. "service packs" (SP). Instalace SP představuje způsob aktualizace operačního systému, přičemž se odstraní dosud zjištěné chyby, ale často se i doplní některé nové funkce, nástroje nebo ovladače. Nový SP se nevydává okamžitě, jakmile dojde ke zjištění chyby a k její následné opravě, ale po určitou dobu se čeká, až se takových oprav shromáždí více, aby je vydání nového SP odstranilo najednou. Podle potřeb takových aktualizací se vydávají další a další SP, které jsou naštěstí kumulativní. To znamená, že stačí nainstalovat poslední známý Service Pack, který bude obsahovat také všechny změny obsažené v předchozích SP. V současnosti je u Windows NT 4.0 aktuální verzí SP3, u Windows NT 3.51 je poslední SP5.

Dojde-li ke zjištění závažné chyby, obvykle se nečeká na nový Service Pack, ale vydá se tzv. "postfix" nebo též "hotfix". Podrobný popis všech změn obsažených v SP nebo hotfixu je jednak přiložen k jejich distribuci, obvykle pomocí Internetu nebo CD-ROMu, ale lze je vyhledat i v databázi veřejně přístupných informací, tzv. "Knowledge Base". Také změny obsažené v hotfixech jsou obvykle kumulativní, takže se některé starší hotfixy stávají zbytečnými. Microsoft doporučuje buď si počkat na nový Service Pack, s jehož instalací zpravidla nejsou problémy, nebo v případě, že jste se setkali právě s tou chybou, kterou hotfix opravuje, seznámit se se správnou posloupností instalace hotfixů a přečíst si veškerou doprovodnou informaci. (Doporučuji zejména adresu <http://emwac.faf.cuni.cz/download/default.htm>)

Windows NT je operační systém, jehož architektura obsahuje mnoho bezpečnostních prvků a funkcí. Tyto bezpečnostní prvky mohou být implementovány v různých kombinacích, v závislosti na bezpečnostních potřebách organizace a předpokládaných rizikových faktorech. Každá další verze Windows přináší i nové bezpečnostní rysy, které se týkají různých aspektů bezpečnosti, od autentizace uživatelů po přístup k objektům operačního systému. K dispozici jsou i metody sledování bezpečnosti: záznamy o událostech, zprávy auditu a monitor výkonnosti.


Doporučené odkazy:

Microsoft Security www.microsoft.com/security

Microsoft Knowledge Base www.microsoft.com/kb

EMWAC Hradec Králové www.emwac.cz

NT Research www.ntresearch.com

NT Security www.ntsecurity.net

SomarSoft www.somarsoft.com/security.htm

NT Security FAQ www.it.kth.se/~rom/ntsec.html

Security News www.infosecnews.com

NT Bugtraq ntbugtraq.rc.on.ca


| COMPUTERWORLD - seriál o bezpečnosti | COMPUTERWORLD | IDG CZ homepage |