
コンピュータウイルス[ 1 ]は、実行されると他のコンピュータプログラムを改変し、自身のコードをそれらのプログラムに挿入することによって自己複製するマルウェアの一種です。 [ 2 ] [ 3 ]この複製が成功すると、影響を受けた領域はコンピュータウイルスに「感染」したと言われます。これは生物学的ウイルスから派生した比喩です。[ 4 ]
コンピュータウイルスは一般的にホストプログラムを必要とします。[ 5 ]ウイルスはホストプログラムに自身のコードを書き込みます。プログラムが実行されると、書き込まれたウイルスプログラムが最初に実行され、感染と損害を引き起こします。対照的に、コンピュータワームは独立したプログラムまたはコードチャンクであるため、ホストプログラムを必要としません。したがって、ホストプログラムに制限されず、独立して実行され、積極的に攻撃を実行できます。[ 6 ] [ 7 ]
ウイルス作成者は、ソーシャルエンジニアリングの手法を用いてシステムを欺き、セキュリティ脆弱性に関する詳細な知識を悪用して、最初にシステムに感染させ、ウイルスを拡散させます。ウイルスは、アンチウイルスソフトウェアを回避するために、複雑な検出回避/ステルス戦略を使用します。[ 8 ]ウイルスを作成する動機には、利益の追求(ランサムウェアなど)、政治的なメッセージを送りたいという欲求、個人的な娯楽、ソフトウェアに脆弱性が存在することを示すため、妨害やサービス拒否のため、あるいは単にサイバーセキュリティの問題、人工生命、進化アルゴリズムを探求したいという欲求などがあります。[ 9 ]
これに対し、ウイルス対策ソフトウェア業界が台頭し、さまざまなオペレーティングシステムのユーザーにウイルス対策ソフトウェアを販売または無料で配布するようになった。[ 10 ]
自己複製するコンピュータ プログラムの理論に関する最初の学術的研究は、1949 年にジョン・フォン・ノイマンによって行われ、彼はイリノイ大学で「複雑なオートマタの理論と組織」という講義を行いました。フォン・ノイマンの研究は後に「自己複製オートマタの理論」として出版されました。彼の論文の中で、フォン・ノイマンはコンピュータ プログラムが自己複製するように設計できる方法について説明しました。[ 11 ]フォン・ノイマンの自己複製するコンピュータ プログラムの設計は、世界初のコンピュータ ウイルスと考えられており、彼はコンピュータ ウイルス学の理論的な「父」と考えられています。[ 12 ]
1972年、Veith Risakは、フォン・ノイマンの自己複製に関する研究を直接発展させ、論文「Selbstreproduzierende Automaten mit minimaler Informationsübertragung」(最小限の情報交換による自己複製オートマタ)を発表した。[ 13 ]この論文では、SIEMENS 4004/35コンピュータシステム用のアセンブラプログラミング言語で書かれた、完全に機能するウイルスについて説明している。1980年、Jürgen Krausはドルトムント大学で卒業論文「Selbstreproduktion bei Programmen」(プログラムの自己複製)を執筆した。[ 14 ] Krausはこの研究で、コンピュータプログラムは生物学的ウイルスと同様の方法で動作できると仮定した。

クリーパーウイルスは、インターネットの前身であるARPANET上で1970年代初頭に初めて検出されました。 [ 15 ]クリーパーは、 1971年にBBN Technologiesのボブ・トーマスによって作成された実験的な自己複製プログラムでした。 [ 16 ]クリーパーはARPANETを使用して、TENEXオペレーティングシステムを実行しているDEC PDP-10コンピュータに感染しました。[ 17 ]クリーパーはARPANET経由でアクセスし、リモートシステムに自身をコピーして、「I'M THE CREEPER. CATCH ME IF YOU CAN!」というメッセージを表示しました。[ 18 ]クリーパーを削除するためにReaperプログラムが作成されました。[ 19 ]
1982年、「 Elk Cloner 」と呼ばれるプログラムが、作成された単一のコンピュータまたはコンピュータラボの外、つまり「野生」に出現した最初のパーソナルコンピュータウイルスとなった。[ 20 ] 1981年にピッツバーグ近郊のマウントレバノン高校の9年生、リチャード・スクレンタによって書かれたこのプログラムは、 Apple DOS 3.3オペレーティングシステムに付着し、フロッピーディスクを介して拡散した。[ 20 ] Elk Clonerウイルスは50回目の使用時にアクティブ化され、パーソナルコンピュータに感染し、「Elk Cloner: 個性を持ったプログラム」で始まる短い詩を表示する。
1984年、南カリフォルニア大学のフレッド・コーエンは論文「コンピュータウイルス― 理論と実験」を執筆した。[ 21 ]これは、自己複製プログラムを「ウイルス」と明示的に呼んだ最初の論文であり、この用語はコーエンの指導者であるレナード・アドレマンによって導入された。[ 22 ] 1987年、コーエンは、あらゆるウイルスを完全に検出できるアルゴリズムは存在しないことを示すデモンストレーションを発表した。 [ 23 ]コーエンの理論上の圧縮ウイルス[ 24 ]は、悪意のあるソフトウェア(マルウェア)ではなく、善意(善意)であると想定されるウイルスの例であった。しかし、アンチウイルス専門家は「善意のウイルス」という概念を受け入れていない。なぜなら、ウイルスを使わなくても、必要な機能は何でも実装できるからである(例えば、自動圧縮は、Windowsではユーザーの選択で利用できる)。定義上、ウイルスはコンピュータに不正な変更を加えるため、損害を与えたり意図したりしていなくても、それは望ましくない。ソロモン博士のウイルス百科事典の最初のページでは、増殖するだけのウイルスでさえも望ましくないことが説明されている。[ 25 ] [ 26 ]
「ウイルスの有用な機能」について説明した記事が、1984 年にJB Gunnによって「ユーザー制御下で仮想APLインタプリタを提供するためのウイルス機能の使用」というタイトルで発表されました。 [ 27 ]実用化された最初のIBM PC 互換ウイルスは、 (c)Brainと呼ばれるブートセクタウイルスで、[ 28 ] 1986 年に作成され、1987 年にパキスタンのラホールで Amjad Farooq Alvi と Basit Farooq Alvi によってリリースされました。伝えられるところによると、これは彼らが書いたソフトウェアの無断コピーを阻止するためでした。[ 29 ]
Microsoft Windowsを標的とした最初のウイルスであるWinVir は、Windows 3.0のリリースから 2 年後の 1992 年 4 月に発見されました。[ 30 ]このウイルスにはWindows API呼び出しは含まれておらず、代わりにDOS 割り込みに依存していました。数年後の 1996 年 2 月、ウイルス作成グループ VLAD のオーストラリアのハッカーがBizatchウイルス (別名「Boza」ウイルス) を作成しました。これは、Windows 95を標的とした最初の既知のウイルスでした。[ 31 ]このウイルスは、Windows 95 で導入された新しいポータブル実行可能ファイル (PE) を攻撃しました。[ 32 ] 1997 年後半には、暗号化されたメモリ常駐ステルスウイルスWin32.Cabanasがリリースされました。これは、 Windows NTを標的とした最初の既知のウイルスでした(Windows 3.0 および Windows 9x ホストにも感染できました)。[ 33 ]
家庭用コンピュータでさえウイルスの影響を受けていた。Amigaに最初に現れたのは、1987年11月に検出されたSCAウイルスと呼ばれるブートセクタウイルスだった。 [ 34 ] 1988年までに、あるシステム管理者は、自分のBBSでダウンロード可能なソフトウェアの15%がウイルスに感染していることを発見したと報告している。[ 35 ]
コンピュータウイルスは一般的に、新しいファイルを見つけて感染させる感染メカニズム、実行される悪意のあるコードであるペイロード、ペイロードをアクティブ化するタイミングを決定するトリガーの3つの部分から構成されます。[ 36 ]
ウイルスのライフサイクルは、生物学になぞらえて説明される。このライフサイクルは、以下の4つの段階に分けられる。
コンピュータウイルスは、ホストコンピュータやソフトウェア上のさまざまなサブシステムに感染します。[ 44 ]ウイルスを分類する方法の1つは、バイナリ実行可能ファイル( .EXEや.COMファイルなど)、データファイル( Microsoft Word文書やPDFファイルなど)、ホストのハードドライブのブートセクタ(またはこれらの組み合わせ)に存在するかどうかを分析することです。[ 45 ] [ 46 ]
Aメモリ常駐型ウイルス(または単に「常駐型ウイルス」)は、実行時にオペレーティングシステムの一部としてインストールされ、コンピュータの起動時からシャットダウン時までRAM割り込み処理コードやその他の関数、オペレーティングシステムがターゲットファイルまたはディスクセクタにアクセスしようとすると、ウイルスコードが要求を傍受し、制御フロー複製モジュールにリダイレクトしてターゲットを感染させます。これに対し、非メモリ常駐型ウイルス(または「非常駐型ウイルス」)は、実行されるとディスクをスキャンしてターゲットを探し、感染させてから終了します(つまり、実行が完了した後はメモリに残りません)。 [ 47 ]
Microsoft OutlookやMicrosoft Wordなど、多くの一般的なアプリケーションでは、マクロプログラムがドキュメントや電子メールに埋め込まれており、ドキュメントを開いたときにプログラムが自動的に実行されるようになっています。マクロ ウイルス(または「ドキュメント ウイルス」) は、マクロ言語で記述され、これらのドキュメントに埋め込まれたウイルスで、ユーザーがファイルを開くとウイルス コードが実行され、ユーザーのコンピュータに感染する可能性があります。これが、電子メールで予期しないまたは疑わしい添付ファイルを開くことが危険な理由の 1 つです。[ 48 ] [ 49 ]知らない人や組織からの電子メールの添付ファイルを開かないようにすることで、ウイルスに感染する可能性を減らすことができますが、場合によっては、電子メールが評判の良い組織 (たとえば、大手銀行やクレジットカード会社) からのものであるように見えるようにウイルスが設計されています。
Aブートセクタウイルスは、ホストのハードディスクドライブ、ソリッドステートドライブ、またはリムーバブルストレージメディア(フラッシュドライブ、フロッピーディスクなど)ブートセクタおよび/またはマスターブートレコード[ 50 ] (MBR)を特に標的とします。 [ 51 ]
ブートセクタにおけるコンピュータウイルスの最も一般的な伝播方法は、物理メディアを使用することです。コンピュータに接続された感染したフロッピーディスクまたはUSBフラッシュドライブがドライブのVBRを読み取ると、データが転送され、既存のブートコードが変更されたり置き換えられたりします。次にユーザーがデスクトップを起動しようとすると、ウイルスはマスターブートレコードの一部としてすぐにロードされ、実行されます。[ 52 ]
メールウイルスは、偶発的ではなく意図的にメールシステムを利用して拡散するウイルスです。ウイルスに感染したファイルが誤ってメールの添付ファイルとして送信されることもありますが、メールウイルスはメールシステムの機能を認識しています。通常、特定の種類のメールシステム(Microsoft Outlookが最もよく使われています)を標的にし、さまざまなソースからメールアドレスを収集し、送信するすべてのメールに自身のコピーを付加したり、自身のコピーを添付ファイルとして含むメールメッセージを生成したりします。[ 53 ]
ユーザーによる検出を回避するために、一部のウイルスはさまざまな種類の欺瞞手段を使用します。特にDOSプラットフォーム上の古いウイルスの中には、ホスト ファイルがウイルスに感染しても「最終更新日」が同じままになるようにするものがあります。しかし、この方法は、特にファイル変更の循環冗長チェックを維持して日付を記録するアンチ ウイルスソフトウェアを騙すことはできません。 [ 54 ]一部のウイルスは、ファイルのサイズを増やしたり、ファイルを破損させたりすることなく、ファイルに感染することができます。これは、実行可能ファイルの未使用領域を上書きすることによって実現されます。これらはキャビティ ウイルスと呼ばれます。たとえば、CIH ウイルス、またはチェルノブイリ ウイルスは、ポータブル実行可能ファイルに感染します。これらのファイルには多くの空き領域があるため、長さが 1 KBのウイルスはファイルのサイズを増やしませんでした。[ 55 ]一部のウイルスは、アンチ ウイルス ソフトウェアが検出する前に、アンチ ウイルス ソフトウェアに関連付けられたタスクを終了させることによって検出を回避しようとします (たとえば、Conficker )。ウイルスは、ルートキットを使用してシステムプロセスの一覧に表示されないようにしたり、信頼できるプロセス内に潜り込んだりすることで、その存在を隠すこともあります。[ 56 ] 2010年代には、コンピュータとオペレーティングシステムが大規模かつ複雑化するにつれて、古い隠蔽技術を更新または置き換える必要が生じています。コンピュータをウイルスから守るには、ファイルシステムがあらゆる種類のファイルアクセスに対して詳細かつ明示的な許可を与える方向へ移行する必要があるかもしれません。さらに、既知のウイルスのうち実際に実際のインシデントを引き起こすのはごく一部に過ぎません。これは主に、多くのウイルスが理論上の流行閾値を下回っているためです。[ 57 ]
ウイルス対策ソフトウェアの中には、ステルス機構に対抗するために様々な技術を採用しているものもありますが、一度感染が発生すると、システムを「クリーンアップ」する手段は信頼できません。Microsoft Windows オペレーティングシステムでは、NTFS ファイルシステムは独自規格です。そのため、ウイルス対策ソフトウェアは、そのような要求を処理する Windows ファイルに「読み取り」要求を送信する以外にほとんど選択肢がありません。一部のウイルスは、オペレーティングシステムへの要求を傍受することで、ウイルス対策ソフトウェアを欺きます。ウイルスは、感染したファイルを読み取る要求を傍受し、要求を自身で処理し、感染していないバージョンのファイルをウイルス対策ソフトウェアに返すことで身を隠すことができます。傍受は、読み取り要求を処理する実際のオペレーティングシステムファイルにコードを注入することで発生する可能性があります。したがって、ウイルスを検出しようとするウイルス対策ソフトウェアは、感染したファイルを読み取ることが許可されないか、「読み取り」要求に対して同じファイルの感染していないバージョンが返されることになります。[ 58 ]
「ステルス」ウイルスを回避する唯一の確実な方法は、「クリーン」であることがわかっているメディアから起動することです。その後、セキュリティ ソフトウェアを使用して、休止状態のオペレーティングシステム ファイルをチェックできます。ほとんどのセキュリティ ソフトウェアは、ウイルス シグネチャに依存するか、ヒューリスティックを使用します。[ 59 ] [ 60 ]セキュリティ ソフトウェアは、Windows OS ファイルのファイル「ハッシュ」のデータベースを使用することもあります。これにより、セキュリティ ソフトウェアは変更されたファイルを識別し、Windows インストール メディアに正規のバージョンに置き換えるよう要求できます。古いバージョンの Windows では、Windows に保存されている Windows OS ファイルのファイル暗号化ハッシュ関数(ファイルの整合性/真正性をチェックできるようにするため)が上書きされる可能性があり、システム ファイル チェッカーが変更されたシステム ファイルが正規であると報告するため、ファイル ハッシュを使用して変更されたファイルをスキャンしても、感染が必ず見つかるとは限りません。[ 61 ]
最新のウイルス対策プログラムのほとんどは、いわゆるウイルスシグネチャをスキャンすることで、通常のプログラム内にウイルスパターンを見つけようとします。[ 62 ]ウイルス対策プログラムは、ウイルスを識別する際に異なる検索方法を使用します。ウイルススキャナがファイル内にそのようなパターンを見つけた場合、ウイルスが見つかったことを確認するために他のチェックを実行し、無害なファイル内の単なる偶然のシーケンスではないことを確認してから、ファイルが感染していることをユーザーに通知します。その後、ユーザーは感染したファイルを削除したり、(場合によっては)「クリーン」または「修復」したりできます。一部のウイルスは、シグネチャによる検出を困難にするものの、おそらく不可能ではない技術を使用します。これらのウイルスは、感染するたびにコードを変更します。つまり、感染したファイルごとに、ウイルスの異なる亜種が含まれます。
署名検出を回避する方法の 1 つは、単純な暗号化を使用してウイルス本体を暗号化 (エンコード) し、暗号化モジュールと静的な暗号鍵のみを平文で残し、感染ごとに変更しないようにすることです。[ 63 ]この場合、ウイルスは小さな復号モジュールとウイルスコードの暗号化されたコピーで構成されます。ウイルスが感染したファイルごとに異なる鍵で暗号化されている場合、ウイルスの中で一定のまま残るのは復号モジュールだけであり、これは (たとえば) 末尾に追加されます。この場合、ウイルススキャナは署名を使用してウイルスを直接検出することはできませんが、復号モジュールは検出できるため、間接的にウイルスを検出することは可能です。これらは感染したホストに保存される対称鍵であるため、最終的なウイルスを復号することは完全に可能ですが、自己変更コードは非常にまれであるため、そのようなコードが見つかった場合、ウイルススキャナが少なくともファイルを疑わしいものとして「フラグ付け」するのに十分な理由となる可能性があるため、これはおそらく必要ありません。古いがコンパクトな方法としては、加算や減算などの算術演算と、 XORなどの論理条件の使用がある。[ 64 ]ウイルス内の各バイトは定数で表され、復号化のために排他的論理和演算を繰り返すだけで済む。コードが自身を変更するのは疑わしいので、暗号化/復号化を行うコードは、多くのウイルス定義の署名の一部になっている可能性がある。より単純な古いアプローチでは鍵は使用されず、暗号化は、インクリメントとデクリメント、ビットごとの回転、算術否定、論理 NOT などのパラメータのない操作のみで構成されていた。[ 64 ]ポリモーフィックウイルスと呼ばれる一部のウイルスは、実行ファイル内で暗号化手段を使用し、ウイルススキャナの更新が無効になったり、コンピュータが再起動されたりするなど、特定のイベントでウイルスが暗号化される。[ 65 ]これは暗号ウイルス学と呼ばれる。
ポリモーフィックコードは、ウイルススキャナに深刻な脅威をもたらした最初の技術でした。通常の暗号化ウイルスと同様に、ポリモーフィックウイルスは暗号化された自身のコピーでファイルを感染させ、復号モジュールによって復号されます。しかし、ポリモーフィックウイルスの場合、この復号モジュールも感染のたびに変更されます。そのため、適切に作成されたポリモーフィックウイルスには、感染間で同一のまま残る部分がなく、「シグネチャ」を使用して直接検出することは非常に困難です。[ 66 ] [ 67 ]アンチウイルスソフトウェアは、エミュレータを使用してウイルスを復号するか、暗号化されたウイルス本体の統計的パターン分析によって検出できます。ポリモーフィックコードを有効にするには、ウイルスは暗号化された本体のどこかにポリモーフィックエンジン(「変異エンジン」または「突然変異エンジン」とも呼ばれる)を持っている必要があります。このようなエンジンの動作に関する技術的な詳細については、ポリモーフィックコードを参照してください。[ 68 ]
ウイルスの中には、変異率を大幅に抑制するポリモーフィックコードを採用しているものがあります。例えば、ウイルスは時間の経過とともにわずかにしか変異しないようにプログラムしたり、既にウイルスのコピーが存在するコンピュータ上のファイルに感染した際には変異しないようにプログラムしたりすることができます。このような低速なポリモーフィックコードを使用する利点は、ウイルス対策の専門家や調査員がウイルスの代表的なサンプルを入手するのが難しくなることです。なぜなら、一度の実行で感染する「おとり」ファイルには、通常、同一または類似のウイルスサンプルが含まれるからです。これにより、ウイルススキャナーによる検出が信頼できないものになり、ウイルスの一部が検出を回避できる可能性が高くなります。
エミュレーションによる検出を回避するため、一部のウイルスは新しい実行可能ファイルに感染するたびに自身を完全に書き換えます。この手法を利用するウイルスは、メタモルフィックコードであると言われています。メタモルフィズムを有効にするには、「メタモルフィックエンジン」が必要です。メタモルフィックウイルスは通常、非常に大きく複雑です。たとえば、W32/Simile は14,000 行を超えるアセンブリ言語コードで構成されており、その 90% はメタモルフィックエンジンの一部です。[ 69 ] [ 70 ]
損害は、システム障害、データの破損、コンピュータ資源の浪費、メンテナンスコストの増加、個人情報の盗難などによって引き起こされます。アンチウイルスソフトウェアはすべてのコンピュータウイルス(特に新しいウイルス)を検出することはできませんが、コンピュータセキュリティ研究者は、ウイルスが広く拡散する前に、アンチウイルスソリューションがより効果的に新しいウイルスを検出できるようにする新しい方法を積極的に探しています。[ 71 ]
パワーウイルスとは、CPUの最大電力消費量(中央処理装置の熱エネルギー出力)に達するために特定の機械語コードを実行するコンピュータプログラムです。[ 72 ]コンピュータの冷却装置は、最大電力ではなく熱設計電力まで電力を放散するように設計されており、パワーウイルスにプロセッサを停止するロジックがない場合、システムが過熱する可能性があります。これにより、永久的な物理的損傷が発生する可能性があります。パワーウイルスは悪意のあるものである場合もありますが、多くの場合、製品の設計段階でのコンピュータコンポーネントの統合テストや熱テスト、または製品のベンチマークに使用されるテストソフトウェアスイートです。[ 73 ]
安定性テストアプリケーションは、パワーウイルスと同様の効果(CPU使用率の上昇)をもたらすものの、ユーザーの制御下にある類似のプログラムです。例えば、オーバークロック時などにCPUのテストに使用されます。不適切なプログラムでスピンロックが発生した場合、それが長時間続くと、同様の症状を引き起こす可能性があります。
異なるマイクロアーキテクチャでは、通常、最大性能を発揮するために異なるマシンコードが必要になります。そのようなマシンコードの例は、CPU リファレンス資料には含まれていないようです。[ 74 ]
ソフトウェアはシステムリソースの不正使用を防ぐためのセキュリティ機能を備えて設計されていることが多いため、多くのウイルスは、システムまたはアプリケーションソフトウェアの欠陥であるセキュリティバグを悪用・操作して拡散し、他のコンピュータに感染します。多数の「バグ」を生み出すソフトウェア開発戦略は、一般的にウイルスにとって悪用可能な「穴」や「侵入口」も生み出すことになります。
ウイルスが自己複製するには、コードの実行とメモリへの書き込みが許可される必要があります。このため、多くのウイルスは正規のプログラムの一部である実行可能ファイルに自身を付着させます(コードインジェクションを参照)。ユーザーが感染したプログラムを起動しようとすると、ウイルスのコードが同時に実行される可能性があります。[ 75 ]ファイル拡張子を使用してプログラムの関連付けを判断するオペレーティングシステム(Microsoft Windowsなど)では、拡張子がデフォルトでユーザーから隠されている場合があります。これにより、ユーザーには見えない種類のファイルを作成することが可能です。たとえば、「picture.png.exe」という名前の実行可能ファイルが作成され、ユーザーには「picture.png」しか見えないため、このファイルはデジタル画像であり、おそらく安全であると想定しますが、開くとクライアントマシンで実行可能ファイルが実行されます。[ 76 ]ウイルスは、フラッシュドライブなどのリムーバブルメディアにインストールされる可能性があります。ドライブは、好奇心旺盛なユーザーがドライブをコンピュータに挿入することを期待して、政府機関の建物やその他のターゲットの駐車場に放置される可能性があります。 2015年の実験で、ミシガン大学の研究者たちは、ユーザーの45~98パーセントが、出所不明のフラッシュドライブを接続することを発見した。[ 77 ]
ウイルスの大部分は、Microsoft Windowsを実行しているシステムを標的にしています。これは、Microsoft がデスクトップ コンピュータユーザーで大きな市場シェアを占めているためです。[ 78 ]ネットワーク上のソフトウェア システムの多様性により、ウイルスやマルウェアの破壊的な可能性が制限されます。[ a ] Linuxなどのオープンソースオペレーティングシステムでは、ユーザーはさまざまなデスクトップ環境、パッケージ ツールなどから選択できるため、これらのシステムを標的とする悪意のあるコードは、すべてのユーザーのごく一部にしか影響しません。多くの Windows ユーザーは同じアプリケーション セットを実行しているため、ウイルスは多数のホストで同じ脆弱性を標的にすることで、Microsoft Windows システム間で急速に拡散することができます。[ 79 ] [ 80 ] [ 81 ] [ 82 ]
LinuxやUnix全般は、許可なく通常のユーザーがオペレーティングシステム環境を変更することを常にネイティブに防いできたが、Windowsユーザーは一般的にこれらの変更を防がれないため、ウイルスはWindowsホスト上のシステム全体を容易に制御できる。この違いは、Windows XPなどの現代のバージョンで管理者アカウントが広く使用されていることが一因となって続いている。1997年、研究者たちはLinux用のウイルス「Bliss」を作成し、公開した。[ 83 ]しかし、Blissはユーザーが明示的に実行する必要があり、ユーザーが変更する権限を持つプログラムにしか感染できない。Windowsユーザーとは異なり、ほとんどのUnixユーザーはソフトウェアのインストールや設定を除いて管理者、つまり「rootユーザー」としてログインしないため、ユーザーがウイルスを実行してもオペレーティングシステムに害を与えることはできない。Blissウイルスは広く普及することはなく、主に研究上の興味の対象となっている。作成者は後にソースコードをUsenetに投稿し、研究者がその動作を確認できるようにした。[ 84 ]
コンピュータネットワークが普及する以前は、ほとんどのウイルスはリムーバブルメディア、特にフロッピーディスクを介して拡散していました。パーソナルコンピュータの黎明期には、多くのユーザーがフロッピーディスクで情報やプログラムを頻繁に交換していました。ウイルスの中には、これらのディスクに保存されたプログラムに感染することで拡散するものもあれば、ディスクのブートセクタに自身をインストールし、ユーザーがディスクからコンピュータを起動したときに(通常は意図せず)実行されるようにするものもありました。当時のパーソナルコンピュータは、フロッピーディスクがドライブに挿入されたままになっている場合、まずフロッピーディスクから起動しようとしました。フロッピーディスクが使われなくなるまでは、これが最も効果的な感染戦略であり、ブートセクタウイルスは長年にわたって「実環境」で最も一般的なウイルスでした。従来のコンピュータウイルスは、パーソナルコンピュータの普及とそれに伴う電子掲示板システム(BBS)、モデムの使用、ソフトウェア共有の増加によって、1980年代に出現しました。電子掲示板を介したソフトウェア共有は、トロイの木馬プログラムの拡散に直接貢献し、ウイルスは広く流通しているソフトウェアに感染するように作成されました。シェアウェアとブートレグソフトウェアは、 BBS 上でウイルスの一般的な媒介物でした。 [ 85 ] [ 86 ]ウイルスは、ネットワークファイルシステムまたは他のコンピュータがアクセスするファイルシステム上のファイルに感染することで、他のコンピュータに拡散する可能性が高まります。[ 87 ]
マクロウイルスは1990年代半ばから一般的になっています。これらのウイルスのほとんどは、Microsoft WordやMicrosoft ExcelなどのMicrosoftプログラムのスクリプト言語で作成され、ドキュメントやスプレッドシートに感染することでMicrosoft Office全体に拡散します。WordとExcelはMac OSでも利用可能だったため、ほとんどのウイルスはMacintoshコンピュータにも感染する可能性があります。これらのウイルスのほとんどは感染した電子メールメッセージを送信する機能を持っていませんでしたが、送信する機能を持つウイルスはMicrosoft Outlookコンポーネントオブジェクトモデル(COM)インターフェイスを利用しました。[ 88 ] [ 89 ] Microsoft Wordの古いバージョンの中には、マクロが追加の空白行で自己複製できるものがあります。2つのマクロウイルスが同時にドキュメントに感染した場合、2つの組み合わせが自己複製も行うと、2つの「交配」のように見え、「親」とは異なるウイルスとして検出される可能性があります。[ 90 ]
ウイルスは、感染したマシンに保存されているすべての連絡先 (たとえば、友人や同僚の電子メール アドレス) に、ウェブ アドレス リンクをインスタント メッセージとして送信することもあります。受信者が、リンクが友人 (信頼できる情報源) からのものだと考えて Web サイトへのリンクをクリックすると、そのサイトでホストされているウイルスがこの新しいコンピュータに感染し、拡散を続ける可能性があります。[ 91 ]クロス サイト スクリプティングを使用して拡散するウイルスは、2002 年に初めて報告され、[ 92 ] 2005 年に学術的に実証されました。[ 93 ]クロス サイト スクリプティング ウイルスが実環境で複数発生しており、MySpace (Samy ワームを使用) やYahoo!などの Web サイトを悪用しています。

1989年、ADAPSOソフトウェア産業部門は「電子破壊行為への対処」 [ 94 ]を出版し、その中でデータ損失のリスクに加えて「顧客の信頼を失うという追加リスク」[ 95 ] [ 96 ] [ 97 ]を挙げた。
多くのユーザーは、コンピュータが実行可能ファイル(電子メールの添付ファイルやUSBフラッシュドライブなどで配布される場合がある)をダウンロードまたは実行しようとしたときに、既知のウイルスを検出して駆除できるウイルス対策ソフトウェアをインストールします。一部のウイルス対策ソフトウェアは、マルウェアをインストールしようとする既知の悪意のあるWebサイトをブロックします。ウイルス対策ソフトウェアは、ホストがウイルスを送信する根本的な機能を変更するものではありません。ユーザーは、セキュリティの脆弱性(「穴」)を修正するために、ソフトウェアを定期的に更新する必要があります。ウイルス対策ソフトウェアも、最新の脅威を認識するために定期的に更新する必要があります。これは、悪意のあるハッカーやその他の個人が常に新しいウイルスを作成しているためです。ドイツのAV-TEST研究所は、Windows [ 98 ]およびAndroid [ 99 ]向けのウイルス対策ソフトウェアの評価を公開しています。
Microsoft Windows のウイルス対策およびマルウェア対策ソフトウェアの例としては、リアルタイム保護のためのオプションのMicrosoft Security Essentials [ 100 ] (Windows XP、Vista、Windows 7 用)、 Windows 悪意のあるソフトウェア削除ツール[ 101 ] (現在は毎月第 2 火曜日の「パッチ チューズデー」にWindows (セキュリティ) 更新プログラムに含まれています)、およびWindows Defender (Windows XP の場合はオプションのダウンロード) があります。[ 102 ]さらに、インターネットから無料でダウンロードできる優れたウイルス対策ソフトウェア プログラムがいくつかあります (通常は非商用利用に制限されています)。[ 103 ]こうした無料プログラムの中には、商用製品とほぼ同等の性能を持つものもあります。[ 104 ]一般的なセキュリティ脆弱性にはCVE IDが割り当てられ、米国国家脆弱性データベースにリストされています。Secunia PSI [ 105 ]は、個人利用は無料のソフトウェアの例で、PC の脆弱な古いソフトウェアをチェックし、更新を試みます。ランサムウェアとフィッシング詐欺に関する警告は、インターネット犯罪苦情センターの掲示板にプレスリリースとして掲載されます。ランサムウェアとは、身代金が支払われるまで画面やシステムがロックされたり使用不能になったりするというメッセージをユーザーの画面に表示するウイルスです。フィッシングとは、悪意のある人物が友人、コンピュータセキュリティの専門家、またはその他の善意の人物を装い、標的となった人物からパスワードやその他の個人情報をだまし取ることを目的とした詐欺行為です。
その他の一般的な予防策としては、オペレーティングシステムのタイムリーな更新、ソフトウェアの更新、インターネットの慎重な閲覧(怪しいウェブサイトを避ける)、信頼できるソフトウェアのみのインストールなどが挙げられます。[ 106 ]一部のブラウザは、Googleに報告され、Googleによってマルウェアをホストしていることが確認されたサイトにフラグを立てます。[ 107 ] [ 108 ]
ウイルス対策ソフトウェアの記事で説明されているように、ウイルス対策ソフトウェアアプリケーションがウイルスを検出するために使用する一般的な方法は 2 つあります。最初の、そして圧倒的に一般的なウイルス検出方法は、ウイルス署名定義のリストを使用することです。これは、コンピュータのメモリ (ランダムアクセスメモリ(RAM) とブートセクタ) の内容と、固定ドライブまたはリムーバブルドライブ (ハードドライブ、フロッピードライブ、または USB フラッシュドライブ) に保存されているファイルを調べ、それらのファイルを既知のウイルス「署名」のデータベースと比較することによって機能します。ウイルス署名は、個々のウイルスを識別するために使用される単なるコード文字列です。各ウイルスに対して、ウイルス対策ソフトウェアの設計者は、正規のプログラムでは見つからない固有の署名文字列を選択しようとします。異なるウイルス対策プログラムは、ウイルスを識別するために異なる「署名」を使用します。この検出方法の欠点は、ユーザーは最新のウイルス定義アップデートの署名によって検出されたウイルスからのみ保護され、新しいウイルス (「ゼロデイ攻撃」を参照) からは保護されないことです。[ 109 ]
ウイルスを検出する2つ目の方法は、一般的なウイルスの挙動に基づいたヒューリスティックアルゴリズムを使用することです。この方法は、アンチウイルスセキュリティ企業がまだ「シグネチャ」を定義していない新しいウイルスを検出できますが、シグネチャを使用する場合よりも誤検出が多くなります。誤検出は、特にビジネス環境において、大きな問題となる可能性があります。なぜなら、IT部門がウイルスチェックを完了するまで、従業員に社内コンピュータシステムの使用を控えるよう指示する事態に陥る可能性があるからです。これは、通常の従業員の生産性を低下させる可能性があります。
ウイルスによる被害を軽減するには、データ(およびオペレーティングシステム)のバックアップを、システムに接続されていない(ほとんどの場合、ハードドライブなど)、読み取り専用、または別のファイルシステムを使用するなどの理由でアクセスできない別のメディアに定期的に作成するのが良いでしょう。このようにして、ウイルスによってデータが失われた場合、バックアップ(できれば最新のもの)を使用して再開できます。[ 110 ] CDやDVDなどの光メディアのバックアップセッションを閉じると、読み取り専用になり、ウイルスの影響を受けなくなります(ウイルスや感染したファイルがCD / DVDにコピーされていない限り)。同様に、インストール済みのオペレーティングシステムが使用できなくなった場合は、起動可能なCD上のオペレーティングシステムを使用してコンピュータを起動できます。リムーバブルメディアのバックアップは、復元する前に注意深く検査する必要があります。たとえば、ガンミマウイルスはリムーバブルフラッシュドライブを介して拡散します。[ 111 ] [ 112 ]
ウイルス対策ソフトウェア会社が運営する多くのウェブサイトでは、無料のオンラインウイルススキャンが提供されていますが、「クリーンアップ」機能は限定的です(結局のところ、これらのウェブサイトの目的はウイルス対策製品やサービスを販売することです)。Googleの子会社であるVirusTotal.comのような一部のウェブサイトでは、ユーザーが疑わしいファイルを 1 つ以上アップロードして、1 つ以上のウイルス対策プログラムで一度にスキャンおよびチェックすることができます。[ 113 ] [ 114 ]さらに、インターネットから無料でダウンロードできる高性能なウイルス対策ソフトウェアプログラムもいくつかあります(通常は非商用利用に限定されています)。[ 115 ] Microsoft は、 Microsoft Security Essentialsと呼ばれるオプションの無料ウイルス対策ユーティリティ、Windows の定期的な更新の一環として更新されるWindows 悪意のあるソフトウェア削除ツール、およびWindows 8 でウイルス対策製品にアップグレードされた古いオプションのマルウェア対策 (マルウェア削除) ツールであるWindows Defender を提供しています。
ウイルスの中には、システムの復元やタスク マネージャー、CMDなどの重要な Windows ツールを無効にするものがあります。このようなウイルスの例としては、CiaDoor があります。このようなウイルスの多くは、コンピューターを再起動し、ネットワーク接続ありのWindows の「セーフ モード」に入り、システム ツールまたはMicrosoft Safety Scanner を使用することで削除できます。[ 116 ] Windows Me、Windows XP、Windows Vista、Windows 7のシステムの復元では、レジストリと重要なシステム ファイルを以前のチェック ポイントに復元できます。多くの場合、ウイルスによってシステムが「ハング」または「フリーズ」し、その後のハード ブートによって同じ日のシステムの復元ポイントが破損します。ウイルスが復元ファイルを破損するように設計されておらず、以前の復元ポイントに存在しない限り、以前の日の復元ポイントは機能するはずです。[ 117 ] [ 118 ]
Microsoft のシステム ファイル チェッカー(Windows 7 以降で改良) を使用して、破損したシステム ファイルをチェックして修復できます。[ 119 ]クローン ディスク、ディスク イメージ、またはバックアップコピーからパーティション全体の以前の「クリーンな」(ウイルスフリーの) コピーを復元することが 1 つの解決策です。以前のバックアップ ディスクの「イメージ」を復元するのは比較的簡単で、通常はマルウェアが削除され、コンピュータを「消毒」するよりも速い場合があります。または、以下で説明するように、オペレーティングシステムとプログラムを最初から再インストールして再構成し、ユーザー設定を復元します。[ 110 ]オペレーティングシステムを再インストールすることも、ウイルス除去のもう 1 つのアプローチです。ライブ CDから起動するか、ハード ドライブを別のコンピュータに接続して、2 番目のコンピュータのオペレーティングシステムから起動することで、重要なユーザー データのコピーを復元できる可能性があります。その際、元のドライブで感染したプログラムを実行してそのコンピュータを感染させないように十分注意してください。その後、元のハード ドライブを再フォーマットし、元のメディアから OS とすべてのプログラムをインストールできます。システムが復元されたら、復元された実行可能ファイルからの再感染を防ぐための対策を講じる必要がある。[ 120 ]
フィクションにおける自己複製プログラムの最初の記述は、グレゴリー・ベンフォードの1970年の短編小説『傷跡のある男』に見られる。この小説では、電話モデムダイヤル機能を備えたコンピュータにインストールされたVIRUSというコンピュータプログラムが、別のコンピュータが応答するモデムに到達するまでランダムに電話番号をダイヤルし、その後、応答したコンピュータに自身のプログラムをプログラムしようと試みる。すると、2番目のコンピュータもランダムな番号をダイヤルし始め、さらに別のコンピュータをプログラムしようとする。このプログラムは感受性のあるコンピュータを通じて指数関数的に急速に拡散し、VACCINEという別のプログラムによってのみ対抗できる。[ 121 ]この物語は、ベンフォードが1960年代に概念実証として作成し、研究室のコンピュータで実行したFORTRANで書かれた実際のコンピュータウイルスに基づいており、彼は1970年にジョン・ブルナーにそのことを話した。[ 122 ]
このアイデアは、1972年の2つの小説、デイヴィッド・ジェロルドの『When HARLIE Was One』とマイケル・クライトンの『 The Terminal Man』でさらに掘り下げられ、1975年のジョン・ブルナーの小説『The Shockwave Rider』の主要なテーマとなった。[ 123 ]
1973年のマイケル・クライトンのSF映画『ウエストワールド』では、コンピュータウイルスの概念が初期の段階で言及されており、アンドロイドが暴走する原因となる中心的なプロットテーマとなっている。[ 124 ]アラン・オッペンハイマーのキャラクターは、「…ここには、ある地域から次の地域へと広がる感染症のプロセスに類似した明確なパターンがある」と述べて問題を要約している。それに対する返答は、「病気との表面的な類似点があるかもしれない」と「機械の病気を信じるのは難しいと認めざるを得ない」である。[ 125 ]
2016年、ユッシ・パリッカはマルウェア美術館の設立を発表した。これは、1980年代と1990年代に家庭用コンピュータに配布されたマルウェアプログラム(通常はウイルス)のコレクションである。マルウェア美術館はインターネットアーカイブでホストされており、フィンランドのヘルシンキ在住のミッコ・ヒッポネンがキュレーションを担当している。[ 126 ]このコレクションにより、コンピュータを持っている人なら誰でも、数十年前のウイルス感染を安全に体験できる。[ 127 ]
「ウイルス」という用語は、他の種類のマルウェアを指す際にも誤用されています。「マルウェア」には、コンピュータウイルスのほか、コンピュータワーム、ランサムウェア、スパイウェア、アドウェア、トロイの木馬、キーロガー、ルートキット、ブートキット、悪意のあるブラウザヘルパーオブジェクト(BHO)、その他の悪意のあるソフトウェアなど、多くの種類の悪意のあるソフトウェアが含まれます。現在活動しているマルウェアの脅威の大部分は、コンピュータウイルスではなく、トロイの木馬プログラムまたはコンピュータワームです。 1985年にフレッド・コーエンによって造語された「コンピュータウイルス」という用語は、誤称です。[ 128 ]ウイルスは、感染したホストコンピュータ上で、ハードディスクの容量や中央処理装置(CPU) 時間の取得、個人情報 (クレジットカード番号、デビットカード番号、電話番号、名前、電子メール アドレス、パスワード、銀行情報、住所など) へのアクセスと窃盗、データの破損、ユーザーの画面への政治的、ユーモラス、または脅迫的なメッセージの表示、電子メールの連絡先へのスパム送信、キーストロークの記録、さらにはコンピュータの使用不能化など、何らかの有害な活動を行うことがよくあります。しかし、すべてのウイルスが破壊的な「ペイロード」を持ち、自身を隠そうとするわけではありません。ウイルスの決定的な特徴は、生の細胞内で複製する生物学的ウイルスと同様に、ユーザーの同意なしに他のソフトウェアに自身を注入して変更する自己複製コンピュータ プログラムであることです。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)そして、ここには、あるリゾート地から次のリゾート地へと広がる感染症の過程に類似した明確なパターンがあります。」...「おそらく、病気との表面的な類似点があるのでしょう。」「機械の病気を信じるのは難しいと認めざるを得ません。