Linuxはどのようにウイルス、マルウェア、およびこれらの種類のものになりにくいのですか?


71

Linuxはどのようにウイルスから保護されていますか?


この質問は今週のスーパーユーザー質問でした。詳細について
ブログエントリを読むか自分でブログに投稿してください



1
クラッカーを意味すると思います。参照:cs.utah.edu/~elb/folklore/afs-paper/node9.htmlハッカーは非特定の用語です。
jnewman

1
Linuxの場合、多くのソフトウェアはオープンソースであるため、ウイルス作成者がオープンソースを使用する場合、コミュニティはこの美しい心を修復するのに役立ちます。ライターが独自の方法でソースを選択する場合は、プログラムに「独自の悪意のあるソフトウェア」というラベルを付ける必要があります。
kaykay

ほとんどのウイルスはファイルやレジストリなどの構造を攻撃するため、ウィンドウなどのファイル構造と関係があると思います。ただし、Linuxでは、ファイリングシステムと構造がいっそう安定しており、簡単に操作できません。私は...ただ、それはすべてのファイルを攻撃することができなかったとして、何もしないLinuxデスクトップ上に座って一度トロイの木馬ウイルスの聞いた
ThunderToes

回答:


104

実際、そうではありません... Linuxシステムを標的とするウイルスを開発するハッカーの影響を受けにくいのです。消費者向けのコンピューターは通常Windows上で実行されるため、幅広いユーザーを対象とする場合はWindowsが最適です。

Linuxとウイルスを誤解しないでください。Linuxウイルスは間違いなく存在します。

いくつかのディストリビューションには、SELinuxのような付加的な保護層(参照してください持っているここで例えばUbuntuの中を)。次に、デフォルトのファイアウォールと、エイリアンファイルには自動的に実行する許可がないという事実があります。実行が可能になる前に、特定の実行許可を付与する必要があります。(こちらをご覧ください

それから、Linuxをウイルスにとって困難な場所にする他のいくつかの要因があります。通常、Linuxシステムの非ルートユーザーは、ウイルスが検出されずに伝播する実行可能なファイルをほとんど使用しません。一部のプログラムではsudo、実行する前にルートとして(またはを使用して)ログインするか、ホーム以外のディレクトリにアクセス/変更する必要があります。Windowsの場合と同様に拡散する実行可能なウイルスを開発することは、はるかに困難です。

更新:

以下で説明するように、Linuxを実行するほとんどのマシンは、自分が何をしているのかを知っている人が実行するサーバーです。デスクトップ用にLinuxを実行している人は通常、自分が何をしているのかを選択し、知っています。ほとんどすべてのコンピューターは文盲でWindowsを実行しているため、これらのコンピューターを感染させるのははるかに簡単です。「ねえ、このマシンは私がウイルスを持っていることを教えてくれるので、それを取り除くために「FAKETrojanHunter」と呼ばれるこのウイルス対策プログラムを購入する必要があります

それ自体が同等のLinuxディストリビューション/インストールはないため、それらすべてに可能な限り効率的に感染するマルウェアを開発することは困難です。さらに、Linux上で実行されるほとんどすべてのソフトウェアはオープンソースであり、マルウェアはソースが一般公開されているため、マルウェアをより簡単に検出できます。


47
+1there definitely ARE Linux viruses
Sathyajith Bhat

13
ほとんどの(多くの...)サーバーがLinuxを実行しているため、実際には攻撃する価値のある巨大なインストールベースがあることに注意してください。これらのサーバーのほとんどはアンチウイルスを実行せず、問題もありません。パッケージにはエクスプロイトがありますが、通常は任意のリモートコード実行を許可しません。
リッチブラッドショー

5
実際、大部分のエクスプロイトでは、Linuxの方がWindowsよりもウイルス攻撃に対して安全ではありません。一部のクラスでは、Linuxが改善されます(たとえば、電子メールで送信された実行可能ファイルは、ユーザーへの感染が難しくなりますが、不可能ではありません)。Linuxでも同じ攻撃ベクトルが機能します(ほとんどの場合、インターネットにアクセスするプログラムでのバッファオーバーフロー)。そして、えー、私は経験の浅いユーザーは、それは彼らが(NUDIE絵、かわいいスクリーンセーバー、等。)たいものだ場合は、電子メールの添付ファイルを実行可能にするために追加の手順を取ることが同じように可能性のある意味...愚かな
エリックFunkenbusch

4
@リッチ:もちろん。Windowsサーバーもたくさんあります。ただし、サーバーは通常、コンピューターとセキュリティについての手がかりを持つ人々によって実行されるため、攻撃がはるかに困難です。コンピューターを理解していない人が管理しているコンピューターはたくさんあります。それらの大半はMicrosoft Windowsであり、残りはほとんどMac OSXであり、ほとんどすべての個人のLinuxユーザーはコンピューターを理解し、Linuxを選択したため、それを実行するため、Linuxはほとんどありません。
デビッドソーンリー

4
@ Jase21:両方のプラットフォームで作業し、両方のプラットフォームのソースコードを見た場合を除き、Linuxに「より良いコーディングプラクティス」があると言う方法がわかりません。@BloodPhilia:ここでの答えは+1です。FUDトランペットではなく、問題の根本を最も直接的に指し示しています。
ビリーONeal

37

その理由の1つはユーザー特権です。

GNU / LinuxシステムはUnixライクなシステムです。つまり、ゼロからマルチユーザーシステムになるように構築されています。つまり、ユーザー間で責任が大きく分離されます。その結果、通常のユーザーは必要な特権を持っていないため、実際にシステムを損傷することはありません。Windowsシステムでも制限付きアカウントが利用できるようになりましたが、GNU / Linuxシステムでは、当然、今日の使用に制限付きアカウントを使用し、設定を変更するためだけにrootアカウントを保持することが期待されます(デフォルトでは一部のディストリビューションでも許可されませんルートアカウントを使用して設定を変更する他の安全なメカニズムがあるため、ユーザーはルートとしてログインする必要があります)。

一方、多くのWindowsユーザーはWindows 9x時代に育てられたか、その時代が彼らに大きな影響を与えました。当時はユーザーアカウントのみが管理者であり、そのユーザーにはすべてが許可されていました。マルチユーザーWindows NTの子孫であるWindowsシステムでも、ユーザーが管理者権限を持つアカウントを使用する必要がある(または少なくとも予想される)ことが多く、ホームユーザーの間では制限付きアカウントの使用はかなり少なくなっています。


4
許可に言及するための+1-sudoは私の友人です。
トーマスO

6
制限付きユーザーとして実行し、必要に応じてUAC経由で昇格することにより、Windows上で同じ保護を取得できます。ただ言って。:)
badp

2
UACは迷惑で、私が知る限り、多くのユーザーがUACをオフにします。次に、Ubuntuを使用するため、偏見があるかもしれません。
トーマスO

@Thomas O答えを書いたとき、私はそれを目指していました。Windowsでは、UACは煩わしく、多くの場合、昇格した特権が必要です。GNU / Linuxでは、昇格された特権はそれほど必要ありません。また、多くのディストリビューションでは、ユーザー設定の変更は簡単です。ユーザー設定はしばらくの間パスワードを「記憶」しますが、UACプロンプトはすべてのアクションに対して表示されます。
AndrejaKo

5
@Thomas-Hello71が言っているのは、UACは保護されたデスクトップで動作し、対話ユーザーのデスクトップとの対話を許可されていないため、そこで実行されているアプリは「マウスを動かして」クリックできないことです。UACは、それについて何も知らない人々によってしばしばこのように誤解されているようです。
エリックファンケンブッシュ

22

LinuxがWindowsより優れている点の1つは、ファイルを実行可能にするために、その許可を明確に設定する必要があることです。

これは、ユーザーが感染する前に実行可能にする必要があるため、二重拡張子のトリック(例: " brittany_spears_naked.jpg.exe ")は機能しないことを意味します。実行可能である。


14
Linuxはファイル名拡張子をまったく使用しません。
AndrejaKo

9
技術的にはそうではありませんが、gnomeとkdeはそれらを使用して、たとえば何かが画像なのか音楽ファイルなのかを判断し、適切なプログラムに渡します。
リチャード

6
確かに、しかしGNOMEもKDEも他のデスクトップ環境も、ファイル拡張子に基づいてファイルを実行しても問題ないと想定しません。
ライアントンプソン

ファイルは権限なしでは実行できません。つまり、ファイルマネージャーは、アクセス許可を変更して実行を試みる必要さえあります。
トーマスO

1
実際、デスクトップファイル自体に実行可能のマークが付けられていない限り、Linuxデスクトップ環境ではデスクトップファイルが起動されません。したがってExec=rm -rf /、最初にデスクトップファイルを実行可能としてマークせずに、それを含む.desktopファイルをダウンロードして誤って実行することはできません。
ライアントンプソン

19

Linuxは保護されていますが、不死身ではありません。

セキュリティの観点から、Linux / UnixとWindowsの高レベルの対比:

  • Linuxカーネル(システムのアクセス許可が検査および実施される)は、Windowsの同等のものよりもはるかに小さいです。小さければ小さいほど簡単です。シンプルということは、システムの予期しない相互作用が少なくなり、検査が容易になることを意味します。セキュリティ分析では、「小さく」と「シンプル」が良いことです。Windowsカーネルは急速に成長を続けています。

  • Linuxユーザーは、Windowsよりも低いアクセス許可レベルで実行する傾向があるため、システム全体に影響を与えることは難しくなります。

  • Linuxは、シンプルで柔軟なセキュリティモデルから始まりました。Windowsは、セキュリティモデルのないシステムとの後方互換性の要件から始まりました。

  • Linuxにはchroot(2)、セキュリティを意識したプログラマーのタスクを容易にする機能(例:)が常にあります。

このいずれも、Linuxをマルウェアに対して無敵にしません。適切に構成されたLinuxホストへの攻撃は、適切に構成されたWindowsホストへの攻撃よりもさらに困難であることを意味します。


11
1.実際、Windows NTはOS / 2との競争として始まりました。すべてがあるDACLセキュリティモデル、の上で実行される多くの POSIXアクセス権よりも柔軟。2.ここでの引数のほとんどは、Windows NTではなく、オペレーティングシステムのWin9x時代に適用されます。3.実際、LinuxメインラインはWindowsのカーネルよりもはるかに急速に成長しています。NTカーネルが行う唯一の追加機能は、Windowingサブシステムを提供することです。これは、いずれにしてもセキュリティコードに近い場所ではありません。4.サイズがセキュリティに影響を及ぼすという主張は、セキュリティコードにのみ適用されます。btrfsLinuxに追加しても安全性は低下しません。
ビリーONeal

13

あなたの質問への答えは、あなたが「ウイルス」と考えるものに依存します。

あなたが使用している場合は、正しいウイルスの定義を-それは言うことです、既存の実行可能ファイルを変更するコードは、 -それはLinux上で悪質なコードを広めるための実行可能なメカニズムではありませんので、その後、Linuxはウイルスにくい理由はあります。その理由は、Linux実行可能ファイルが1つのコンピューターから別のコンピューターに直接転送されることはめったにないからです。代わりに、プログラムはパッケージ管理ソフトウェアを使用して、またはソースコードを配布することにより転送されます。ほとんどのLinuxソフトウェアがソースから無料で入手できるという事実は、あるコンピューターから別のコンピューターにプログラムをコピーするための集中力がほとんどないことを意味します。

「ウイルス」とは、「ワーム」、つまりインターネット上で自分自身を複製するプログラムを意味する場合、Linuxはその攻撃の影響をまったく受けません。実際、オリジナルのインターネットワームである「Morris Worm」は、多くのLinuxシステムにプリインストールされたプログラムであるSendmailを使用して複製されました。Linuxマシンに対するほぼすべての攻撃の成功は、メールサーバーやWebアプリケーションなどの脆弱なインターネット向けアプリケーションを対象としています。

最後に、一般的に悪意のあるコード(通常は「トロイの木馬」)に言及している場合、Linuxを保護するのは主に文化です。Linuxはめったに使用されないオペレーティングシステムであり、ターゲットとしての価値は既に制限されています。しかし、それに加えて、Linuxユーザーは非常に精通しており、セキュリティを意識していることが多いため、攻撃が成功する可能性はさらに低くなります。たとえば、攻撃計画がユーザーに自分自身に感染するプログラムをダウンロードして実行するように頼ることに依存している場合、平均的なLinuxユーザーに平均的なWindowsユーザーよりもそうするように説得する可能性は劇的に低くなります。そのため、マルウェア作成者は、ターゲットとするプラットフォームを選択するときに、明らかに実りの多いターゲットを選択します。


12

Linuxには、非常に熱心なマニア向けのコミュニティがあります。マルウェアが作成されたとしても、常に解決策があります。


5
ウイルス対策企業がこのプラットフォームに目を向けている場合、ウイルス開発に取り組むために同じオタクのセットを採用できます。結局のところ、ウイルスおよびウイルス対策業界は、実際のクラッカー/ハッカーの人々ではなく、お金によって動かされています。
マヘシュ

@マヘシュああ、私はここに陰謀説があると知っていた。(それは本当ではない、それが何であるかを呼ぶだけ。)
jnewman

1
@ジョシュ、LOL。たぶん、あなたはこれを陰謀説として感じるかもしれませんが、catcom、ePC、および他の多くのウイルス対策会社で働いている人は、より良いアイデアをあなたに与えてくれるでしょう。;)
Mahesh

12

これに貢献する多くの側面があります。

  1. 異種環境
    • さまざまなフレーバーとさまざまな構成があります。
    • 同じ分布であっても、さまざまな可能性の範囲は膨大です。
    • 各ディストリビューションは複数のカーネルを提供し、追加のパッチをサポートしています。
    • 各大企業は通常、独自のカーネルのフレーバーを展開しています。
  2. ユーザーへのアプローチと強力な権利行使の歴史
    • Linuxは、サーバー指向開発の非常に長い歴史により、この分野で自然に先を行っています。
  3. ウイルスは無効です
    • Linuxは世界で最もインストールされているシステムですが、Linuxを搭載したPC /デスクトップはあまりありません。
    • サーバーへの攻撃は、指示されたときにはるかに効率的です。
    • 組み込みシステム(ルーター、テレビなど)に対する攻撃は、システムの機能が制限されているため、通常は努力する価値はありません。
  4. ウイルス作成者の現在の焦点は、Linuxエコシステムを損なわない
    • クリエイターは最も簡単なものを求めます。
  5. Linuxでウイルスを隠すのははるかに難しい
    • Linuxはすべての情報を公開するオープンシステムであり、何かを隠すのはそれほど簡単ではありません。
  6. オープンソース
    • マイクロソフトは反対を主張するかもしれませんが、コードの各行に数千人のレビュアーがいて、さらに多くの人々が数秒でセキュリティの欠陥にパッチを当てることができることは、コードの品質とセキュリティに確実にプラスの影響を与えます。

3
「Linuxは世界で最もインストールされているシステムですか?」
GeneQ

@GeneQもちろん、他のシステムは何でしょうか?OK、公平を期して、大量生産の組み込みチップに使用される超特定のOSシステムは考慮していません(はい、実際のOSに付属しているものもあります)。
Let_Me_Be

2
それは事実上間違っています。ほとんどの組み込みチップは、オペレーティングシステムをまったく実行しません。POSIXオペレーティングシステムは、サーバーや一部の種類の携帯電話で一般的ですが、車やテレビのようなものでは一般的ではありません。
ビリーONeal

5

ここでは、Linuxが主にオープンソースソフトウェアを実行しているという事実が大きなボーナスだと思います。誰かがコードを読むことができる場合、誰かがシステムに悪意のあることをすることははるかに困難です。

Linuxディストリビューションの公式パッケージリポジトリからのみソフトウェアをインストールする場合、Windowsの場合よりもはるかに安全であり、ソフトウェアを入手するためにWebからランダムな実行可能ファイルとインストーラーをダウンロードする必要があります。

もちろん、悪意のあるコードを取得してシステムで実行できる方法は他にもありますが、とにかくこの点に言及する価値があると思います。


2
ソフトウェアがオープンソースだからといって、それが本質的に安全になるわけではありません。オープンソースは、設計が安全かどうか判断するのに役立ちますが、オープンソースはそれ自体でセキュリティを引き起こすようなことはしません。
ビリーONeal

+1はい、もちろん、ソフトウェアは純粋にオープンソースであるため安全ではありませんが、多くの人がコードを精査できることは確かに役立ちます。一方、プロプライエタリなソフトウェア、開発者がユーザーの知らないうちにソフトウェアにマルウェアを組み込むのは簡単なので、本質的に安全ではないと言います。
ジェイコブスタンレー

5

主な理由は、Linuxオタクが豊富なターゲットを作成しないことです。

組織犯罪は、デスクトップとそのすべてのアプリケーションが既にインストールされ、よく知られているシンプルなシステムを購入する人々を対象としています。そして現在、そのような人々の大多数はWindowsを使用しているため、Windowsははるかに収益性の高いターゲットになっています。

Linuxを追いかけて稼ぐお金があれば、今日の1日あたり数千の新しいウイルスの亜種やダミーのWebサイトを作成している大規模な努力が、Linuxをひざまずかせるだろうと確信しています。また、Linuxがオープンソースであるため、ハッカーは何も逆コンパイルする必要さえありません。

すべての賢いプログラマーには賢いプログラマーがいて、それだけが海賊です...


3
私はこれに反対します。90年代に戻って、WindowsはMacに比べてウイルスの数に大きな違いがありましたが、ウイルスから作られるお金はまだありませんでした。これは存在する可能性がありますが、主な理由として無効です。
リッチホモルカ

@Rich Homolka:統計によると、Windowsには現在、他のOSよりも既知の脆弱性はありません。論理的に残されている唯一の違いは、ハッカーがそれに集中していないという事実です。
harrymc

2
あなたの主張は急ぎますが、あなたの結論には同意しません。(初期の)Outlookウイルスの恐ろしい点は、OutlookがMicrosoftが設計したとおりに機能したことです。その用語の通常の意味では「脆弱性」はありませんでした。この設計は、単純に効率的なウイルス伝播プログラムでした。
リッチホモルカ

1
@Rich Homolka:あなたは過去について正しいです。また、MicrosoftのActiveX、BHO、Web DAVおよびその他の愚かさをリストすることもできます。ただし、かなりの数年の努力により、今日の状況は大幅に改善され、セキュリティはLinuxと同等になりました。今日の攻撃のほとんどはブラウザ指向であり、すべての主要なブラウザにパッチを適用する必要があります。ルーターに対する新しい攻撃は、実際にはLinuxのエクスプロイトです。
harrymc

5
  • マルチユーザー、マルチタスクOS
  • ネットワークの世界に住むように構築されています(利便性のためにRFCポートが広く開かれていません)
  • ActiveX(汚染の良いベクター)のようなものはありません
  • また、構成ファイルのデータからコードを分離することもできます。
  • 中央リポジトリのおかげで、すべてのアプリケーションとOSプログラムが最新です
  • 未知のサイトを訪問し、そこからソフトウェアをダウンロードするインセンティブはありません
  • 更新は、「ブラック木曜日」ではなく、パッチに問題がある場合に発生します
  • ファイル拡張子はOSにとって何の意味もありません
  • レジストリのような隠された混乱はありません
  • 特権の分離のおかげ-「何か」を取得したとしても、再起動を生き残ることは非常に困難です(ウイルスの定義に従って)

Linuxでアプリケーションを悪意のあるものやその他の方法で「再起動を生き残る」ことは簡単です。ルートを取得したら、モジュールを挿入し、カーネルを変更し、initスクリプトを追加または変更できます。地獄、誰かがちょうどあなたのユーザアカウントを危険にさらしても、彼らはちょうどあなたがログインするたびに実行します〜/ .bashrcのに何かを追加することができます。

些細なことですが、あなたは「if」と言いましたよね?幸運を祈ります
ジェット

あなたは「何かを得たとしても、(再起動)を生き残るのは非常に難しい」と言いました。その後、すでにネジ止め。ゲームオーバー。

うんたとえばFlashプラグイン(アドビ誰)ハイジャックし、rootとして閲覧する場合を除きはいゲームが終わっていない
ジェット

3

コンピューターについてあまり知らない(またはWindowsから移行した)人々がUbuntu、LinuxMint、Fedoraなどの最新のディストリビューションに移行する人が増えています。

ガイドやハウツーを読み、スクリプトやプログラムを喜んでダウンロードして、rootまたはsudoとして実行します。これらは、トロイの木馬の簡単な標的になり得ます。実際、ユーザーが自分のコンピューターでできることを制限しない限り、デスクトップセキュリティは難しいと感じています。


2

マルウェア作成者は、より大きなターゲット市場を望んでいます。Linuxよりも多くの人がMacやWindowsを実行しています。これは、ウェブサイトを構築するようなものです。人気のないブラウザにアクセスする前に、主要なブラウザで動作することを確認したいのです。


Linuxのさまざまなディストリビューションに関して、@ BloodPhiliaにも優れた点があると思います。多くの異なるLinuxディストリビューションに効果的に適応して拡散できるマルウェアを開発することは、非常に困難/時間のかかる作業です。
ジョシュア

LinuxはLinuxです。同じカーネル、同じコアライブラリ。悪意のあるコードは配布に依存しません。あるプロジェクトが危険にさらされ、エンドユーザーにプッシュされたパッケージに悪意のあるコードが追加された場合、その配布にのみ影響するため、実際に拡散する方法を見つけることはより困難かもしれません。フォークボムのような単純なものは、ほとんどのLinuxディストリビューションをダウンさせるでしょう。perl -e 'while(1){fork();}'

2

Linux / Windowsの比較では、人々が常に無視していると思うことの1つは、ユーザー、彼らが誰であるか、そして彼らがどのように考え、行動し、反応するかです。「コンピュータセキュリティのフォークモデル」という論文は興味深いものです。

Linuxは(ほとんど)プリインストールされていません。当然の結果として、(ほとんど)すべてのインストールは、選択、Linuxを他の何かよりも選択することを考えた人、および少なくともインストーラを使用するのに十分な知識がある人によってインストールされます。コンピューターを使用する前に、最小限のコンピューター知識のフィルターを用意しておくと役立ちます。

対照的に、Windowsは購入したほとんどのコンピューターのデフォルトのインストールです。スキルがなくてもWindowsコンピューターを購入してインターネットに接続できますが、ウイルス、ワーム、トロイの木馬などについて何も知らず、すぐにゾンビになります。

私は「犠牲者を非難する」こともしたいと思います。コンピューターは複雑な無限状態マシンです。セキュリティは難しいです。しかし、デザインも重要です。Mac OS Xには、Windowsよりも安全な強力なセキュリティ機能はありません。また、システムにプリインストールされているため、スキルレベルに関係なく、Macを購入できる人なら誰でもMacを実行できます。しかし、システムとして設計され、ユーザーがシステムをどのように考え、どのように対話するかを考えています。これにより、セキュリティホールが削減されるのではなく、ユーザーがそれらの悪用を許可する可能性が減ります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.