第0章 第1話:Hello World ―― 終了したサービスと、バグだらけの再起動
初投稿です
視界が真っ赤だ。比喩ではない。僕の目の前にある27インチのデュアルモニターが、異常事態を知らせる警告灯のように赤一色のアラート画面を吐き出している。
『CRITICAL ERROR: Data encryption detected.』 『Your files are encrypted. To decrypt them, pay...』
「……クソっ、またか」
キーボードを叩く指が震える。コーヒーとエナジードリンクの過剰摂取で、胃の奥が焼けるように熱い。僕、桜井輝明がリードエンジニアを務めていた大規模Webサービスは、今、まさに死を迎えようとしていた。海外から大規模ハッキング、ランサムウェア――いわゆる身代金要求型ウイルスの直撃だ。
原因はわかっている。三ヶ月前、僕は会社の上層部に強く進言したはずだ。 『ログイン認証の処理に脆弱性があります。サービスを本格展開する前に、専門家による脆弱性診断を実施すべきだ。今のうちにパッチを当てないと、いつか致命的なハッキングを受けます』と。
けれど、返ってきたのは冷笑だった。 『桜井君、セキュリティなんてのは金にならないんだよ。それにね、世の中には多くの企業がある。我々が攻撃されるなど万に一つもないだろう。そんなことより、来週の大型アップデートに合わせて新機能、間に合うんだろうね?納期に間に合わないなんて許されないぞ』
利益優先。納期絶対。その結果が、これだ。連日、ニュースでは我が社の失態が報じられ続けている。顧客データは流出し、頼みの綱だったバックアップもネットワークから切り離されておらず、汚染された。ダークウェブ上の掲示板では、数万人分の個人情報や会社の機密情報が、名もなきハッカーの手によってオークション形式で切り売りされている。画面の向こうで、僕たちが積み上げてきた信頼が、仮想通貨というデジタルな数字に変換されて消えていく。
「……もう、いいや」
ふっと、糸が切れた。心臓が、変なリズムで跳ねた。胸を締め付けるような激痛。最後に思ったのは、情けない後悔だった。
――次は、絶対に壊れないシステムを作る。
それが、僕の人生というプログラムの、強制終了の瞬間だった。
再起動は、あまりにも唐突だった。
最初に感じたのは、石造りの建物のひんやりとした空気。次に聞こえたのは、聞き慣れない言語で歌われる、子守唄のような旋律。
(……ここは、どこだ? サーバー室じゃない……?)
目を開けようとしたが、まぶたが重い。ようやく視界が開けたとき、僕は自分が「小さな籠」の中にいることに気づいた。目の前には、白地に金の刺繍が入った修道服を着た女性が、慈愛に満ちた目で僕を覗き込んでいる。
「まあ、起きたのですか? テルくん」
テル……? 輝明のことか。声を出そうとしたが、口から出たのは「あー」とか「うー」とかいう、情けない音だけだった。 手足が短い。視界が低い。認めざるを得ない。僕は、異世界の赤ん坊に転生したらしい。
ここは『正教会』が運営する孤児院。特別なチート能力? 鑑定スキル?そんなものはなかった。神様が現れて「君を勇者に選んだ」なんて説明も受けていない。ただ、前世の記憶と、エンジニアとしての思考回路だけが、この小さな体にインストールされていた。
月日は流れ、僕は五歳になった。
「いいですか、子供たち。よく見ていなさい。これこそが古くから伝わる神の御業、聖なる奇跡の源です」
孤児院ではいろんなことを教えてくれる。今日は魔法についてだった。
孤児院の広場。恰幅のいい司祭が、一枚の古い羊皮紙を広げた。そこには、複雑な幾何学模様と、見たこともない文字がびっしりと書き込まれている。 『魔法陣』と呼ばれる、神がこの世界を管理するために設計した記述言語だ。
「アル、ト、ル、ク……。聖なる光よ、不浄を照らし出せ!」
司祭が『詠唱』という名のコマンドを呟きながら、その羊皮紙に魔力を入力した。その瞬間、魔法陣が淡い青色に輝き、周囲を照らす光の球が現れる。 「わあ!」「すごい、司祭様!」周りの子供たちが歓声を上げ、目を輝かせる。
けれど。僕一人だけが、口を半開きにして、ただポカンとしていた。
(……なんだ、これは。ひどすぎる)
僕の目には、その魔法陣が「神聖な模様」になんて見えなかった。それは、模様などではなく、僕が前世で嫌というほど見てきた「コード」そのものだった。しかも、最悪なコードだ。いわゆる「スパゲッティコード」というやつだ。
まず、冗長すぎる。光を出すだけなら三行で済むロジックを、何十行にもわたって無意味なループ処理で記述している。それに、変数管理がめちゃくちゃだ。回路が整理されておらず、あちこちで魔力の漏れ(メモリリーク)を起こしている。さらに、セキュリティは皆無。外部からの不正な入力を防ぐ検証が一切存在しない。
(神様だか何だか知らないけど、あんた、デバッグ作業をサボっただろう?)
司祭が魔法陣を片付け、他の子供たちと談笑し始めた隙を狙い、僕は地面に描かれた練習用の魔法陣に近づいた。
普通の人には、ただの模様にしか見えない。だが、僕にはこれが、書き換え可能な「ソースコード」として見える。「ここをこう繋いで、この無駄なループを削れば……」
僕は足元に落ちていた小石を拾い、魔法陣の隅にある記述を一本の線でショートさせた。 そして、司祭の唱えた冗長なコマンドを自分なりに最適化して呟く。
「『最大出力』」
ドォォォォンッ!!
広場に爆発音のような衝撃が走り、太陽のような閃光が噴き出した。な、なんだ!? 何が起きた!?」腰を抜かす司祭の叫びを聞きながら、僕は確信した。
この世界の「神のシステム」は、バグだらけだ。そして、その脆弱性を見抜き、修正できる。そう確信した。
「……面白い。やってやるよ」
かつて自分のコードで人生を壊された男の、異世界デバッグ生活が、今始まった。
誤字脱字があったらごめんなさい
語句の簡単説明
• ランサムウェア:データを勝手に暗号化して「元に戻したければ金を払え」と脅してくる、身代金を要求するマルウェア
• マルウェア:コンピューターウイルスのこと
• 脆弱性:プログラムの設計ミスなどによるセキュリティ上の弱点のこと。ハッカーはこの弱点を利用して悪いことをする
• ダークウェブ:特殊な方法でしかアクセスできない匿名のネット空間。盗まれた個人情報がオークション形式で売買されることもある。よいこのみんなはあくせすしちゃいけないぞ(がち)
• リブート:システムの再起動
• スパゲッティコード:ゆでたスパゲッティのように絡まっているコードのこと。命令があちこちに飛び、複雑に絡み合って解読や修正が困難になったひどいコードのことを示す
• メモリリーク:使い終わったデータを片付け忘れることで、メモリのパフォーマンスが落ちること
• バリデーション:入力されたデータが正しいかチェックすること。これがないと悪いことをするためのコードを入れることができる
• デバッグ:プログラムの中にあるバグ(不具合)を見つけ出し、修正する作業のこと
• ホワイトハッカー:ハッカーのついになる言葉。高い技術を、サイバー攻撃を防ぐなどの正しい目的(防御や保守)のために使う人




