Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A linguagem de definição do descritor de segurança (SDDL) é usada para representar descritores de segurança. A segurança para objetos de dispositivo pode ser especificada por uma cadeia de caracteres SDDL que é colocada em um arquivo INF ou passada para IoCreateDeviceSecure. A linguagem de definição do descritor de segurança está totalmente documentada na documentação do SDK do Microsoft Windows.
Enquanto os arquivos INF suportam a gama completa de SDDL, apenas um subconjunto do idioma é suportado pela rotina IoCreateDeviceSecure . Este subconjunto é definido aqui.
As cadeias de caracteres SDDL para objetos de dispositivo são da forma "D:P" seguidas por uma ou mais expressões da forma "(A;; Acesso;;; SID)". O valor SID especifica um identificador de segurança que determina a quem o valor Access se aplica (por exemplo, um usuário ou grupo). O valor Access especifica os direitos de acesso permitidos para o SID. Os valores Access e SID são os seguintes.
Ao usar SDDL para objetos de dispositivo, seu driver deve vincular contra Wdmsec.lib.
Acesso
Especifica um valor ACCESS_MASK que determina o acesso permitido. Este valor pode ser escrito como um valor hexadecimal na forma "0xhex", ou como uma sequência de códigos simbólicos de duas letras que representam direitos de acesso.
Os códigos a seguir podem ser usados para especificar direitos de acesso genéricos.
| Código | Direito de acesso genérico |
|---|---|
disponibilidade geral |
GENÉRICO_TUDO |
GR |
ACESSO_GENÉRICO_LEITURA |
GW |
ESCRITA_GENÉRICA |
GX |
EXECUÇÃO_GENÉRICA |
Os códigos a seguir podem ser usados para especificar direitos de acesso específicos.
| Código | Direito de acesso específico |
|---|---|
RC |
READ_CONTROL |
SD |
SUPRIMIR |
WD |
WRITE_DAC |
WO |
ESCREVER_PROPRIETÁRIO |
GENERIC_ALL concede todos os direitos listados nas duas tabelas acima, incluindo a capacidade de alterar a ACL.
SID
Especifica o SID ao qual é concedido o acesso especificado. Os SIDs representam contas, aliases, grupos, usuários ou computadores.
Os SIDs a seguir representam contas na máquina.
| SID | Descrição |
|---|---|
SY |
Sistema Representa o próprio sistema operacional, incluindo seus componentes de modo de usuário. |
LS |
Serviço Local Uma conta predefinida para serviços locais (que também pertence a Autenticado e Mundial). Este SID está disponível a partir do Windows XP. |
NS |
Serviço de rede Uma conta predefinida para serviços de rede (que também pertence a Autenticado e Mundial). Este SID está disponível a partir do Windows XP. |
Os SIDs a seguir representam grupos na máquina.
| SID | Descrição |
|---|---|
BA |
Administradores O grupo Administradores interno na máquina. |
BU |
Grupo de usuários integrado Grupo que abrange todas as contas de usuário locais e usuários no domínio. |
BG |
Grupo de convidados padrão Grupo que abrange os utilizadores que iniciam sessão utilizando a conta de convidado local ou de domínio. |
Os SIDs a seguir descrevem até que ponto um usuário foi autenticado.
| SID | Descrição |
|---|---|
AU |
Utilizadores Autenticados Qualquer usuário reconhecido pela máquina local ou por um domínio. Os utilizadores que iniciaram sessão usando a conta de Convidado incorporada não são autenticados. No entanto, os membros do grupo Convidados com contas individuais na máquina ou no domínio são autenticados. |
AN |
Usuário anônimo conectado Qualquer utilizador que tenha iniciado sessão sem uma identidade, como numa sessão de rede anónima. Os utilizadores que iniciam sessão utilizando a Conta de Convidado Integrada não são nem autenticados nem anónimos. Este SID está disponível a partir do Windows XP. |
Os SIDs a seguir descrevem como o usuário fez login na máquina.
| SID | Descrição |
|---|---|
UI |
Utilizadores Interativos Utilizadores que inicialmente iniciaram sessão no computador "interactivamente", como sessões locais e sessões de Áreas de Trabalho Remota. |
NU |
Usuário de logon de rede Usuários acessando a máquina remotamente, sem acesso interativo à área de trabalho (por exemplo, compartilhamento de arquivos ou chamadas RPC). |
WD |
Mundo Antes do Windows XP, esse SID cobria todas as sessões, sejam utilizadores autenticados, utilizadores anónimos ou a conta de convidado padrão. A partir do Windows XP, este SID não abrange sessões de início de sessão anónimas; abrange apenas utilizadores autenticados e a conta Builtin Guest. Código não confiável ou "restrito" também não é coberto pelo World SID. Para obter mais informações, consulte a descrição do SID de código restrito (RC) na tabela a seguir. |
Os seguintes SID merecem uma menção especial.
| SID | Descrição |
|---|---|
RC |
Código restrito Este SID é usado para controlar o acesso por código não confiável. A validação de ACL contra tokens com RC consiste em duas verificações, uma contra a lista normal de SIDs do token (contendo WD, por exemplo) e outra contra uma segunda lista (normalmente contendo RC e um subconjunto dos SIDs de token originais). O acesso é concedido somente se um token passar em ambos os testes. Como tal, o RC realmente funciona em combinação com outros SIDs. Qualquer ACL que especifique RC também deve especificar WD. Quando RC é emparelhado com WD em uma ACL, um superconjunto de Todos, incluindo código não confiável, é descrito. O código não confiável pode ser código iniciado usando a opção Executar como no Explorer. Por padrão, o World não cobre código não confiável. |
UD |
User-Mode Controladores Este SID concede acesso a drivers de modo de usuário. Atualmente, esse SID cobre apenas drivers que são escritos para o User-Mode Driver Framework (UMDF). Este SID está disponível a partir do Windows 8. Em versões anteriores do Windows, que não reconhecem a abreviatura "UD", você deve especificar a forma totalmente qualificada deste SID (S-1-5-84-0-0-0-0-0) para conceder acesso aos drivers UMDF. Para obter mais informações, consulte Controlando o acesso ao dispositivo na documentação do User-Mode Driver Framework. |
Exemplos de SDDL para objetos de dispositivo
Esta seção descreve as cadeias de caracteres SDDL predefinidas encontradas em Wdmsec.h. Você também pode usá-los como modelos para definir novas cadeias de caracteres SDDL para objetos de dispositivo.
SDDL_DEVOBJ_KERNEL_ONLY
"D:P"
SDDL_DEVOBJ_KERNEL_ONLY é a ACL "vazia". O código de modo de usuário (incluindo processos em execução como sistema) não pode abrir o dispositivo.
Um driver de barramento PnP pode usar este descritor ao criar um PDO. O arquivo INF poderia então especificar configurações de segurança mais flexíveis para o dispositivo. Ao especificar este descritor, o controlador de barramento garantiria que nenhuma tentativa de abrir o dispositivo antes do processamento do INF tenha sucesso.
Da mesma forma, um driver não-WDM pode usar esse descritor para tornar seus objetos de dispositivo inacessíveis até que o programa de modo de usuário apropriado (como um instalador) defina o descritor de segurança final no registro.
Em todos esses casos, o padrão é a segurança apertada, afrouxada conforme necessário.
SDDL_DEVOBJ_SYS_ALL
"D:P(A;; GA;;; SY)"
SDDL_DEVOBJ_SYS_ALL é semelhante ao SDDL_DEVOBJ_KERNEL_ONLY, exceto que, além do código de modo kernel, o código de modo de usuário executado como Sistema também tem permissão para abrir o dispositivo para qualquer acesso.
Um driver herdado pode usar essa ACL para começar com configurações de segurança rígidas e permitir que seu serviço abra o dispositivo em tempo de execução para usuários individuais usando a função de modo de usuário SetFileSecurity . Neste caso, o serviço teria que estar sendo executado como Sistema.
SDDL_DEVOBJ_SYS_ALL_ADM_ALL
"D:P(A;;GA;;;SY)(A;;GA;;;BA)"
SDDL_DEVOBJ_SYS_ALL_ADM_ALL permite que o kernel, o sistema e o administrador tenham controle total sobre o dispositivo. Nenhum outro usuário pode acessar o dispositivo.
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 permite que o kernel e o sistema tenham controle completo sobre o dispositivo. Por padrão, o administrador pode acessar o dispositivo inteiro, mas não pode alterar a ACL (o administrador deve assumir o controle do dispositivo primeiro).
Todos (o SID Mundial) têm acesso de leitura. O código não confiável não pode acessar o dispositivo (código não confiável pode ser código iniciado usando a opção Executar como no Explorer. Por padrão, Mundo não cobre código restrito.)
Observe também que o acesso transversal não é concedido a usuários normais. Como tal, este pode não ser um descritor apropriado para um dispositivo com um namespace.
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R
"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GR;;;WD)(A;;GR;;;CR)"
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R permite que o kernel e o sistema tenham controle completo sobre o dispositivo. Por padrão, o administrador pode acessar o dispositivo inteiro, mas não pode alterar a ACL (o administrador deve assumir o controle do dispositivo primeiro).
Todos (o SID Mundial) têm acesso de leitura. Além disso, o código não confiável também tem permissão para acessar o código. O código não confiável pode ser código iniciado usando a opção Executar como no Explorer. Por padrão, o World não cobre o código restrito.
Observe também que o acesso transversal não é concedido a usuários normais. Como tal, este pode não ser um descritor apropriado para um dispositivo com um namespace.
Essas cadeias de caracteres SDDL não incluem modificadores de herança. Como tal, eles são apropriados apenas para objetos de dispositivo e não devem ser usados para arquivos ou chaves de registro. Para obter mais informações sobre como especificar a herança usando SDDL, consulte a documentação do SDK do Microsoft Windows.