(二十)

江東区・渋谷区

Ⅰ:江東区:青海:未明




 終わったんですか? と誰かが尋ねた。誰に尋ねるでもなく。

 深夜の二時半を回っていた。ベガス本社研究所の広大な司令室に集うエキスパートたちは、誰一人その場を立ち去ろうとしない。何が起きたのか。答えは見つかったのか。中央道の顛末について続報を待ちながら、眠れない夜になると覚悟を決めている。

 四本木はオフィスチェアの背もたれに体重を預け、口を堅く横一文字に結んでいた。その視線は、パスワードが解けた深緑色のノートPC、その液晶画面に注がれている。



 四本木篤之様


 まことに勝手な判断ではありますが、自動運転研究用プロトタイプ一号(アスカ号)のファームウェアに修正を施しました。TPMSの動作に、耐タンパー化(※ハッキングで改竄されない工夫)のテストコードを忍ばせてあります。タイヤが減圧してバランスを崩した際、本来警告を出すだけのTPMSモジュールがブレーキセクションに対して強権を発動、緊急停止動作に入ります。このコードはROM自体を物理的に交換しないと改竄できないよう、メインメモリとの関係に工夫を凝らしてあります。アルゴリズムの仕様書は本PCのデスクトップに置きました。逆にソースコード(※プログラムの原型となるデータ)には敢えてコメント文を残していません。仕様の詳細は四本木さんの判断に基づき、最低限のメンバーのみで共有するようにしてください。


 耐タンパー化が必要と考えた理由は、おそらく修学旅行バスの一件が、人為的に引き起こされたものであると推察するからです。ハッカーは通電状態のメインメモリを(おそらくICE的なツールを使って、直接的に)書き換え、装着されたROMを含むハードウェアの一切に手を加えることなく暴走させるという、極めて高度な、証拠を残さない手口を講じました。件のバスは七割方バイワイヤ化された最新型であるため、原理的には充分可能です。特にカーナビゲーションやGNSSと整合を取るモジュールが作り込まれたため、メインメモリとROMの力関係がおおきくかけ離れてしまった。この辺りに「付け入る隙」が生まれたのだろうと思います。


 そこでブレーキセクションに、他のプロトコルと関わりを持たない、まったく新たな、そして自律的に動くコードを忍ばせることにしました。メインメモリ上で相当量のコードが改竄され、ブレーキ系を意のままにコントロールされても、このコードは影響を受けません。

 本修正の目的は、外部から強制的に車を停める機能の実現です。これができなければ、バイワイヤ化された車が乗っ取られた場合、暴走状態から搭乗者を救うことができない。特にドライバーが盲目であったり、病人であったりした場合は、強引に飛び降りるといったことも不可能でしょうから、すなわち来たるべき自動運転(それもレベル4以上の、完全な自動運転)において、こういった仕様の有無が議論されることは不可避に思われます。


 強制停止のきっかけをTPMSに忍ばせるというアイデアは、ただの思いつきです。日本国内ではTPMSが本格的には導入されていない上、TPMSはただの警告装置ですから、悪意あるハッカーの目にも留まりにくいだろうという期待があります。しかし本アイデアは、TPMS搭載を義務化している欧米において「規格違反」となる可能性が高い。自動運転が実用化されるまでに、もっとスマートな手法を含め、業界全体を巻き込んだ議論が必要です。

 

 そこで本コードの意義をテストしていただくべく、研究用プロトタイプ一号(アスカ号)に忍ばせました。本来なら企画立案の上で開発項目ナンバーを取得すべきテーマですが、この朽舟に免じてお許しいただき、四本木さんの直接指揮の下、ご検討をお願いいたします。


 被害者のご冥福を祈ると供に、研究に身命を賭す証として

                          朽舟滋




「……遺言のつもりだったんだろ。格好つけやがって」四本木は鼻水をすすった。「馬鹿野郎……先にいかせねぇぞ、お前さんだけは」

 一方。

 垂水昂市は四本木に背を向け、仁王立ちしたままだ。岩戸紗英が無事に救助された。その一報を聞いてから、しかし、姿勢はずっと同じ。壁一面に表示されたテレマティクスの帰結、折れ線グラフの軌道を見上げている。

 やがて。

「四本木さん」垂水は、ゆっくりと振り返った。「私にまだ隠し事をしているでしょう」

 四本木は踏まれたカエルのように濁った「え」の声を出し、机に置いたティッシュ箱から紙を引いて鼻をかみ、ゆっくりと立ち上がった。

「……あなたは食えませんね、垂水さん」

「岩戸を助けていただいたことは、感謝します」

 垂水はネクタイを緩め、しかし表情は精悍になった。「しかし、アスカ号の信号がここに届けられた理由については……まだはっきりしない。速度、ブレーキ、ハンドルの操舵角……肝心なGNSSだけをカット。これに僕は納得できない……ロガーってやつを外せば、一切送ってこなくなるはずだとおっしゃいましたね? どうして特定の信号だけをご丁寧に送りつけてくる必要があったのか。犯人には何一つ得なことがない……いや、四本木さんが犯人の親玉の場合は別ですけど」

「ちょ、ちょっとちょっとちょっとちょっと」

「……それはありませんがね。TPMSを使ってアスカ号を停める手段を、私たちに開示してくれたのは、当のあなたです」

「う……そ、そうですよ。びっくりしたぁ」

「……おかしなことは他にもある。たとえばタンクローリー。どうして併走し、警察のNシステムや目撃証言が残るようなことをする必要があるのか。永福料金所間際までちゃんと走ってから激突できるアスカ号……そんな高度なプログラミングができる連中ですよ? 人工衛星からの位置情報、GNSS信号と地図を頼りに走れるのなら、タンクローリーのきっかけなんて必要でしょうか? 時限タイマーを仕掛けてもいいし、カーナビで特定位置まで進んだら暴走するよう仕掛けてもいい……私が犯人グループのメンバーなら、こんな、大袈裟な猿芝居は必要ないと主張しますよ。だが彼らはあえて、手が込んだやり方をしている。大型車を手配して、事故を装う手口にこだわっている」

「……一点、思い当たることがあります。僕がわかっていることで、たぶん垂水さんが気づかないだろうポイントが」

「私が……気づかない?」

 四本木は肩をすくめた。「垂水さん、我々は隠し事をするつもりなんてありません。役員たちは漏洩騒動で白旗をあげている。ここに電網庁が入るということは全社の意向だ。ならば、あのスクリーンに表示されている細かいデータ一切について、僕の口から、きっちりお話しすべきでしょう」

「細かいデータ?」

 垂水はあらためて壁をにらんだ。

 折れ線グラフは3本ある。速度、ブレーキ踏力、ステアリング(操舵)。しかし、それ以外にも英単語や数値の列がずらずらと並んでいる。CANを飛び交う制御信号なのだろうが、造語だらけで部外者には想像が及ばない。

「僕から言いましょうか? 奴等がベガスに送りつけたかったのは、おそらくあの、divTRフラグです」

「divTRフラグ?」垂水は肩をすくめた。「何ですか? ……あれか……divTR = 1 となっていますね。変数だ。取り得る値は、0と1?」

「そう。話は一年前に遡ります。例の、トラックの追突事故。大規模なリコール。あれに対策したうちの車のブレーキには『TR条件分岐』というアルゴリズムが搭載されてます。TRってのはずばりタンクローリーのことですよ。

 しかし『TR条件分岐』は常に動作するわけではありません。

 通常走行している時は、divTR = 0、つまり偽(false)です。『TR条件分岐』は実行されない、ということです。

 しかし銀ピカの車が併走していることを車のセンサが認識したとき、コンピューターがdivTRのフラグを立てる。divTR=1、つまり真(true)になる。そこから先、車に積まれたECU全部が『特殊な状況にある』という認識を共有しつつ、動作するのです。その意識の切り替えのような情報が divTR 。

 そして、実は、divTRの値は会社に飛ばされてきます。と同時に、車が内蔵する記録保存用のフラッシュメモリにも、divTR は書き込まれる……」

 四本木の説明を受けて、垂水はおもむろに膝を打った。

「フラッシュメモリ! ……つまり事故車を調べた時、タンクローリーが併走したということが、証拠として記録される」

「……そうです。しかも犯人はそれを知ってる。もともとリコール絡みで朽舟が作った専用のロギングツール、役員の自宅から洩れたって奴ね。アレは複数台の車のdivTRを収集できます」

「なるほど。バス事故も、本来ならdivTRが車に記録されているべきだったわけですね」

「ええ。でも車体の損傷が酷くて、divTRの値はサルベージできなかった。一方、会社には信号が届いていました。だから社内のサーバーには記録されている」

「ということはベガス社は……バス事故がタンクローリーがらみだと気付いていたわけですね。しかし、それを隠した。やましい気分があるから、和解に応じた」

 四本木は何度かうなずいて、こう続けた。「……言い訳になりますが、僕は今日の今日まで、divTRというフラグが社内のサーバーに記録され続けているという事実を知りませんでした。こいつはリコール対策班の……つまり、役員直属の私兵だけが知りうる話でした。朽舟もそこに関わっていた」

「つまりこういうことですか。犯人グループは、divTR=1なるデータを、車のフラッシュメモリとベガス社のサーバー双方に残すため、わざわざ面倒な手を打った……あわせて現実の道路事情、実際にタンクローリーが走っていたという状況証拠もしっかり作る。警察の捜査で二つが結びついた時、事故の擬装が完成する。いや、違うな……ただの事故じゃない」

 垂水は言い換えた。「ベガス社の不具合による事故……という擬装が完成する」

 四本木は小さくうなずいて、それから肩をすくめた。

「だけど犯人も計算違いだったんでしょうな。バスのフラッシュメモリは壊れていた……そりゃあそうだ。飛行機のブラックボックスほど頑健な作りにはしてない。ハッキングの手口は大したもんです。しかし証拠の捏造は、達成できなかったんだ」

「確かに。でもベガスのサーバーには信号が記録されていますよね。現に、今夜も」

 四本木は苦笑した。

「メーカー側はこんなデータ、わざわざ公表しません。隠し通すに決まってる。なんてったって内部の僕すら知らなかったぐらいだ。役員連中は狡猾でしたよ。国交省と司法を巻き込みつつ、divTRを公表しないまま賠償を決着させた。いけないとは思います。僕は好きではない。でも、バスを叩き壊すことしかできなかったハッカーは、うちの役員以上に救いようのない馬鹿どもだ。やり過ぎたわけですよね?」

 しばし沈黙が続いた。

 やがて。

 垂水はくすりと笑い、首をゆっくり横に振った。

「連中は、もっと怖い奴等かもしれませんよ? 我々の想定を越えるほどの」

「もっと……怖い?」

「訴訟が日本ではなく、北米でたてられる場合を考えてみてください……証拠開示義務ディスカバリ制度というものがあります。ご存知ですか?」

「……いや……聞いたことありませんな……」

「ディスカバリとは、訴える側と訴えられる側の双方に、証拠たるデータの一切を公にする義務が課されることをいいます。たとえばdivTR。訴えられたベガス社がこれを隠蔽したいとしましょう。一方、犯人がベガス社から流出したロギングツールを持っているなら、犯人側にも divTR の記録があるということだ。違いますか」

「……そうなりますね。うちの会社のサーバーに送られたデータを、犯人のPCから見ることができる。divTR のログを、PCで残すことは可能だ」

「なら、間違いなく裁判は紛糾します。告訴する側、つまり犯人グループが法廷にログを提出するでしょう。彼らは主張します。事故当時、divTR の値は1だった。つまりタンクローリーが傍にいた。そのとき、被告のベガスはどう出ますか」

「…………知らない、では許されないってことですか」

「ええ。ディスカバリの義務を怠れば一発で敗訴になる。ベガス社は値を改竄して提示せざるを得ない。divTR = 0 だったと主張するしかない。こうなると、どちらかが嘘をついたことになる。どちらが偽証しているかが争点になるんです」

「…………………………なるでしょうね」

「これは大変なプレッシャーだ。マスコミが騒ぐ。社員も心穏やかでいられない。もしも社内に裏切り者が現れたら、その人物を起点に隠蔽工作は崩れる。偽証罪が上乗せされれば、懲罰的判決で賠償金は桁が繰り上がる」

「うちの社員が犯人側に接触され、買収される……とか、そういう意味ですか? だから怖い、と」

「いいえ。よく考えてください。場合によっては買収すら必要じゃない」

「……?」

「わかりませんか。内部告発は立派な行為だ。隠蔽を不愉快に思うような、まっとうな社員、愛社精神に溢れる社員……つまり、正義漢たちが会社を売るハメになる」

 四本木は青ざめる。朽舟の妻。真面目で、誠実な元社員。役員会に告発文を送りつけた、曲がったことが許せない、善良な人間。

「朽舟夫婦が……犯人グループの狙いどおりに動いたというのですか。悩んで、考えて、考え抜いて……最後の最後まで闘って……それなのにっ」

「朽舟に限らない。立派な社員をたくさん抱えた会社であればあるほど、この罠は上手く機能する。忌々しい狙いですよ。犯人は、真面目なベガスの社風につけこむことを考えた。そういう罠をしつらえた」

 そこまで言っておいて、垂水は問いかけた。「四本木さんならどうしていましたか? ……あなたも立派な社員であり、そして正義漢だ」 

 ハッカーが企業の傷につけこみ、存在するはずのない不具合を捏造する。それを隠蔽しようとあがいた結果、国際訴訟の現場に引きずり出された、その時。

 あなたのような真面目な人間が敗訴の起点になりうる。

 ハッカーに勝利をもたらし、会社を潰す。そのきっかけにならないとも限らないのです——これって。

 これって怖くありませんか。

 垂水の言葉を耳にして、ベガス本社研究所技監は弱々しく自嘲した。

 それから「怖いです」と呟き、がっくりと頭を垂れた。







Ⅱ:渋谷区:初台:未明




 初台の新庁舎は静まりかえっていた。サーバールームにも廊下にも人影はない。

 司令室と名付けられた大部屋にだけ照明が灯っていたが、それもたった今、香坂の手で消された。吐瀉物を掃除し終えてしまえば、もう灯りは不要。机に突っ伏して眠ってしまった女ハッカーを、このままゆっくり寝かせてやろうと思う。

 天井の蛍光灯が消えても、スクリーンとPCモニターがLEDライトのように部屋を照らしている。だから香坂は大部屋の机を縫って、先刻まで作業していた席に腰掛けることができた。

 液晶画面には、GEEが咄嗟に組んだ画像認識プログラムの仔細が表示されている。スクロールしつつ香坂はその出来映えに驚嘆した。条件分岐やループの記述が圧倒的に美しい。少ない文字列で大きな効果をあげるプログラミングを、あの一瞬で、あの緊張感の中で、やってのけるなんて。

(この人は、本物のハッカーだ)

 震えるような夜だった。岩戸の身に危険が迫ることは予想できたけれど、まさか、こんな展開になるとは。しかし気がつけば事を成し遂げた自分がいる。人の命を救えたのかもしれないという手応えがある。

 もちろん自分の力は微々たるものだ。仲間がいるから成果が大きくなる。組織に身を置くから、個々の力が収斂される。

(これが……こういうのが、やりがいっていうのかなぁ)

 香坂はオフィスチェアの背もたれに身体を預けるべく、のけぞった。HMDはとっくに外し、ワイシャツの胸ポケットに入れている。画像はすべてスクリーンに表示し、音はイヤフォンで聴く。非常時だから警察情報は耳に入れておくべきだし、こちらも何か新情報を掴めば、すぐに緒方へ送り返す必要があると思っている。警戒は解いていない。

 但し。

 眠っている人間がいる部屋で、スピーカーから大きな音を出すといった無粋なことはしない。他人との関係を、そして情緒を重んじる気性は母譲りだと思う。

 香坂はふと、母親に電話してやろうかと思った。深夜の三時前。眠っているに違いない。けれど伝えたいと無性に思うのだ。僕は生きている。そして有能な仲間と力を合わせ、人命救助に貢献したんだ——そんなことを。

 修学旅行バス事故が起きた夜、無粋を誰よりも嫌う母親が何度も電話をかけてきたことが思い起こされる。

 やり返すなら今だと思う。

(やりませんよ、やらないやらない)

 石橋を叩いて、でも渡らない。それが香坂一希だ。そのかわりメールでも書いてやろう。そう結論した。

 大きな欠伸をしつつ液晶画面に正対し、キーボードに手を這わせる。

 そのときだ。


 電網免許証の探知システムに、新たな反応があらわれた。


(なんだって!?)

 目の覚めるような一撃だった。慌ててその座標と時刻を確認すると、香坂はHMDのマイクを通じ、緒方に向かって「発報」する。

 確信があった。これは一刻を争うネタだ。


 雌雄を決する情報に違いない、と。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る