CSP ApplicationControl

Windows Defender políticas do WDAC (Controle de Aplicativo) podem ser gerenciadas a partir de um servidor MDM ou localmente usando o PowerShell por meio da Ponte WMI por meio do CSP (provedor de serviços de configuração do ApplicationControl). O CSP do ApplicationControl foi adicionado no Windows 10, versão 1903. Esse CSP fornece recursos de diagnóstico expandidos e suporte para várias políticas (introduzidas no Windows 10, versão 1903). Ele também fornece suporte para implantação de política (introduzida em Windows 10, versão 1709) sem reinicialização. Ao contrário do CSP do AppLocker, o CSP do ApplicationControl detecta corretamente a presença da opção sem reinicialização e, consequentemente, não agenda uma reinicialização.

As políticas de WDAC (Controle Windows Defender de Aplicativo) existentes implantadas usando o nó CodeIntegrity do CSP do AppLocker agora podem ser implantadas usando o URI do CSP do ApplicationControl. Embora a implantação da política WDAC usando o CSP do AppLocker continue com suporte, todo o novo trabalho de recurso será feito somente no CSP do ApplicationControl.

A lista a seguir mostra os nós do provedor de serviços de configuração do ApplicationControl:

Políticas

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies

Início de uma Subtree que contém todas as políticas.

Cada política é identificada pelo GUID (identificador globalmente exclusivo).

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter

Policys/{Policy GUID}

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}

O GUID da Política.

Cada nó GUID de política contém um nó Policy e um nó PolicyInfo correspondente.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter
Nomenclatura de nó dinâmico UniqueName: o CSP do ApplicationControl impõe que o segmento "ID" de um determinado URI de política seja o mesmo GUID que a ID da política no blob de política.

Políticas/{Política GUID}/Política

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/Policy

O binário de política codificado como base64. O valor com suporte é um arquivo binário, convertido do arquivo XML da política pelo cmdlet ConvertFrom-CIPolicy.

O valor padrão está vazio.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato b64
Tipo de acesso Adicionar, Excluir, Obter, Substituir

Policys/{Policy GUID}/PolicyInfo

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo

Informações Que descrevem a política indicada pelo GUID.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/BasePolicyId
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/BasePolicyId

O BasePolicyId da Política Indicada pelo GUID de Política.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia de caracteres)
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/FriendlyName
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/FriendlyName

The FriendlyName of the Policy Indicated by the Policy GUID.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia de caracteres)
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/IsAuthorized
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsAuthorized

Se a Política indicada pelo GUID está autorizada a ser carregada pelo mecanismo de aplicação no sistema.

Os valores com suporte são os seguintes:

  • True: indica que a política está autorizada a ser carregada pelo mecanismo de aplicação no sistema.
  • False: indica que a política não está autorizada a ser carregada pelo mecanismo de aplicação no sistema. Esse valor é o valor padrão.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/IsBasePolicy
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsBasePolicy

TRUE/FALSE se a Política for uma Política Base versus uma Política Suplementar.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/IsDeployed
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsDeployed

Se a política indicada pelo GUID é implantada no sistema (no computador físico)

Os valores com suporte são os seguintes:

  • True: indica que a política está implantada no sistema e está presente no computador físico.
  • False: indica que a política não está implantada no sistema e não está presente no computador físico. Esse valor é o valor padrão.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/IsEffective
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsEffective

Se a política indicada pelo GUID é Eficaz no sistema (carregada pelo mecanismo de aplicação e em vigor)

Os valores com suporte são os seguintes:

  • True: indica que a política é carregada pelo mecanismo de aplicação e está em vigor em um sistema.
  • False: indica que a política não é carregada pelo mecanismo de aplicação e não está em vigor em um sistema. Esse valor é o valor padrão.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/IsSystemPolicy
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsSystemPolicy

TRUE/FALSE se a Política for uma Política do Sistema, essa será uma política gerenciada pela Microsoft como parte do sistema operacional.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato bool
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/PolicyOptions
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/PolicyOptions

As PolicyOptions da Política Indicada pelo GUID de Política.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia de caracteres)
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/Status
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Status

O status atual da política indicada pelo GUID da política.

O valor padrão é 0, o que indica que a política status é OK.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato int
Tipo de acesso Obter
Policys/{Policy GUID}/PolicyInfo/Version
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Version

Versão da Política indicada pelo GUID, como uma cadeia de caracteres. Ao analisar, use um uint64 como o tipo de dados que contém.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato chr (cadeia de caracteres)
Tipo de acesso Obter

Tokens

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens

Início de um Subtree que contém todos os tokens.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter

Tokens/{ID}

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}

ID arbitrária usada para diferenciar tokens.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter
Nomenclatura de nó dinâmico UniqueName: o CSP do ApplicationControl impõe que o segmento "ID" de um determinado URI de token seja exclusivo.

Tokens/{ID}/Token

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/Token

O binário de token codificado como base64. O valor com suporte é um arquivo binário obtido do OneCoreDeviceUnlockService.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato b64
Tipo de acesso Adicionar, Excluir, Obter, Substituir

Tokens/{ID}/TokenInfo

Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo

Informações Que descrevem o Token indicado pela ID correspondente.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato node
Tipo de acesso Obter
Tokens/{ID}/TokenInfo/Status
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Status

O status atual do token indicado pela ID do token.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato int
Tipo de acesso Obter
Tokens/{ID}/TokenInfo/Type
Escopo Edições Sistema operacional aplicável
Dispositivo ✅
Usuário ❌
Pro ✅
Corporativo ✅
Educação ✅
Windows SE ✅
Empresa de Internet das Coisas / LTSC Empresa Internet das Coisas ✅
✅Windows 10, versão 1903 [10.0.18362] e posterior
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Type

O tipo de token indicado pela ID do token.

Propriedades da estrutura de descrição:

Nome da propriedade Valor de propriedade
Formato int
Tipo de acesso Obter

Valores IsAuthorized, IsDeployed e IsEffective

A tabela a seguir fornece o resultado dessa política com base em diferentes valores de nós IsAuthorized, IsDeployed e IsEffective:

Isauthorized IsDeployed IsEffective Resultante
True True True A política está em execução no momento e está em vigor.
True True False A política requer uma reinicialização para entrar em vigor.
True False True A política requer uma reinicialização para descarregar da CI.
False True True Não é acessível.
True False False *Não é acessível.
False True False *Não é acessível.
False False True Não é acessível.
False False False *Não é acessível.

* denota um estado intermediário válido; no entanto, se uma transação MDM resultar nessa configuração de estado, o END_COMMAND_PROCESSING resultará em uma falha.

diretrizes de uso Microsoft Intune

Para clientes que usam Intune gerenciamento autônomo ou híbrido com Configuration Manager implantar políticas personalizadas por meio do ApplicationControl CSP, consulte Implantar políticas de Controle de Aplicativo Windows Defender usando Microsoft Intune.

Diretrizes genéricas de uso do servidor MDM

Para usar o CSP do ApplicationControl sem usar Intune, você deve:

  1. Conheça o GUID de uma política gerada, que pode ser encontrado na política xml como <PolicyID> ou <PolicyTypeID> para sistemas pré-1903.
  2. Converta as políticas em formato binário usando o ConvertFrom-CIPolicy cmdlet para ser implantado. A política binária pode ser assinada ou não assinada.
  3. Crie um nó de política (um blob codificado base64 da representação de política binária) usando a certutil -encode ferramenta de linha de comando.

Veja abaixo uma invocação certutil de exemplo:

certutil  -encode WinSiPolicy.p7b WinSiPolicy.cer

Uma alternativa ao uso do certutil seria usar a seguinte invocação do PowerShell:

[Convert]::toBase64String($(Get-Content -Encoding Byte -ReadCount 0 -Path <bin file>))

Implantar políticas

Para implantar uma nova política de base usando o CSP, execute um ADD em ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy usando o nó de política codificado base64 como {Data}. Consulte a seção Formato no Exemplo 1 abaixo.

Para implantar políticas básicas e políticas suplementares:

  1. Execute um ADD em ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy usando o nó de política codificado base64 como {Data} com o GUID e os dados de política para a política base.
  2. Repita para cada política base ou suplementar (com seu próprio GUID e dados).

O exemplo a seguir mostra a implantação de duas políticas base e uma política suplementar (que já especifica a política base que ela complementa e não precisa disso refletida no ADD).

Exemplo 1: Adicionar política de primeira base

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Base1GUID}/Policy</LocURI>
        </Target>
        <Meta>
             <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Base1Data} </Data>
    </Item>
</Add>

Exemplo 2: Adicionar política de segunda base

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Base2GUID}/Policy</LocURI>
        </Target>
        <Meta>
            <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Base2Data} </Data>
    </Item>
</Add>

Exemplo 3: Adicionar política suplementar

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Supplemental1GUID}/Policy</LocURI>
        </Target>
        <Meta>
            <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Supplemental1Data} </Data>
    </Item>
</Add>

Obter políticas

Execute um GET usando o GUID de uma política implantada para interrogar/inspecionar a própria política ou informações sobre ela.

A tabela a seguir exibe o resultado da operação Obter em nós diferentes:

Nós Obter resultados
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy p7b bruto
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Version Versão da política
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsEffective A política está em vigor
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsDeployed É a política no sistema
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsAuthorized A política é autorizada no sistema
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Status A implantação foi bem-sucedida
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/FriendlyName Nome amigável de acordo com a política

Um exemplo do comando Get é:

 <Get>
    <CmdID>1</CmdID>
        <Item>
            <Target>
                <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy</LocURI>
            </Target>
        </Item>
 </Get>

Excluir políticas

Exclusão sem reinicialização

Após a exclusão, as políticas implantadas por meio do CSP do ApplicationControl são removidas do sistema, mas permanecem em vigor até a próxima reinicialização. Para fazer funcionalmente uma exclusão sem reinicialização, primeiro substitua a política existente por uma política Permitir Tudo (encontrada em C:\Windows\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml) e exclua a política atualizada. Essa sequência impedirá imediatamente que qualquer coisa seja bloqueada e desative totalmente a política na próxima reinicialização.

Políticas não assinadas

Para excluir uma política não assinada, execute um DELETE em ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy.

Políticas assinadas

Observação

Uma política assinada por padrão só pode ser substituída por outra política assinada. Portanto, executar um DELETE em ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy não é suficiente para excluir uma política assinada.

Para excluir uma política assinada:

  1. Substitua-a por uma atualização assinada que permita a política não assinada.
  2. Implante outra atualização com a política Allow All não assinada.
  3. Executar exclusão.

Um exemplo de comando Delete é:

   <Delete>
     <CmdID>1</CmdID>
        <Item>
            <Target>
                  <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy</LocURI>
            </Target>
        </Item>
   </Delete>

Diretrizes de uso da Ponte do PowerShell e WMI

O CSP do ApplicationControl também pode ser gerenciado localmente do PowerShell ou por meio do script de sequência de tarefas do Configuration Manager usando o Provedor de Ponte WMI.

Configuração para usar a Ponte WMI

  1. Converta sua política WDAC em Base64.

  2. Abra o PowerShell no contexto do Sistema Local (por meio do PSExec ou algo semelhante).

  3. Usar a Interface WMI:

    $namespace = "root\cimv2\mdm\dmmap"
    $policyClassName = "MDM_ApplicationControl_Policies01_01"
    $policyBase64 = "<base64policy>"
    

Implantando uma política por meio da Ponte WMI

Execute o comando a seguir. PolicyID é um GUID que pode ser encontrado no xml da política e deve ser usado aqui sem chaves.

New-CimInstance -Namespace $namespace -ClassName $policyClassName -Property @{ParentID="./Vendor/MSFT/ApplicationControl/Policies";InstanceID="<PolicyID>";Policy=$policyBase64}

Consultar todas as políticas por meio da Ponte WMI

Get-CimInstance -Namespace $namespace -ClassName $policyClassName

Referência de provedor de serviços de configuração