てきとうなメモ

本の感想とか技術メモとか

ケン・トンプソンのトロイの木馬

ケン・トンプソンのトロイの木馬は、ケン・トンプソンがチューリング賞を受賞したときのスピーチ「Reflections on Trusting Trust」で発表したCコンパイラのハックの話で、以下の様なものである。

1. loginコマンドに特定のユーザであればログインを許可するようなコードを埋め込む。
2. 1はloginコマンドのソースコードを読めばバレるので、コンパイラに、loginコマンドをコンパイル時に1のコードを埋め込むようなコードを埋め込む
3. 2はコンパイラソースコードを読めば分かるので、コンパイラに、コンパイラソースコードコンパイルする時に2のコード埋め込むようなコードを埋め込み、かつ自分自身と同じような動作するようにコードを埋め込む

3のコンパイラは一度不正なコンパイラバイナリが生成されると、正常なソースコードを渡されても不正なコンパイラバイナリを生成するので、一定期間不正なものを渡しておいて、あとは正常なソースコードに戻してあげれば、利用者は不正なコンパイラコンパイルしてしまった後は、ソースコード上は正しく見えるコンパイラコンパイルすると不正なコンパイラになってしまい、非常に気付きづらい。

ところで、ケン・トンプソンがこのトロイの木馬を実際に実装して配布していたのではという疑惑があるが、ネットを探す限り真偽は明確ではない。

Jargon Fileによると

The Turing lecture that reported this truly moby hack was later published as “Reflections on Trusting Trust”, Communications of the ACM 27, 8 (August 1984), pp. 761--763 (text available at http://www.acm.org/classics/). Ken Thompson has since confirmed that this hack was implemented and that the Trojan Horse code did appear in the login binary of a Unix Support group machine. Ken says the crocked compiler was never distributed. Your editor has heard two separate reports that suggest that the crocked login did make it out of Bell Labs, notably to BBN, and that it enabled at least one late-night login across the network by someone using the login name “kt”.

back-door
  • ケン・トンプソンはこのトロイの木馬を実装してUNIXサポートグループのマシンに入っていたことは認めた
  • しかし、配布したことは認めていない
  • Jargon Fieの編集者によると、BBNへ配布されたこと、深夜にktというログイン名の誰かからネットワーク経由でログインされたという2つの別々の報告がある。

また、こちらのStackExchangeのスレッドによると

From: Ken Thompson
Date: Wed, Sep 28, 2011 at 6:27 PM
Subject: Re: Was compiler from "Reflections" ever built or distributed?
To: Ezra Lalonde


build and not distributed.

On Wed, Sep 28, 2011 at 11:35 AM, Ezra Lalonde wrote:
> Hi Ken,
>
> I've seen various sources on the internet claiming that the "trojan horse"
> compiler you mentioned in your talk "Reflections on Trusting Trust" was
> actually built, and some further claiming that it was distributed.
>
> I'd like to know if these claims are valid.
>
> Thanks for your time.
>
> Cheers,
> Ezra Lalonde

とメールで確認をとると、「ビルドしたが配布していない」という回答だったそうだ。

しかし、最近読んでいる「Unix考古学」では普通にサポートに利用されていたらしく書かれてあったので、ちょっと気になった。

そのため当時のUnixディストリビューションには、「ken」というユーザーアカウントが残されていました。後のTuring Award受賞講演で暴露した「トロイの木馬」は、この時期に使われていたものだと推測されます。


少し別の話になるが、この発表の中で少しhackerの道徳に関して論じている。

I would like to criticize the press in
its handling of the "hackers," the 414 gang, the Dalton
gang, etc. The acts performed by these kids are vandalism
at best and probably trespass and theft at worst. It
is only the inadequacy of the criminal code that saves
the hackers from very serious prosecution

The
act of breaking into a computer system has to have the
same social stigma as breaking into a neighbor's house.
It should not matter that the neighbor's door is unlocked.
The press must learn that misguided use of a
computer is no more amazing than drunk driving of an
automobile.

当時は414 gangという青少年達がコンピュータに不正アクセスしており、実際にデータの破壊行為も行っていた。メディアは彼らをヒーローとして持ち上げている部分もあり、それで批判しているようだ。
この時代の人なので牧歌的なのかなと勝手に思っていたのだが、かなり手厳しい。