Reflections on Trusting Trust

Discussing my thoughts on the paper 'Reflections on Trusting Trust', both in terms of the technical aspect, and Thompson's feelings about hackers.


Link to paper: https://users.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf

Thompson explains in the paper about how bugs can be introduced into the program and attackers can gain advantage of those bugs. Thompson was able to show how a hacker can insert backdoor in C compiler which would allow them to insert the malicious code to any program which has been compiled with that compiler. Thompson begins by explaining how we can include a vertical tab character in the C compiler. Then further he modifies the compiler and inserts a code which will be executed whenever the same compiler will be used to build a program. This compiler will compile in a way that it will insert malicious code into the program that was built. This showed us that even the most trusted component within the system is not reliable in terms security. This raises a question on how we can even trust the system which we did not built ourselves.

Thompson showed a simple way on how the systems and applications can have a serious bug which can go undetected for a very long time. Even though the concept can be very deep, the way he presented in the paper made it easily understandable. In Thompsons words, he showed a trojan horse program since it was deliberately introducing the bug into the program. In one program that he created, he modified the source code of the compiler where it would scan for specific pattern in the source code and if that pattern is found, it would insert buggy code in the compiled binary which can further be used by attackers to break into the system. This concept explained by Thompson I felt is very crucial and important for us to understand the seriousness of the issue. He also goes on to explain that is could be impossible to detect such bugs in the program. The only way one could test the program is check the integrity of the compiler that compiled the program which would not be practical in most of the cases.

Here again comes the concept of zero trust. On what level do we implement zero trust is a question to be answered. If we want to implement zero trust on every minute level, we will not be able to use anything. However, if we implement zero trust only on higher level, one can take advantage of this by exploiting the flaw as shown in Thompson’s paper. This paper questions many aspects of development and security of applications which needs to be addressed. I felt, to understand this paper, one need not be too tech savvy since Thompson explained important aspects in simple and effective terms. Also, the concepts and technical aspects that he touched on are very much relevant even today and it makes this paper a useful resource to learn about these kind of bugs in software programs.

In terms of hackers, Thompson felt that hackers are motivated by their desire to learn and the press has shown hackers in a wrong way. He complains explaining the press is showing hackers as heroes while the similar acts performed in real world is punished heavily. He thinks that breaking into a computer system is as serious as breaking into a neighbor’s house and should face similar consequences. He is also worried about young people who might follow the path of breaking into the system having a feeling of heroic actions which could get them into a serious trouble.

In general, reading the paper scares me and also aware me regarding the potential issues that can exist with the software program and ease with which it is created is terrifying. This I felt highlights the importance of continuous research in this field to get updated with new tactics and techniques that attackers are using to break into the system. Before this paper was published, we cannot say for sure that this technique was not used in the cyber attacks that took earlier. Only once this paper was introduced, people became more aware of the techniques used and where to look at, which led to greater awareness. Overall, “Reflections on Trusting Trust” by Ken Thompson is an interesting read which questions the concept of trust in computer systems. Since compiler itself introduced bug, it would be hard to trust even the trusted part of software. As we know, we as defenders need to get it right 100% of the time, attackers need to get it right only once.

© Anurodh Acharya Since @ 2025. All rights reserved.