No mundo dinâmico da administração de sistemas, o gerenciamento proativo é a chave para garantir a segurança, a estabilidade e o desempenho dos ambientes de TI. Uma das ferramentas mais poderosas disponíveis para administradores é o PowerShell, uma linguagem de script e ambiente de linha de comando que pode automatizar muitas tarefas em sistemas Windows. Toda semana, um determinado script do PowerShell deve ser executado por cada administrador, uma ferramenta simples, mas extremamente eficaz para garantir o bom funcionamento das operações de TI. Este script, em particular, se concentra no gerenciamento de políticas de execução de scripts do PowerShell, um aspecto crucial que muitas vezes é esquecido. Este artigo explora esse recurso essencial em profundidade.
Compreendendo a política de execução de script do PowerShell
Lá estratégia de execução no PowerShell determina quais comandos e scripts podem ser executados em um sistema. É um recurso de segurança que protege o usuário de executar scripts maliciosos. Entender essa política e saber como configurá-la é fundamental para todo administrador que deseja manter um ambiente Windows seguro e eficiente.
Existem vários níveis de estratégias de execução, cada um com suas próprias implicações e níveis de segurança. Aqui está uma visão geral das principais políticas disponíveis:
- Restrito: Bloqueia todos os scripts, permitindo que apenas comandos interativos sejam executados no console.
- Todos assinados: Permitir somente a execução de scripts assinados por um editor confiável.
- Assinatura remota: Permite a execução de scripts locais não assinados, mas bloqueia aqueles da Internet, a menos que sejam assinados.
- Irrestrito: Permite que todos os scripts sejam executados, mas exibe alertas para aqueles vindos da Internet.
- Ignorar: Não aplica nenhuma restrição, permitindo que todos os scripts sejam executados sem avisar o usuário.
- Indefinido: Indica que a política não está definida, deixando a política de nível superior em aplicação.
Para ambientes empresariais, a estratégia Tudo assinado é geralmente o mais recomendado, pois fornece um alto nível de segurança e ainda permite a execução necessária de scripts. Entretanto, dependendo das necessidades, outras políticas podem ser aplicadas dependendo do contexto de execução.
Explorando Estratégias de Execução
Para ver qual política está sendo aplicada atualmente em seu sistema, o cmdlet Obter-Política de Execução pode ser usado:
Get-ExecutionPolicy“} –>Obter-Política de Execução
Para obter uma visão mais detalhada das políticas de execução em cada escopo, é possível usar:
Get-ExecutionPolicy -List“} –>Obter-Política de Execução -Lista
Isso exibirá as políticas aplicadas a cada escopo, incluindo para Processo, Usuário Atual E Máquina Local.
| Extensão | Política de execução |
|---|---|
| Processo | política aplicada à sessão atual do PowerShell |
| Usuário Atual | política aplicada ao usuário logado |
| Máquina Local | estratégia aplicada a toda a máquina |
É uma boa ideia verificar regularmente essas configurações para garantir que elas ainda atendam às necessidades de segurança da organização.
Como mudar a estratégia de execução
Alterar a política de execução é um processo bastante simples, mas requer privilégios de administrador. Usando o cmdlet Definir-Política de Execução permite que você defina uma nova estratégia. Por exemplo, para definir uma política sobre Tudo assinado, o seguinte comando deve ser executado:
Set-ExecutionPolicy -ExecutionPolicy AllSigned“} –>Definir-Política de Execução -Política de Execução AllSigned
Também é possível especificar o âmbito de aplicação desta política:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser“} –>Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope UsuárioAtual
Este comando aplica a política somente ao usuário atual, o que pode ser útil em um ambiente que contém vários usuários.
Em uma organização, pode ser sensato definir políticas de execução rígidas para todos os usuários para reduzir os riscos associados à execução de scripts não verificados. Aqui estão algumas práticas recomendadas a serem consideradas:
- Promover o uso da estratégia Tudo assinado para garantir que somente scripts verificados sejam executados.
- Eduque os usuários sobre os riscos associados à execução de scripts baixados.
- Implemente verificações regulares para verificar a conformidade com as configurações da estratégia de execução.
Criar documentação sobre estratégias de execução e os motivos por trás de sua escolha ajuda a conscientizar e treinar a equipe administrativa.
Automatizar a verificação da estratégia de execução
Um bom administrador de sistema sabe que o monitoramento proativo pode levar a uma economia de tempo valiosa. Escrever um pequeno script do PowerShell dedicado a verificar a política de execução e enviar alertas quando alterações são feitas pode ajudar a manter a conformidade contínua.
n$executionPolicy = Get-ExecutionPolicy -Listnif ($executionPolicy.CurrentUser -ne "AllSigned") {n Send-MailMessage -To "[email protected]" -From "[email protected]" -Subject "Alerte sur stratu00e9gie d'exu00e9cution" -Body "La politique d'exu00e9cution de l'utilisateur a changu00e9." -SmtpServer "smtp.example.com"n}n“} –>$executionPolicy = Obter-Política-de-Execução -Lista se ($executionPolicy.CurrentUser -ne "AllSigned") { Send-MailMessage -Para "[email protected]" -De "[email protected]" -Assunto "Alerta de política de execução" -Corpo "A política de execução do usuário foi alterada." -SmtpServer "smtp.example.com" }
Este script envia um e-mail ao administrador relevante se a política de execução atual não corresponder ao padrão esperado. Isso ajuda a ficar atento a mudanças inesperadas e potencialmente perigosas.
Aqui estão algumas sugestões para melhorar os processos de automação de auditoria:
- Integre verificações para outras configurações de segurança, além de políticas de execução.
- Programe este script para ser executado em intervalos definidos, por exemplo, toda semana.
- Use ferramentas de gerenciamento de configuração como Chefe, Fantoche Ou SolarWinds para manter a integridade das configurações do sistema.
Reduzir o risco humano por meio da automatização dessas verificações permite que você se concentre em outros aspectos críticos do gerenciamento de TI.
Desbloqueie um script seguro do PowerShell
Ao baixar scripts da Internet, eles podem ser marcados como não confiáveis, impedindo que sejam executados por padrão como parte da segurança do Windows. Para executá-los, devemos “desbloqueá-los” com o cmdlet Desbloquear arquivo.
Unblock-File "C:TEMPscript.ps1"“} –>Desbloquear arquivo "C:TEMPscript.ps1"
Este comando remove a proteção de segurança associada ao arquivo baixado. É recomendável usar este comando somente para arquivos de fontes confiáveis.
Os administradores devem ter cuidado ao desbloquear arquivos e lembrar do seguinte:
- Verifique a integridade e a origem do script antes de desbloqueá-lo.
- Documente scripts desbloqueados para manter inventário e rastreabilidade.
- Avalie os riscos potenciais antes de dar sinal verde para executar um script sensível.
O gerenciamento adequado dos scripts baixados pode fazer uma grande diferença no nível de segurança de um sistema.
Execução administrativa de scripts do PowerShell
Em muitas situações, a execução de scripts requer privilégios de administrador para acessar determinados recursos do sistema ou aplicar alterações críticas. Veja como um administrador pode facilmente executar um script com privilégios elevados:
Start-Process powershell -Verb RunAs -ArgumentList "-File C:TEMPscript.ps1"“} –>Iniciar-Processo powershell -Verbo ExecutarComo -ListaDeArgumentos "-Arquivo C:TEMPscript.ps1"
Isso inicia um novo processo do PowerShell com direitos de administrador para executar o script especificado. Certifique-se de que os usuários sejam treinados neste método para evitar possíveis erros.
Também é possível escrever um script de autoelevação para automatizar esse processo:
nif (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {n Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `$PSCommandPath"n Exitn}n“} –>Iniciar-Processo PowerShell -Verbo Executar como -Lista de Argumentos "-NoProfile -Ignorar Política de Execução -Arquivo `$PSCommandPath" Saída }
Com essa abordagem, se um usuário tentar executar o script sem privilégios de administrador, o script será reiniciado automaticamente com os requisitos necessários. É um método seguro que simplifica o processo de gerenciamento de permissões.
