Como Assinar uma Macro VBA do Word para Ambientes Protegidos pelo AppLocker
🔍 WiseChecker

Como Assinar uma Macro VBA do Word para Ambientes Protegidos pelo AppLocker

Você precisa executar uma macro do Word em um ambiente onde o AppLocker bloqueia scripts não assinados. Sem uma assinatura digital, o AppLocker impede a execução de macros VBA, mesmo que você mesmo tenha escrito a macro. Este artigo explica como obter um certificado de assinatura de código, assinar seu projeto de macro VBA e configurar o Word para que a macro assinada seja executada sob as regras do AppLocker. Após a leitura, você será capaz de implantar macros assinadas que passam pela fiscalização do AppLocker sem desabilitar políticas de segurança.

Principais Conclusões: Assinatura de Macro VBA do Word para AppLocker

  • Certificado de assinatura de código (PKI ou autoassinado): Necessário para assinar digitalmente o projeto VBA; o AppLocker só confia em macros assinadas de editores confiáveis.
  • Editor VBA > Ferramentas > Assinatura Digital: O caminho do menu no Word para anexar um certificado ao projeto de macro ativo.
  • Regra de Editor do AppLocker: Um tipo de regra que permite a execução com base na impressão digital do certificado, nome do editor e nome do produto da macro assinada.

ADVERTISEMENT

Por que o AppLocker Bloqueia Macros VBA Não Assinadas no Word

O AppLocker é um recurso de segurança do Windows que controla quais aplicativos e scripts podem ser executados em um sistema. Quando o AppLocker está configurado com uma política de Regras Executáveis ou Regras de Script, ele verifica cada arquivo em busca de uma assinatura digital válida antes de permitir a execução. As macros VBA incorporadas em documentos do Word são tratadas como scripts pelo AppLocker. Se o projeto de macro não estiver assinado ou estiver assinado por um editor que não está na lista de confiança, o AppLocker o bloqueia completamente.

A causa raiz é que o AppLocker não pode verificar a origem de uma macro não assinada. Sem uma assinatura, a política trata a macro como código não confiável. Isso se aplica a todos os arquivos habilitados para macro (.docm, .dotm, .xlsm, .pptm) abertos de qualquer local, incluindo unidades locais. Assinar o projeto de macro com um certificado de assinatura de código cria uma cadeia de confiança verificável que o AppLocker pode avaliar em relação às suas regras de editor.

Pré-requisitos para Assinatura

Antes de começar, verifique o seguinte:

  • Você possui um certificado de assinatura de código. As opções incluem um certificado de uma Autoridade Certificadora (CA) pública como DigiCert ou Sectigo, ou um certificado autoassinado criado com a ferramenta do Windows SDK MakeCert ou o cmdlet do PowerShell New-SelfSignedCertificate. Certificados de CA pública são recomendados para ambientes de produção porque são automaticamente confiáveis pelo Windows.
  • O certificado deve estar instalado no repositório de certificados Pessoais do computador, em Usuário Atual ou Computador Local.
  • Você tem acesso ao Word com a guia Desenvolvedor habilitada. Vá em Arquivo > Opções > Personalizar Faixa de Opções e marque a caixa Desenvolvedor.
  • Você está trabalhando com um documento habilitado para macro (.docm ou .dotm) que contém o código VBA que deseja assinar.

Passos para Assinar um Projeto de Macro VBA no Word

  1. Abra o Editor VBA
    No Word, pressione Alt+F11 para abrir o editor do Visual Basic for Applications. Alternativamente, clique na guia Desenvolvedor e depois em Visual Basic.
  2. Selecione o projeto de macro a ser assinado
    No painel Explorador de Projetos à esquerda, clique no nome do projeto que corresponde ao seu documento. O nome do projeto geralmente corresponde ao nome do arquivo do documento.
  3. Abra a caixa de diálogo Assinatura Digital
    Na barra de menus do Editor VBA, clique em Ferramentas > Assinatura Digital. Isso abre uma caixa de diálogo mostrando o status atual da assinatura do projeto.
  4. Escolha um certificado
    Clique no botão Escolher. A caixa de diálogo Selecionar Certificado exibe todos os certificados de assinatura de código instalados em seu repositório de certificados Pessoais. Selecione o certificado que deseja usar e clique em OK. Se o certificado não estiver listado, verifique se ele está instalado corretamente e se possui o uso estendido de chave para assinatura de código.
  5. Confirme a assinatura
    De volta à caixa de diálogo Assinatura Digital, o campo Nome do Certificado agora mostra o nome do sujeito do certificado selecionado. Clique em OK para aplicar a assinatura ao projeto de macro.
  6. Salve e feche o documento
    Salve o documento habilitado para macro pressionando Ctrl+S ou clicando em Arquivo > Salvar. Feche o Editor VBA. O documento assinado agora está pronto para distribuição em um ambiente protegido pelo AppLocker.

ADVERTISEMENT

Configurando o AppLocker para Confiar na Macro Assinada

Após assinar a macro, você deve criar uma regra de editor do AppLocker que permita a execução com base no certificado. Esta etapa é realizada por um administrador do sistema na máquina de destino ou via Política de Grupo.

  1. Abra a Política de Segurança Local
    Pressione Win+R, digite secpol.msc e pressione Enter. Navegue até Configurações de Segurança > Políticas de Controle de Aplicativo > AppLocker.
  2. Crie uma nova Regra de Script
    Clique com o botão direito em Regras de Script e selecione Criar Nova Regra. Clique em Avançar na página Antes de Começar.
  3. Defina a ação como Permitir
    Na página Permissões, selecione Permitir. Certifique-se de que o Usuário ou grupo esteja definido como Todos ou o grupo aplicável. Clique em Avançar.
  4. Selecione a condição Editor
    Na página Condições, selecione Editor como a condição da regra. Clique em Avançar.
  5. Navegue até um documento assinado
    Clique em Procurar, localize o arquivo .docm assinado e selecione-o. O AppLocker lê a assinatura digital e exibe as informações do editor. Você pode definir o controle deslizante para qualquer nível: Editor, Nome do Produto, Nome do Arquivo ou Versão do Arquivo. Para a maioria dos ambientes, Editor ou Nome do Produto é suficiente. Clique em Avançar.
  6. Nomeie e finalize a regra
    Dê à regra um nome descritivo, como “Macros do Word Assinadas pela CA da Empresa”. Clique em Criar. A regra agora permite que qualquer macro assinada por esse editor seja executada.

Problemas Comuns Após Assinar Macros para AppLocker

A macro ainda não executa após a assinatura

Se o AppLocker continuar bloqueando a macro assinada, verifique o seguinte: O certificado usado para assinar deve estar presente no repositório Editores Confiáveis na máquina de destino. Abra certlm.msc (certificados do Computador Local) ou certmgr.msc (certificados do Usuário Atual) e verifique se a cadeia de certificados da CA está instalada em Autoridades de Certificação Raiz Confiáveis e o certificado de assinatura de código está em Editores Confiáveis. Confirme também se a regra do AppLocker faz referência ao editor correto e se o escopo da regra inclui a conta de usuário que está abrindo o documento.

O Word exibe o erro “Assinatura digital inválida”

Esse erro ocorre quando o certificado expirou ou a assinatura foi aplicada a um projeto que foi modificado após a assinatura. Abra o Editor VBA, vá em Ferramentas > Assinatura Digital e verifique a data de expiração do certificado. Se o certificado expirou, obtenha um novo certificado e reassine o projeto. Qualquer alteração no código após a assinatura invalida a assinatura, portanto, sempre assine como etapa final antes da distribuição.

Certificado autoassinado não é confiável pelo AppLocker

Certificados autoassinados não são automaticamente confiáveis pelo Windows. Para usar um certificado autoassinado em um ambiente AppLocker, você deve instalar manualmente seu certificado raiz no repositório Autoridades de Certificação Raiz Confiáveis em cada máquina de destino. Use certlm.msc para importar o arquivo .cer. Sem essa etapa, o AppLocker trata a assinatura como não confiável e bloqueia a execução.

ADVERTISEMENT

Certificado Autoassinado vs. Certificado Assinado por CA para Assinatura de Macro VBA

Item Certificado Autoassinado Certificado Assinado por CA
Custo Gratuito Taxa anual da CA
Confiança por padrão Não confiável; requer instalação manual em cada máquina Confiável automaticamente se a raiz da CA estiver no repositório Raiz Confiável do Windows
Complexidade de implantação Alta; é necessário distribuir o certificado raiz via Política de Grupo ou manualmente Baixa; nenhuma distribuição adicional de certificado necessária
Melhor para Testes, pequenas equipes internas Ambientes de produção empresarial

Ambos os tipos de certificado produzem uma assinatura digital válida que o AppLocker pode avaliar. A principal diferença é a configuração da cadeia de confiança necessária para certificados autoassinados.

Agora você pode assinar projetos de macro VBA no Word usando um certificado de assinatura de código e configurar o AppLocker para permitir a execução dessas macros assinadas. Teste o documento assinado em uma máquina com AppLocker ativado para confirmar se a regra do editor funciona conforme o esperado. Para implantação contínua de macros, considere automatizar o processo de assinatura com um script de compilação que use a ferramenta de linha de comando SignTool.exe, que pode assinar projetos de macro do Office sem abrir o Editor VBA manualmente.

ADVERTISEMENT