GNU/Linux >> Linux の 問題 >  >> Linux

オープンソースセキュリティに関するリーナスの法則を理解する

2021年には、人々がLinuxをこれまで以上に愛する理由が増えました。このシリーズでは、Linuxを使用する21の異なる理由を共有します。この記事では、オープンソースソフトウェアのセキュリティに対するLinuxの影響について説明します。

オープンソースソフトウェアのよく評価される利点は、そのコードを誰でも誰でもレビュー(またはセキュリティ専門家が言うように「監査」)できることです。ただし、実際に多くのオープンソースユーザーにコードを最後にレビューしたのはいつかを尋ねると、真っ白な凝視から困惑したつぶやきまでさまざまな答えが得られる可能性があります。さらに、非常に大きなオープンソースアプリケーションがいくつか存在するため、コードのすべての行を効果的にレビューするのは難しい場合があります。

これらの少し不快な真実から推測すると、疑問に思う必要があります。誰もコードを見ていないとき、コードが開いているかどうかは本当に重要ですか?

オープンソースを信頼しますか?

私たちは、趣味のコンピューティングにおいて、オープンソースは他の何よりも「より安全」であるという些細な仮定をする傾向があります。それが何を意味するのか、比較の基礎は何であるのか(何よりも「安全」なのか)、あるいはどのようにして結論に到達したのかについては、あまり話しません。 オープンソースと呼んでいる限り、それは危険な発言です。 、それは自動的かつ魔法のように強化されたセキュリティを継承します。それはオープンソースの目的ではなく、実際、オープンソースのセキュリティが非常に反対していることです。

コードを個人的に監査して理解していない限り、アプリケーションが安全であると思い込まないでください。これを行ったら、究極の信頼を割り当てることができます そのアプリケーションに。究極の信頼は、コンピューターで行うことではありません。それはあなた自身の心の中で行うことです。少なくとも誰かがそのソフトウェアを悪用する方法を見つけるまでは、ソフトウェアが安全であると信じることを選択するので、あなたはソフトウェアを信頼します。

そのコードに究極の信頼を置くことができるのはあなただけなので、その贅沢を望むすべてのユーザーは自分でコードを監査する必要があります。他人の言葉を信じても意味がありません!

したがって、コードベースを自分で監査して理解するまで、アプリケーションに与えることができる最大の信頼レベルは、およそまったく信頼できないの範囲の範囲です。 かなり信頼できる 。このためのチートシートはありません。それはあなたがあなた自身のためにしなければならない個人的な選択です。アプリケーションが安全であると強く信頼している人から聞いたことがあれば、信頼できる推奨事項がないものを信頼するよりも、そのソフトウェアを信頼する可能性があります。

プロプライエタリ(非オープンソース)コードは監査できないため、究極の信頼を割り当てることはできません。 。

リーナスの法則

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

現実には、誰もがプログラマーであるわけではなく、プログラマーであるすべての人が数百行のコードをレビューすることに専念する時間があるわけではありません。したがって、自分でコードを監査する予定がない場合は、 行う人々を(ある程度)信頼することを選択する必要があります。 監査コード。

とにかく、正確に誰がコードを監査しますか?

リーナスの法則は、十分な眼球があれば、すべてのバグは浅いと主張しています。 、しかし、私たちは実際にいくつの眼球が「十分」であるかを知りません。ただし、その数を過小評価しないでください。ソフトウェアは、想像以上に多くの人にレビューされることがよくあります。元の開発者は、自分が書いたコードを明らかに知っています。ただし、オープンソースはグループでの作業であることが多いため、オープンコードが長いほど、より多くのソフトウェア開発者がそれを目にすることになります。開発者は、プロジェクトの新機能を作成するためにコードベースを学習する必要があるため、プロジェクトのコードの大部分を確認する必要があります。

オープンソースパッケージャーは、Linuxディストリビューションで利用できるようにするために、多くのプロジェクトにも関与しています。アプリケーションをコードにほとんど精通していない状態でパッケージ化できる場合もありますが、信頼できないソフトウェアをサインオフしたくないため、および変更が必要な場合があるため、パッケージャーはプロジェクトのコードに精通していることがよくあります。正しくコンパイルするために。バグレポーターやトリアージャーは、癖から大規模なクラッシュに至るまでの異常を解決しようとするときに、コードベースに慣れることもあります。もちろん、一部のバグレポーターは、コードの脆弱性を自分で確認するのではなく、明らかに意図したとおりに機能しないことに注意を向けることによって、誤ってコードの脆弱性を明らかにしています。システム管理者は、ユーザーが依存している重要なソフトウェアのコードに精通していることがよくあります。最後に、潜在的なエクスプロイトを発見するためだけにコードを掘り下げるセキュリティ研究者がいます。

信頼と透明性

主要なソフトウェアは数十万行のコードで構成されているため、基本的に監査は不可能であると考える人もいます。アプリケーションを実行するのに必要なコードの量に惑わされないでください。実際に何百万行も読む必要はありません。コードは高度に構造化されており、悪用可能な欠陥が数百万行の中に隠された1行にすぎないことはめったにありません。通常、すべての機能が関係しています。

もちろん、例外もあります。深刻な脆弱性は、1回のシステムコールで、または1つの欠陥のあるライブラリにリンクすることで有効になる場合があります。幸いなことに、セキュリティ研究者と脆弱性データベースの積極的な役割のおかげで、この種のエラーは比較的簡単に気付くことができます。

Common Vulnerabilities and Exposures(CVE)Webサイトなどのバグトラッカーを指摘し、オープンソースが安全でない日と同じくらい明白であると推測する人もいます。結局のところ、何百ものセキュリティリスクが多くのオープンソースプロジェクトに対して提起されており、誰もが見ることができます。しかし、それであなたを騙してはいけません。クローズドソフトウェアの欠陥を確認できないからといって、それらの欠陥が存在しないことを意味するわけではありません。実際、エクスプロイトが彼らに対しても提起されているため、彼らがそうしていることを私たちは知っています。違いは、すべて オープンソースアプリケーションに対するエクスプロイトは、開発者(およびユーザー)が確認できるため、これらの欠陥を軽減できます。これはオープンソースへの信頼を高めるシステムの一部であり、プロプライエタリソフトウェアにはまったく欠けています。

どのコードにも「十分な」目玉があることは決してないかもしれませんが、コードを取り巻くコミュニティがより強力で多様であればあるほど、弱点を発見して修正する可能性が高くなります。

信頼と人々

オープンソースでは、それぞれが同じプロジェクトに取り組んでいる多くの開発者が、安全ではない何かに気付いた可能性があります。 しかし、人間がこのように共謀することにめったに同意しないので、その欠陥が低いと考えられることについて、すべてが等しく沈黙している。最近、COVID-19の緩和により、人間の行動がばらばらになる可能性があることを確認しました。

  • 私たちは皆、欠陥(ウイルス)を特定しました。
  • 私たちはそれが広がるのを防ぐ方法を知っています(家にいる)。
  • 1人または複数の人が緩和計画から逸脱しているため、ウイルスは広がり続けています。

ソフトウェアのバグについても同じことが言えます。欠陥がある場合、それに気付いた人はそれを明らかにします(もちろん、誰かがそれを見た場合)。

ただし、プロプライエタリソフトウェアを使用すると、プロジェクトに取り組んでいる多くの開発者が、安全ではないものに気付く可能性が高くなりますが、プロプライエタリモデルは給与に依存しているため、同じように沈黙します。開発者が欠陥に反対して発言した場合、その開発者はせいぜいソフトウェアの評判を傷つけ、それによって売上を減少させるか、最悪の場合、彼らの仕事から解雇される可能性があります。秘密裏にソフトウェアに取り組むために報酬を支払われている開発者は、その欠陥について話す傾向がありません。開発者として働いたことがある場合は、おそらくNDAに署名し、企業秘密の重要性などについて講義を受けたことがあるでしょう。プロプライエタリソフトウェアは、深刻な欠陥に直面しても沈黙を促進し、より頻繁に強制します。

信頼とソフトウェア

監査していないソフトウェアを信用しないでください。

監査していないソフトウェアを信頼する必要がある場合は、脆弱性について独自に発言する可能性が高い多くの開発者に公開されているコードを信頼することを選択してください。

オープンソースはプロプライエタリソフトウェアより本質的に安全ではありませんが、それを修正するために導入されているシステムは、はるかに優れた計画、実装、および人員配置です。


Linux
  1. Linux用の10のオープンソース軽量Webブラウザ

  2. Linux コマンドのソース コードを入手する

  3. プロジェクトのソース コードの内部サーバーで chmod -R 777 を使用しない理由は?

  1. Linux用の10の最高のオープンソース会計ソフトウェア

  2. VSCodium –トラッカーのないオープンソースのVisual Studio Code

  3. Pixelorama –ピクセルアート用のオープンソースエディタ

  1. Linuxサーバーを実行するための4つのオープンソースツール

  2. Faucet:高速本番ネットワーク用のオープンソースSDNコントローラー

  3. Linux用の5つのオープンソース戦略とシミュレーションゲーム