Reaper vs. Creeper

前回ご紹介した「クッキーベア」ですが、一時期の史料では、これを指して世界最初のコンピュータワーム/ウィルスとしていることがあったそうです。(一部のハッカー以外には) 長きにわたって「感染」元が謎に包まれていたようですから、そう信じてしまったのも無理はありません。ほんの数分端末を離れただけで知らないプログラムが組み込まれるなどということは、当時の常識ではあり得ないことでした。

本物のコンピュータワームが世界で初めて発生したのは、奇しくも「クッキーベア」登場の翌年のことでした。「クリーパー」と呼ばれるそのワームは、PDP-10で動作するTenexというOSで製作されています。開発者はボルト・ベラネック&ニューマン (BBN) 社に務めていたボブ・トーマス氏。BBNはArpanet (のちのインターネット) の通信装置を一手に担っていた会社で、トーマス氏もそのエンジニアとしてさまざまな研究に従事していました。

「クリーパー」は最初からワームの姿をしていたわけではありません。もともとはArpanetにおけるプログラム転送の実験として作られたもので、他のTenex機を探し出し、そこに移動して自動起動、「私はクリーパー」というメッセージを残してさらに別のTenexに移動…という動作を繰り返すだけのソフトでした。自分自身のコピーは残さない、純粋に移動だけを目的としたプログラムだったのです。

「クリーパー」が出回りはじめた次の年、同社のレイ・トムリンソン氏はArpanetで利用可能な電子メールプログラムを発明しました。これが今日のemailの原点となるわけですが、「クリーパー」に自己複製を残させるようにしてワームへと進化させたのも、面白いことにこの人物だったのです。emailの父がwormの育ての親でもあったというのは、なんとも因縁めいた話ですね。

トムリンソン氏は後始末の道具として、「リーパー」という消去プログラムも送り出しました。これはネットを徘徊し、「クリーパー」を探し出しては消去するという、ワクチンめいたワームです。「リーパー」の散布により「クリーパー」は跡形もなく消え去りました。しかしこの一組のプログラムの存在は、後にさまざまな影響を残しています。まず「McRoss」という航空管制シミュレータが、この仕組みをデータ交換に応用しています。またゼロックスパロアルト研究所では、1973年からワームの有効利用に関する研究が始まりました。彼らはその過程で 100台 (一説には250台) のAltoを起動不能にするという大失敗をやらかしたといいますが、もしかするとこれがワームによる最初の破壊行為だったのかもしれません。プログラミングをゲーム化したことで名高い「コアウォーズ」もまた、「リーパー」と「クリーパー」に触発されて生み出されたものでした。もっとも作者のA.K.デュードニ氏がこのエピソードを耳にしたのは10年近く経ってからのことで、すでに実話ではなく伝説として受け止めていたようですけどね。

参考: John Soch, Jon Hupp: The "Worm" Programs (Communications of the ACM, March 1982)

Elk Cloner

ワームに比べるとウィルスは一回り歴史の浅いものといえるでしょう。世界最初のウィルスはApple IIで誕生した「エルク・クローナ」であることが知られています。いまではオープン・ディレクトリ提唱者の一人として知られているリック・スクレンタ氏が、友人たちをからかう目的で1982年頃に作ったものですが、そのソースが作者自らの手でオンライン公開されていることを最近知りました。黎明期のワーム/ウィルスはほとんどがサンプルも残さず絶滅していますから、これはちょっとした驚きでした。