Essa questão é difícil de responder, pois não há definições formais desses termos e pessoas diferentes as usarão de forma diferente. Eu aqui apenas dou o meu uso deles, outros terão pontos diferentes se forem vistos.
Para mim, a ferramenta e a utilidade são sinônimos. Eu uso as palavras para pequenos programas que fazem apenas um pequeno trabalho. Eu chamaria todos os aplicativos implementados como applets nas ferramentas ou utilitário busybox .
Qualquer aplicativo é um programa para mim. Ou seja 'ls' é uma ferramenta, um utilitário e um programa. O Firefox é um programa, mas eu não o chamaria nem de ferramenta nem de utilidade.