「コンピューターウイルス」と聞くと、私たちはファイルを消したり、データを人質に取ったり、画面をロックしたりするものを思い浮かべます。ところが、多くの資料が「最初のウイルス」と呼ぶプログラムは、そのどれもしませんでした。やったのは、画面に小さな挑発の言葉を表示して、次のコンピューターに移ることだけです。
その名はCreeper、つまり「這うもの」でした。
1971年、BBN、ARPANET
Creeperは1971年、ボブ・トーマスが、マサチューセッツ州のBBN(Bolt Beranek and Newman)社で実験的なプログラムとして書きました。BBNは、インターネットの祖先とされるARPANETの構築で重要な役割を果たした会社でした。
プログラムは、ARPANETにつながり、TENEXというOSを動かしていたDEC PDP-10のメインフレームの間を動き回りました。Wikipediaによれば、当時ARPANET上でTENEXを動かしていたシステムは28台で、Creeperが到達できるコンピューターは最大でもその数でした。
ボブ・トーマスの本当の関心は悪意ではなく、ある問いに答えることでした。プログラムは、ネットワーク上を自力で、あるマシンから別のマシンへ移動できるのだろうか。
画面に出た1文
Creeperはマシンに到達すると、テレタイプ(印字端末)に次のメッセージを打ち出しました。
"I'M THE CREEPER : CATCH ME IF YOU CAN"
つまり「私はCreeper: 捕まえられるものなら捕まえてみろ」。それだけです。ファイルは1つも消さず、データも壊しませんでした。Wikipediaは、オペレーターたちがこの実験に協力し、望ましくない影響は報告されなかったと伝えています。
最初のバージョンは、実は自分をコピーさえしていませんでした。マシンからマシンへ移るとき、後ろにコピーを残さずに移動していたのです。その後、電子メールの発明者として知られるレイ・トムリンソンが、プログラムを他のマシンに自分をコピーするよう変更しました。この自己複製バージョンは、一般に最初のコンピューターワーム(worm)と見なされています。
ウイルスか、ワームか?
ここで小さいけれど大事な訂正が必要です。技術的には、Creeperはウイルスではなくワームでした。ウイルスは別のプログラムやファイルに寄生して広がりますが、ワームはネットワーク上を自力で動きます。Creeperは後者に入ります。それでも多くの出版物が、これを「世界初のコンピューターウイルス」と呼んでいます。Wikipediaが引用するGuardianの一節も、まさにこの表現を使っています。これは概念の一般的な言い方ですが、技術的に正しいラベルは「最初のワーム」です。
「コンピューターウイルス」という用語そのものは、Creeperから12年後に生まれました。ESETのWeLiveSecurityの記事によれば、南カリフォルニア大学の学生だったフレッド・コーエンが、1983年11月3日に自己増殖するプログラムを書きました。指導教員のレン・エイドルマンが、この「感染」に似た広がり方を生物学のウイルスになぞらえ、用語を提案したのです。コーエンはそのプログラムを、Unixが動くVAX 11/750上で、約8時間の作業で作りました。
Reaper: 最初のアンチウイルス
ネットワーク上で自分をコピーするプログラムが現れると、それを止めるものも必要になりました。レイ・トムリンソンは1972年に、Reaper(「刈り取る者」)というプログラムを書きました。ReaperもARPANET上を動き回り、Creeperを見つけたところで消しました。Wikipediaは、これを最初のアンチウイルスソフトウェアと説明しています。
この物語には、きれいな皮肉があります。世界初のアンチウイルスもまた、ネットワーク上を自力で動き回るプログラムだったのです。つまり「ワーム」を捕まえるために、別の「ワーム」が書かれたのでした。
| 当時 | 今 |
|---|---|
| 1971年: 最大28台のTENEXマシン | 何十億もの接続機器 |
| 画面に冗談の1文 | ランサムウェア、データ窃盗 |
| Reaper: 目的が1つの掃除人 | 絶えず更新されるセキュリティソフト |
無邪気な実験の長い影
Creeperは無害でしたが、扉を少し開けました。プログラムがネットワーク上で自力で広がれるなら、誰かがその力を悪用することもできるはずです。その後の数十年で、まさにそのとおりになり、「ウイルス」「ワーム」「アンチウイルス」という言葉は私たちの日常語に入りました。
今日、セキュリティ研究者が同じような実験を許可なくインターネットに放てば、おそらく深刻なトラブルに巻き込まれるでしょう。1971年のARPANETは、互いを知る研究者たちの小さなコミュニティで、実験は、Wikipediaが伝えるとおり、オペレーターの協力のもとで進められました。
それでも、出発点は攻撃ではなく好奇心でした。1人のエンジニアが「もしかしてできるだろうか?」と問い、その答えを画面に1文で示したのです。
Creeperが今日書かれたら、無害な実験と見なされるでしょうか、それともセキュリティ侵害でしょうか?