連載
» 2018年08月02日 09時00分 公開

組み込みエンジニアの現場力養成ドリル(7):組み込みソフトの不具合、その問題の原因は「ウイルス」か「バグ」か (1/2)

組み込みソフトウェアの不具合原因を突き詰めるには、冷静な判断が求められます。不具合の多くはバグによるものですが、ウイルスが原因であることもあります。あるオフィスのセキュリティシステムに起こった不具合の原因を解明してください。

[山浦恒央 東海大学 大学院 組込み技術研究科 非常勤講師(工学博士),TechFactory]

はじめに

 20世紀に発明された楽器がスチールドラムとテルミンなら、20世紀に「発明」され、21世紀で猛威を振るう犯罪が「振り込め詐欺」と「コンピュータ・ウイルス」でしょう。

 商用のソフトウェアを開発しているプログラマーにとって、コンピュータウイルスは大きな脅威ですね。顧客に納入した製品の中にウイルスが混入していると、大きな責任問題、信用問題になりますので、ウイルスが入っていないか厳重にチェックします。

 一方、教員をしていて感じますが、高校生や大学生はウイルスに対する脅威の感覚に乏しく、意識も非常に低いように思います。演習で作ったソフトウェアがウイルスに感染していたり、高校生プログラミングコンテストの全国大会レベルでも、提出するソースコードを格納したUSBメモリがウイルスに感染していたりします。

 言うまでもなく、ウイルス入りプログラムを他人に配布するような行為はあってはなりませんし、ソフトウェア技術者であるまえに人間として最大限の注意を払うべきです。ウイルスの脅威に対して意識の低い学生には、警告のカードを出すことにしています。

 「コンピュータ・ウイルス」という言葉を初めて使ったのは、セキュリティの世界的権威であるレナード・アドルマン氏だといわれています。1981年のことです。アドルマン氏の名前は知らなくても「RSA暗号」という言葉は聞いたことがあるかもしれません。

 RSA暗号は、データを暗号化する時の鍵と復号する時の鍵が同じではない非対称暗号であり、いわゆる公開鍵方式の暗号です。これを開発したのが、ロナルド・リヴェスト氏、アディ・シャミア氏、レナード・アドルマン氏であり、3人の頭文字を取って「RSA」と名付けられました。

現実社会に影響を与えたコンピュータ・ウイルス

 RSA暗号の誕生から10年、新聞やテレビがコンピュータ・ウイルスを2度に渡って大々的に取り上げました。

 最初が1991年に起こった湾岸戦争です。多国籍軍がイラクを空爆しましたが、イラクがフランスから購入した防空システム用プリンタのマイクロプロセッサに、ウイルスが仕込まれていたのです。多国籍軍は空爆直前にウイルスを「活性化」し、イラクの防空システムを混乱させました。空爆は成功し、「武器」としてのウイルスが注目されたのです。

 2つ目の事件はその2カ月後。1991年3月に一般社会で発病しました。いわゆる「ミケランジェロ・ウイルス」です。これは、ハード・ディスクのブートセクタ領域(電源を入れてOSが最初に読んで実行する箇所)を書き換えたウイルスです。

 ウイルスに感染したコンピュータは、イタリアの偉大な芸術家であるミケランジェロの誕生日である3月6日に発病しました。発病したコンピュータはディスク上のデータを広範囲に破壊したため、アメリカでは大きな社会問題になりました。翌年の1992年3月6日も、同じようなデータ破壊が起きる可能性があると、メディアは大きく報道し、警告を出しました。

問題編(制限時間30分)

 ここまでの話は問題編の背景で、ここから問題編です。

 1992年、私がボストンに駐在していた時のことです。オフィスの規模が大きくなり、エンジニアの数が50人を越えたことや、機密情報の保護を強化するため、本格的な入退室セキュリティ制御システムが導入されました。同年1月半ばのことです。

 このシステムは、典型的な組み込み系で、中に組み込んだマイクロプロセッサが正面玄関、裏口、コンピュータ・センター、文書保管室の4つのドアと有線でつながっており、ドアの開閉を制御します。なお、このシステム本体は、コンピュータ・センターに設置してありました。

 オフィスで働くプログラマーは、1人1枚の磁気カードを持ち、正面玄関、裏口、コンピュータ・センター、文書保管室へ入る時に、ドア脇のリーダにカードを読み込ませます。休祝日、曜日、時刻、その人の入室権限等を入退室セキュリティ制御システムが総合的に判断してドアの開閉をコントロールする仕組みになっていました。

 玄関と裏口のドアは、平日の朝6時から深夜12時まで、全従業員のカードで開きますが、それ以外の時間帯と休日、祝日は終日ドアがロックされ、正面玄関の内側に座っているガードマンに手で合図して中から開けてもらう仕組みでした。また、文書保管室やコンピュータ・センターは、高レベルの入室権限がないとドアは開きません。このシステムが本格的に稼働したのが2月のはじめでした。

 そのころ、新聞やテレビで「3月6日にミケランジェロ・ウイルスが発病する」と話題になっていましたが、私をはじめとした50人のプログラマーは、人ごとだと思っていました。ところが、その3月6日にオフィスの入退室セキュリティ制御システムが動作しなくなったのです。何度カードを読ませてもドアは開きません。取りあえずその日はセキュリティシステムを解除し、物理的な鍵による施錠と、手動操作でドアを開閉させました。

 不思議なことに、翌週、3月9日の月曜日には、セキュリティ・システムは正常に動作したのです。「新ミケランジェロ・ウイルスは、有効期限が1日限定なのかもしれない」と思い、気持ち悪さを感じつつも、「自然治癒」したと安心していたのですが、その週の13日(しかも金曜日)、再び、セキュリティ・システムが機能しなくなりました。

 以上から、入退室セキュリティ制御システムが正しく動作しなかった原因を推理してください。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

Loading