Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O SDDL (Security Descriptor Definition Language) é usado 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.
Embora os arquivos INF ofereçam suporte a toda a gama de SDDL, somente um subconjunto do idioma é compatível com a rotina IoCreateDeviceSecure . Esse subconjunto é definido aqui.
As cadeias de caracteres SDDL para objetos de dispositivo são do formato "D:P" seguido por uma ou mais expressões do formulário "(A;; Access;;; SID)". O valor sid especifica um identificador de segurança que determina a quem o valor do Access se aplica (por exemplo, um usuário ou grupo). O valor do Access especifica os direitos de acesso permitidos para o SID. Os valores de Acesso e SID são os seguintes.
Ao usar o SDDL para objetos de dispositivo, o driver deve vincular-se ao Wdmsec.lib.
Acesso
Especifica um valor ACCESS_MASK que determina o acesso permitido. Esse valor pode ser escrito como um valor hexadecimal no formato "0xhex", ou como uma sequência de códigos simbólicos de duas letras que representam os direitos de acesso.
Os códigos a seguir podem ser usados para especificar direitos de acesso genéricos.
| Code | Direito de acesso genérico |
|---|---|
GA |
GENÉRICO_TUDO |
GR |
GENERIC_READ |
GW |
ESCRITA_GENÉRICA |
GX |
GENERIC_EXECUTE |
Os códigos a seguir podem ser usados para especificar direitos de acesso específicos.
| Code | Direito de acesso específico |
|---|---|
RC |
READ_CONTROL |
SD |
EXCLUIR |
Anã branca |
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 que recebe 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. |
É |
Serviço Local Uma conta predefinida para serviços locais (que também pertence a Authenticated e World). Esse 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 Authenticated e World). Esse SID está disponível a partir do Windows XP. |
Os SIDs a seguir representam grupos no computador.
| SID | Descrição |
|---|---|
Bacharelado em Artes |
Administradores O grupo de Administradores integrados no computador. |
BU |
Grupo de usuários interno Grupo que abrange todas as contas de usuário local e usuários do domínio. |
BG |
Grupo de convidados integrado Agrupar usuários que estão fazendo logon usando 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 |
Usuários Autenticados Qualquer usuário reconhecido pelo computador local ou por um domínio. Os usuários conectados usando a conta de Convidado Interno não são autenticados. No entanto, os membros do grupo Convidados com contas individuais no computador ou no domínio são autenticados. |
ANO |
Usuário conectado anônimo Qualquer usuário logado sem uma identidade, como em uma sessão de rede anônima. Os usuários que fazem logon usando a Conta de Convidado Embutida não são autenticados nem anônimos. Esse SID está disponível a partir do Windows XP. |
Os SIDs a seguir descrevem como o usuário fez logon no computador.
| SID | Descrição |
|---|---|
IU |
Usuários Interativos Usuários que inicialmente fizeram logon no computador "interativamente", como logons locais e logons de Área de Trabalho Remota. |
NI |
Usuário de Logon de Rede Os usuários acessam o computador remotamente, sem acesso interativo à área de trabalho (por exemplo, compartilhamento de arquivos ou chamadas RPC). |
Anã branca |
Mundo Antes do Windows XP, esse SID cobria todas as sessões, sejam usuários autenticados, usuários anônimos ou a conta de Convidado Interno. A partir do Windows XP, esse SID não abrange sessões de logon anônimas; ele abrange apenas usuários autenticados e a conta de Convidado. O código não confiável ou "restrito" também não é coberto pelo SID Mundial. Para obter mais informações, consulte a descrição do SID RC (Código Restrito) na tabela a seguir. |
Os SIDs a seguir merecem menção especial.
| SID | Descrição |
|---|---|
RC |
Código restrito Esse SID é usado para controlar o acesso por código não confiável. A validação de ACL em tokens com RC consiste em duas verificações, uma contra a lista normal de SIDs do token (contendo WD, por exemplo), e outra em relação a uma segunda lista (normalmente contendo RC e um subconjunto dos SIDs de token originais). O acesso será concedido somente se um token for aprovado em ambos os testes. Dessa forma, o RC realmente funciona em combinação com outros SIDs. Qualquer ACL que especifique o RC também deve especificar WD. Quando RC é emparelhado com WD em uma ACL, é descrito um superconjunto de "Todos", incluindo código não confiável. O código não confiável pode ser iniciado usando a opção Executar como no Explorer. Por padrão, o Mundo não cobre código não confiável. |
UD |
User-Mode Drivers Esse SID concede acesso a drivers de modo de usuário. Atualmente, esse SID abrange apenas os drivers que são gravados para o User-Mode Driver Framework (UMDF). Esse SID está disponível a partir do Windows 8. Em versões anteriores do Windows, que não reconhecem a abreviação "UD", você deve especificar a forma totalmente qualificada desse SID (S-1-5-84-0-0-0-0-0-0) para conceder acesso a 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á-las 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 do modo de usuário (incluindo processos em execução como sistema) não pode abrir o dispositivo.
Um motorista de ônibus PnP pode usar esse descritor ao criar um PDO. O arquivo INF pode especificar configurações de segurança mais soltas para o dispositivo. Ao especificar esse descritor, o motorista garantiria que nenhuma tentativa de abrir o dispositivo antes de o INF ser processado teria êxito.
Da mesma forma, um driver não WDM poderia 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 a SDDL_DEVOBJ_KERNEL_ONLY, exceto que, além do código em modo kernel, o código em modo 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 . Nesse caso, o serviço teria que ser 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 ao kernel e ao sistema ter controle total sobre o dispositivo. Por padrão, o administrador pode acessar todo o dispositivo, mas não pode alterar a ACL (o administrador deve assumir o controle do dispositivo primeiro.)
Todos (o SID Mundial) recebem acesso de leitura. O código não confiável não pode acessar o dispositivo (o código não confiável pode ser um código iniciado usando a opção Executar como no Explorador. Por padrão, o World não cobre código restrito.)
Observe também que o acesso de passagem não é concedido a usuários normais. Dessa forma, esse 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;;; RC)"
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 todo o dispositivo, mas não pode alterar a ACL (o administrador deve assumir o controle do dispositivo primeiro.)
Todos (o SID Mundial) recebem 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 iniciado usando a opção Executar como no Explorer. Por padrão, World não abrange código restrito.
Observe também que o acesso de passagem não é concedido a usuários normais. Dessa forma, esse 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. Dessa forma, eles são apropriados apenas para objetos de dispositivo e não devem ser usados para arquivos ou chaves do Registro. Para obter mais informações sobre como especificar herança usando o SDDL, consulte a documentação do SDK do Microsoft Windows.