web-dev-qa-db-ja.com

LinuxベースのオペレーティングシステムがWindowsよりも安全であると考えられるのはなぜですか?

Linuxベースのシステムはセキュリティに優れていると聞きました。どうやら彼らはウイルスを持っていないし、ウイルス対策ソフトウェアを必要としません。私の大学でさえ、これを主張しています-彼らはサーバーにWindowsを置くことを拒否しています。これは、.NETフレームワークを使用していくつかのWebサイトを作成したかったので、本当に残念です。

Linuxの安全性を確認できる唯一の理由は、Linuxがオープンソースであるため、理論的にはバグがより早く検出され、修正されるからです。

オペレーティングシステムがどのように機能するかについては少し知っていますが、LinuxとWindowsがどのようにOSを実装するかについてはまだ詳しく説明していません。 Linuxベースのシステムをより安全にする違いを誰かが説明できますか?

19
echoblaze

オペレーティングシステムは「安全」だとは思いません。オペレーティングシステムの特定の構成には、攻撃に対するある程度の抵抗があります。

ここではおそらく「Microsoftの弁護人」であることに非難されるでしょうが、このスレッドは、「Windows」についての一般化が正しくないことに向けて非常に固執しています。

Windows 1.0-3.11、95、98、およびMEはDOSに基づいています。このオペレーティングシステムの系統には、正式な意味でのセキュリティ(保護されたアドレススペース、カーネルとユーザーモードの分離など)がありませんでした。幸い、今日「Windows」について話しているときは、これらのオペレーティングシステムについて話しているのではありません。

Windows NTファミリのオペレーティングシステム(Windows NT 3.5、3.51、4.0、2000、XP、2003、Vista、2008、および7)には、1992年の最初のリリース以降、非常に合理的なセキュリティシステムが「設計」されています。 TCSECの「オレンジブック」を念頭に置いて設計されており、完璧ではありませんが、適切に設計および実装されていると思います。

  • Windows NTは当初から「マルチユーザー」でした(ただし、同じサーバーから同時にグラフィカルユーザーインターフェイスを受信する複数のユーザーの機能は、Windows NT 3.51時代のCitrix WinFrameまでは発生しませんでした)。カーネルとユーザーモードの分離があり、アドレススペースの保護はMMUおよびCPUのハードウェア機能に依存しています)(これは非常に「Unix-y」だと思いますが、実際にはそれは非常に「VMS-y」です。)

  • NTFSのファイルシステムのアクセス許可モデルはかなり「豊富」であり、「継承」(またはその欠如)に関連するいくつかのイボがありますが、参照 NTFSの移動/コピーの設計の欠陥を回避する方法は? ) 、Unixスタイルのオペレーティングシステムが同様の機能を実装するようになったのは、過去10年ほど前のことです。 (Novell NetWareはMicrosoftにこれを打ち負かしましたが、MULTICSは両方とも負けていたと思います...> smile <)

  • 開始/停止/一時停止サービスプログラムへのアクセスを制御する許可システムを含むサービスコントロールマネージャーは非常によく設計されており、さまざまな "init.d"スクリプト "アーキテクチャ"( "紳士の契約"のような)よりもはるかに堅牢な設計になっています。 ")多くのLinuxディストリビューションで。

  • / procファイルシステムと/に緩やかに類似しているエグゼクティブオブジェクトマネージャー( http://en.wikipedia.org/wiki/Object_Manager_(Windows) を参照) devファイルシステムを組み合わせると、ファイルシステムに似たACLモデルがあり、Linuxディストリビューションの/ procまたは/ devで知っているアクセス許可モデルよりもはるかに豊富です。

  • レジストリのメリットとデメリットについて議論することはできますが、レジストリ内のキーのアクセス許可モデルは、/ etcディレクトリ内のファイルにアクセス許可を設定するモデルよりもはるかに詳細です。 (特に私はRob Shortのコメントが好きです:彼の "Behind the Code"インタビューのレジストリ: http://channel9.msdn.com/shows/Behind+The+Code/Rob -Short-Operating-System-Evolution Robは最初、Windowsレジストリの背後にいる主要な人物の1人でした。私は、彼が必ずしも結果に満足していないと言っても安全だと思います。)

Linux自体は単なるカーネルですが、WindowsはLinuxディストリビューションに類似しています。リンゴとオレンジを比較して、そのように比較しています。 Windowsは、一部のLinuxベースのシステムより「ストリップ」するのが難しいことに同意します。一方、一部のLinuxディストリビューションでは、多くの「がらくた」がオンになって出荷されます。 Windowsのさまざまな「組み込み」フレーバーの出現により、Microsoftのデフォルトとは動作が異なるWindowsの「ディストリビューション」を構築することができます(さまざまなサービスを除く、デフォルトのアクセス許可の変更など)。 。

Windowsのさまざまなバージョンには、不適切に選択されたデフォルト、権限のないユーザーが特権を取得できるバグ、サービス拒否攻撃などのシェアがあります。Unixカーネル(およびデフォルトでrootとして実行されている多くのUnixベースのアプリケーション)には、同じ問題。マイクロソフトは、Windows 2000以降、アプリケーションの区分け、最小限の特権でのプログラムの実行、およびOSの不要な機能の削除を容易にするという素晴らしい仕事をしてきました。

要するに、私が言っていることは、セキュリティに関して、特定のオペレーティングシステムのニーズに対する特定の構成は、使用しているオペレーティングシステムの種類よりも重要であるということです。 WindowsおよびLinuxディストリビューションは、セキュリティ機能に関して非常によく似た機能を備えています。どちらのOSにも、強固なセキュリティ技術(最低限の特権、オプションコンポーネントの限定的なインストール、暗号で保護された認証メカニズムなど)を適用できます。あなたが実際にするかどうかにかかわらず、それが重要です。

55
Evan Anderson

言及されていないもう1つのことは、WindowsのセキュリティはLinuxよりもはるかに不透明であることです。

たとえば、いくつかのテキストファイルを見て、自分のWebサーバーが実行しているものを正確に確認できます。 IIS?それほど多くはありません-GUIツールを通じて構成の結果を確認できますが、非表示の設定があります。次に、別のツールセットを使用して、ファイルのACLなどを確認する必要があります。

これは、Windowsのほとんどのプログラムと同じです。レジストリとACLの間で、ランタイム環境に影響しているものを正確にすばやく理解することは非常に困難です。

16
chris

そのファイル権限の比較については知りません...私がUNIX/Linux管理者だったとき、NT4にはUNIX/Linuxの従来の「777」スタイルの権限よりもはるかに細かいファイルACLがありました。もちろん、パーミッションがすべてではありません。デフォルトで実装されていなくても、最新のLinuxディストリビューションでは少なくともきめの細かいACLを利用できると確信しています。私の考えでは、Sudoとrootの概念は常にUNIXにありましたが、Windowsはこれらの概念を着実に追加してきており、おそらく現在は同等です。

私自身の解釈では、Linuxカーネルコードとその多くのドライバーとユーティリティはオープンであるため、ハッカーが悪用できるリモートの脆弱性につながる可能性のあるコーディングの誤りがはるかに広範囲にわたって見直され、はるかに頻繁に修正されます。理論は、私の頭の中でとにかく、Linuxは企業によって所有されていないため、企業ができるよりも十分にセキュリティの目標を探求できるということです。企業はお金を稼ぐ必要があります。オープンソースグループにはこの制限はありません。

Linuxシステムにアクセスし、ウィンドウシステム全体、RPCデーモンなどをシャットダウンするだけの方がはるかに簡単です。LinuxまたはBSDベースのシステムを、最低1つのパッケージがインストールされた状態で、1つまたは2つの開いたポートにして、さらに非常に便利なシステムがあります。これはおそらく、開発者のOSとしてのUNIXの遺産と関係があります。すべてが過度に相互接続されるのではなく、モジュール式に構築されました。これにより、関連性のないものを簡単に削除できる、はるかに構成可能なシステムになります。この方法でWindowsサーバーを強化するのは簡単ではないと思います。

OpenBSDグループはこの概念を極限まで引き上げました。このプログラムの主な最大の目標は、コードのすべての行をチェックして、セキュリティ上の欠陥がないかどうかを確認することです。証拠はプディングにあり、細部にまでこだわったこの熱狂的な(私はWordを使用しています)ため、OpenBSDには非常に少ない数の脆弱性が長年にわたって発見されています。

企業は素晴らしいソフトウェアを作っていますが(私の本ではMSSQL、Exchange、Windows Server 2003はすべて素晴らしいです)、目標は異なります。

11
Kyle Hodgson

私の意見では、十分に構成されたLinuxベースのシステムは、Windowsシステムよりも安全です。理由のいくつかは次のとおりです。

  1. 透過性と豊富なシンプルなネットワークツール:たとえば、Linux管理者はシェルで「iptables -L -n」と入力すると、現在のファイアウォール構成を簡単に確認できます。他のLinuxマシンから「nmap」を実行して、マシンで開いているポートを確認することもできます。これにより、アクセスを許可するポートやアドレスなどを非常に正確に指定できるので、作業が非常に簡単になります。

  2. 1つの場所にあるテキストログファイル:1つの場所にあるテキストベースのログファイル "/ var/log"は、バックアップと分析が簡単です。これらのログファイルを監視し、重要な行をメールで送信できるlogwatchのようなツールも非常に簡単です。ログファイルを分析し、関心のある情報を見つけるための独自のツールを作成することもできます。同じサーバー上にログを配置したくない場合は、ログをリモートのsyslogサーバーにエクスポートすることもできます。

  3. ウイルスについて心配しないでください。Linuxベースのシステムが少ないため、Linuxでのウイルスが少ないかどうかORすべてのユーザーがLinuxを愛しているため、またはLinuxがより安全であるためです。理由は重要ではありません。 Linuxはウイルスの脅威が少ないので、Linuxの良いところです。個人的には、同じマシンに2つのウイルス対策、スパイウェア対策、およびアドウェア対策をインストールする人がいます。これらの保護ツールはすべて、CPUとメモリを大量に消費します。

  4. 多くのプログラミング言語のサポート:Linuxでのコーディングは非常に簡単です。 C、C++、Python、Perl、Javaなどは、追加のパッケージをインストールする必要なく機能します。 (これは、DVDに入っているFedoraのような大きなディストリビューションをインストールする場合です。)コーディングによって反復的なタスクを実行できるため、セキュリティが向上します。そのため、間違いを犯して問題が発生した場合は、すべてのアカウントで発生し、簡単に検出して修正できます。多数のアカウント/ディレクトリに同じ変更を手動で行う必要がある場合、1つまたは2つの間違いを犯す可能性があり、そのような間違いを見つけるのに長い時間がかかる可能性があります。また、間違いを修正し、コードを使用して単純な間違いを探すこともできます。すべての構成ファイル、ユーザー情報ファイル、ログファイルなどはテキスト形式であるため、達成したいことは何でも簡単にコーディングでき、同じことを行う多くの方法があります。また、manページには豊富な信頼性の高い情報があり、通常、サービスを安全でない方法で構成することによるセキュリティ上の脅威について警告しています。

  5. オープンソースコード:おそらく多くの人がコードを見てきたので、一部のスパイウェア/アドウェアがLinuxに付属するアプリケーションの一部であるのは非常にまれです。一部のサービスでセキュリティが非常に重要な場合は、ソースコードを表示して、その動作を確認することもできます。それがどのように機能するかを正確に知っている場合は、制限とそれがいつ壊れるかがわかります。実際には、manページ、パッケージのWebサイト、および構成ファイルのコメントに記載されている既知のセキュリティ制限がある場合。開発者は、あなたがそのようなシナリオで私たちのツールを使用する場合、それが危険であると言って失うことは何もありません。ソフトウェアを販売する組織にとって、ソフトウェアの制限を伝えることは有利ではない場合があり、ソフトウェアの見栄えが悪くなり、販売/利益が減少する可能性があります。

  6. 無料で相互運用性:これはセキュリティとは関係ありません。コストが問題となる大学では、LinuxベースのシステムはWindowsベースのシステムよりもはるかに経済的であり、OSのライセンスや、OSのインストール後にインストールする追加のソフトウェアを購入する必要はありません。相互運用性に関する限り、Linuxマシンから他のOSに接続して、ファイルを簡単に共有できます。 Linuxでは、FAT、NTFS、HFSPLUSを含む多くのファイルシステムをマウントできます。 ftp、http、ssh、samba、nfsなどを使用して共有できます。これらはすべてインストールされるか、1つのコマンドでインストールできます。他のOSは一般に、物事を共有するオプションを1つだけ提供します。

しかし、適切に構成されていない場合、Linuxベースのシステムはより多くの問題を引き起こす可能性があり、想像できるでしょう。多くのユーザーが同時にマシンにログインして、シェルからほとんどすべてを実行できます。ファイアウォールが適切に設定されていない場合、バックドアやトロイの木馬を残しておくのは非常に簡単です。攻撃者は、ログファイルを削除するか、ログファイルを改ざんして、自分のトラックを隠すことができます。攻撃者がシェルにアクセスできるようになると、すべてのエディター、コンパイラー、デバッガーがすぐに利用できるようになるため、攻撃者は攻撃されたマシンでコードを作成できます。すべてのサーバーのftp、http、は安全なポート(1〜1024)ではなくユーザーアカウントから実行できます。そのため、攻撃者はhttpサーバーコードをダウンロードしてコンパイルし、ポート6000でhttpサーバーを実行して、Xサーバーのように見せることができます。

したがって、管理者が何をしているかを知っているか、少なくとも新しい変更を行う前にマニュアルページとドキュメントで情報を検索する必要がある場合、Linuxシステムはより安全です。

9

サーバーのセキュリティは単なるOSではありません。サーバーのセキュリティにおけるより大きな要因は、サーバーを実行している人であり、彼らが物事をロックすることについてどれだけ注意しているかだと思います。

つまり、大学がLinuxショップの場合、Windowsサーバーのセキュリティでどのようなデータを見つけても、Windowsサーバーを使用することはできません。 .Netフレームワークを使用する場合は、Mono(www.mono-project.com)の使用を検討します。

6
Adam Brand

透明度

  • ps auxfを実行すると、どのアカウントでどのサービスが実行されているかがわかります。
  • netstat -lnpを実行すると、どのプログラムがどのTCPポートを開いているか)がわかります。
  • iptables -Lを実行すると、ファイアウォールのルールがわかります。
  • straceまたはlsofを実行して、プロセスのアクティビティを検査します。
  • ls -lahまたはtree -pugを実行すると、フォルダー全体の所有権とアクセス許可が正確にわかります。
  • ログは/var/logにあり、単純な「ファイルの検索」で検査できます。
  • 非表示の設定はありません。 /etcでは、すべて人間が読める形式になっています。テキストファイルの検索、アーカイブ、またはバージョン管理(Subversion/git)の適用は非常に簡単です。

クリア許可システム

  • ベースには、ファイル権限のみがあります。 「正規表現キーに対する権限」、継承されたACL権限、プロセスごとのセキュリティコンテキスト、またはその他の隠し機能はありません。
  • 許可ビットは単純です:
    • ファイルに書き込む=ファイルの内容を編集する
    • フォルダーへの書き込み=ファイルノードの作成/名前変更/削除。
    • Sticky =自分のファイルのみを編集します。
    • 実行権限またはsetuid権限を持つファイルが強調表示されます(lsカラーモード)。
  • 単純な「すべてのファイルを検索」は、ユーザーがどのような権限を持っているかを明らかにします。
  • さらに、ACLは必要な場合にのみ使用できます。
  • ユーザーアカウントには、デフォルトでファイルを書き込む場所が2つしかありません:$HOME/tmp

高度なセキュリティオプション

  • SELinux/AppArmorは、特定のファイルセットにのみアクセスするようにプロセスを制限できます(ファイルの権限に加えて)
  • Chroot刑務所により、管理者は他のプログラムから完全に分離されたプログラムを実行できます。空のハードドライブにインストールされているかのように、本当に必要なファイルのみが含まれています。
  • Sudoを使用すると、ユーザーとプロセスに、いくつかの管理コマンドのみを実行する権限を与えることができます。

入場と特典昇格の単一ポイント

  • プロセスはそれ自体でより多くの特権を得ることができません。唯一の方法は、Sudoなどの別の「SetUID Root」プログラムを実行するか、最初にPolicyKitをチェックするDBusサービスに接続することです。これらのSetUIDプログラムは、単一の「すべてのファイルを検索」コマンドで見つけることができます。
  • プロセス間のIPCはかなり制限されており、攻撃ベクトルが減少します。
  • システムへのアクセス(テキストコンソール、リモートデスクトップ、RPC、コマンドの削除など)はすべてsshを通じて行われます。これは、公開鍵/秘密鍵をチェックするSSLトンネルです。

安全なバックグラウンドプロセス

  • バックグラウンドサービスは、できるだけ早く低い特権で実行されます。 Apache、Dovecot、Postfixなどのサービスは、着信接続を特権の低いプロセスにできるだけ早く引き渡します。
  • デフォルトではロックダウンされています。マイクロソフトは現在、Windows Server 2008でもこのアプローチを採用しています。

優れた監査ツール

  • nmapncatなどのツールを使用すると、セキュリティ監査が簡単になります。
  • コマンドラインからバックグラウンドサービスを監査できます。
  • ログ監査ツールは一般的です。
  • モジュラー方式で実行できるため、安全なサービスのコーディングは簡単です。
  • 利用可能な無料の侵入検知ツールがたくさんあります。
  • コマンドラインツールはスクリプト可能に設計されているため、管理者はタスクを自動化できます。

優れたセキュリティ更新

  • オペレーティングシステムのすべての部分がセキュリティアップデートを受信します。 Apache、PythonまたはPHP=がパッケージマネージャーを介してインストールされる場合、それらも更新を取得します。
  • セキュリティ更新プログラムが修正する内容には多くの開放性があるため、それがどのように影響するかを理解できます。
  • ソフトウェアパッケージはすべて同じライブラリを共有します。それらは別個のコピーを出荷せず、悪用可能なバージョンを残します。
  • 火曜日のパッチはありません。ハッカーがすでに実際にバグを悪用しているときに修正を待っています。
  • 開発者がセキュリティ更新プログラムをテストして展開するのは簡単です。
  • 更新を行うために再起動をスケジュールする必要はありません。既存のプロセスがディスク上の古いデータにアクセスしている間に、ファイルを置き換えることができます。その後、どのサービスを再起動する必要があるかを見つけることができます(lsof | grep =)。
  • 再インストールすることなく、オペレーティングシステム全体をアップグレードできます。

ここに記載されているすべてのもの、またはすべての主流のLinuxディストリビューション(Red Hat、Debian、openSUSE、Ubuntuなど)が提供されます。

6
vdboor

Linuxは早い段階からマルチユーザーシステムとして設計されたため、Windowsよりもはるかに強力なアクセス許可システムを備えています。また、管理者権限(rootアクセス)で実行しないように設計されているため、すべてのプログラムは権限を必要としないように設計されています。つまり、アカウントが侵害されても、システム全体は侵害されません。

Linuxを実行している人々が(一般的に言えば)より技術的であり、したがってコンピュータがハッキングされる原因となる愚かな間違いを犯す可能性が低いという事実もその原因の1つです。

5
Dentrasi

「セキュリティは制御について」

私の見解では、WindowsではLinuxよりも制御が不十分です。 Windowsの強化は...より難しい:)。どんな道具も使用者のスキルに依存しますが、私は以下を検討します:

  • Windowsには、よりリスクの高い脆弱性と自動悪用(ウイルス、ボットネット)があります。
  • Windows管理者は(侵入の恐れがあるため)偏執的である(またはそうでなければならない)ため、何らかの強化を行っています。
  • Linuxシステム管理者は、オペレーティングシステムのセキュリティを信頼しすぎて、セキュリティ強化を忘れることがある
  • ハッキングされると、より強力なコマンドラインツールがあるため、LinuxシステムではWindowsシステムよりも多くのことができます。

したがって、私はWindowsよりもLinuxを好みますが、デフォルトのインストールを信頼すべきではないと思います。

5
chmeee

最近のすべてのソフトウェアのセキュリティ修正から判断すると、問題はソフトウェアではなく、Windowsを実行しているデスクトップの数だと思います。これはボットネットを作成するためのターゲットです。 Linuxが本当にデスクトップ空間で成長するようになると、さらに攻撃されることになります。 Mac OSXはすでにこれを見ていると思います。

3
James Risto

以前の投稿のほとんどは侵入に焦点を当てており、その点をカバーする良い仕事が行われました、あなたの質問のポイントの1つはウイルスについてでした。 Linuxディストリビューションでウイルスの問題が少ない最大の理由は、LinuxとMacを組み合わせたものよりも多くのウィンドウボックスがあることです。ウイルスの作者は、その費用を最大限に活用したいと考えているため、Windows向けに作成しています。

すべてのシステムは侵入と感染の可能性があります。あなたのインストラクターであれ、他の人であれ、あなたが違うと言う人は誰でも、愚か者はユタ州にオーシャンフロントの財産を持っていてあなたを売ります。

3
WolfmanDragon

他のものより安全なOSというものはありません。それはすべて、システムを管理する人々の知識に依存します。

私は何年にもわたっていくつかの非常に才能のある* nix管理者と会って仕事をしてきましたが、彼らは非常に安全な* nixサーバーを構成することができました。ただし、Windowsホストの前にそれらを固定すると、マシンをロックダウンする方法がわかりません。同じことが他の方法でも言えますが、Windowsホストのセキュリティ保護についてはかなりの量を知っていますが、* nixボックスの前に配置すると、自分が何をしているのかわかりません。

どちらのOSも他のOSほど安全ではありません。確かに、プラットフォームの歴史について話をし、それを使用して、どちらがより安全であるかを議論することはできますが、10年前の* nix OSについて話していて、Windows NT 4を実稼働環境に展開することはできません。 。私たちは、最新のOS(または少なくとも私たちがそうでなければならない)と、より安全なOSについて話しています。

LinuxファイアウォールよりもOSのより多くの部分に触れるWindowsファイアウォールに着信するパケットについて、誰かが回答で何かを言うのを見ました。彼に質問すると、ホストで実行されているソフトウェアファイアウォールを誰が信頼するのでしょうか。これが、エンドポイント/フロントエンドファイアウォールの目的です。ネットワークを保護するため。サービスを実行しているホストには、サービスが公開されています。そのサービスが危険にさらされないようにするのは、ホストの仕事です。他のパケットがインターネットから他のサービスのホストに到達するのを防ぐのは、その前にあるネットワークデバイスの仕事です。

ネットワークが適切に保護されると、それはすべて、ホスト上で実行されているアプリケーションがどれだけ安全に保護されているかに依存します。そのアプリケーションには、悪用可能なバッファオーバーフローがありますか?公開されたアプリケーション内でOSにアクセスし、何らかの方法でより高いレベルの権限を取得する方法はありますか?そうでなければ、それは十分に安全なアプリケーションです。そこにある場合は、公開する必要がある問題があります。

誰かがデータセンターの別のOSを考慮しない場合、それは無知の兆候です(すべてのLinuxショップとすべてのWindowsショップに行きます)。どちらのOSにも用途があり、そのまま使用する必要があります。どちらも、他よりも良くも悪くもありません。 (そうです、私たちの環境には、実稼働サービスを処理するLinuxマシンがいくつかあります。)

2
mrdenny

LinuxとOpenBSDがWindowsよりも安全である可能性があるという非常に重要な理由が1つあります。これは、ネットワーク攻撃からファイアウォール自体を保護するオペレーティングシステムの機能です。

Windowsでは、Windowsファイアウォールがパケットを拒否できるようになるずっと前に、着信ネットワークパケットがオペレーティングシステムの重要な部分にさらされています。 Linuxでは、IPTablesを使用して、またはOpenBSDではPFを使用して、OSが新しいネットワークパケットを受信するプロセスのかなり早い段階で不正なパケットを分離することで、危険を減らします。

ただし、ポートを開いてサービスを実行すると(つまり、ネットワークに接続されたコンピューターを有効にすると)、そのサービスを実行するコードと同じくらい安全になります。

2
Michael Shaw

Linuxサーバーを使用するために大学を呪う必要はありません。AdamBが言ったように特定の要件については、Mono(www.mono-project.com)を使用してください。通常、OSに関心のある教授はLinuxを好む。OSの愛好家でさえ、Linuxを好むだろう。

  • セキュリティについて

linuxは、アクセス制御のためのよりスマートなシステムであるDAC(随意アクセス制御)を採用しています。他の回答で述べたように、はい、Linuxはマルチユーザーの時代に戻ったため、アクセス制御システムは他のものよりも優れています。

しかし、あなたが参照しているセキュリティは、サーバーのセキュリティのように見えます。これは、サーバーネットワーク全体の問題よりもOSの問題ではありません。ここで、ファイアウォールアクセス制御リスト、ルーターなどを意味します...更新は無料で、一生続きます。そのオープンなので、多くのテストが行​​われ、非常に重要です。

セキュリティとは別に、経済的な実行可能性により、Linuxはサーバーに最適なオプションになっています。サーバーは非常に少数ですが、アプリケーションが実行されるか、サービスをホストすることが想定されています。そして、これらのアプリケーションは非常によく移植されています。例-Apache。

それはセキュリティだけではなかったと思いますが、他のほとんどの大学のようにサーバーでLinuxを選択させる他の要因です。

1
Vivek Sharma

フレームワークに関するオペレーティングシステムのセキュリティの事実は、カーネルタイプの問題だけではありません。個々のフレームワークには、それぞれに準拠したセキュリティメカニズムがあります。 Microsoft Windows内のマルチユーザーアカウント仕様では、大規模な展開の点でもう少し柔軟性がありますが、Linuxを使用すると、権限と委任のインとアウトをT型まで制御できます。

.NET Frameworkのセキュリティレベルは、主にグループポリシー、powershell、netshコンソールの設定に関係しています。その理由は、メモリ内の動的アクセス要求を伴う低レベルアクセスパラメータでのカーネルテレメトリです。 Linuxフレームワークは多くの場合、同様のレベルの注意を必要としますが、それは主に、言語を構成するときに指定するフラグに関係しています。適切に構成されたLinuxは、Microsoft Windowsで構成されたセキュリティよりも安全であることが証明されています。 「まともな」レベルの構成ですが、ツールはIISをまっすぐ通過し、特定のGUIDを使用してサービスに直接アクセスできます。 Linux全体では、より多くのアスペクト制御が可能です

主なポイント:

inodes and NTFS index primers and permissions in Windows (including registry) 
    are easier to sift through than an EXT hardnened Linux 

protocol traversal within Linux for exception handling are easier to find 
    than a solid configured Windows Firewall. 

cache indexes within ASP.NET are easier to violate than cache management    
    technologies which are well handled within GNU and C++ libraries
    they are practically built for parallel systems now. 

SQL parse queries, have been proven over and over again; MySQL is faster. 
    than MSSQL, though Oracle has been pushing the belt. Transactional 
    security is proven to be more secure on Windows, but for performance 
    and sheer flexibility shows that MySQL should be used or something 
    along the lines of a iSQL or NSQL (not SQLAB like Berkeley SQL which 
    MSSQL is based on) 

Gateway permissions, Linux has an amazing ability to fondle packets and tiny 
    little things that Windows can only put into sorting bins. This being 
    said, if you are running a Windows network, you have more network auditing 
    than a Linux network because the packages are easier to apply walls to 
    than DLL files and protocol requests. 

Surface layer GUI, .NET Framework offers strict field definitions; while Linux 
    allows intense PCRE and other Regular Expressions. 

政府の身長:

OWASP proves over and over again that it is harder to crack a hardened Linux Server 
than it is to crack a hardened Windows Server. Why? Because the firewall and Group 
Policy does not allow as far a tuned key for aspects of the closed source framework 
within ASP.NET; Linux will let you choose a color for every letter on your command. 

NIST Shows over time that SQL management permissions are harder to parse with Windows 
while Linux PCRE makes it harder to bypass SQL queries whether it be within a GUI or 
a Web Interface. 

Carnagie Mellon shows that ASP.NET can hold higher regulations because it is built 
in a more module based context which employs the use of MVC frameworks and can potentially 
have a higher restriction. Meanwhile PHP and Java show that they are incredibly robust 
with their Obfuscation and encapsulation methodologies.

個人的な意見:

各オペレーティングシステムは、他のオペレーティングシステムよりも安全な可能性があります。 LinuxまたはWindowsでより高いセキュリティで動作するフレームワークの生の比較を見ると、Webセキュリティの主要部分は、最も互換性がありませんが効率的なフレームワークを使用していると言わざるを得ません。この方法では、ネイティブのハードドライブアクセス許可とライブラリハンドルをラッチするのがはるかに難しくなります。このようにして、オペレーティングシステムの上にやや溶接されたボウルがあります。 EvanがNTFSと/ procまたは/ devのアクセス許可で言ったように。あなたがそれに話すことができない何かを使うなら、割れにくいです。

私がWeb開発から学んだことは、フレームワークを過小評価しないことです。 .NETには、SQL Serverクラスターの共有マウントボリュームと制御メカニズムを作成する権限があります。一方、Apache SourceはLinuxを使用するオペレーティングシステムで同じことを行うことができます。 Linuxは個々のアスペクト制御と多言語の制限と監視により多くのセキュリティを許可しますが、かなりまともな質問です。一方、Windowsには、高レベルのロジックデバッグインターフェイスを備えた監査とロギングの広範な機能があります。それらは両方とも比較可能であり、最終的には「どれだけうまくいくか-あなたはそれをロックしますか?」と「ベルとホイッスルはいくつあるか?」に絞り込みます。フレームワーク内。 Apacheには、より多くのアドインセキュリティブーストがあります。 IISには、ASPによるデッドストップまたはすべての実行権限があり、モジュールプログラミング(Sharepointなど)を提供します。

LinuxまたはWindowsでPHPを比較する現時点では、Linuxオペレーティングシステム内で使用できる拡張機能が他にもあることは明らかです。 WindowsはPHPとは異なる権限管理レベルを持っているため、ディレクトリとファイルアクセスの管理が難しくなっています。たとえば、XAMPP、LAMPP、WAMPなどのApache内では、Windowsはファイアウォールと同じトンネリングルールを共有しているため、ファイアウォールの制限に違反しやすいという事実を考慮すると、Windowsは少し安全ではないと感じます。一方、Linuxは、アプリプールと、エミュレートするのがはるかに複雑なパケットレベルのセキュリティメカニズムを使用できます。 Windowsでは、ネットワークをより安全にするために、オペレーティングシステムのすべての側面を使用する必要があります。 Linuxは、CentOSやUbuntuなどのディストリビューションやフレーバーを使用する場合、オペレーティングシステムの約%60を使用することで修正できます。

最新のSEC_ATLミックスを備えたASP.NETを搭載したWindows上のIIS(WindowsクライアントではなくMicrosoftサーバー上)も非常に安全です。

Apacheだけでも、Linuxで実行して、上位および下位レベルのドライバー、SMIME、コーデック、パケットレベルのセキュリティを有効にすることができます。 Windowsでは、数千のサーバーを実行する場合に比べて、トラフィックを妨害する可能性のあるオーバーレイセキュリティメカニズムをインストールする必要があります。

Linuxでは、カーネルがよりスリムになり、ネットセキュリティに最適になります(ApacheとNSLUGの融合のように)。

Windowsでは、PowershellモジュールのプログラミングとASP.NETフレームワークの追加のオーバーレイセキュリティ、およびグループポリシーをUSGSに構成することがより好まれます。これは、ほとんどの場合、Linuxが自動的に拒否し、考えない種類のトラフィックを遮断する必要があるためです。約。

同様に、彼らは強いことができます。すぐに使えるLinuxのライブディストリビューションは、ウィザードでセットアップされた未構成のMicrosoft Windows Serverよりも強力です。

時間の経過とともに、LinuxはセキュリティゲームでWindowsを追い越します。現在、Debian 3サーバーはそのままMicrosoft Server 2008 R2よりも強力であり、カーネルを再構築せずに同じテクノロジーをサポートできると思います。 Debianはまだそれを喫煙できます。私はこれを自分の目で見ました。

それは前に言われたように私は確信していますが。それはあなたが一緒に働くスタッフと細部へのあなたの目次にかかっています。大規模なサーバーネットワークでの作業に関しては、これが常に最大の違いになります。

1
VLi

ここには多くの素晴らしい答えがありますが、安全なオペレーティングシステムというものは存在しないことも付け加えておきます。

人間が「安全な」プラットフォームを作成した場合、別の人間が時間の経過とともにそのプラットフォームに穴を見つける可能性があることが知られています。

Evanの最初の2つの文がOSのセキュリティを最もよく要約していることに同意します。

オペレーティングシステムは「安全」だとは思いません。オペレーティングシステムの特定の構成には、攻撃に対するある程度の抵抗があります。

したがって、GNU/Linux、BSDシステム(Free/Open/Net)、Microsoft、Windows、Mac OSX、Symbian、PalmOS、Cisco IOS、AIX、QNX、Solaris、z/OS、またはそれらのいずれかを比較しても問題ではありません。テレビ、MP3プレーヤー、電子レンジなどを実行するその他の「オペレーティングシステム」.

これらのそれぞれは、決定的な個人によって悪用される能力を持つ全体の一部を持っています。

このため、ほとんどのベンダーは、可能な限り安全な構成となるようにシステムをセットアップする方法に関するホワイトペーパーを用意しています。つまり、他のテクノロジーを使用して表面積を最小限に抑えます。

例えば:

  • NAT
  • リバースプロキシ
  • ファイアウォール
1
Wayne

NTは以前は欠陥があった多くの場所でUnixに追いついたので、ファイルのアクセス許可とメモリ保護は、もはや大きな差別化の問題ではありません。

しかし……。 Unixシステムでは、すべてのデバイスへのすべてのアクセスは、セキュリティを簡単に管理できるファイルを経由します。たとえば、ユーザーYを許可したまま、ユーザーXがWindowsのサウンドカードにアクセスできないようにする方法を知っていますか? Unixでは、そのようなことは簡単です。

b。ディレクトリ構造はもっとまともです。 (たとえば、ユーザーアプリケーションは、ホームフォルダーへの書き込みアクセス権などを持っている必要があるだけです)。これは、過去数年でWindowsでも同様に改善されました。

d。これは非常に重要です。SELinux(およびTrusted SolarisおよびMac OSの「Seatbelt」サンドボックス機能)。これはNDAC(Non-Discretionary Access Control)として知られています。これらの機能を備えたOSディストリビューションを実行している場合、本質的に2層のセキュリティが同時に進行します。Unixが常に備えていた通常のDAC(アクセス許可システム)と、最新バージョンのWindowsが備えているものに加えて、 SELinuxおよび類似のシステムが課す「アプリケーションファイアウォール」。たとえば、Apache Webサーバーが/ tmpへの書き込みと/ var/wwwと/ etc/Apacheからの読み取りを許可されていることを示すポリシーを設定できます。他のすべてのディスクアクセスは拒否されますに関係なくアクセス許可。同様に、ポート80でのみ着信接続を受け入れ、発信接続を行わないように指定できます。そうすれば、誰かが非常に悪いことをすることができるバグがあったとしても、Apacheがrootとして実行されていても、問題にはなりません-ポリシーはそれを防ぎます。これには(非常に小さな)速度のペナルティが必要であり、通常とは異なる構成を使用している場合は苦痛になる可能性がありますが、通常の場合、古いスタイルのUnixとWindowsの両方でセキュリティレベルが大幅に向上します。

e。レイヤー-Unixシステムは、スワップアウトできるさらに多くの個別のレイヤーとサービスで構成されています。つまり、正確性とセキュリティを個別に分析したり、スワップアウトしたりできます。これらのほとんどの場合、再起動する必要はありません。これはサーバータイプのシステムでは大きな利点です。また、Unixシステムでは不要なものを無効(およびアンインストール)する方が簡単です。たとえば、なぜWebサーバーボックスでGUIを実行しているのですか?攻撃対象領域を増やし、RAMを占有します。

f。 Windows NTはセキュリティのためにゼロから設計されたと言った人たちのために...それは本当です、カーネルは最初から高度なセキュリティとマルチユーザー機能を備えて設計されましたが、2つの主要な問題があります:1.セキュリティに関するMicrosoftの貧弱な実績、および2. OSは全体として、レガシーWindowsアプリケーションとの互換性を持つように設計されており、多くの妥協が必要でした。 Unixは常にマルチユーザーであり、セキュリティが強化されても、アプリケーションに大きな驚きはありません。つまり、妥協が少なくなります。

0
Noah

LinuxベースのシステムがWindowsシステムよりも安全であると考えられる理由はいくつかあります。

1つは、所有者のスキルです。 Best BuyまたはWal-mart(ここでは米国)に行き、あまり考えずにコンピュータを購入すると、Microsoft Windowsが実行されます。つまり、手がかりのない人が実行しているWindowsシステムは膨大な数に上ります。 Linuxコンピュータを偶然に購入する人はほとんどいないので(少なくともMicrosoftがネットブックで反撃して以来)、ほとんどのLinuxユーザーはコンピュータについて何か知っているか、誰かがコンピュータをセットアップしたことがあります。これは、何をしているのかわからない人がいるすべての環境に当てはまります。 Windowsを実行していないものと、さまざまな異なるOSを実行しているものです。

1つは攻撃者の数です。 Microsoft Windowsは、不適切に管理されたマシンがすべて存在するため、はるかに魅力的なターゲットです。高価値のLinuxターゲットはたくさんありますが、それらは一般によく管理されています(多くの高価値のWindowsターゲットとともに)。妥当な概算として、誰もLinuxコンピュータを一般的にターゲットにしています。

一つは文化です。どのUnix/Linux環境でも、ルートアカウントとユーザーアカウントは明確に区別されており、ほとんどの場合、ユーザーはルートである必要がないときにユーザーアカウントで作業します。私の経験では、Windows環境での区別ほど強力ではありません。通常、各ユーザーは、関連付けられている特権に関係なく、1つのアカウントを持っています。私は今仕事用のコンピューターを使用しており、1つのアカウント(管理者アカウント)を持っています。私が行うすべてのことは、高い特権を持つアカウントによって行われます。 Linuxボックスに戻ると、ほとんどすべての権限を制限付きのアカウントで実行し、必要に応じてエスカレーションします。妻は、職場のコンピューターに2つのアカウント(通常の管理者アカウントと制限付きの特権アカウント)を取得するように強く主張しなければなりませんでした。これにより、書き込みを実行する権限が通常のユーザーにあるかどうかを確認できました。

1つは下位互換性です。 Unixは安全なOSとしてはスタートしませんでしたが、早い段階でセキュリティが確保されました。 Linuxのプログラムは、実際にルート機能を実行しない限り、ルートとして実行する必要はありません。一方、Windowsは、管理者アカウントを必要とする多数のプログラムを実行します。これは、それが開発者が実行してテストしたものであり(上記の段落を参照)、それらの開発者は通常セキュリティを意識せず、かつてはうまく機能していたためです。これは、MicrosoftがUACで解決しようとしていた大きな問題です。私はそれが特に良い解決策であるとは思いませんが、正直に言うと、マイクロソフトがここで良い解決策を見つけることはありません(ここでは下位互換性を落とすことは良い解決策ではないと思います)。

これらは、セキュリティモデルのメリットに関係なく、ほとんどの大規模なセキュリティ問題がMicrosoftシステムで発生するという事実と、Microsoftが大きなセキュリティ問題を抱えているという認識につながります。可用性のヒューリスティックによって、人々がより多くのマイクロソフトのセキュリティ問題を考えることができるという事実は彼らの判断を偏らせます。

私の意見では、これらは正当な理由です。知識のある管理者がWindowsとLinuxのどちらのディストリビューションを実行しても、他のディストリビューションよりも脆弱であることを知らないため、実際のOSセキュリティについては触れていません。 Linuxにはオープンソースの利点があります。誰でもバグを見つけて修正できるのに対し、Microsoftはより適切に機能する場合と機能しない場合があるセキュリティ対策を導入しています。 (私が本当に安全なOSを実行したい場合は、OpenBSDを選択します。これは、安全性を追求するオープンソースOSです。)両方のOSは、適切なアクセス許可システムを持っています(私の好みはUnixですが、他の合理的な人々は同意しません)。

もちろん、安全性の低いOSを検討することには悪い理由があります。好きなOSを持っている人もいれば、他のOSを悪用する機会を無駄にしない人もいます。 MicrosoftやRichard Stallmanや他の人や組織を嫌い、関連するOSを否定する人もいます。マイクロソフトが本当にセキュリティを気にしておらず、WindowsがLinuxよりも安全性が低かったのはそれほど昔ではなかったので、Microsoftが長年にわたって変化したことに気づいていない人もいます。

0
David Thornley

以前のバージョンのWindowsでは、同じアドレス空間でアプリケーションが実行されていたため、ポインターを相互にたどることができました。彼らはまた、協調的マルチタスクに依存しており、時には協調的でなかった。

Linux/Unixのごく初期のバージョンでさえ、アプリケーション間、およびO/Sとアプリケーション層の間のパーティション分割がありました。タスクのスライスは、常に理想的ではありませんが、少なくとも公平でした。

したがって、より高い可用性を必要とするより堅牢なシステムのためのUnix(またはLinux)のレガシー。

これはすべて今日でも当てはまりますか?それは別の質問です。

0
kmarsh

主に、オープンソースソフトウェアがユビキタスに使用されているため、Linuxの方が安全な選択肢であると思われます。

落ち着きは、「コミュニティ」がどこかに魚のようなものが追加された場合(たとえば、openSSHが突然パスワードを使って家に電話をかけ始めた場合)に気付くという考えに由来します。

しかし、私は上記の他の人がすでに言ったことを十分に繰り返すことはできません:セキュリティは設定に大きく依存します:ファイアウォールがなく、nullルートパスワードとsshdで有効になっているPermitRootLoginがある場合、openSSHがホームに電話をかけていないかどうかは誰が気にしますか;)

0
msanford

短い答え:当初、UNIXは安全であるように設計されました。 Windowsはシンプルになるように設計されています。さて、UNIXの子孫は、ユーザーにとってより単純なふりをするでしょう。 Windowsはより安全なふりをしています。

彼らはまだ会っていない

0
dmityugov