Se o seu script puder se conectar a qualquer um desses servidores, qualquer pessoa com acesso ao script (ou acesso privilegiado à máquina em que o script é executado) poderá se conectar a qualquer um desses servidores.
Se o script precisar ser executado de forma autônoma, todas as apostas serão desativadas. A resposta aqui é não, não há uma maneira absolutamente segura de armazenar senhas em tal ambiente . Não há absolutamente nenhuma maneira prática e segura de fazer qualquer coisa.
Em vez de tentar evitar o inevitável, você deve se concentrar na defesa em profundidade .
Fristly, é claro, você deve proteger as senhas adequadamente . Isso geralmente significa mantê-los em um arquivo separado do seu script e configurando permissões restritivas do sistema de arquivos . É tudo o que você pode fazer nessa frente, de uma perspectiva de segurança.
Outras medidas podem certamente adicionar obscuridade ao processo. Criptografar as senhas fará com que o invasor precise procurar a chave de descriptografia. Usar algum tipo de armazenamento protegido pelo sistema operacional geralmente protege contra outros usuários acessando sua chave (para que não ofereça vantagem sobre as permissões do sistema de arquivos, além de ser complexo para atacar - e usar). Estas medidas irão atrasar um ataque, mas certamente não o impedirão contra um atacante determinado.
Agora, vamos tratar as senhas como públicas por um momento. O que você pode fazer para mitigar os danos?
Uma solução antiga e testada é restringir o que essas credenciais podem fazer. Em um sistema UNIX, uma boa maneira de fazer isso é configurar um usuário separado para seu script e limitar os recursos desse usuário , tanto no acesso quanto nos servidores acessados. Você pode limitar as capacidades do usuário em o nível de SSH , no nível de shell ou possivelmente usando um Mecanismo de controle de acesso obrigatório como o SELinux .
Algo que você também pode querer considerar é mover a lógica do script para os servidores . Dessa forma, você obtém uma interface menor que é mais fácil de controlar e, especialmente, para ...
Monitorar . Sempre monitore o acesso aos servidores. Preferencialmente, autenticação de log e comandos executados em um anexo somente log . Não se esqueça de monitorar as alterações no arquivo de script usando auditd
, por exemplo.
Naturalmente, muitos desses mecanismos não são úteis se você não tiver controle sobre os servidores, como sua pergunta parece implicar. Se for esse o caso, aconselho-o a entrar em contacto com as pessoas que administram os servidores e informá-los sobre o seu script e as potenciais armadilhas de segurança.