ウイルス誕生20周年、その歴史をふり返る

コンピュータウイルスの現在・過去・未来

 技術年代記には多くの成果があるが、中でもFred Cohenの貢献は文句なしにユニークなものだ。Cohenこそ、コンピュータ語録に「ウイルス」という言葉を加えたその人なのだ。

 米ニューヘブン大学教授であるCohenは、1984年に発表した研究論文の中で、初めて「ウイルス」という用語を使った。この論文でCohenは、自己増殖するプログラムが引き起こす脅威を描写し、潜在的防御対策について探っている。 3年後、Cohenはさらなる対応手段策を研究するため米国科学財団に投資を願い出たが、同財団はこの申し込みをはねつけた。

 米調査会社Burton Groupの主席アナリストでもあるCohenは、「あっさり却下されたよ」と当時を振り返る。「現在の重要事項ではないという理由だった」

 20年後の現在、数え切れないほどの企業や個人がこの時同財団が犯した判断ミスのしっぺ返しを受けている。インターネット上のコンピュータに大きなリスクをもたらすウイルスとワームの数は増える一方で、技術業界はいまだに包括的なソリューションを見出せずにいる。SobigやSlammerなど感染性の高いデジタル病が発生する度に、多くの企業は応対に追われて業務を休止せねばならず、毎年数十億ドル規模の損失を計上している。

 技術の脆弱性を突いた悪意のあるオンライン攻撃に対する関心は高まる一方だが、ウイルスの出生についての文書は少ない。初期に繰り返し登場したウイルスを作成していたのは、反抗的なティーンエイジャーや反社会的なコンピュータオタクではなく、大学の研究者やシステム管理者、また一握りの保守派ハッカーで、彼らは自分の作ったプログラムを自動的に増殖させる機能にはまっていただけなのだ。

 その結果、技術の天才や学術界の正直者、さらには官僚的な傲慢さや人間の趣向で、多くの人間がプログラムの自動再生産を試み、組織を破壊していったのである。

 米Symantec Security Responseのシニアリサーチフェロー、Sarah Gordonが最初にウイルスの被害にあったのは、10年以上前のことだ。Gordonはこの現象に興味を持ち、数年間アンダーグラウンドのウイルス作成者の世界を研究した。

 Gordonは最近行ったメールによるインタビューで、「インターネットは簡単に情報配信ができるように設計されている。どんな情報でも配信可能なのだ。これは両刃の剣だ」と述べている。「たとえ(ウイルスが)悪意あるものや危険なものだと意図して設計されていなかったとしても、いったん管理外にでてしまうと、予期せぬ結果を招くことになる」(Gordon)

 これこそ、ウイルス作成者たちに起こったことだ。ウイルスコードが急に倍増したことで、マイナーなエラーは拡大され、それが害のないいたずらと破壊的な攻撃の別れ道となった。インターネット上で起こる個別の攻撃のようなシンプルな技術とは異なり、繁殖力を持ったウイルスは作者自身をも手こずらせるほど複雑なものなのだ。多くのプログラムはすぐに消え失せるが、一部のウイルスは作者が考えていた以上に増殖してしまった。

 Cohenは1983年11月、南カリフォルニア大学の院生だった当時、すでに将来何が起こるかうすうす感じはじめていた。コンピュータセキュリティをテーマとした1週間のセミナーに参加したCohenは、自らを複製して他のシステムに感染するというプログラムを思いついた。

 当時Cohenの指導教師だったLen Adlemanは、そのようなプログラムをデジタル版ウイルスと形容した。Adlemanは公開鍵暗号の作成者の1人として知られており、有名なセキュリティ技術であるRSA(Rivest、Shamir、Adleman)の「A」にあたる人物である。彼が述べたウイルスという言葉は、いまでも残っている。

コンセプトの誕生

 来年発表する論文の中で、Cohenはウイルスの定義を「感染力のあるプログラムで、他のプログラムに自らをコピーし、変更を加える」としている。Cohenは、セキュリティ技術が存在するにも関わらず、このようなウイルスは汎用的な方法で処理されてばらまかれ、情報共有機能を持つあらゆるシステムに伝染することを証明している。

 Cohenは潜在的な危険を立証するため、試験プログラムを作成し、ウイルスがいかに急速に広がってメインフレームのセキュリティをあっさり傷つけてしまうことができるかを説明している。Cohenはこの試験プログラムを、UNIXのファイル構造をグラフィックで表示するコマンドの中に埋め込み、攻撃を5回実行している。

 その結果ウイルスは、システム上で主導権を握ることに成功した。つまり、コンピュータの管理能力を奪ったのだ。平均所要時間は30分で、最短の場合5分だった。

 「ウイルスは、その時点で存在するすべてのセキュリティ技術をものともせずに広まることができる。脇の甘いユーザーにさえアクセスできれば、プログラムはあっという間にガードの堅いユーザーへも広がってしまうのだ」(Cohen)。

 Cohenの研究で、ウイルスの具体的な定義が定まり、ワームのような他のプログラムはこの定義の一部であることがわかった。だがウイルスのようなプログラムは、Cohenの研究以前から数多く存在しており、その理論的な基盤の多くは、コンピュータ科学の父といわれるJohn von Neumannにより確立されたものだ。

 1903年、ハンガリーで生まれたvon Neumannは、現在のコンピュータ科学や、数学、物理学などの一部において、根本的な研究を行ってきた人物だ。ゲーム理論と呼ばれる戦略の論理的分析方法や新しく生まれた量子物理学も、von Neumannの研究がベースとなっている。1948年から1956年までの間von Neumannは、彼の研究仲間で高名なコンピュータ科学者であるAlan Turingの研究をさらに掘り下げていった。

 Turingは、ユニバーサル・コンピューティング・システムという構想を提唱していた。これは、プログラムやデータを保存するためのテープとプロセッサを使って、広範な問題を解決するという論理的な概念だ。コンピュータはいまでも、Turingが認識したプロセッサとストレージという基本的な部分で作業を行っている。

 von NeumannはTuringのコンセプトを深く掘り下げ、自己の複製を行うことができる万能制作システムの開発にたどりついた。このvon Neumannがいうところの「自己増殖するオートマトン」は、仮想的な二次元格子空間上で数万の構成要素を用い、新しいオートマトンを生み出した(それぞれの構成要素は定義された29の状態のいずれかの状態をとる)。このシステムはとても複雑で、その限定版をハードウェアに実装するだけでも40年以上の歳月を要した。

適応力のあるプログラムが生き残る

 von Neumannの研究は、後にセルオートマトン理論として知られることになるコンピュータ科学の新分野を築く土台となった。そして他の研究者を触発し、よりシンプルなコンピュータの生命体や人工生命という新分野が生まれた。von Neumannの先駆的な研究はベル研究所の研究者3名をも刺激し、1960年代初期に彼の構想は現実のものとなった。

 1961年8月、ベル研究所のVictor Vyssotskyは「Darwin」と呼ばれるゲームを考案した。このゲームは、デジタル領土を獲得するために複数の小さなプログラム同士が戦うというものだ。Vyssotskyの同僚Douglas McIlroyが、シミュレーションの実行コードを含め、このゲームの大部分を開発した。3人目の研究者、Robert Morris Sr.は、プログラム自身が進化をし、自分の子孫に攻撃の成功例を伝える破壊的なデジタル生命体作成した。

 「ルールをいじってゲームに多少の不確実な要素を入れれば、Morrisの作成した破壊的な生物が登場した後もゲームを続けることはできた。だが、われわれは他にもやることがあったからね」とMcIlroyは語る。McIlroyは現在、ダートマス大学コンピュータサイエンス学部の助教授を務めている。IBM 7090システム上で動作したDarwinは、いまでは忘れられた存在だ。

 だが、この3人の研究者とその子孫たちは、コンピュータとインターネットに深い影響を与えることになる。

 Morrisはのちに米国家安全保障局に勤務するようになった。1988年11月、Morrisの息子Robert Jr.は、インターネット上に広く伝播する最初のワームを作成した。DarwinはIBM 7090システムの進化の波に乗ることができなかったが、研究者たちは楽しみを求めてゲームの開発を続け、「Core War」と呼ばれるDarwinよりも人気のあるゲームを発明するに至った。Core Warでは、参加者はRedcodeと呼ばれる言語で戦いのプログラムを書き、Memory Array Redcode SimulatorまたはMARSという仮想メモリの中で戦う。いまでも、インターネット上で多数のマニアがこのゲームを楽しんでいる。

 だが、これらのデジタル生命体はみな人工的に作られた環境の中でのみ存在していた。ウイルスをコンピュータに導入し、世界中に感染させる手助けをしたのは別のゲームだった。

 それが「Animal」というゲームで、このゲームは1970年代にメインフレームコンピュータ管理者の間で有名になった。Animalでは、プレイヤーがある動物を思い浮かべ、プログラムにその動物の種類の糸口となるヒントを与える。そのヒントからプログラムは動物が何であるかを推測し、答えが間違っていたらプログラムはプレイヤーにさらにヒントを与えるよう要求するのだ。

 1974年、UNIVAC(UNIVersal Automatic Computer)のシステムプログラマとして多国籍大企業に勤務していたJohn Walkerは、Animalの自作バージョンを作成した。Walkerは、あるプレイヤーが入力した間違った情報を最終的に他のプレイヤーが修正できるように改良した。このゲームはすぐに大ヒットとなった。

 「他のUNIVACプログラマから、ゲームのテープが欲しいという電話が次々にかかってきた」とWalkerは振り返る。

ゲームからウイルスへ

 時はインターネット時代が到来する前のことだ。Walkerはこのような依頼に対し、テープを送るようにと返事をし、送られてきたテープの上にゲームをコピーして送り返した。Walkerはすぐにこの骨の折れるプロセスにうんざりした。「(テープへコピーするという作業は)本当に面倒だったので、ゲームを配布する最善の方法はないかと考え始めた。その時に、自己増殖させるという考えが浮かんだんだ」(Walker)

 1975年1月、Walkerは、Animalに便乗して増殖する「Pervade」という別のプログラムを作った。ユーザーがAnimalをプレイする度に、Pervadeも同時に動作してディレクトリをチェックする。Pervadeが存在しないディレクトリにはそのコピーを作成し、バージョンが古い場合は上書きするのだ。

 Walkerは、システムを損傷するようなエラーがないことを確認するために数カ月間かけてプログラムを充分に検証したことを覚えている。エラーチェックが終わってから、彼はプログラムを配布したのだ。

 1週間もしないうちに、ある企業のUNIVAC管理者たちが「Animalが突然システムに表示された」と報告してきた。数週間後、他の企業からも同じ報告を受けた。

 「数カ月後には、多くの人がこの話をしていた。皆このようなプログラムがほしかったということだ」とWalkerは言う。「新しいディレクトリで自己増殖し、口コミのように広がっていったのだ」

 その後、UNIVACはディレクトリ構造の異なるOSの新バージョンを発表したため、Pervadeプログラムは動かなくなった。だがWalkerは、プログラムを修正すれば新OSのセキュリティ機能を容易に打ち破ることができたと主張する。

 「UNIVACの新システムはあらゆるセキュリティ機能を盛り込んでいたのだがね。これは、いかなる防御策も役に立たないという脅威を示した一例だ」とWalker。これは、10年後にCohenが繰り返し述べることになるコメントだ。Walkerはその後、1980年代初めにAutodeskを設立し、いまでも同社の最大個人株主の1人だ。

 ウイルスの予期できない性質を実証するものとして、Walkerですら自分の作った自己増殖型プログラムが何年生き残るか正しく予想できなかったという事実がある。Unisys 2200はUNIVACコンピュータの子孫にあたるが、そのUnisys 2200のシステム管理者は、Walkerの作ったプログラムがいまでもマシン上で動いていると報告している。その管理者に対し、Walkerは次のように語っている。

 「(Pervadeは)30年以上も昔のファイルシステムテーブルをいまだに探しているのだ」

PCの普及とウイルスの増加

 ウイルスは、デスクトップPCの人気とともに急激に増殖した。PCの普及は、ウイルスが感染できるホストの溜まり場を拡大しただけではない。そのようなプログラムを作成する知識を持った、新しいタイプの技術に敏感な世代をも生み出した。

 Rich Skrentaはその世代にぴったり当てはまる人物だ。1982年、ピッツバーグに住む9年生だったSkrentaは、ソフトウェアを使ってクラスメートをからかうのが大好きだった。当時Apple IIに詳しかった彼は、Apple IIにカスタム機能をいくつか追加して友人に渡した。このカスタム機能には、何度かマシンを利用すると自動的にマシンをシャットダウンさせる機能や、嘲笑的なメッセージを表示する機能などがあった。

 「こんなことを続けていると、僕の作ったプログラムを使う人は誰もいなくなった」とSkrentaは言う。Skrentaは現在、間もなく事業を開始する予定のベンチャー企業、Topix.netの設立者であり社長となっている。「だから、どうすれば自分の技を友人のディスク上に載せることができるか知恵を絞っていたよ」(Skrenta)

 そこで思いついたのが、Apple IIディスクに感染する自己増殖プログラムを書くという手だ。Skrentaの「クローン型」プログラムというアイデア(彼は「ウイルス」という用語は用いていない)は、Apple IIのシステムディスク上のある人気コマンドに感染する。このSkrentaの作成したElk Clonerというプログラムは、ディスクが使われる回数を数え、5回起動するごとにコンピュータをシャットダウンさせるか、何か他のいたずらをする。また、コンピュータを50回起動させるごとに、画面に短い詩を表示する。

 その4年後、Amjad Farooq AlviとBasit Farooq Alviという2人のパキスタン人の兄弟が、IBMのPCに感染する最初のウイルスを作成した。これはBrainウイルスという名で知られている。この兄弟は、パキスタンのラホールにあるBrain Computer Servicesという自分たちの企業を宣伝するバイラルマーケティングのために、画面上でメッセージをフラッシュさせるというこのウイルスを作成した。

 そのメッセージは、「このウイルスに用心せよ。予防接種はこちらまで」というもので、同社は今でも自社サイトでこの宣伝文句を掲載している。

 これはほんの始まりにすぎなかった。ウイルスやワームが大量に発生するようになるまで10年以上の月日を要したものの、Brainウイルス登場後の数年間でその数は急増した。1990年末には、約200のウイルスが確認され、現在その数は7万以上に膨れあがっている。このうち、実際にインターネット上のコンピュータを傷つけるのは1%以下だが、米Computer Security Institute(CSI)によると、80%以上の企業がこのデジタル感染病に悩まされているという。

 SymantecのGordonによると、昔と違って現在のウイルス作者のほとんどは、このようなプログラムがインターネット上に拡散してしまうという能力の意味をいまだに理解していないという。「ウイルス作者は好奇心の強い人が多い。しかも自分の考えを表現することが得意で人脈も広く、様々な交友関係があるようだ」(Gordon)

 しかし、Cohenは今日のインターネットウイルスの原因となった大規模な科学的変革は1980年代に起こったと述べる。その後起こったすべてのことは、みな機械的な出来事だとCohenはいう。

 「われわれがいま知っていることは、当時わかっていたことばかりだ。われわれがいま目の当たりにしている状況は、古い科学をベースとした技術の進化ににすぎないのだよ」(Cohen)

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]