最近 Linuxカーネルのソースコードの奇妙な変更に気付いた人もいます。 そう GitHubでカーネルコードを確認するとき 彼らは、サードパーティ(これを複製またはフォークした人)によって行われた変更がメインリポジトリに奇妙に表示されていることに気づきました。
興味深い機能が明らかになったため、これはGitHubインターフェースで一部の注目を集めました これにより、サードパーティの変更をメインプロジェクトにすでに含まれている変更として提示できます。
たとえば、今日のソーシャルネットワークでは、メインのLinuxカーネルリポジトリの公式ミラーの変更への言及が広まり始め、HID-Samsungドライバーのバックドアが置き換えられたことを示しています。
GitHubの癖がカーネル開発者を驚かせた
この対立に直面した 特にSamsungドライバーでカーネルコードをチェックし始めた人もいました カーネルのセキュリティが危険にさらされているかどうかを確認しようとすることに加えて。
状況の分析はそれを示しました GitHubは、ストレージを最適化し、サーバー上のデータの重複を最小限に抑えるために、メインリポジトリのすべてのオブジェクトを保存します それに関連付けられたフォークは、コミットの所有権を論理的に共有します。
すぐに このストレージを使用すると、コード内を閲覧しているすべてのユーザーが、関連するリポジトリ内のフォークからの確認を確認でき、URLにハッシュが明示的に示されます。
たとえば、バックドアデモの場合、ユーザーのXNUMX人がGitHubインターフェイスでメインのLinuxカーネルリポジトリのフォークを作成し、バックドアのようなコードを使用してコミットをフォークに追加しました。
その後、外部変更のSHA1識別子がメインリポジトリのURLに置き換えられたリンクを形成しました。
同様のリンクが開かれると、外部コミットがメインリポジトリのコンテキストでGitHubインターフェイスに表示されます。これは、フォークで実行され、メインリポジトリとは関係がなく、そのようなコミットが含まれていない場合でも同様です。
さらに、 GitHubインターフェースで、個々のファイルの変更ログを表示すると、メインリポジトリにもサードパーティのコミットが表示されるため、多くの混乱が生じます。
これは、ハッキングであり、Linuxカーネルのソースコードに悪意のあるコードを導入したと考えたため、一部の人を驚かせました。
さて、一見画像でわかるように、挿入されたコードはメインのLinuxカーネルリポジトリに保存されているものの一部であるように見えます。
そして、最初は、変更が加えられた外部リポジトリへの参照を作成しません。
それはすべて誤警報でした
この「エラー」(いわば)は多くの人を心配していました。なぜなら、現時点では、彼らがすでにリスクを冒しているかどうか、またはカーネルの整合性が損なわれているかどうかを知らなかったからです。
私は少し時間を過ごします そのため、データを抽出したり、gitコマンドを使用してリポジトリのクローンを作成したりすると、結果のリポジトリでのサードパーティの変更が欠落していることに気付くでしょう。
GitHubは、実際にはそうではないのに、変更を一目で示しただけです。
瞬間 それについてはもう知られておらず、Github(Microsoft)の人々がこれに解決策を与えることを念頭に置いているかどうか、これは開発に直接影響を与えませんが、カーネルソースコードを取得する場合ははるかに少なくなります。
しかし、Githubに保存されているプロジェクトの一部をレビューすることを選択した多くの人を混乱させる可能性がある場合はどうでしょうか。
Linuxカーネルコードに直接表示されるものではありませんが、他のプロジェクトのフォークにも表示されます。
したがって、このプラットフォームの多くの開発者またはユーザーがすでにGitHubの人々にいくつかの電子メールを送信している可能性があります。
このトピックについてもう少し知りたい場合訪問できます 次のリンク この状況を形成したコードがまだ表示されており、それに関するコメントも表示されています ここでそれについて。