qual é a melhor maneira de proteger o arquivo em lote?

3

Tenho scripts em lote programados para serem executados diariamente. Alguns dos scripts têm senha neles. Gostaria de proteger o lote de ser lido ou aberto por pessoas não autorizadas a abrir ou ler.

A minha pergunta é: o que é uma boa maneira de proteger o arquivo de lote? Existe uma ferramenta gratuita ou de código aberto que compila um arquivo de lote?

    
por titanium 23.07.2009 / 12:08

9 respostas

9

Você pode usar as ACLs do NTFS para proteger os arquivos de usuários que não estão autorizados a executá-los. Os usuários que estão autorizados a executá-los, por definição, podem ler as senhas (no formulário ofuscado, se você optar por ofuscar as mesmas). O acesso para executar implica acesso à leitura. Se o script puder desfocar a senha, o usuário poderá fazê-lo.

Supondo que você esteja tentando proteger as senhas dos usuários autorizados a executar os scripts, o que você está dizendo não é possível. Você está realmente dizendo:

We have passwords that we need to give to users so they can use some software, but we don't want the user to know what the passwords are.

Por definição, o usuário tem que recuperar as senhas para usá-las. Qualquer ofuscação ou codificação das senhas que você executa é apenas uma "lombada" para um determinado usuário descobrir quais são as senhas.

Desde que o contexto de execução deste script seja o usuário que você tem para fornecer as senhas. Se você tentar ofuscar as senhas ou não, isso é da sua conta, mas você ainda está dando a elas as senhas.

    
por 23.07.2009 / 12:59
3

Eu usaria algo como BATCH2EXE e "compilaria" o arquivo em lotes para que eles não pudessem modificá-lo. : -)

Existem vários deles por aí. Alguns gratuitos, alguns custam um pouco.

Faça uma pesquisa no Google por "batch2exe" ou "bat2exe" e você verá o que quero dizer.

Eu usei vários ao longo dos anos.

    
por 23.07.2009 / 12:41
1

Você poderia ter a senha como um parâmetro para o arquivo em lotes? Algo como C: \ MyBatchFile.bat MyPassword ? Em seguida, dentro do arquivo de lote, use% 1, onde a senha é necessária.

Você adicionaria o parâmetro password como parte da chamada no Agendador de Tarefas. Agora todos os arquivos de morcegos poderiam estar abertos, sem revelar nenhum segredo. então você só precisa proteger o Agendador de Tarefas, que pode ou não ser mais fácil.

    
por 23.07.2009 / 18:15
0

Não que eu saiba e "compilar" um arquivo de lote não impediria um determinado indivíduo de fazer engenharia reversa do executável resultante e obter a senha.

Eu verificaria o uso de ACLs no NTFS para lidar com isso.

    
por 23.07.2009 / 12:28
0

Na maioria dos casos, não mantemos senhas nos arquivos de lote ou de configuração. Se realmente precisamos fazer isso, estamos usando algum mecanismo de criptografia para fazer isso. O programa que usa esses parâmetros é responsável pela descriptografia. Se for um programa escrito por você, talvez você possa usar essa abordagem. :)

    
por 23.07.2009 / 12:45
0

Supondo que os usuários que você não deseja ver a senha também não tenham os detalhes de logon da conta que está executando os arquivos em lote e eles não tenham privilégios suficientes para acessar o perfil dessa conta, você pode criar variáveis de ambiente esse perfil e usar essas variáveis nos arquivos em lote, em vez das próprias senhas. Esse método é infalível, mas não é inteligente. Ou seja, qualquer pessoa com um pouco de habilidade não será impedida por esse ou outro método.

Quanto à compilação de arquivos em lote, isso foi um pouco mais de uma década atrás. Poucos ainda fazem isso, já que não há absolutamente nenhum ponto para isso. Para cada compilador você poderá encontrar um descompilador. Anote também os comentários de Evan sobre ofuscação.

    
por 23.07.2009 / 14:22
0

Como alguém já mencionou, nunca é uma boa idéia ter uma senha legível em um arquivo de lote ou de script, especialmente porque algumas das linguagens de script permitem que você execute scripts de um site. A melhor maneira de fazer isso é passar a senha como um parâmetro. Aqui está o que eu faço com meus scripts biterscripting ( link ).

Abaixo está um exemplo de script.

# Script sample.txt
# Input argument - login, password
var string login, password

somecommand $login $password

Eu chamo este script usando a seguinte entrada no gerenciador de tarefas.

"C:\biterScripting\biterScripting.exe" "sample.txt login("mylogin") password("mypassword")

Você pode usar a mesma abordagem quando os visitantes executarem seus scripts como parte de seu servidor da Web.

Patrick

    
por 24.07.2009 / 16:08
0

No seu arquivo de lote, você pode colocar um "NET SEND" para enviar uma mensagem a si mesmo sempre que alguém executar um arquivo.

Além disso, você pode criar um script para verificar se o usuário pertence a um determinado grupo e, se não, saia do script.

    
por 09.12.2011 / 21:44
0

Uma maneira rápida e fácil de ofuscar arquivos em lote é adicionar a string "FF FE 0D 0A" no início do código hexadecimal (use um editor hexadecimal gratuito). Geralmente usado por autores de malware, ele engana programas de edição de texto, como o Bloco de Notas ou o Notepad ++, para abrir o arquivo como se fosse Unicode (quando é de fato o ASCII), resultando em lixo eletrônico. Se, no entanto, o arquivo em lotes for executado, ele será processado pelo cmd.exe, não pelo notepad.exe, executando assim o código ofuscado (o Windows cmd lerá tudo como ASCII).

Isso não impedirá que qualquer um que REALMENTE queira ver o que está acontecendo sob o capô, mas que impeça alguém que não seja muito experiente em engenharia reversa. Espero que isso ajude.

    
por 04.03.2014 / 13:34

Tags