web-dev-qa-db-ja.com

LinuxまたはWindows-セキュリティの問題

重複の可能性:
オープンソースシステムとクローズドソースシステム

Windowsで育ったほとんどの人は、WindowsよりもLinuxが安全であるという考え(私が持っていた)を持っているに違いありません。理由の1つは、心配する必要がないことです。 Linuxでアンチウイルスを使用しています!!

この概念の根拠は何ですか?そして、それはどの程度本当ですか?

これはLinuxのオープンソースの性質と何か関係がありますか?そのコミュニティのサポート?その基本的なアーキテクチャ(およびWindowsとの違い)?

11
pnp

ここで、悪い概念のいくつかをノックします。

1)市場シェアが少ないため、Linuxはより安全です。

公共のマシンがボット、ウイルス、ハッカーなどに終日攻撃されるサーバー市場にはありません。

http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers

2)Windowsは最近のバージョンでより安全です。

少なくともカーネルレベルでは、Windowsでのリモート実行の悪用と特権昇格のCVEレポートが多くなり、Linuxのマルチユーザー環境へのローカルDoS攻撃が増え、Windowsでより重要なCVEが見つかりました(私はCVEデータベースからの統計的な内訳がたくさんありますが、数か月前に作成した投稿が見つからないので、イライラします!Googleはそれを見つけるのに役立ちません...)。

ご覧のとおり、Server 2008にはCVE重大度のはるかに高い加重平均があります。

http://www.cvedetails.com/top-50-product-cvssscore-distribution.php (さらに、2008年の開発における過去5年間と1.2日間のすべてのLinux脆弱性!)

もちろん、Ubuntuのようなものの上で実行し、その上に一連のソフトウェアと事前構成が付属しています。それらは、その上で実行しているソフトウェアの気まぐれです。


この件についての私の意見:Linuxは多くのUnixコンセプト、ソフトウェア開発の40を中心に構築されており、人々はこれらのボックスを打ち負かして死ぬ、それは安全です主にUnixの火による裁判によるものであり、これは非常に役立ち、多くの教訓が学ばれ、Linuxに直接適用されました。


これはLinuxのオープンソースの性質と何か関係がありますか?

それの多くは、少なくともCVEのより高いvolumeが処理される速度に関係しています。これにより、多くの小さな問題を見つけて修正することもできます(主にの人気が原因です)。人気のないオープンソースは、コードと修正にほとんど関心がない)。

その基本的なアーキテクチャ(およびWindowsとの違い)?

マルチユーザー環境を中心に構築されているため、これらのシステムは一度に多数のユーザーがいるように構築されており、1人のユーザーが別のユーザーを妨害することはできません。

11
StrangeWill

有効な理由:

  1. Linuxのユーザーベースが小さいため、デスクトップLinuxはあまり魅力的ではありません。 0.1%のコンピューターだけがUbuntu 10.04を実行していて、トロイの木馬がその特定のバージョンのLinuxでしか動作しない場合、それはおそらく決してキャッチしません。トロイの木馬がWindows XPでのみ機能する場合でも、市場の最大25%を攻撃できます。
  2. 多くの場合(常にではありませんが)知識が豊富で、セキュリティを意識したユーザーベースです。とは言っても、UbuntuのようなOSはLinuxをよりアクセシブルにし、その上で馬鹿げたことをしている人を見つけることができます。

さらに、Linuxの方がより安全な設計になっていると論じることのできるやや議論の余地のある理由です(他のOSが追いついてきたので、それはもはや真実ではないかもしれません)。

  1. su/Sudoによる優れた権限分離とアクセス制御。これらは古いバージョンのWindowsには実際には存在しません。
  2. OSにプリインストールされていない新しいソフトウェア(画像エディター、LaTeX、Pythonなど)が必要だとします。 Linuxでは、99%の確率でパッケージマネージャーを使用して、信頼の連鎖から検証された暗号で署名されたソフトウェアを自動的にダウンロードしてインストールします。これは更新にも自動的に使用されます(システム全体のすべてのソフトウェアを最新の状態に保ち、セキュリティホールにすばやくパッチを適用するのが簡単です)。 Windowsでは、新しいものをインストールする必要があるほとんどの場合、それをWebで検索し、スパイウェア/ブロートウェア/トロイの木馬でソフトウェアをロードできるランダムなhttp Webサイトからダウンロードしてインストールする必要があります。代わりにMITM攻撃に感染してウイルスをダウンロード/インストールし、各アプリケーションには独自の(異なる)インストーラー/自動アップデーターがあります。 (つまり、PPA、インターネット上のランダムスクリプト、またはLinux/Windowsの両方の主要なセキュリティの脆弱性としてブラウザー拡張機能を追加していることを信頼しすぎているという人を見つけました)。
  3. ssh。 sshを介した別のリモートマシンへの標準接続は非常に便利で強力です。これは、セキュリティの点で、Windowsリモート認証よりもはるかに優れています。 sshマシンに接続するときは常に、他のマシンのホストキーが以前に使用したキーから変更されていないことを暗号で確認します。盗聴者にリプレイ攻撃をさせたり、キーロガーにパスワードを見られたりせずに、ssh秘密鍵を使用してチャレンジトークンに応答できます。次に、2つのマシン間ですべてのトラフィックが暗号化されて送信されます。さらに、Linuxボックスでセットアップするのは簡単です。
  4. さまざまな無料のLinuxセキュリティツール:SELinux、AppArmor、wireshark、iptables(またはufwのようなラッパー)、ssh、cron、top(本当にhtop)、fail2ban、tripwire、GPG、OpenSSL、md5sum/sha256sumなど。また、非常にスクリプトのセットアップ、ログファイルのスキャン、アラートの電子メール送信、コマンドラインからのすべての操作などが簡単です。これらのほとんど(すべて?)はおそらくWindowsと同等のものを持っていますが、フリーではないか、バージョン。 cronジョブの設定は基本的に、一部のタスクを自動化することであり、過去20年間とほぼ同じです。一方、Windowsで自動化タスクを設定すると、OS間で劇的な変化が生じます。

無効な理由:

  1. Linusの法則:「十分な眼球があれば、すべてのバグは浅い」ので、オープンソースはクローズドソースのソフトウェアよりも安全です。重大なセキュリティホールがオープンソースのものに数か月/年の間存在していたことが判明しているため、この議論は特に説得力があるとは思えません(たとえば Debian OpenSSL )。攻撃者がソースを読んだり、バグを探したり(または 偽装したバグをコードベースに導入しようとする )ので、さらに悪いことです。ただし、クローズソースソフトウェアの方が本質的に安全であるとは思いません-人々は間違いを犯し続け、簡単に誰かにお金を払ってプロプライエタリなコードベースに穴を開けさせることができます。明らかに、セキュリティバグとバックドアは、多くの場合、クローズドソースのソフトウェアに存在し、同様に攻撃されます。 (私はこれを多かれ少なかれネクタイと考えています。)
8
dr jimbob

Linuxのウイルス/マルウェアの状況はほぼ「通常」の状況であり、Windowsのウイルス/マルウェアの状況は統計上の異常であり、ブラックスワンよりも「ドラゴンキング」のようです。

Windowsには異常にバロックなAPIのセット、Win32、NTネイティブAPIがあり、Win32が基本的にASCIIインターフェイスであるのに対し、NTネイティブはそうであるように、それらの間にいくつかの問題がありました。 Unicode。これには、少なくともマルウェアが助長されています。Rococoの詳細の例として、任意のディレクトリで機能する魔法のデバイスのファイル名、AUX、CON、LPについて考えてください。

WindowsネイティブAPIが実際に文書化されたことは一度もありません。この文書の欠如は、他のことにも流れています。ファイル名がファイルが実行可能かどうかを判断するのはなぜですか?例として、NIMDAワームは「.eml」ファイルの問題を介して拡散しませんでした。当時、.emlファイルが実行可能であることを誰も知りませんでした。

Windowsには特権の分離という伝統はありません。実際、Windowsには単一のrootユーザーという伝統があります。多くのアプリケーションはまだこれを想定しています。 Windowsには、実行可能ファイルからデータを分離するという伝統はありません。過去にウイルスの問題を引き起こしてきた分離されていないデータと命令の例として、.docファイルに埋め込まれたWordマクロを示します。

Linuxには少なくとも上記のすべてのポイントとは逆の伝統があります。軽度に効果的な任意アクセス制御で、日常的に適用するのに十分単純でありながら、従来のファイルタイプのウイルスを寄せ付けないほど包括的です。システムコールインターフェイスはやや複雑で、ソースコードは自由に利用できるため、複数のドキュメントソースが存在します。実行可能ファイルは通常「bin」ディレクトリにあり、データは別のディレクトリにあります。各実行可能ファイルには、大規模なレジストリを共有するのではなく、独自の構成ファイルがあります。データファイルはユーザーごとのディレクトリにあり、Wordなどのデータファイルに含まれているような強力なマクロはほとんど含まれていません。

また、「Linux」は「Windows」のように実際には存在しません。何百ものディストリビューションが存在し、それぞれが低レベルの詳細のほぼすべての側面をカスタマイズしています。異なるコンパイラバージョン、異なるLinuxカーネル、一部はすべてモジュール式、一部はモジュールなし。これは、カーネルから電子メールクライアントまで、システムのほぼすべてのソフトウェアの側面に当てはまります。 「Windows」ユーザーは概してOutlook電子メールクライアントを使用しますが、Linuxユーザーは数十のバージョンの数百の異なるクライアントの配列を使用します。特定のソフトウェアの特定のバージョンのユーザーベースはありません。ユーザーベースは単に破壊されているだけではなく、粉砕されています。これにより、適切な数のホストで脆弱性を見つけたり、ソフトウェアの十分な数のインスタンスで機能するエクスプロイトを記述したりすることが非常に難しくなります。

5
Bruce Ediger

私見、3つの主な理由があります:

  • 最近まで、MSWindowsには効果的な特権の分離はありませんでした。
  • Linuxは、より技術的な知識を持つ人々(「I Love You」を宣言する電子メールに懐疑的です)によって使用される傾向があります
  • Windowsはより大きな市場浸透を持っています。

最初の点はさておき、Linuxが本質的にMSWindowsよりも安全であるかどうかは議論の余地があります(IMHOはそうですが、それはかなり長くて退屈な議論です)。

MSWindowsが以前よりも優れた権限分離を持っていることを考えると、プロレタリエイトによって使用され、強力な市場浸透を備えたLinuxの特定のディストリビューションがあり、特権分離に対して非常に珍しいアプローチを持っていることに注目することは興味深いです。多くのマルウェア開発努力-Android。

MSWindowsマシンでアンチウイルスとファイアウォールを実行しないことをお勧めしませんが、コンピューターをクリーンに保つためにできる最も重要なことは、コンピューターを適切に構成し、ベンダーが提供するパッチで最新の状態に保つことです。

4
symcbean

私は個人的に、この考えはWindowsがLinuxよりもはるかに広く使用されているという事実によるものだと感じています。さらに、Linuxは通常、ホームシステムやネットワークよりも優れたセキュリティが必要なエンタープライズ環境で使用されます。これは、LinuxがWindowsよりも安全であるという考えに貢献するかもしれません。

もちろん、適切に構成されていなくて定期的にパッチが適用されていないと、両方のシステムが脆弱になる可能性があります。どちらのシステムも、適切に設定すれば安全になる可能性があります。

3
user10211