web-dev-qa-db-ja.com

Linuxは、公衆からのオープンソース寄稿を許可する場合、どのようにして安全にすることができますか?

Linuxについての私の簡単な理解から、世界中の開発者がLinux更新に含まれるコードを提出します。その後、セキュリティ管理者によってレビューされます。承認されると、最終承認のためにLinuxの創設者であるLinusに渡されます。

このコードのすべてが世界中の未知の開発者によって提出されているので、セキュリティ管理者はどのようにしてバックドアスクリプトがOSに追加されていないことを確認できますか? 1,500万行のコードはありませんか? OSの管理者はコードのすべての行を本当に理解していて、マルウェア、バックドア、スパイウェアなどのシステムを破損する可能性のあるものを人々が提出していないことを確実に知っていますか?

4
Michael d

オープンソースソフトウェア開発の仕組みを誤解しています。誰でもカーネルを変更できるわけではないので、「世界中の未知の開発者」が不可解なコード行を提出することはありません。直接変更するには、簡単なチェックに合格するだけでなく、Linux Foundationまたはコミット権限にアクセスできる別の組織に雇われる必要があります。他のすべての人は、パブリックメーリングリストでのみ推奨改善(多くの場合、パッチの形で)を行うことができ、公式開発者が彼らの提案を受け入れ、彼らに代わって変更を加えることを期待します。パッチのレビューは非常に厳しく、パッチは受け入れられる前に多くの改訂を経なければならないことが多く、場合によっては各行が批評されます(多くの場合、些細なことのために)。

これは、クローズドソース開発とそれほど変わりません。 Microsoftでの仕事を探すだけで、誰でもMicrosoft Windowsに変更を加えることができると主張できます。唯一の違いは、オープンソースソフトウェアは開発プロセスについて透過的であることです。

このコードのすべてが世界中の未知の開発者によって提出されているので、セキュリティ管理者はどのようにしてバックドアスクリプトがOSに追加されていないことを確認できますか?

追加されたすべてがレビューされます。バックドアを仕掛ける唯一の方法は、見た目は良いが、ユーザーが知っている悪用可能なバグがあるパッチを提供することです。これは可能ですが、ほとんどありません。開発者は、驚異的な速度でバグを導入するために悪意がある必要はありません。

1,500万行のコードはありませんか?

もっと、実際に。ただし、これの大部分は、使用することのないデバイスドライバ用です。 Linuxカーネルはモノリシックです。つまり、ハードウェア関連のコードがカーネルに組み込まれています。カーネル自体のコアは実際にはそれほど大きくありません。カーネルには存在しないあいまいなカラオケマイクドライバーからのコードも含まれているという事実を数えると、それは大きく見えるだけです。

OSの管理者はコードのすべての行を本当に理解していて、マルウェア、バックドア、スパイウェアなどのシステムを破損する可能性のあるものを人々が提出していないことを確実に知っていますか?

いいえ、特に知識のある一部のシステム管理者は、カーネルが内部でどのように機能するかについて十分な知識を持っています。バグを探すLinuxカーネルのコードにはかなりの数の目があります。彼らにとってallを隠すのは難しい。はい、バグが密かに導入された可能性があります(結局のところ、一度試みられて失敗しました)。しかし、苦痛な真実は、そのような意図的なバグは、自然に存在するすべてのバグと比較して、水に落ちるということですそのような巨大なコードベースに。

12
forest

[〜#〜] tldr [〜#〜]:インフラストラクチャのセキュリティ保護に関する人々、その資格情報、および企業の利益を信頼します。

いくつかのクローズドオープンソースプロジェクトを見るとわかるように、プロジェクトは複数の小さな部分に分割され、さまざまな人が処理します。最新の Linuxカーネルレポート の時点で、約1600以上の開発者と2400万以上のコード行があります。もちろん、すべての開発者がすべてを知ることを期待することはできません。しかし、管理する適切な人を選んで、ネットワークスタックやUSBスタックなどを言うことができます。これがLinuxの機能です(詳細については、レポートを参照してください)。

あなたはその仕事にふさわしい人を選び、それから賢明に彼らを信頼してくれるのです。そうでない場合、これらの製品を使用し、インフラストラクチャまたはパッケージソリューションの安全を確保することに既得権を持つベテランおよび企業の数に関して、別の防衛線があります。それがオープンソースソフトウェアがパッチを入手する方法です。これを使用する人はバグを見つけて報告するか、報告して修正するだけです。

システムを保護するための非常に多くの方法を提供するのは、Linuxのオープンソースの性質です。それが単一の会社によって製造された場合、すべての卵を1つのバスケットに入れます。

7
Limit