Por que o PowerShell está usando certificados para verificar scripts? É mais perigoso que o cmd / bat?

0

Esta pode ser uma pergunta estúpida, mas estou me perguntando por que não posso simplesmente executar qualquer script do PowerShell ( ps1 ), pois eu executaria bat arquivos?

Mesmo que o PS tenha alguns comandos extras (seguros), eu sempre posso ignorar as configurações de segurança e executá-las a partir do bat: Powershell.exe -executionpolicy remotesigned -File .\do_whatever.ps1 . Se eu posso enganar os usuários para que executem meus scripts não assinados, então qual é o uso do conceito de assinatura de scripts?

Certamente estou perdendo alguma preocupação de segurança ... Certo?

    
por Nux 24.10.2016 / 12:36

1 resposta

0

É uma verificação de fidelidade.

Pense nos "Avisos de certificado" que você vê em sites HTTPS - você pode apenas "próximo" após o aviso, mas o aviso alertará você sobre algo que está errado.

Uma das coisas úteis com a assinatura é que você sabe se seu script foi alterado. Considere isto:

Você cria um script para executar o serviço de limpeza ClearIISLogs.ps1 e define uma tarefa agendada elevada para executá-lo todos os dias. (powershell.exe clearIISLogs.ps1)

Nesse caso, se um usuário com acesso de gravação em ClearIISLogs.ps1 tentar alterar o script, a tarefa agendada não será executada. O script precisaria ser assinado por um editor confiável novamente, antes que a execução seja permitida.

Se você configurasse a tarefa agendada para ignorar a segurança do powershell (-setexecuitionpolicy irrestrito), o ClearIISLogs.PS1 modificado seria executado sem problemas ...

    
por 24.10.2016 / 13:44