Linuxはオープンソースです。コードにバックドアやトロイの木馬がないことをどのくらい確信できますか? [閉鎖]

Linuxはオープンソースです。コードにバックドアやトロイの木馬がないことをどのくらい確信できますか? [閉鎖]

Linuxには数百万行のコードと多数のデバイスドライバがあるため、トラップドアやトロイの木馬を隠す場所がたくさんあります。大規模なプログラムを理解するには長い時間がかかり、ソフトウェアには常に潜在的な欠陥があるため、NSAやFSBがLinuxにマルウェアを導入しようとしないことは信じられません。彼らは常にWindowsとiOSのゼロデーの脆弱性を探しています。 Linuxは巡航ミサイルを含むすべてのデバイスで実行されるため、これは問題になります。

答え1

はい、あなたが言う攻撃は(サプライチェーン攻撃オープンソースプロジェクトでは)は可能であるだけでなく、悪意のある行為者によって試みられることが多いです(はい)。しかし、ソースコードが公開されているため、最終的にマルウェアが見つかるしかなく、特に大規模なプロジェクトの場合はさらにそうです。これをソースコードにアクセスできず、ベンダーを暗黙的に信頼する必要があるプライベートソースと比較すると、一般にオープンソースモデルがより安全であることがわかります。

答え2

この質問は興味深いものですが、「Linux」に対するかなり一般的な通念と誤解が含まれています。まず、Linuxオペレーティングシステムのようなものはありません。 Linuxはカーネルであり、この場合、これらの区別が重要です。

カーネルは、主要なメジャーリリースであろうとマイナーパッチリリースであろうと、絶えずリリースされる。一部のベンダーはメジャーバージョン番号を変更せずにリポジトリカーネルにパッチを適用します。これは難しいことです。セキュリティが心配な場合は、そのアプローチを使用しません。これは、2番目のレベルの可能なバグ、つまり元のLinuxカーネルバージョンを追加するためです。コードベース、第二に、デプロイメントリポジトリから安定したカーネルをパッチするために使用されるパッチのセットです。

したがって、「Linux」というものはありません。 Linuxカーネルの場合でも、特定の瞬間に行われた特定のコミットに基づくバージョンがあります。これらのリリースは長期サポートかもしれません。これは、現在、Greg Kohn-Hartmanがセキュリティ修正などのアイテムをバックポートするためにサポートライフサイクル中にこれらのリリースにパッチを適用しているか、またはディストリビューションでカーネルを選択して凍結した後にそのAブランチを維持していることを意味します。例えば、現在IBMが所有している会社であるRedhatは、内部文化の観点から他の会社に属していないときとは異なる企業です。

誰かが「linux thisまたはlinux that」と尋ねるのを見るたびに、Windows 10、11、またはOSXバージョンxまたはy、Androidバージョンxまたはy、またはiOSバージョンではなく、対応する単語に対応する実際のアイテムがないため、目をつぶす。 x または y はどちらもよく知られているエンティティです。

この問題が実際に存在し、セキュリティ問題が出版社の心を捕らえていると仮定すると、私たちがすでに知っているものは次のとおりです。

  • サーバーを含むアクセスチェーンのどこでもWindowsを実行していません。
  • Androidを使用したり、電話などで何にでもアクセスすることはできません。
  • デスクトップタイプの状況について話している場合は、Googleスパイウェア以外のChromiumなどの完全なサンドボックスブラウザを使用しています。
  • 客観的にサーバーについて話すと、GUIエントリ、デスクトップ、ウィンドウマネージャなどのセキュリティ上の脆弱性を引き起こす可能性がある追加エントリは実行されません。もしそうなら、セキュリティは明らかに優先順位ではありません。
  • 実行中のシステムは削除して実行するように構成したもののみを実行し、追加のパッケージやサービスは含まれません。つまり、Debian Net Installなど、デフォルトのベアボーンインストールを許可するディストリビューション以外のほとんどすべてのディストリビューションのデフォルトインストールではありません。

これらすべてが当てはまる場合、私たちはおそらくセキュリティにかなり深刻な努力を払っています。この時点では、適切に設定されたSELinuxやその他の適切に設定されたファイアウォールなどのLinuxカーネルセキュリティ機能に焦点を当てるのが合理的です。インターネットなど

しかし、始める前に、これらの言葉が何を意味するのかを理解することが重要です。たとえば、「Linuxは安全ですか?」と尋ねることは、基本的にこの文脈では何の意味もありません。たとえば、すべての新しいバージョンで更新された現在のカーネルを実行していると仮定すると、正しく作成されていない安全でないソフトウェアが含まれており、いくつかの標準的なハッキング技術(単純なバッファオーバーフローなど)を介してケージから出ることができます。 Xorgデスクトップを実行している場合、セキュリティはまったくありません。

SELinux(個人的には慣れていませんが、私が考えている基本的なアイデアは理解しています)が正しく設定されていると、特定の攻撃ベクトルがかなり緩和される可能性があることを理解しています。

一方、セキュリティが本当に最大の関心事であると確信していれば、OpenBSDを真剣に検討します。 OpenBSDは、セキュリティにおいて妥協しない人々によって開発されました。それは数字が優先され、他のものは何もありません。すべては次のものです。 。ところで、これは非常によく設計された素晴らしいオペレーティングシステムです。

これは非常に厳密に制御され、非常に高いコーディング標準を持っており、当分野の熟練した人々によって検査され、ランダムなコードや貢献者を全く許可しないため、真のセキュリティのための最善の選択です。また、大規模なプロジェクトではないため、設計上の攻撃面ははるかに小さく、一部のユーザーや他のユーザーに不便を与えないように、管理されていないコードやデバッグできないコードを維持する代わりに常にダンプするためです。これは安全が本当に最優先と考えられる部分です。

すべてのコードベースと同様に、トリックを導入できます。特に時間が経つにつれて、無関係なコミットに分割する場合はさらにそうです。私はこのトリックを邪悪な目的ではなく古いプロジェクトで直接使用しました。これは、ユーザーが失敗のリスクを高める方法で使用できることを知りたくなかったからです。今日まで、このトリックは誰も見つけられませんでした。とても簡単です。私はアプローチを取り、それを複数のコミットに分割し、コードの明らかに異なる場所でトリックが機能するようにする個々の論理ビットを見つけました。

しかし、Linuxを使用している人は非常に優れており、卓越性が何であるかを知り、OpenBSDに従い、企業データセンターのユーザーにとってはあまり妥協しませんが、これらのことを知って積極的に修正してきました。彼らと一緒に問題を解決してください。

したがって、これがかかしではない場合、私たちはあなたがOSXやWindowsを使用しておらず、Androidを使用していないことを知っています。少なくともセキュリティが維持される必要があるシステムにアクセスまたは処理できるものは使用しないことです。そうでない場合は、実際には問題になりません。

非自由ソフトウェアの性質と本質は、ソースコードを見ることができないということです。つまり、osxとwindowsについて質問すらできないということです。そして、私の記憶が正しいと、Windowsは最近膨大なデータ漏洩事故に遭いました。

やや驚くべきことに、OpenBSD は、OSX カーネル (osx デスクトップやプログラムではないカーネルは何でもよい) に対して、実際にセキュリティと良好なセキュリティ慣行の遵守に関してかなり高いスコアを提供します。しかし、これは私がOSXと対話したときに個人的に見たものと一致しません。ソフトウェアのさまざまな分野で、非常に不足している粗雑で非常に堅牢ではないシステムであることがわかりました。表紙の下にある内容に対する自信。オープンソースではないため確認できません。

カーネルと一緒に、またはカーネルで実行される項目(追加モジュール、ドライバ、不要な項目など)が多いほど、カーネルの上で実行される項目が多いほど、セキュリティホールが増えます。

Linuxカーネル、BSDカーネルなどの場合、レイアウトはおおよそ次のようになります。

カーネル>シェル、ツール、サーバー、プロセス管理など>ディスプレイ>デスクトップ>デスクトッププログラム。デフォルトでは、サーバーのみを実行するカーネルとサーバーと対話するシェルを実行できます。これは最も安全です。

systemdのように成長するblobは、実際のセキュリティについて話すときに非常に関連性の高い別の問題です。これは完全に追跡または理解するのが少し難しいです。これはPID 1で実行されますが、本質的にはあまりにも多くのタスクを実行するため、重要なリスク要因であると思います。ただし、systemdはLinuxを実行するために必要ではないため、セキュリティの優先順位に戻り、必要なものだけを実行し、実行中のすべてのエントリがインストールされる理由を理解しています。

つまり、私のワークステーションには約30GiBのデータを含む/パーティションがあります。そのうちの1GiBはカーネルで、残りはサーバー、プログラム、デスクトップ、ディスプレイマネージャなどです。

これは、ほとんどの人が「Linux」という用語を使用するときに言及しているので、それほど有用な用語ではありません。

しかし、私は閉じたソースOSではなく、Linuxカーネルを使用している人を信頼する傾向があります。あるいは、非自由なnvidiaカーネルドライバのblobや「ファームウェア」とも呼ばれるwifi blobのような非自由なブロックや、blobが大きいOSを使用するOSを信頼する傾向があります。 、少なくとも米国では、法的要件に基づいて非公開のソースでもあります。

しかし、それ以外にセキュリティを最優先と考えるなら、OpenBSDを実行します。第二に、私は現在Linuxを実行しているベアボーンカーネルサーバーを実行しており、必要なツールだけを正しくロックして保護して実行しています。私が知っているすべてのオペレーティングシステムの中で、OpenBSDだけが正しくロックされ保護されています。

関連情報