Se o seu script puder se conectar a qualquer um desses servidores, qualquer pessoa com acesso ao script (ou acesso privilegiado à máquina na qual o script é executado) poderá se conectar a qualquer um desses servidores.
Se o script precisar ser executado de forma autônoma, todas as apostas estão desativadas. A resposta aqui é não, não existe uma maneira absolutamente segura de armazenar senhas nesse ambiente . Não há maneira absolutamente segura e prática de fazer qualquer coisa.
Em vez de tentar evitar o inevitável, você deve se concentrar na defesa em profundidade .
Primeiramente, é claro, você deve proteger as senhas adequadamente . Isso geralmente significa mantê-los em um arquivo separado do seu script e configurar permissões restritivas do sistema de arquivos . É tudo o que você pode fazer nessa frente, do ponto de vista da segurança.
Outras medidas certamente podem adicionar obscuridade ao processo. Criptografar as senhas fará com que o invasor precise procurar a chave de descriptografia. O uso de algum tipo de armazenamento protegido pelo sistema operacional geralmente protege contra outros usuários acessando sua chave (portanto, não oferece vantagem sobre as permissões do sistema de arquivos, além de ser complexo para atacar - e usar). Essas medidas atrasarão um ataque, mas certamente não o impedirão contra um determinado atacante.
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 o seu script e limitar os recursos desse usuário , nos servidores de acesso e nos acessados. Você pode limitar os recursos do usuário no nível SSH , no nível do 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 ...
Monitor . Sempre monitore o acesso aos servidores. De preferência, autenticação e comandos de log executados em um log somente anexado . Não se esqueça de monitorar as alterações no arquivo de script usando auditd
, por exemplo.
Obviamente, muitos desses mecanismos não serão úteis se você não tiver controle sobre os servidores, como parece sugerir sua pergunta. Se for esse o caso, recomendo que você entre em contato com as pessoas que administram os servidores e informe-os sobre seu script e as possíveis armadilhas de segurança.