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/


Leia este blog no seu celular