クイズ!! バグはどこだ? 〜ちょっと休憩して、バグ探しに挑戦〜山浦恒央の“くみこみ”な話(64)(1/2 ページ)

あれは米国ボストンに駐在していたときのこと――。ある日、私が管理していたオフィスの入退室セキュリティシステムが動作しなくなった。その当時、大流行がウワサされていたあるウイルスの存在のせいなのか、あるいは……。

» 2014年06月13日 10時00分 公開
[山浦恒央 東海大学 大学院 組込み技術研究科 准教授(工学博士),MONOist]
山浦恒央の“くみこみ”な話

 バグの解決は容易ではありません。いろいろな可能性を1つずつつぶし、バグの原因を解明していく必要があります。不思議な動作や不可解な出力をするバグも、原因が分かれば、「あぁ、なんだそういうことか……」と、詰まったパイプに水が通るようにスッキリとした気分になります。

 この「スッキリ感」がないうちは、バグが完全に修正されたとはいえません。

 バグの検出は、「自動車のエンジンがかからない場合、まず、ガソリンが入っているかをチェックする」ように、「基本」や「当たり前」の事象・条件からシステマチックに疑い、チェックして、原因を特定していきますが、時々、“落とし穴にハマる”ことがあります。

 一度、「絶対にこうなっているはず!」との強い思い込みをしてしまうと、そこから抜け出すのは容易ではありません。おそらく、解決までに何週間もかかってしまうでしょう。

 今回は「ちょっと休憩」と題し、クイズ形式でバグを見つけてもらいたいと思います。バグの原因を検出するための情報は全て、問題文の中に提示してあります。ミステリーなら、米国の推理作家エラリー・クイーン(Ellery Queen)の「読者への挑戦」のようなものです。

問題:バグはどこだ?

 私は、1988〜1994年まで、米国ボストンに駐在していました。これは、そのときに起きた実話です。

 オフィスには全部で50人ほどのエンジニアがいて、日本人はその1割ほど。何でもやらなければならなかったので、私はオフィスの入退室セキュリティシステムの管理も担当していました。

 オフィスで働くプログラマーは、1人1枚の磁気カードを持ち、正面入口やコンピュータセンターなどへ入る際に、そのカードをリーダーにタッチする必要があります。曜日、時刻、その人の入室権限などをセキュリティ専用の機器(マイクロコンピュータを組み込んだ簡単なシステムが有線でドアとつながっていて、ドアの開閉を制御する)が総合的に判断して、ドアの開閉をコントロールする仕組みになっていました。

 機密情報を格納した部屋(ドア開閉セキュリティ機器は、この部屋に設置してありました)や、コンピュータセンターは、高レベルの入室権限がないとドアは開きません。正面のドアは、平日の朝6時から深夜12時まで、全従業員のカードで開きますが、それ以外の時間帯、および、休日は終日ドアがロックされ、ドアの内側に座っているガードマンに手で合図して中から開けてもらう仕組みでした。

 覚えている人はほとんどいないと思いますが、1992年の1月ごろから、米国のコンピュータ関係のエンジニアの間で、イタリアの有名な画家・彫刻家の「ミケランジェロ」の名が付いたコンピュータウイルスが話題になりました。翌月には、このトピックは世界中に広まりました。

山浦恒央の“くみこみ”な話

 ネットワーク上で飛び交った話を総合してみると、いろいろなコンピュータは既にこのウイルスに感染しており、現在、潜伏期間中だけれど、その年のミケランジェロの誕生日である3月6日に「発病」するとのことでした。

 ミケランジェロウイルスは、ウワサ話としては知っていましたが、そんなウイルスに感染するわけがないと思っていました。ところが、なんとその3月6日に、入退室セキュリティシステムが動作しなくなったのです。何度カードを読み込ませてもドアが開きません。取りあえず、その日はセキュリティシステムを解除し、手動でドアを開閉させたのですが、翌週、3月9日の月曜日には正常に動作しました。「ウイルスの有効期限は1日限定だったのかもしれない」と思い、気持ち悪さを感じつつも、「自然治癒」したと安心していたのですが、その週の13日(しかも金曜日)、再び、セキュリティシステムが機能しなくなったのです。

 この入退室セキュリティシステムは、スタンドアロンのコンピュータ制御で、外部につながっておらず、ネットワーク経由でミケランジェロウイルスが侵入するはずはないと思いました。また、同システムにアクセスできるのは(同システムに入るハスワードを知っているのは)私1人なので、不特定多数が使うUSBメモリなどからの感染も考えられません。



 では、この動作不良の原因は何だったのでしょうか? バグを探すために必要な情報は、全てこの問題文の中に入っています。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.