開発者の雑談をサイドチャネルとして利用することで、リリース前にLinuxカーネルのセキュリティ修正が発見される

Table of Contents

開発者の雑談をサイドチャネルとして利用することで、リリース前にLinuxカーネルのセキュリティ修正が発見される

BMW、シーメンス、そしてドイツの2つの大学に所属する科学者たちは、秘密裏に開発され、難読化されたLinuxカーネルのセキュリティ修正を、公式リリース前に特定できると述べています。これは、パッチが広く利用可能になる前に、悪意のあるユーザーがエクスプロイトコードを開発・展開するために利用できる情報です。

さらに、研究チームは、Linux カーネルのパッチが、公開レビューや議論を迂回する形で定期的に導入されていることを発見しました。この慣行により、少なくとも理論的にはバックドア付きコードのリスクが生じます。

ArXiv で配布された論文 [PDF]「The Sound of Silence: オープンソース プロジェクトの秘密の統合チャネルからセキュリティ上の脆弱性をマイニングする」では、Ralf Ramsauer (レーゲンスブルク応用科学大学)、Lukas Bulwahn (BMW)、Daniel Lohmann (ハノーバー大学)、および Wolfgang Mauerer (レーゲンスブルク応用科学大学/シーメンス) が、オープンソースの脆弱性開示プロセスに対するサイドチャネル攻撃に相当するデータマイニング スキームの概要を示しています。

彼らは、Intel ベースのサーバー上の仮想マシンからデータを取得できるサイドチャネル投機的実行攻撃である 2018 レベル 1 ターミナル フォールト (L1TF) の脆弱性に対処するためのパッチ プロセスについて説明しています。

「通常のパッチとは異なり、これらのパッチは、当然のことながら、Linuxの公開コミュニケーションチャネル(例えばメーリングリスト)で事前に議論・開発されていません」と論文には記されている。「しかし、パッチが公開で議論されなかったという事実は、そのことを裏付けています。私たちは、このようなパッチが公開リポジトリに追加された時点で検出可能であることを示すつもりです。」

L1TF脆弱性のCVEエントリは2017年12月に提出されましたが、脆弱性が公表されたのは2018年8月14日だったと論文は説明しています。また、Debian 9.2はそれから5日後にパッチを提供しました。つまり、この脆弱性を事前に知っていた攻撃者は、エクスプロイトコードを設計・展開するのに数ヶ月の猶予があった可能性があるということです。

理にかなっている

ドイツの学者たちがやったことは、 2018年1月2日にThe Registerが、計画された情報公開日より前にSpectreとMeltdownのプロセッサ脆弱性に対するLinuxとWindowsのパッチ適用作業を発見したプロセスとそれほど変わらない。

私たちは、オンラインのチャットや、詳細が不審なほど省略されたパッチの議論から何かがおかしいと認識することで、コード修正作業について知りましたが、ドイツの研究者たちは、公開されている Linux メーリング リストのメッセージとコード コミットの体系的なデータ マイニングが、未公開の欠陥を探し出すのにさらに効果的である可能性があることを実証しました。

パッチ

Microsoft、Intel、Adobe、SAP、Red HatのPatch Tuesday記事に、あまりにも長い時間を費やしすぎました。クリックして、読んだふりをして、アップデートを適用すればいいだけです。

続きを読む

本質的には、Linux カーネル コードのコミットとメーリング リストの公開ディスカッションの間のギャップは、セキュリティ上の問題が発表される前に明らかになる機密コード パッチを示しています。

研究者たちは、2019年11月24日にリリースされたLinux 5.4のリリース前の7ヶ月間に、この手法を適用しました。「12件の脆弱性に対処する29件のコミットを発見しました」と論文は述べています。「これらの脆弱性に対して、私たちのアプローチは、公開され修正が展開される前に、エクスプロイトを設計するための時間的アドバンテージを2日から179日提供します。」

論文の著者らはコミットの著者らに連絡を取り、変更が未公開の欠陥に対処していることを確認した。また、Ubuntu Bionicへの統合に2ヶ月を要し、Debian Busterと4.19 Linux LTSツリーでは未修正のままとなっている「ARM64ベースのCaviumシステムに対する容易に悪用可能なサービス拒否攻撃」に対するパッチを発見したと指摘している。

コミットできない

この研究は、潜在的な懸念事項である、レビューや公開討論なしに行われたコードコミットについても触れています。著者らによると、リーナス・トーバルズ氏は2019年5月から12月の研究期間中に、このようなコミットを40件行いました。いずれもセキュリティ上の影響はありませんでした。

他の信頼できるメンテナーも同様に、主に重要度の低いスタイル上の修正を行いました。しかしながら、このプロセスのギャップを通じて信頼できないコードがLinuxカーネルに紛れ込む可能性は、論文の著者を悩ませています。

「このようなチャネルの存在は、信頼できる個人が容易にプロジェクトに侵入し、密かに悪意のあるアーティファクトを持ち込む可能性があることを示している(この可能性は否定できないが、我々の手法は具体的な事例を見つけることが可能であり、これは他の方法では不可能である)。」と論文は述べている。「このようなコミットの存在は、オープン開発モデルの重要な約束の一つに反する。」

The RegisterはLinux Foundationにコメントを求めたが、回答は得られていない。

研究者たちは論文の中で、Linuxカーネルコミュニティは彼らが提起した問題を認識しているものの、どのように対処するかはまだ決まっていないと述べています。また、今回の分析はLinuxカーネル開発に焦点を当てたものではあるものの、その手法はGCC、QEMU、U-Boot、LLVM、busyboxといった他のシステムレベルのオープンソースプロジェクトにも一般化できると指摘しています。®

Discover More