第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話「一人でデバッグした結果がこれだよ」、シュウの選択とその結果は...?
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます