先月Kernel.orgがハッキングされたことを昨日知り、衝撃を受けました。このようなニュースは世界的には日常茶飯事ですが、Linuxの心臓部であるKernel.orgの本拠地ではそうではありません。

捜査は多方面で継続中であることは間違いありません。Kernel.orgは448人のユーザー全員にパスワードとSSHキーの変更を徹底するよう取り組んでいます。しかしながら、朗報としては、私たち皆が熟知し愛用しているLinuxコードについては心配する必要がないようです。
ハッキングが最初に発見されて以来、その理由について3つの別々の説明が出てきました。要するに、カーネル開発はLinuxの創始者であるリーナス・トーバルズ氏独自の分散型リビジョン管理システムであるGitを使って行われているという事実に集約されます。これがなぜ大きな違いをもたらすのか、以下に説明します。
「暗号的に安全なハッシュ」
「kernel.org をクラッキングした場合の潜在的な被害は、一般的なソフトウェア リポジトリに比べてはるかに小さい」と Kernel.org の Web サイトの注意書きには記されている。
「Linuxカーネルに含まれる約4万個のファイルそれぞれについて、暗号的に安全なSHA-1ハッシュが計算され、そのファイルの正確な内容を一意に定義します」とメモには説明されている。「Gitは、カーネルの各バージョンの名前が、そのバージョンに至るまでの完全な開発履歴に基づいて決まるように設計されています。一度公開されると、誰にも気づかれずに古いバージョンを変更することはできません。」
さらに、これらのファイルとそれに関連するハッシュは、kernel.org マシンとそのミラー、および何千人ものカーネル開発者、ディストリビューション管理者、および kernel.org に関係するその他の人々のハード ドライブなど、さまざまな場所に存在すると、サイトは付け加えている。
「kernel.org リポジトリ内のファイルへの改ざんは、ほとんどの開発者が毎日行っている個人リポジトリの更新時に、各開発者にすぐに気付かれます。」
「心配する必要はありません」
LWN.net の編集長であり Linux カーネルの貢献者でもある Jonathan Corbet 氏も同様に安心させる言葉を述べています。
コーベット氏は、この侵害が「不安で恥ずかしい」ものであることを認めつつも、「カーネルソースやkernel.orgシステムでホストされている他のソフトウェアの整合性について心配する必要はない」と書いている。

「カーネル開発者が単純なソースコードファイルを配布するだけでは、侵入者が追加するマルウェアに対して脆弱になる可能性があります」とコーベット氏は説明した。「しかし、カーネル開発はそうやって行われるものではありません。」
コーベット氏は、Gitのハッシュ関数は160ビットの数値を生成し、ファイルの内容が変更されるたびにハッシュも変更されると指摘した。「攻撃者はハッシュも変更せずにファイルを変更することはできない。Gitはハッシュを定期的にチェックしているので、ファイルを破損しようとする単純な試みはほぼ即座に検知されるだろう」と彼は指摘した。
「すぐに明らかになるだろう」
さらに、コーベット氏は、「カーネルソースツリーの任意の状態において、gitは(1)そのツリーに含まれるすべてのファイルのハッシュと、(2)ツリーの以前のすべての状態のハッシュに基づいてハッシュを計算します」と付け加えました。「例えば、3.0リリースのカーネルのハッシュは02f8c6aee8df3cdc935e9bdd4f2d020306035dbeです。このハッシュを変更せずに、そのリリース内、あるいは以前のリリース内のファイルを変更する方法はありません。もし誰かが(たとえkernel.orgリポジトリであっても)異なるハッシュを持つ3.0カーネルを提示すれば、何かがおかしいことがすぐにわかるでしょう。」
さらに詳しい説明は、The H に記載されているように、Git 開発者の Junio C. Hamano のブログ投稿に記載されており、より技術的な詳細が提供されています。
結局のところ、これらの専門家の言葉が正しければ(そして私はそれが正しいと確信している)、Linux カーネルは安全かつ健全である。