Em vez de validar os binários que você vai executar, você pode executar os binários corretos desde o início. Por exemplo. Se você quiser ter certeza de que não vai executar /tmp/surprise/tar
, apenas execute /usr/bin/tar
no seu script. Como alternativa, defina seu $PATH
para um valor sane antes de executar qualquer coisa.
Se você não confiar em arquivos em /usr/bin/
e outros diretórios do sistema, não há como recuperar a confiança. No seu exemplo, você está verificando o proprietário com ls
, mas como você sabe que pode confiar em ls
? O mesmo argumento se aplica a outras soluções, como md5sum
e strace
.
Onde é necessária alta confiança na integridade do sistema, soluções especializadas como IMA são usadas. Mas isso não é algo que você poderia usar a partir de um script: todo o sistema tem que ser configurado de uma maneira especial, com o conceito de arquivos imutáveis no lugar.