Ocultar argumentos dos comandos em ps

4

Eu executo um aplicativo em um servidor linux, e quando executo o aplicativo eu forneço a senha como uma linha de comando, assim:

 ./myapplication --smtp-password mypassword

Em nossa aplicação, nós não construímos até agora criptografar / descriptografar, porque é suposto ser um aplicativo de monitoramento muito simples, e é muito simples "ping" e verificação de integridade e enviar e-mail em caso de falha. / p>

Qualquer administrador - e nós temos três outros administradores - pode apenas listar o processo com ps, ver os argumentos do comando e descobrir a senha.

Existe uma maneira de esconder isso?

    
por Ghassan Karwchan 25.07.2016 / 17:30

2 respostas

4

Melhor seria reescrever myapplication para obter a senha por meio de outro meio como stdin. O environ é outra opção, mas que ainda é visível para processos com o mesmo euid (ou euid 0) via /proc/<pid>/environ .

Se não, no Linux com versões anteriores a 4.2, você pode limitar a exposição certificando-se de que a senha não esteja nos primeiros 4096 bytes da linha de comando para que outros processos não possam obtê-la através da leitura de /proc/<pid>/cmdline (como ps faz). 4.2 e acima não truncar mais /proc/<pid>/cmdline .

Por exemplo, com zsh

.${(l:4094::/:):-myapplication} --smtp-password=secret

Executaria myapplication com o primeiro argumento sendo 4095 bytes grandes (4096 que você alteraria o limite PATH_MAX), algo como .//////[...]///myapplication , portanto sua senha estaria além do ponto de quebra de 4095.

Observe que os logs de auditoria e os arquivos de histórico do shell são outras áreas de preocupação para as sequências secretas transmitidas na linha de comando.

    
por 25.07.2016 / 18:07
4

Em um sistema Linux, você pode ocultar informações de processo montando /proc com o hidepid apropriado. definição, por exemplo %código%. No entanto, isso não ocultará as informações do processo de qualquer pessoa com acesso root. A melhor solução é não incluir dados confidenciais na linha de comando.

    
por 25.07.2016 / 17:37