第5話 ランサムウェアからの挑戦状

## 前書き

噴水システムのリファクタリングに取り組むシュウとリファ。平和な日常が続くと思われたが...


---


インデント・シティの午後は、いつものように穏やかだった。まるで台風の前の静けさみたいに、平和すぎて逆に不安になるレベルだ。


カフェでは魔法士プログラマーたちが技術談義に花を咲かせ、街の魔法システムは安定して動作していた。シュウとリファも、噴水システムのリファクタリングが順調に進んでいることに満足していた。


「今日のコミット、完璧でしたね」


リファがVSコーデックスの画面を見ながら言った。


「まあ、チーム開発も悪くないかも」


シュウは素直にそう思っていた。前職のチーム開発地獄と比べると、天国みたいに快適だ。


『リファさんとの作業、思ったより楽しいし。一人でやるより効率もいいかも』


その時だった。


「緊急事態だ!」


コミット・マージンが血相を変えて飛び込んできた。まるでゾンビ映画で「奴らが来る!」と叫ぶ生存者みたいに、パニック状態だ。


「どうしたんですか?」


「基幹システムに異常発生だ。すぐに来てくれ!」


***


メインモニターには、見慣れない画面が表示されていた。まるでホラー映画のクライマックスシーンみたいに不吉だ。


真っ黒な背景に、血のように赤い文字。見ているだけで胃が痛くなる。


```

=== RANSOM WARE ===


インデント・シティの愚かな管理者たちへ


貴殿らの魔法システムを完全に暗号化した。

72時間以内に、以下の条件を満たせ。


・DMC(ダークマナコイン)1000枚を指定ウォレットに送金

・全ての技術者の退職届を提出

・魔法システムの管理権限を我々に移譲


これらの条件を満たさない場合、

インデント・シティの魔法システムは永久に封印される。


なお、復旧を試みた場合、

システムの完全破壊を実行する。


カウントダウン開始: 71:59:32


連絡先: ransom_ware@darknet.magic


=== WE ARE WATCHING YOU ===

```


『ランサムウェア...?』


シュウの血の気が引いた。前の会社でセキュリティ事故の処理をやった時の悪夢が蘇る。あの時は3日間不眠不休だったな...


「これ、本物ですか?」


「残念ながらな」


コミットが深刻な表情で答えた。


「実際に、街の魔法システムの半分以上が使用不能になってる」


窓の外を見ると、街灯が不規則に点滅し、魔法交通標識が真っ暗だった。まるで停電中の病院みたいに、不安な雰囲気が漂っている。


「市民はパニック状態だ。魔法が使えなくなるかもしれないってな」


『魔法が使えなくなったら、この世界の人たちは...まさに現代人がスマホを失うようなものか』


***


「で、連絡先を見てくれ」


「ransom_ware@darknet.magic...?」


「ギットハーブ《GitHub》のアカウントも確認したが、そこからもメッセージが来てる」


画面が切り替わると、ギットハーブのIssueページが表示された。


```

Title: [Priority: Critical] System Encryption Complete


Hello, Indent City Infrastructure Guild.


Your systems have been successfully encrypted.

This is not a drill.


Payment instructions:

1. Create DMC wallet

2. Transfer 1000 DMC to: DM1x7A8k9L2m3N4o5P6q7R8s9T0u1V2w

3. Submit confirmation via this issue


Timeline: 72 hours

Current status: 71:58:15 remaining


Best regards,

Ransom Ware


P.S. Nice spaghetti code, by the way.

Made our job much easier.

```


『ギットハーブのIssueで脅迫って...まるでバグ報告をするみたいに丁寧だな』


シュウは苦笑いするしかなかった。こんな状況でも、プログラマーの習性でツッコミをしてしまう。


「Priority: Criticalって、ちゃんとラベル付けしてるじゃないですか」


「こんな時に何言ってるんですか!」


リファが慌てた。でもその顔には、「確かにそうだけど...」という表情が浮かんでいた。


「でも、P.S.のコメントが気になりますね」


シュウがコメントを読み返した。


「『Nice spaghetti code』...スパゲッティ呪文のおかげで侵入が簡単だったって意味?」


「多分な」


コミットが重いため息をついた。


「うちのシステム、確かにレガシー呪文まみれだからな」


『あの噴水システムレベルの呪文が、基幹システムにも...』


***


「で、どうするんですか?」


リファが聞いた。


「支払うんですか?DMC1000枚って...」


「市の予算だと、ギリギリ払えないこともない」


コミットが電卓を叩いた。


「でも、払ったところで復旧してくれる保証はないし...」


『確かに、犯罪者の約束なんて信用できない』


「それに、一度払ったら、また要求されるかもしれません」


「そうだな」


シュウは考えていた。


『この状況、個人でどうにかできるレベルじゃない』


でも、前の会社で身につけた悪い癖が出た。


「とりあえず、僕が一人で調査してみます」


「え?」


「暗号化された呪文を解析すれば、何か手がかりが...」


「待て、シュウ」


コミットが手を上げた。


「相手はプロの犯罪者だ。一人で挑むのは危険すぎる」


「でも、他に方法が...」


「チームで対応しよう」


『チーム?』


シュウは戸惑った。こういう緊急時こそ、個人の技術力がものを言うのではないか?


***


「まず、被害状況を整理しましょう」


リファがホワイトボードに向かった。


「暗号化されたシステム:

- 街灯制御システム

- 交通管制システム

- 上下水道制御システム

- 通信魔法システム」


「まだ無事なシステム:

- 緊急用バックアップ電源

- 手動制御可能な古いシステム

- このギルドの内部ネットワーク」


『リファさん、冷静だな...』


「シュウさん、どう思います?」


「えーっと...」


シュウは混乱していた。


『俺一人で解決してやる』という気持ちと、『でもこれは規模が大きすぎる』という現実的な判断が混在していた。


「とりあえず、暗号化された呪文を見てみませんか?」


「そうですね」


***


ターミナルを開いて、暗号化されたファイルを確認する。


```

kJ8#mK9$nL0%oM1&pN2'qO3(rP4)sQ5*tR6+uS7,vT8-wU9.xV0/yW1:zX2;

aA3<bB4=cC5>dD6?eE7@fF8[gG9\hH0]iI1^jJ2_kK3`lL4{mM5|nN6}oO7~pP8

...

```


『完全に暗号化されてる...』


「うわあ、難読化ひどすぎ」


シュウが画面を見て呟いた。


「これ、復号化できるんでしょうか?」


「時間をかければ、不可能ではないかもしれませんが...」


『でも、72時間で?』


その時、シュウの胃袋が鳴った。


「あ...」


時計を見ると、もう午後2時だった。


「まず昼休みを」


「え?」


リファが目を丸くした。


「今こんな緊急事態なのに、昼休みですか?」


「でも、お腹空いてると頭回らないし...」


『これは前の会社での教訓だ。緊急時こそ、基本的な生活リズムを守る』


「確かに...そうですね」


リファも少し安心したようだった。


「じゃあ、30分だけ休憩しましょう」


***


カフェで遅い昼食を取りながら、二人は作戦を練っていた。


「暗号化アルゴリズムの特定から始めるべきでしょうか?」


「そうですね。パターン解析すれば、何か見えてくるかも」


『でも、本当にチームでやる必要あるのかな?』


シュウは疑問に思っていた。


『俺一人で集中してやった方が、早いんじゃない?』


でも、リファの次の言葉で考えが変わった。


「シュウさんの解析力と、私の暗号理論の知識を組み合わせれば、きっと解決できます」


『組み合わせ...?』


「一人だと見落としがちなポイントも、二人なら気づけるかもしれません」


『確かに、今朝のペアプログラミングでも、そういうことがあった』


「わかりました。チームで挑みましょう」


『でも、もし失敗したら...』


シュウの頭の中で、プレッシャーが高まっていた。


72時間。インデント・シティの魔法システム。市民の生活。


『俺一人でも解決できる』


そんな過信が、シュウの心の奥底で燻っていた。


そして、それが明日、大きな失敗につながることになる...


---


## 後書き

ついに現れた謎の敵「ランサム・ウェア」!ギットハーブのIssueで脅迫とは...


72時間の時間制限の中、シュウは個人プレイとチームワーク、どちらを選ぶのか?


次回、第6話「一人でデバッグした結果がこれだよ」、シュウの選択とその結果は...?

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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