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.
Na Plataforma de Filtragem do Windows (WFP), o serviço BFE (Mecanismo de Filtragem de Base) implementa o modelo de controle de acesso padrão Windows baseado em tokens de acesso e descritores de segurança.
Modelo de controlo de acessos
Os descritores de segurança podem ser especificados ao adicionar novos objetos WFP, como filtros e subcamadas. Os descritores de segurança são gerenciados usando as funções de gerenciamento do WFP Fwpm*GetSecurityInfo0 e Fwpm*SetSecurityInfo0, onde * significa o nome do objeto WFP. Essas funções são semanticamente idênticas às funções Windows GetSecurityInfo e SetSecurityInfo .
Observação
As funções Fwpm*SetSecurityInfo0 não podem ser chamadas de dentro de uma transação explícita.
Observação
As funções Fwpm*SetSecurityInfo0 só podem ser chamadas de dentro de uma sessão dinâmica se estiverem sendo usadas para gerenciar um objeto dinâmico criado dentro da mesma sessão.
O descritor de segurança padrão para o mecanismo de filtro (o objeto Engine raiz no diagrama abaixo) é o seguinte.
- Conceda direitos de acesso GENERIC_ALL (GA) ao grupo de Administradores incorporado.
- Conceda aos operadores de configuração de rede os direitos de acesso GENERIC_READ (GR), GENERIC_WRITE (GW) e GENERIC_EXECUTE (GX).
- Conceda aos GRGWGX direitos de acesso aos seguintes identificadores de segurança de serviço (SSIDs): MpsSvc (Firewall do Windows), NapAgent (Agente de Proteção de Acesso à Rede), PolicyAgent (Agente de Política IPsec), RpcSs (Chamada de Procedimento Remoto) e WdiServiceHost (Host do Serviço de Diagnóstico).
- Conceda FWPM_ACTRL_OPEN e FWPM_ACTRL_CLASSIFY a todos. (Estes são direitos de acesso específicos do PAM, descritos na tabela abaixo.)
Os restantes descritores de segurança predefinidos são derivados através de herança.
Há algumas verificações de acesso, como para Fwpm*Add0, Fwpm*CreateEnumHandle0, Fwpm*SubscribeChanges0 chamadas de função, que não podem ser feitas no nível de objeto individual. Para essas funções, há objetos de contêiner para cada tipo de objeto. Para os tipos de objeto padrão (por exemplo, provedores, chamadas, filtros), as funções Fwpm*GetSecurityInfo0 e Fwpm*SetSecurityInfo0 existentes estão sobrecarregadas, de modo que um parâmetro GUID nulo identifica o contêiner associado. Para os outros tipos de objeto (por exemplo, eventos de rede e associações de segurança IPsec), há funções explícitas para gerenciar as informações de segurança do contêiner.
O BFE suporta herança automática de entradas de controle de acesso (ACEs) da Lista de Controle de Acesso Discricionário (DACL). O BFE não oferece suporte a ACEs da Lista de Controlo de Acesso do Sistema (SACL). Os objetos herdam ACEs de seu contêiner. Os contentores herdam ACEs do motor de filtragem. Os caminhos de propagação são mostrados no diagrama abaixo.
Para os tipos de objeto padrão, o BFE impõe todos os direitos de acesso genéricos e padrão. Além disso, o PAM define os seguintes direitos de acesso específicos.
| Direito de acesso ao PAM | Descrição |
|---|---|
|
FWPM_ACTRL_ADD |
Necessário para adicionar um objeto a um contêiner. |
|
FWPM_ACTRL_ADD_LINK |
Necessário para criar uma associação a um objeto. Por exemplo, para adicionar um filtro que faça referência a um texto explicativo, o chamador deve ter acesso ADD_LINK ao texto explicativo. |
|
FWPM_ACTRL_BEGIN_READ_TXN |
Necessário para iniciar uma transação de leitura explícita. |
|
FWPM_ACTRL_BEGIN_WRITE_TXN |
Necessário para iniciar uma transação de gravação explícita. |
|
FWPM_ACTRL_CLASSIFY |
Necessário para classificar em relação a uma camada de modo de usuário. |
|
FWPM_ACTRL_ENUM |
Necessário para enumerar os objetos em um contêiner. No entanto, o enumerador retorna apenas objetos aos quais o chamador tem acesso FWPM_ACTRL_READ. |
|
FWPM_ACTRL_OPEN |
Necessário para abrir uma sessão com BFE. |
|
FWPM_ACTRL_READ |
Necessário para ler as propriedades de um objeto. |
|
FWPM_ACTRL_READ_STATS |
Necessário para ler estatísticas. |
|
FWPM_ACTRL_SUBSCRIBE |
Necessário para se inscrever para notificações. Os subscritores apenas receberão notificações para objetos aos quais tenham acesso FWPM_ACTRL_READ. |
|
FWPM_ACTRL_WRITE |
Necessário para definir as opções do motor. |
O BFE ignora todas as verificações de acesso para chamadores de modo kernel.
Para evitar que os administradores se bloqueiem fora do BFE, os membros do grupo de administradores incorporados sempre recebem FWPM_ACTRL_OPEN ao objeto do motor. Assim, um administrador pode recuperar o acesso através dos seguintes passos.
- Habilite o privilégio SE_TAKE_OWNERSHIP_NAME.
- Chame FwpmEngineOpen0. A chamada é bem-sucedida porque o chamador é membro de Administradores Integrados.
- Assuma a responsabilidade pelo objeto do motor. Isso ocorre com sucesso porque o chamador tem o privilégio SE_TAKE_OWNERSHIP_NAME.
- Atualize a DACL. Isto funciona porque o proprietário sempre tem acesso WRITE_DAC
Como o BFE suporta sua própria auditoria personalizada, ele não gera auditorias genéricas de acesso a objetos. Assim, o SACL é ignorado.
Direitos de acesso necessários do Programa Alimentar Mundial
A tabela abaixo mostra os direitos de acesso exigidos pelas funções do WFP para acessar vários objetos da plataforma de filtragem. As funções FwpmFilter* são listadas como exemplo para aceder aos objetos padrão. Todas as outras funções que acedem a objetos padrão seguem o modelo de acesso das funções FwpmFilter*.
| Função | Objeto verificado | Acesso necessário |
|---|---|---|
| FwpmEngineOpen0 | Motores | FWPM_ACTRL_OPEN |
| FwpmEngineGetOption0 | Motores | FWPM_ACTRL_READ |
| FwpmEngineSetOption0 | Motores | FWPM_ACTRL_WRITE |
| FwpmSessionCreateEnumHandle0 | Motores | FWPM_ACTRL_ENUM |
| FwpmTransactionBegin0 | Motores | FWPM_ACTRL_BEGIN_READ_TXN & FWPM_ACTRL_BEGIN_WRITE_TXN |
| FwpmFilterAdd0 | Provedor de contêiner Camada Sub-Layer Texto explicativo Contexto do provedor |
FWPM_ACTRL_ADDFWPM_ACTRL_ADD_LINK FWPM_ACTRL_ADD_LINK FWPM_ACTRL_ADD_LINK FWPM_ACTRL_ADD_LINK FWPM_ACTRL_ADD_LINK |
|
FwpmFilterDeleteById0 FwpmFilterDeleteByKey0 |
Filtrar | EXCLUIR |
|
FwpmFilterGetById0 FwpmFilterGetByKey0 |
Filtrar | FWPM_ACTRL_READ |
| FwpmFilterCreateEnumHandle0 | Filtro de recipiente |
FWPM_ACTRL_ENUMFWPM_ACTRL_READ |
| FwpmFilterSubscribeChanges0 | Contentor | FWPM_ACTRL_SUBSCRIBE |
| FwpmFilterSubscriptionsGet0 | Contentor | FWPM_ACTRL_READ |
| IPsecGetStatistics0 | Banco de Dados SA de IPsec | FWPM_ACTRL_READ_STATS |
|
IPsecSaContextCreate0 IPsecSaContextGetSpi0 IPsecSaContextAddInbound0 IPsecSaContextAddOutbound0 |
IPsec SA DB | FWPM_ACTRL_ADD |
|
IPsecSaContextDeleteById0 IPsecSaContextExpire0 |
IPsec SA DB (Base de Dados de Associações de Segurança IPsec) | EXCLUIR |
| IPsecSaContextGetById0 | IPsec SA DB | FWPM_ACTRL_READ |
|
IPsecSaContextCreateEnumHandle0 IPsecSaCreateEnumHandle0 |
IPsec SA DB | FWPM_ACTRL_ENUM & FWPM_ACTRL_READ |
| IkeextGetStatistics0 | IKE SA DB | FWPM_ACTRL_READ_STATS |
| IkeextSaDeleteById0 | IKE SA DB | EXCLUIR |
| IkeextSaGetById0 | IKE SA DB | FWPM_ACTRL_READ |
| IkeextSaCreateEnumHandle0 | IKE SA DB | FWPM_ACTRL_ENUM & FWPM_ACTRL_READ |
| FwpmNetEventCreateEnumHandle0 | Contentor | FWPM_ACTRL_ENUM |
|
FwpmIPsecTunnelAdd0 FwpmIPsecTunnelDeleteByKey0 |
Não há verificações de acesso adicionais além das para os filtros individuais e contextos dos fornecedores. |