Como está a utilização de uma senha do MySQL a partir da linha de comando insegura?

11

Eu tenho algumas ferramentas BASH que usam a função mysql -e "{command}" . Inserir a senha toda vez que eu usar essas ferramentas seria uma dor, portanto, para evitar que a senha seja escrita em um arquivo de texto simples com o código, eu a armazeno na memória (usando read -s ) e faço com que o BASH a leia sempre que executar comandos.

Mysql ainda acha que a senha está sendo submetida através da linha de comando (porque, de certa forma, é), e ainda me dá o erro "Usar uma senha na interface da linha de comando pode ser inseguro".

Para os meus objetivos, não preciso suprimir esta mensagem. O que eu preciso saber é, o que é que poderia tornar inseguro? A senha nunca é fisicamente visível, então o surfar com o ombro não funcionou e até mesmo alguém que adivinhou minha senha do SSH não seria capaz de fazer isso, já que ela está armazenada na memória, e não nos próprios scripts. Um ataque man-in-the-middle ou algo semelhante é possível?

    
por Andrew 13.07.2017 / 22:37

1 resposta

25

Qualquer pessoa que possa ver suas variáveis de ambiente (incluindo programas que você executa) pode ver a senha. E qualquer um que possa ver seus processos pode ver a linha de comando usada para executá-los, incluindo os parâmetros.

Portanto, para uma caixa em que você efetua login, o risco provavelmente é insignificante. Mas para um ataque direcionado a você pessoalmente, esse é um vetor de ataque trivial no grande esquema das coisas.

    
por 13.07.2017 / 22:43

Tags