Executáveis assinados no Linux (ou outros sistemas operacionais)

3

Esta pergunta foi feita primeiro no stackoverflow . Depois de 60 visualizações, recebi apenas uma resposta. Agora estou tentando serverfault - esse é um tópico pertinente para aqui, eu acho.

Por razões de segurança, é desejável verificar a integridade do código antes da execução, evitando software adulterado por um invasor. Então, minha pergunta é

Como assinar código executável e executar somente software confiável no Linux?

Eu li o trabalho de van Doom et al., Design e implementação de executáveis assinados para Linux, e os TLC (Trusted Linux Client) por Safford & Zohar. O TLC usa o controlador de TPM, o que é legal, mas o documento é de 2005 e não consegui encontrar alternativas atuais.

Você conhece outra opção?

UPDATE : e sobre outros sistemas operacionais? OpenSolaris Família BSD?

    
por TH. 14.11.2009 / 15:07

4 respostas

2

O Solaris tem elfsign(1) , que atribui certificados X.509 a binários ELF. A Sun assinou a maioria, se não todos os binários fornecidos, no entanto, não sei como fazer com que o Solaris apenas execute binários assinados. Há elfsign e bsign para o Linux, mas nenhum foi mantido recentemente.

    
por 14.11.2009 / 16:29
1

Dê uma olhada em DigSig

    
por 14.11.2009 / 15:53
0

O seLinux pode fornecer o que você está procurando.

    
por 14.11.2009 / 15:25
0

O Windows tinha Políticas de Restrição de Software e, mais recentemente, adicionou AppLocker para impor controles de acesso baseados em assinatura na execução de código. (Internet Explorer também tem Authenticode por algum tempo agora, mas é menos de um mecanismo de validação de assinatura executável de uso geral e mais para código no navegador.)

A imposição da execução de executáveis assinados é certamente uma coisa boa, mas não é uma panacéia (como vimos em consoles de videogames que usam intensamente a assinatura de código para aplicação de licença de desenvolvimento). Vulnerabilidades em executáveis assinados através de uma validação deficiente de entrada não confiável ainda permitem a execução de código arbitrário. Dito isto, porém, adiciona uma camada adicional de segurança.

    
por 14.11.2009 / 17:09