José Geraldo de Moraes


07/05/2008


Reflections on Trusting Trust

Neste artigo, Ken Thompson, um dos criadores do UNIX, relata que é possível modificar os compiladores (ferramentas que transformam códigos escritos em alguma linguagem de programação em linguagem de máquina). Ele implantou um trojan horse (cavalo de tróia) no compilador C para o programa de login do Unix. Uma vez instalado em um computador, este compilador habilitaria um acesso ao sistema como qualquer usuário. Este cavalo de tróia não é detectado o código fonte, sendo que só pode ser descoberto se for inspecionado o código binário. A técnica de ataque empregada é chamada de dupla compilação diversa (DDC), onde o código fonte é recompilado duas vezes.

 

No caso da linguagem de programação C, o compilador C é escrito em C, e segundo o autor, problemas surgem quando compiladores são escritos na sua própria linguagem. Thompson demonstra que não se pode confiar em compiladores que não têm procedência, pois a maioria dos programas de código aberto possuem relativa segurança.

 

É recomendável verificar a procedência e a integridade de compiladores, onde não se tenha acesso ao código fonte, sendo importante acreditar em toda a infra-estrutura de compilação, pois os mesmos podem ter códigos maleficamente implementados e podem ser ativados quando um determinado padrão for encontrado em um código-fonte.

 

Referências :

 

Artigo: Reflections on Trusting Trust, Ken Thompson

 

http://www.dwheeler.com/trusting-trust/

 

Escrito por José Geraldo às 23h40
[ ] [ envie esta mensagem ] [ ]



Histórico