Linux はどのようにしてウイルスから保護されていますか?
この質問は今週のスーパーユーザーの質問でした。 詳細はブログエントリーを読むか、自分でブログに投稿してください
71 ykombinator 2010-10-03
まあ、実際にはそうではありません…Linux システムを標的としたウイルスを開発するハッカーの対象が少なくなっているだけです。コンシューマーグレードのコンピュータは通常Windowsで動作するので、幅広いユーザーをターゲットにする場合は、Windowsの方が良いでしょう
Linux とウイルスを誤解しないでください
いくつかのディストロには、例えば Ubuntu の SELinux (こちらを参照) のような追加の保護層があります。それから、デフォルトのファイアウォールと、エイリアンファイルが自動的に実行権限を持っていないという事実があります。特定の実行許可を与えてから実行する必要があります。(こちらを参照してください)
他にも、Linux をウイルスにとって難しい場所にしている要因がいくつかあります。通常、Linux システムの非 root ユーザーは、ウイルスが検出されずに増殖するような実行ファイルを持っていません。いくつかのプログラムは、実行したり、ホーム以外のディレクトリにアクセスしたり、変更したりする前に、ルートとしてログインする必要があります (または sudo
を使用して)。Windows と同じように蔓延する可能性のあるウイルスを開発するのは、かなり難しいのです
UPDATE:
以下で述べたように、Linux を実行するマシンのほとんどは、自分が何をしているのかをよく知っている人が実行しているサーバか、またはそのどちらかです。デスクトップ用に Linux を実行している人は、通常、自分が何をしているかを知っていて、それを選択しています。ほとんどすべてのコンピュータの文盲は、Windowsを実行しているため、それらのコンピュータに感染することがはるかに簡単です。”このマシンは私にウイルスを持っていることを教えてくれて、それを取り除くために’FAKETrojanHunter’と呼ばれるこのアンチウイルスプログラムを購入しなければならない…よし、やってみよう!”
Linux のディストリビューション/インストールはどれも同じではないため、それらすべてに感染するマルウェアをできるだけ効率的に開発することが難しくなっています。さらに、Linux上で動作するほとんどすべてのソフトウェアはオープンソースであり、そのソースが公開されているため、マルウェアの検出がはるかに容易になります
104 Pylsa 2010-10-03
その理由の一つにユーザー権限があります
GNU/LinuxシステムはUnixに似たシステムで、マルチユーザ・システムとして一から構築されていることを意味します。これは、ユーザ間の責任が強く分離されていることを意味します。その結果、普通のユーザは必要な権限を持っていないので、実際にシステムに損害を与えることはできません。Windowsシステムでも限定されたアカウントが利用できるようになりましたが、GNU/Linuxシステムでは、ユーザは当然のことながら、今日の使用に限定されたアカウントを使い、設定を変更するためだけにrootアカウントを保持することが期待されています(一部のディストリビューションでは、デフォルトでrootアカウントを使って設定を変更するための他のより安全なメカニズムがあるため、ユーザがrootとしてログインすることさえ許可されていません)
一方、多くのWindowsユーザーはWindows9x時代に育ったか、その時代の影響を大きく受けています。当時はユーザーアカウントは管理者のみで、すべてのことがそのユーザーに許されていました。マルチユーザーのWindows NTを継承したWindowsシステムでは、現在でも管理者権限のあるアカウントを使うことが必須(あるいは期待されている)であり、ホームユーザーの間では限定アカウントの利用はかなり少ない
37 AndrejaKo 2010-10-03
Linux が Windows に比べて優れている点は、ファイルを実行可能にするためには、そのパーミッションを特別に設定しなければならないことです
これは、ユーザーが感染する前にそれを実行可能にする必要があるので、二重拡張のトリック(例えば “brittany_spears_naked.jpg.exe”)は動作しないことを意味します – そしてうまくいけば、彼らは画像が実行可能にする必要があることをその奇妙なと思うだろう
22 Richard 2010-10-03
Linuxは保護されていますが、無敵ではありません
セキュリティの観点から、Linux/UnixとWindowsを高いレベルで対比させる
Linux カーネル (システムのパーミッションが検査され強制される場所) は、Windows と同等のものよりもはるかに小さくなっています。小さくなるということは、よりシンプルになるということです。シンプルになるということは、予期せぬシステムの相互作用が少なく、検査が容易になるということです。”小さくなる」と「シンプルになる」は、セキュリティ分析においては良いことです。Windowsカーネルは高い速度で成長し続けている
LinuxユーザーはWindowsよりも低いパーミッションレベルで動作する傾向があり、システム全体に影響を与えることが難しくなっています
Linuxはシンプルで柔軟性のあるセキュリティモデルから始まりました。Windowsは、セキュリティモデルを持たないシステムとの下位互換性を要求してスタートしました
Linuxには、セキュリティを意識したプログラマーの仕事を楽にするための機能(
chroot(2)
など)が常にありました
これによって Linux がマルウェアに対して無防備になるわけではありません。しかし、適切に設定された Linux ホストを攻撃することは、適切に設定された Windows ホストを攻撃するよりもさらに困難です
19 mpez0 2010-10-03
質問の答えは、あなたが何を “ウイルス “と考えるかによります
ウィルスの正しい定義、つまり、既存の実行ファイルを変更するコードを使うならば、Linux がウィルスに感染しない理由は、Linux 上で悪意のあるコードを拡散させるための実行可能なメカニズムがないからです。その理由は、Linux の実行ファイルがあるコンピュータから別のコンピュータに直接転送されることはほとんどないからです。その代わり、プログラムはパッケージ管理ソフトウェアを使って転送されるか、ソースコードを配布することで転送されます。ほとんどの Linux ソフトウェアがソースから無料で入手できるという事実は、あるコンピュータから別のコンピュータにプログラムをコピーするための集中力がほとんどないことを意味します
もし「ウイルス」が「ワーム」を意味するのであれば、インターネット上でそれ自身を複製するプログラムを意味するのであれば、Linux はその攻撃から全く免れることはできません。実際、元々のインターネットワームである「Morris Worm」は、今でも多くの Linux システムにプリインストールされている Sendmail というプログラムを使って複製しました。Linux マシンに対するほぼすべての攻撃の成功例は、メールサーバや Web アプリケーションなどの脆弱なインターネットに面したアプリケーションを標的としています
最後に、あなたが一般的に悪意のあるコードを参照している場合 – 通常は “トロイの木馬 “は、Linuxを保護するものは、主に文化です。Linuxは滅多に使用されないオペレーティングシステムであるため、ターゲットとしての価値がすでに制限されています。しかし、Linux のユーザは非常に精通しており、セキュリティ意識が高いことが多いという事実を加えると、攻撃が成功する可能性はさらに低くなります。例えば、あなたの攻撃計画が、ユーザが自分自身に感染するプログラムをダウンロードして実行するように説得することに依存している場合、平均的なLinuxユーザを説得する可能性は、平均的なWindowsユーザよりも劇的に低くなります。したがって、マルウェアの作者は、ターゲットとするプラットフォームを選ぶ際には、明らかに実りの多いターゲットを選ぶようにしてください
13 tylerl 2010-10-04
Linuxには、非常に献身的なギークなコミュニティが働いていて、多少のマルウェアが書かれていたとしても、必ず解決策がある
12 ykombinator 2010-10-03
そこには様々な側面があります
- 異種環境
- 多くの異なるフレーバーと多くの異なる構成があります
- 同じ分布でも、異なる可能性の幅は非常に大きいです
- 各ディストリビューションは複数のカーネルを提供し、追加パッチをサポートしています
- 各大手企業は通常、カーネルの独自のフレーバーをロールアウトしています
- 利用者へのアプローチと強い権利行使の歴史
- Linuxがこの分野で先行しているのは、サーバー指向の開発が非常に長い歴史を持っているからです
- ウイルスは効果がありません
- Linuxは世界で最もインストールされているシステムですが、Linuxを搭載したPC/デスクトップはあまり多くありません
- サーバへの攻撃は、指示された場合には、より効率的になります
- 組込みシステム(ルータ、テレビなど)に対する攻撃は、システムの機能が限られているため、通常、努力する価値がありません
- ウイルスの作成者の現在の焦点は、Linuxのエコシステムと肉ではありません
- クリエイターは一番簡単なことを追求します
- ウイルスは Linux で隠蔽するのがはるかに難しいです
- Linux はすべての情報を公開しているオープンシステムであり、何かを隠すのは簡単ではありません
- オープンソース
- マイクロソフトは反対の主張をするかもしれませんが、コードの行ごとに何千人ものレビュアーがいて、セキュリティの欠陥を数秒でパッチを当てられる人がいることは、コードの品質とセキュリティにプラスの影響を与えていることは間違いありません
12 Šimon Tóth 2010-10-04
Linuxが主にオープンソースのソフトウェアを実行しているという事実は、ここでは大きなボーナスだと思います。誰でもコードが読めるようになると、誰かに悪意のあることをされてしまうことの方がはるかに難しいですよね
Linux ディストリビューションの公式パッケージリポジトリからのみソフトウェアをインストールする場合、ソフトウェアを入手するためにウェブからランダムな実行ファイルやインストーラーをダウンロードしなければならないWindowsよりも、おそらくはるかに安全です
もちろん、システム上で悪意のあるコードを実行させる方法は他にもありますが、この点はいずれにしても言及する価値があると思います
5 Jacob Stanley 2010-10-03
最大の理由は、Linuxオタクはリッチターゲットを作らないからです
組織犯罪の狙いは、デスクトップとすべてのアプリケーションがすでにインストールされ、よく知られたシンプルなシステムを購入する人々です。そして現在、そのような人々の大多数はWindowsを使用しており、Windowsははるかに収益性の高いターゲットとなっています
もしLinuxを追いかけて儲けられるだけのお金があれば、一日に何千もの新しいウイルスの亜種やダミーのウェブサイトを生成している今日の大規模な努力は、すぐにLinuxを屈服させたことでしょう。そして、Linuxはオープンソースであるため、ハッカーは何も逆コンパイルする必要がないだろう
すべての賢いプログラマのために、より賢いものがありますが、唯一の1つは、海賊である
5 harrymc 2010-10-09
- マルチユーザー、マルチタスクOS
- ネットワークの世界で生きるために作られた(便利なようにRFCポートは広く開放されていない)
- ActiveX(汚染のための素敵なベクトル)などというものはありません
- また、設定ファイルからのコードとデータの分離もうまく行っています
- すべてのアプリケーションとOSプログラムは、中央リポジトリのおかげで最新の状態に保たれています
- 知らないサイトを訪問してそこからソフトをダウンロードするインセンティブがない
- アップデートは、「ブラック・ツリー」ではなく、パッチを当てる問題がある場合に発生します
- ファイルの拡張子はOSにとって何の意味もありません
- 登録のような隠れたごちゃごちゃはありません
- 特権の分離のおかげで – あなたが “何か” を得る場合でも、再起動を生き残るために非常に困難です (ウイルスの定義によると)
5 jet 2011-03-14
UbuntuやLinuxMint、Fedoraのような最新のディストロに、パソコンのことをあまり知らない人(Windowsから移行した人)が増えてきています
彼らはどんなガイドやハウツーも読み、どんなスクリプトやプログラムでも喜んでダウンロードし、rootやsudoとして実行します。これらはトロイの木馬の標的になりやすいのです。事実上、ユーザーが自分のコンピュータでできることを制限しない限り、デスクトップのセキュリティは難しいと感じています
3 Xolve 2011-03-14
マルウェアライターは、より大きなターゲット市場を求めています。Linuxよりも多くの人がMacやWindowsを使っています。これはウェブサイトを構築するようなもので、人気のないブラウザで動作する前に、主要なブラウザで動作することを確認したいと考えています
2 Joshua 2010-10-14
LinuxとWindowsの比較で、人々がいつも無視していると思うことの一つは、ユーザー、彼らが誰であるか、彼らがどのように考え、行動し、どのように反応するかということです。Folk Models of Computer Security という論文は興味深いものです
Linux は (ほとんど) プリインストールされていません。これに関連して、(ほとんど)すべてのインストールは、他の何かよりも Linux を選択した人や、少なくともインストーラーを十分に知っている人によってインストールされていることを意味します。コンピュータを使う前に、最低限のコンピュータの知識というフィルターを持つことは助けになります
対照的に、Windowsは購入したほとんどのコンピュータにデフォルトでインストールされています。スキルがゼロで、Windowsコンピュータを購入してインターネットに接続し、ウイルス、ワーム、トロイの木馬などについて何も知らずに、あっという間にゾンビになってしまうことがあります
また、私は「被害者を責める」のではないと言いたい。コンピュータは複雑な無限状態機械です。セキュリティは難しい。しかし、デザインも重要です。Mac OS Xには、Windowsよりも安全だという説得力のあるセキュリティ機能はありません。また、システムにはプリインストールされているので、Macを買える人なら、スキルレベルに関係なく、誰でもMacを動かすことができます。しかし、ユーザーがどのように考え、どのようにシステムと対話するかを考えて設計されています。これにより、セキュリティホールではなく、ユーザーがそれを悪用される可能性を減らすことができます
2 Rich Homolka 2011-04-16