| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- Cyber Security
- 소프트웨어 취약저 분석
- binary code analysis
- reading critique
- ICSE
- 프로그램 분석
- Software Engineering
- citrus
- FSE
- fault-localization
- 묵상
- 대학원생
- software-testing
- Environment
- libxml2
- binary code analaysis
- sotware-testing
- 느헤미야
- 생명의 삶
- graphfuzz
- protobuf
- QT
- vulnerabilties
- software-engineering
- build
- libFuzzer
- fuzzing
- unit-testing
- linking
- 바이너리 분석
- Today
- Total
heechan.yang
[Binary Code Analysis - Reading Critique] Reflection on Trusting Trust by Ken Thompson 본문
[Binary Code Analysis - Reading Critique] Reflection on Trusting Trust by Ken Thompson
heechan.yang 2024. 9. 7. 19:59Paper Summary:
Through this paper "Reflection on Trusting Trust", the author shares a moral that no code should be fully trusted even after great effort of analysis. The author builds up to his claim with thee stages that together, explains an example case of an attack within C compiler.
The first stage shows a small example of a program the produces a self-reproducing program. It shows how it is possible for a program to produce another program. The second stage explains how C compilers are built with C language with the reference of "chicken and egg" problem. Finally, the third stage demonstrates how an altered compiler that can be built to a attacked C compiler enabling it to compile a bug-free source code into a malicious executable file.
With the attacked C compiler built as an executable for compiling other bug-free compiler source code, this compiled compiler will result to a hacked executable file. Hence, although the source code may be clean of vulnerabilities, it should not be fully trusted.
The author finalizes the paper that such action of hacking into a software must be considered the same as "breaking into a neighbor's house" whether or not the the front door is open.
Personal Thoughts:
This introductory paper has given interesting motivation for taking the course IS561. The contents of the paper and the statement, "No amount of source-level verification or scrutiny will protect you" summarized why one should learn binary code analysis. Basically no source code can be trusted.
It was also pleasing to read about the ethical point of view of hacking a software through comparison with the action of breaking into a unlocked house.