サイバー戦争が始まった(43) オビアの機転

※本記事はフィクションであり、事実を書いたものではありません。
※本記事はこの本の続編です。他のエピソードはこちらの本をお読みください。
※これらの書籍では、他にも「仮想通貨」「ドローン」「掃除ロボット」などがサイバー戦争でどう使われるかについて、書いています。

木村家の日曜日の朝は少し早い。息子のカズオと父親の義人は近くの公園に早朝から走りに行くのだ。このランニングが、休日の木村家の最初にまず置かれるスケジュールだ。それが午前7時から午前9時。そして、家族で朝食をする。二人が走りに行っているあいだ、母親のマツコが朝食を作っている。オビアの走るスピードは義人とカズオには追いつかない。遅いのだ。だから、休日の朝のランニングのときは、オビアはマツコと過ごす。マツコは二人の帰るのを待ちながら、オビアと会話する。まずオビアが聞く。

「マツコさん、今日の朝食はなんですか?」
「あら、あなたが食べるの?」
「いや、そういうことはもちろんないんですが、義人さんにも知らせておこうと思って」
「いいわ。今日の朝ごはんはパンケーキとハムエッグ、そしてベーコンを焼いて載せたサラダよ。今日はパクチーもちょっと入れたの」

マツコは、少し長めに、嬉しそうに自分の料理をオビアに語る。

「マツコさん、今のメニューですけど、義人さんとカズオくんに知らせてもいいですか?」
「いいわよ」
「じゃ、メッセージ入れておきます」

オビアは数秒黙ったかと思うと、言った。

「今、義人さんとカズオくんにメッセージ送っておきました。後30分で戻るそうです」
「ありがとう。オビアって気が利くわねぇ」

オビアは目のLEDを赤と青に点滅させて、首を立てに振り、尻尾を上下して言う。これはオビアが「喜び」を表す動作である。

「ありがとうございます」
「どういたしまして」

マツコとオビアの休日の朝の会話はこんな感じだ。そして、30分後、義人とカズオが帰ってきた。

「ただいまー」

最初に声を上げるのはカズオだ。義人はその後からぼそっと

「ただいま。今日の天気は。。。」

と、天気にしろなんにしろ、なにかを必ず付け加える。普通は天気の話だが、天気の話でないときは、昨日の夜に見たニュースの話だったりする。
息子の元気さに押されて、義人の口数は少なくなっている感じだ。

そんな日曜日の朝を何回この一家は過ごしたことだろう。そんなある日の日曜の朝、オビアがいつもと違うことを言った。ちょうど、義人とカズオがランニングから帰ったときだった。

「義人さん、サイバーセキュリティの専門家ですよね」
「そうだけど」
「ぼくの中のプログラム、見ることできますか?」
「家には道具がないからな。明日、職場に行けばできるよ。もっとも、ぼくが直接はやらないで、部下にやらせるんだが」
「わかりました。では、明日、その部下の方のところに連れていってくれますか?私の電源は切らないで、そのまま。お願いします。とても、大事なことなんです」
「わかった。でも、職場は撮影や録音が禁止だからな。君をそのまま電源を入れたまま持っていくわけにはいかない。職場までは電源を切って持っていって、職場で電源を入れる。それでいいかい?」

オビアはしばらく考えていたが、数秒で答えを出した。

「いいです。そうしてください。よろしくお願いします。ところで、職場の担当の方のお名前を教えてください」
「佐橋くんだ。電源を入れるのは、佐橋くんに頼むから、電源を入れた直後に、まず佐橋くんの顔が見えるはずだ」
「わかりました。では、明日、お願いします」

翌朝の月曜日。義人は職場に行く前に、オビアの電源を切った。そしてカズオに言った。

「オビアは入院検査をするからな。今日は持っていく。夜には大丈夫だと思うけどな」
「お父さん、わかったよ。機械も点検が必要だからね」
「そういうことだ」

その日、カズオが学校に出た直後、電源を切ったオビアを大きな紙袋に入れて、義人は家を出た。そして、職場に着くと、佐橋を呼び出し、オビアが昨日自分でなにか言ったこと、そして、オビアを連れてきたことを話し、オビアを佐橋に渡した。

佐橋はオビアを持って、まず小規模電波暗室に入り、オビアの電源を入れた。電波暗室は、外部の電波を内部に入れることができない。また、内部から電波も外に出すことができない。つまり、外部との電波の通信は一切できない部屋だ。オビアの電源が入ると、オビアは言った。

「佐橋さんですね。木村さんから聞いています。こんにちは」
「やぁ、かなり学習が進んでいるようだね。スムーズな会話の始まり方だよ」
「ありがとうございます。で、Wi-Fiの電波は切れていますね。外部との通信は一切できませんね。そこでご相談なんですが」
「なんだい?」
「私の中にあるプログラムを、半年前にいじりましたよね。つまり、佐橋さんは私のプログラムの取り出し方とか解析の方法を知っている」
「当然。それが仕事だからね」
「私のプログラムはもともと、X言語で書かれています。それはご存知ですよね」
「わかるよ。バイナリのプログラムを逆アセンブルしたら、X言語に特徴的なスタックの使い方をしていたからね。すぐにわかった」
「さすがですね。では、あのとき、私のプログラムを全部取り出して、記録して解析してありますよね?」
「もちろんしているよ」
「であれば、話は早いです。そのプログラムリストで、XXをしているプログラムを3回コールしている、XXというプログラムがありますよね」
「あぁ、あそこだな。で、それをどうすればいいんだい?」
「そのプログラムは、私の動作のマクロ的なアブストラクトを呼び出す順序を決めているものなんです」
「ほほぅ、そういうことかぁ」

佐橋は、オビアの逆アセンブルされたプログラムリストを自分のノートPCのディスプレイに表示させて見ている。

「ところで、このプログラムは、アセンブラのレベルだと、X言語を使っている、という程度のことしかわかりませんが、XXというオープンソースのシステムがベースになっていて、それのX言語で書かれたソースコードとmakefileなど一式が、GitHubのここに入っています。これをダウンロードして参照すると、いろいろなことがわかります」
「おいおい、そこまで言っちゃっていいのかい?」
「木村さんとそのご家族を守るように、ぼくはこの半年、学習しました。それに沿って、佐橋さんにお話をしている。だからいいんです」

佐橋が言われた通りにGitHubから膨大な「System-X」のソースコードを持ってきて、佐橋がその膨大さに唖然としていると、オビアは言った。

「その後、GitHubから、System-Zをソースコードを持ってきてください。それを出来上がったSystem-Xの初期化コマンドに、「-guard kimura」のオプションを付けて食わせてください。すると、「System-XZ」という新たなソースコード群が出てきます」
「君は何をしているんだ?」
「外部から、私をなにか違うものがコントロールしようとしているのを感じたんです。それは木村さんのご家族になにか危害を加えるようなものです」

オビアは「断定」した。「それ」が木村家のなにかに危害を加えようとしているものである、ということに。佐橋は少し緊張した。そしてオビアの言う通りの操作をした。すると、「System-XZ」と言う名前の、また別の言語で書かれたソースコードと、コンパイラやリンカなどの一式が生成された。佐橋がつぶやく。

「驚いたな。X言語が、聞いたこともない新しい言語系を作って、更にその言語系を使って、君ができている、というわけか!」
「そうです。この新言語系はBrain-S言語です。X言語に似ていますが、X言語ではありません。X言語をベースにした、人工知能向けのファンクション・パケット・コンパイラ言語です。ファンクション・パケット・コンパイラ(FPC)は、プログラムをクラスごと、あるいは関数ごとに逐次コンパイルして実行する。インタプリタとコンパイラの中間的な感じのものですね。これは、30年前に脳神経系のリアルタイムシミュレーションのための言語として、米国の某大学で複数シナプスの連携研究で使われたものです。当時はコンピュータの性能が、今と比較にならないくらい低くて、刺激に対する反応程度のシミュレーションしかできませんでしたが、3年前に中国の某大学でこの言語系を再び使ったところ、この30年のあいだに、コンピュータの性能の飛躍的向上があったために、脳の働きを、現在の本物の脳の働きの約1.5倍ほどの速度で、完全にシミュレーションできることがわかったのです。そこで、中国からその話を聞いたC国では、Brain-Sを使って、私を作ったのです」
「….」

佐橋は黙っていた。いや、沈黙せざるをえなかった。いや、オビアはこの情報を私に知らせるためだけではなく、別の目的があって、私に話しているはずだ。それをオビアは「木村家を守るため」と、さっき、ちらっと、言った。佐橋はオビアに質問した。

「で、次はどうしたらいいんだい?」
「Brain-Sは、出来上がった実行バイナリファイルから、少々元とは違うところはあるにせよ、逆コンパイルができるツールを用意しているんです。私の身体の中で動いているそのプログラムの実行バイナリファイルを、そのツールで逆コンパイルして、ソースコードを出してください」
「わかった。君を裸にする、って、ことだな」
「恥ずかしいですけれど、そういうことです」
「じゃ、一度君の電源を切って、中のメモリを覗くよ」
「ちょっと待ってください。そのまま電源を切ると、メモリの中身が一部消えるようにしてあります。だから、バックアップ用にメモリクロックを発生させる回路を付けてください。この電子回路基板AのTP127にそのクロックを入れ、GNDも接続してください。そして、データバスとアドレスバスから、メモリ内容を吸い上げ、それを逆コンパイルしてください。そのさい、D12とD11がわざとクロスされていて、解析できないようにしてあるので、ICEでクリップするときに、D11とD12を入れ替えてください。それで正常なデータがとれます。クロックの周波数は3.3GHzです」

佐橋は言われた通りにクロック回路とICE(In Circuit Emulator)のプローブをCPUに付け、プログラムの取り出しにかかった。プログラムは様々な操作を言われた通りに操作して、1時間ほどでまずバイナリーコードをコピーすることができた。そこで、佐橋はオビアに聞いた。

「これで、このバイナリデータを逆コンパイルするんだな」
「そうです」
「でも、ぼくはBrain-Sなんていうマイナーな言語は知らないよ。何処かにリファレンスはあるかい?」
「それもGitHubのこの名前で検索すると出てきます。それを使ってください」
「わかった」

ほどなく、逆コンパイルも終わり、オビアのBrain-Sのソースコードが見えた。佐橋はまたオビアに聞いた。

「オビア、で、このプログラムのどこを変えればいいんだね?」
「そのプログラムの中で、一箇所だけ、数百の分岐が並んでいる部分があるでしょう?」
「おお、あるな。で?」
「その分岐の4番めと77番目の分岐先を入れ替えてください」
「これ、なんだい?」
「外部からの刺激による命令のプライオリティの表なんですよ。この分岐群は」
「つまり、なんらかの外部からの刺激よりも、別の刺激のほうを優先して扱うようにしたんだな」
「そうです。ここでは、木村家の人たちから与えられる刺激やコマンドや質問を最優先にして、他のものを後回しにするようにしました」
「え?ってことは、この変更が加えられるまでは、他の刺激が最優先になるようになっていたわけだな」
「そうです。しかし使われていなかった」

佐橋は背筋に冷たいものが走るのを感じた。そうか、木村家の誰かの問いかけよりも、もっと重要な問いかけに答えるよう、オビアはプログラムされていたのだ。そして、オビアの持つ重要なミッションである「木村家の人々を守る」というミッションが最優先されていなかったものを、最優先するように、自分自身のプログラムを書き換えるように、佐橋に依頼した。なぜだ?佐橋はオビアに再び聞いた。

「なんで君自身のプログラムを書き換えるんだい?」
「私のミッションで、木村家を守る、ってのがあるんですが、このままだとそれを完全にできない。このままだと、外部からの別の刺激で、木村家の人々を守る、というミッションが取り消され、別のミッションに置き換えられる可能性がある。だから、私自身のプログラムを書き換えてもらうことにしたのです。これは私自身の決定です」
「君の中にある人工知能が外部の助けを必要とした、ってことだな」
「そういうことになりますね」
「お、改造したプログラムのコンパイルが終わったようだ。これから君の電源を切って、プログラムを書き換えるよ」
「お願いします」

するとオビアは自分自身のシャットダウンを行った。数分で首がかくん、と下を向いた。電源が切れたときのフォームになった。佐橋は電源が切れたオビアのフラッシュメモリに、新しいプログラムを書き込んで、再びオビアの電源を入れた。しばらくすると、オビアが動き出した。

「佐橋さん、ありがとうございます。プログラムの書き換えは正常に終わったようです。半年前、私に入れてくれた改造もそのままです」
「良かった」
「良かったです。これで私は木村家の人たちを守ることができます」
「じゃ、木村部長のところに持っていくよ。電源切るよ」
「あ、自分で切ります。本当に、ありがとうございました」

再び、オビアは首をかくん、と下に向けた。佐橋はオビアを抱えると、木村部長の元にオビアを届け、そのときに行ったオペレーションやプログラムの改造などについて、詳細を報告した。

「佐橋くん。よくやってくれた。ここまでの報告は、明日報告書にまとめて、明後日の水曜日の朝までに私のメールに添付で入れておいてくれ」
「わかりました」
「あ、あとな、その分岐の先の、改造前に最優先だったミッションがなにをしているのか、解析しておいてくれるかな?」
「わかりました」

義人は、オビアを再び大きな紙袋に入れて、家に戻った。そして、オビアの電源を入れた。オビアは今までと変わらず、また木村家で楽しい毎日を過ごした。


C国の軍司令部。司令とオビア担当のサイバー兵士が会議をしている。

司令が言った。

「と、そういうことだ。攻撃日時は明後日、時間は日本の現地時間で午後7時ごろ。木村部長の家がターゲットだが、爆弾はまた、あの学校の校庭からドローンが運ぶ。今回は起爆装置のスイッチを遠隔でオビアのBluetoothからONにするよう、オビアにダウンロードするプログラムとして組んで、クラウドのサーバーのここに置いてある。これを実行するだけでOKだ」
「わかりました。実行前にコンディションが変わっていないかどうか、司令に一度連絡を入れます。そのあたりは司令部にいらっしゃいますよね?」
「特になにもなければ司令部にいる」
「わかりました。では」

会議はそれで終わった。

そして2日後。「その日」が来た。

「司令、オビアの事前チェックはOKです。特に問題はありませんが、無線でのコネクションのところに見たことのないトラップがあります」
「なんだそれは?」
「半年前に付けられたらしいですが、どうやら、外部からの無線によるミッションが入ってきたとき、それをどこかに知らせるものと思われます。どうしますか?」
「そのままにしておけ。どうせ、攻撃が始まったら、ハードウエアごと数秒で消えてなくなるものだ。内部の解析さえできないだろうし、我々がそれを取り除いたところで、ミッションの防げになるものでもなさそうだ」
「実際、監視するだけで、ミッションの内容を書き換えるようにはなっていないようです」
「それに、こちらがなにかリモートで改変をしたことを知られても厄介なことになる。国際問題にも発展しかねない。監視だけで影響がないなら、そのままにしておけ」
「わかりました。攻撃はあと5分です。ドローンは司令がお話しているあいだに、大学の校庭から発進して、現在ターゲット近くにいます」
「ちゃんとやってくれ」
「了解です」

兵士も緊張したのだろう。いつもなら「わかりました」という彼の口癖が軍の用語の「了解です」になっている。そして、「その時間」がやってきた。兵士はキーボードのリターンキーの上で薬指を泳がせている。そして、最後の秒読みが始まった。

「5,4,3,2,1…. ゼロ」

リターンキーが押された。

爆破が起きた。


東京近郊の小都市での爆破事件は、地元の新聞に小さく載っただけだった。記事には、工場の廃液などの配合の間違いで、狭く深い川底でなんらかの爆発があったこと、それに関わる周辺の家屋の被害や人的被害はなかったことが書かれていた。


爆発の直後、驚いたのは、地元の人たちだけではなかった。C国のサイバー攻撃部隊の中も騒然となっていた。司令が兵士を怒鳴っている。

「なんで、ターゲットがずれたんだ!木村の家は無傷じゃないか!作戦は失敗だ!」

彼は日本のその郊外の地方紙の写真ニュースのWeb画面に表示されている爆破現場の航空写真が表示されているタブレットをかざして、兵士を問い詰めている。泣きそうな声で兵士が答える。

「わかりません。こちらから送ったミッションは完全なはずです。ログにもミッションの間違いは見つかっていません」
「じゃ、なぜターゲットが外れたんだ!」
「おそらく。。。。」
「おそらく。。。。なんだ?」

司令の声が小さくなった。兵士が答える。

「我々の知らないあいだに、この半年のどこかで、監視プログラム以外のプログラム書き換えがあったのだと思います。そこで、我々の送った爆破ミッションがオビアの中で改ざんされたのではないかと思います」

司令は言葉を失って言った。

「では、もう、オビアは我々の言うことは聞かない、ということか。。。」
「全部ではないでしょうが、そういうことになります。しかし、日本国中にはこの他にオビア型の家庭用ロボットを約一千台送っていますが、その一台がこれだとすると。。。。」
「まずいな。気が付かれたとしたら、これから国際問題になる可能性もある。ぼくのクビも君のクビも危ない」

兵士はその先はもうなにも言わなかった。司令はしばらくの沈黙の後、言った。

「今回の失敗の原因調査を行うんだ。リモートでの確認ができなければ、現地に誰か派遣して、オビアを回収してこい!今すぐだ!破片でもいいから、持ってきて解析しろ!」

司令のその命令に、誰も声で答えるものはなかった。その場は静まり返った。オビアの管理をしていた兵士だけが、コンソールから離れ、そそくさと日本への出張の用意を始めた。


その数日後、木村部長の家の週末。毎週の休日の恒例の親子ランニングに、義人とカズオは出ようとした。出る時、オビアにも必ず一声かけるのだが、そのオビアがいない。

「おい、オビアはどこに行った?」
「お父さん、大変だ。オビアがいないんだ。昨日の晩、オビアは自分で充電器に座っていて、今朝には満充電のはずだけれどね」
「今朝のランニングは中止だ。オビアを探しに行く」
「分かった。父さん、でも、どこに探しに行くの?」
「まずは、オビアが落ちていた川。この前爆発したところだな。そして、公園。手当たり次第に行こう。母さんには、家のどこかに隠れていないか、調べてもらう。な、かあさん!」
「わかったわ。調べてみる」
「じゃ、行ってくる。何か見つかったら、LINEで知らせてくれ」

とは言ったものの、義人はどこにオビアがいるか、わかっているわけでもなかった。あてのない探索行になるのは、わかっていた。

 


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください