Sdílet prostřednictvím


SDDL pro objekty zařízení

Jazyk SDDL (Security Descriptor Definition Language) slouží k reprezentaci popisovačů zabezpečení. Zabezpečení objektů zařízení lze určit řetězcem SDDL, který je umístěn v souboru INF nebo předán IoCreateDeviceSecure. Jazyk definice popisovače zabezpečení je plně zdokumentovaný v dokumentaci k sadě Microsoft Windows SDK.

Zatímco soubory INF podporují úplný rozsah SDDL, rutina IoCreateDeviceSecure podporuje pouze podmnožinu jazyka . Tato podmnožina je zde definována.

Řetězce SDDL pro objekty zařízení jsou ve tvaru "D:P" následované jedním nebo více výrazy formuláře "(A;; přístup;;; SID)". Hodnota SID určuje identifikátor zabezpečení, který určuje, pro koho se hodnota Accessu vztahuje (například uživatel nebo skupina). Hodnota Accessu určuje přístupová práva povolená pro identifikátor SID. Hodnoty Accessu a SID jsou následující.

Při použití SDDL pro objekty zařízení musí ovladač propojit s Wdmsec.lib.

Přístup
Určuje ACCESS_MASK hodnotu, která určuje povolený přístup. Tuto hodnotu lze zapsat buď jako šestnáctkovou hodnotu ve tvaru "0xhex", nebo jako posloupnost dvoumísmenných symbolických kódů, které představují přístupová práva.

Následující kódy lze použít k určení obecných přístupových práv.

Kód Obecné přístupové právo

GA

OBECNÉ_VŠE

GR

GENERIC_READ (obecné čtení)

GW

GENERIC_WRITE (zápis)

GX

OBECNÝ_VYKONAT

Následující kódy lze použít k určení konkrétních přístupových práv.

Kód Konkrétní přístupová práva

RC

ŘÍZENÍ_ČTENÍ

SD

VYMAZAT

WD

WRITE_DAC

PR

NAPSAT_VLASTNÍKA

GENERIC_ALL uděluje všechna práva uvedená ve výše uvedených dvou tabulkách, včetně možnosti změnit seznam ACL.

SID
Určuje identifikátor SID, kterému je udělen zadaný přístup. Identifikátory SID představují účty, aliasy, skupiny, uživatele nebo počítače.

Následující identifikátory SID představují účty na počítači.

SID Popis

SY

Systém

Představuje samotný operační systém, včetně jeho součástí uživatelského režimu.

LS

Místní služba

Předdefinovaný účet pro místní služby (který rovněž patří do skupin Ověřený uživatel a Svět). Tento identifikátor SID je k dispozici od systému Windows XP.

NS

Síťová služba

Předdefinovaný účet pro síťové služby (které patří také do ověřeného účtu a světa). Tento identifikátor SID je k dispozici od systému Windows XP.

Následující identifikátory SID představují skupiny na počítači.

SID Popis

bakalář umění

Správci

Integrovaná skupina Administrators na počítači.

BU

Integrovaná skupina uživatelů

Skupina pokrývající všechny místní uživatelské účty a uživatele v doméně.

BG

Integrovaná skupina hostů

Skupina zahrnující uživatele, kteří se přihlašují pomocí místního účtu hosta nebo účtu hosta domény.

Následující identifikátory SID popisují rozsah ověření uživatele.

SID Popis

AU

Ověření uživatelé

Každý uživatel rozpoznaný místním počítačem nebo doménou. Uživatelé přihlášení pomocí vestavěného účtu hosta nejsou ověřeni. Členové skupiny Hosté s jednotlivými účty na počítači nebo doméně se však ověřují.

JAKÝSI

Anonymní přihlášený uživatel

Každý uživatel přihlášený bez identity, například při anonymním síťovém sezení. Uživatelé, kteří se přihlašují pomocí předdefinovaného účtu hosta, nejsou ověřeni nebo anonymní. Tento identifikátor SID je k dispozici od systému Windows XP.

Následující identifikátory SID popisují, jak se uživatel přihlásil k počítači.

SID Popis

IU

Interaktivní uživatelé

Uživatelé, kteří se přihlásili k počítači "interaktivně", například místně nebo přes připojení ke vzdálené ploše.

No

Uživatel pro přihlášení k síti

Uživatelé, kteří k počítači přistupují vzdáleně, bez interaktivního přístupu k ploše (například sdílení souborů nebo volání RPC).

WD

Svět

Před systémem Windows XP tento identifikátor SID pokrýval každou relaci, ať už ověřené uživatele, anonymní uživatele nebo předdefinovaný účet hosta.

Od systému Windows XP tento identifikátor SID nezahrnuje anonymní přihlašovací relace; zahrnuje pouze ověřené uživatele a vestavěný účet hosta.

Nedůvěryhodný nebo "omezený" kód není rovněž pokryt World SID. Další informace naleznete v popisu identifikátoru SID s omezeným kódem (RC) v následující tabulce.

Následující identifikátory SID si zaslouží zvláštní zmínku.

SID Popis

RC

Omezený kód

Tento identifikátor SID slouží k řízení přístupu nedůvěryhodným kódem. Ověření seznamu ACL pro tokeny rc se skládá ze dvou kontrol, jedné proti normálnímu seznamu identifikátorů SID tokenu (obsahujícího například WD) a jednoho proti druhému seznamu (obvykle obsahující rc a podmnožinu identifikátorů SID původního tokenu). Přístup je udělen pouze v případě, že token projde oběma testy. Rc tedy ve skutečnosti funguje v kombinaci s jinými identifikátory SID.

Jakýkoli seznam ACL, který určuje RC, musí také specifikovat WD. Při párování RC s WD v rámci ACL je popsána nadmnožina skupiny Všichni, která zahrnuje i nedůvěryhodný kód.

Kód, který je považován za nedůvěryhodný, se může jednat o kód spuštěný pomocí možnosti Spustit jako v Průzkumníku. World ve výchozím nastavení nepokrývá nedůvěryhodný kód.

UD

Řidiče User-Mode

Tento identifikátor SID uděluje přístup k ovladačům uživatelského režimu. V současné době tento identifikátor SID pokrývá pouze ovladače napsané pro User-Mode Driver Framework (UMDF). Tento identifikátor SID je k dispozici od Windows 8.

V dřívějších verzích Windows, které nerozpozná zkratku "UD", je nutné zadat plně kvalifikovanou formu tohoto identifikátoru SID (S-1-5-84-0-0-0-0-0), aby bylo možné udělit přístup k ovladačům UMDF. Další informace naleznete v tématu Řízení přístupu zařízení v dokumentaci k rozhraní User-Mode Driver Framework.

Příklady SDDL pro objekty zařízení

Tato část popisuje předdefinované řetězce SDDL nalezené v wdmsec.h. Můžete je také použít jako šablony k definování nových řetězců SDDL pro objekty zařízení.

SDDL_DEVOBJ_KERNEL_ONLY

"D:P"

SDDL_DEVOBJ_KERNEL_ONLY je "prázdný" seznam ACL. Kód v uživatelském režimu (včetně procesů spuštěných jako systém) nemůže zařízení otevřít.

Ovladač sběrnice PnP může tento deskriptor použít při vytváření PDO. Soubor INF pak může určit volné nastavení zabezpečení pro zařízení. Zadáním tohoto deskriptoru by ovladač sběrnice zajistil, že žádný pokus o otevření zařízení před zpracováním INF nebude úspěšný.

Podobně může ovladač, který není WDM, použít tento popisovač k tomu, aby jeho objekty zařízení byly nedostupné, dokud příslušný program uživatelského režimu (například instalační program) nenastaví konečný popisovač zabezpečení v registru.

Ve všech těchto případech je výchozí přísné zabezpečení, které je uvolněno, kdykoli je to třeba.

SDDL_DEVOBJ_SYS_ALL

"D:P(A;;GA;;;SY)"

SDDL_DEVOBJ_SYS_ALL se podobá SDDL_DEVOBJ_KERNEL_ONLY s tím rozdílem, že kromě kódu v režimu jádra může kód uživatelského režimu spuštěný jako systém také otevřít zařízení pro jakýkoli přístup.

Starší ovladač může pomocí tohoto seznamu ACL začít s přísnými nastaveními zabezpečení a umožnit jeho službě otevřít zařízení za běhu jednotlivým uživatelům pomocí funkce Uživatelského režimu SetFileSecurity . V takovém případě by služba musela být spuštěná jako systém.

SDDL_DEVOBJ_SYS_ALL_ADM_ALL

"D:P(A;;GA;;;SY)(A;;GA;;;BA)"

SDDL_DEVOBJ_SYS_ALL_ADM_ALL umožňuje jádru, systému a správci úplné řízení zařízení. K zařízení nemají přístup žádní jiní uživatelé.

SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R

"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GR;;;WD)"

SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R umožňuje jádru a systému úplnou kontrolu nad zařízením. Ve výchozím nastavení má správce přístup k celému zařízení, ale nemůže změnit seznam ACL (správce musí nejprve převzít kontrolu nad zařízením.)

Všichni mají právo pro čtení (světový SID). Nedůvěryhodný kód nemá přístup k zařízení (nedůvěryhodný kód může být kód spuštěný pomocí možnosti Spustit jako v Průzkumníkovi. Ve výchozím nastavení World nepokrývá omezený kód.)

Upozorňujeme také, že přístup k procházení není udělen normálním uživatelům. Proto to nemusí být vhodný deskriptor pro zařízení s jmenným prostorem.

SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R

"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GR;;;WD)(A;;GR;;;RC)"

SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R umožňuje jádru a systému úplnou kontrolu nad zařízením. Ve výchozím nastavení má správce přístup k celému zařízení, ale nemůže změnit seznam ACL (správce musí nejprve převzít kontrolu nad zařízením.)

Všichni (globální SID) mají přístup pro čtení. Kromě toho má nedůvěryhodný kód také povolený přístup ke kódu. Kód, který je považován za nedůvěryhodný, se může jednat o kód spuštěný pomocí možnosti Spustit jako v Průzkumníku. World ve výchozím nastavení nepokrývá omezený kód.

Upozorňujeme také, že přístup k procházení není udělen normálním uživatelům. Proto to nemusí být vhodný popisovač pro zařízení s oborem názvů.

Tyto řetězce SDDL neobsahují žádné modifikátory dědičnosti. Proto jsou vhodné jenom pro objekty zařízení a neměly by se používat pro soubory nebo klíče registru. Další informace o určení dědičnosti pomocí SDDL naleznete v dokumentaci k sadě Microsoft Windows SDK.