web-dev-qa-db-ja.com

ケントンプソンハック

私は誰かがここで言及したようにケン・サンプソンのハッキングが関与していることを理解しています

彼は/ bin/loginをハッキングしてバックドアを導入しました。ログインソースコードをコンパイルしていることを検出すると、コンパイラをハッキングして、バックドアをバイナリに導入しました。彼はまた、コンパイラーをハッキングして、コンパイル中のバックドア生成コードをコンパイラーに導入しました。

私の質問は、なぜ彼はこれらの「ハック」の両方を必要としたのかということです。また、「ケントンプソンハック」(KTH)は根絶されましたか、それとも最近発生したケースはありますか?

KTHが普及していることが判明した場合(つまり、彼が使用した特定のプログラムではなく、他のプログラムにハックを適用した場合)、KTHはどのような影響を及ぼしますか?

2
John hopkins

彼は/ bin/loginをハッキングして、バックドアを導入しました。彼は、コンパイラをハッキングして、ログインソースコードをコンパイルしていることを検出するたびにバックドアをバイナリに導入することでこれを行いました。彼はまた、コンパイラーをハッキングして、コンパイル中のバックドア生成コードをコンパイラーに導入しました。

いいえ、彼はしませんでした。彼はこれをどのようにして行うかを説明する講演を行いましたできました.

私の質問は、なぜ彼はこれらの「ハック」の両方を必要としたのかということです。

彼はしませんでした。話の要点は、コードが何らかの方法で解釈または変換されるチェーン内のanyポイントを制御できる限り、この方法でバックドアを導入できるということです。

/bin/loginのソースコードを調べて、バックドアを見つけることができます。そのため、Thompsonはバックドアをコンパイラにさらに一歩進めます。ただし、コンパイラのコードを調べて、バックドアを導入するコードを見つけることができます。そのため、トンプソンはそれをコンパイラーにさらに一歩進め、コンパイラーをコンパイルします。あなたはcould検査しますthatコンパイラのソースですが、その後何が起こるかを知っています:Thompsonはハックをコンパイラにさらに移動させ、コンパイラがコンパイラをコンパイルします。

または、ハックをリンカーに配置することもできます。または、CPU内の命令デコーダーに配置することもできます(/bin/loginを構成するバイナリー命令を検出して、代わりに別のコードを実行できます)。または、OSのバイナリローダーが/bin/loginを検出し、そのコードをスワップアウトする可能性があります。

ハックは、複数の場所に分散することもできます。

また、「ケントンプソンハック」(KTH)は根絶されましたか、それとも最近の事例がありますか?

繰り返しになりますが、話の要点は、他の誰かがパズルの1つのピースだけを制御している限り、このようなハッキングを検出することも防ぐこともできないということです。

KTHが普及していることが判明した場合(つまり、彼が使用した特定のプログラムではなく、他のプログラムにハックを適用した場合)、KTHはどのような影響を及ぼしますか?

安全を確保したい場合は、システム全体のパズルのすべてのピースを検査して制御する必要があります。独自のCPU、独自のファームウェア、独自のブートローダー、独自の周辺機器(およびtheir CPUおよびファームウェア)、独自のOS、独自のドライバー、独自のプロトコルを設計、実装、作成しない限り、あなた自身のライブラリ、あなた自身のアセンブラ、あなた自身のコンパイラ、あなた自身のリンカー、あなた自身のフレームワーク、あなた自身のアプリケーション、あなたは決して安全になることはできません。

5
Jörg W Mittag

彼は両方のハックを使用したため、Cコンパイラのソースコードはこれらのトロイの木馬が存在したことを決して示しませんでした。 (段落の残りの部分を読んだら、答えがわかります)。

はい、いくつかのケースがありますが、ハードウェアとコンパイラの互換性が高いため、以前ほど怖くはありません

私は最後のものを知りません。

0
rowboat