秋祭りサイト、ただいま閉門中

 午前八時十一分、佐原未央のスマートフォンが、味噌汁の横で震えた。
 《緊急:使用中のCMSプラグインに重大な脆弱性》
 通知を読んだ未央は、箸でつまんでいた油揚げを味噌汁へ落とした。
 二十七歳。小さなWeb制作会社で、サーバー管理から問い合わせ対応まで担当している。今日は在宅勤務の予定で、灰色のスウェットに厚手の靴下、髪は寝癖を隠すため後ろでまとめただけだった。
 十月も後半に入り、朝の空気はすっかり冷えている。窓を少し開けただけで、金木犀の残り香と一緒に冷気が入ってきた。
 未央は味噌汁を諦め、ノートパソコンを開いた。
 問題のプラグインは、顧客サイトで七件使われていた。
 その中には、明日から始まる《小春町・秋の収穫祭》の公式サイトもある。
 栗ごはん、焼き芋、きのこ汁、新米の販売。子ども向けの芋掘り体験。地元の農家と商店が一年で最も忙しくなる催しで、予約ページには昨夜だけで三百件近いアクセスがあった。
 脆弱性の内容を確認すると、条件次第では管理画面へ不正に入られる可能性があるらしい。
 まだ被害が起きた証拠はない。
 しかし、何もせず公開し続けるわけにもいかない。
 未央は会社の緊急チャットへ書き込んだ。
 《対象サイトを一時停止します。ログ確認、更新、認証情報の変更を行います》
 三十秒後、社長から返信が来た。
 《了解。どのくらい?》
 《分かりません》
 《お客さんには?》
 《これから連絡します》
 《朝ごはんは?》
 《今それ聞きます?》
 《大事だよ》
 未央は返事をせず、七つのサイトを順番にメンテナンス表示へ切り替えた。
 午前八時二十六分。
 秋の収穫祭サイトは見られなくなった。
 正確には、画面の中央にこう表示されている。
 《ただいま緊急メンテナンスを実施しています》
 その下に、《安全確認が完了するまで、しばらくお待ちください》と続く。
 未央は一度、深く息を吐いた。
 まずは入口を閉じた。
 次は、中へ誰かが入った形跡がないか調べる。
 管理画面へのアクセス履歴、ファイルの更新日時、不審なアカウント、見覚えのない通信。確認する項目は多い。
 作業を始めて五分後、会社の電話が転送されてきた。
 「はい、東雲ウェブです」
 『収穫祭のサイトが消えたんだけど!』
 電話の主は、小春町商店会の会長、塚本だった。
 七十二歳。声が大きく、電話越しでも距離感が近い。
 「消えてはいません。安全確認のため、一時的に閉じています」
 『誰かに壊されたのか?』
 「壊された形跡があるか、今調べています」
 『じゃあ、壊されたかもしれないのか?』
 「可能性の話です」
 『栗ごはんの予約は?』
 「現在はできません」
 『うちの妻が、朝から二升炊いてるぞ』
 「予約数は昨日までの分が保存されています」
 『サイトが見えないのに、予約は見えるのか?』
 「こちらでは見えます」
 『幽霊みたいだな』
 「幽霊ではなく、データベースです」
 塚本は少し黙った。
 『難しい話は分からんけど、祭りは中止じゃないんだな?』
 「中止ではありません」
 『じゃあ、店の前に書いておく』
 「何と書くんです?」
 『サイト故障中。祭りは生きています』
 「故障ではなく緊急メンテナンスです」
 『長い』
 電話は切れた。
 未央は嫌な予感がしたが、今は現地の張り紙まで止めている余裕がない。
 午前九時を過ぎると、問い合わせが増え始めた。
 《芋掘りの予約ができません》
 《サイトが乗っ取られたのですか》
 《秋祭りは中止ですか》
 《焼き芋は売りますか》
 最後の質問だけ、セキュリティと関係がない。
 未央は案内文を作り、商店会のSNSへ掲載した。
 《公式サイトは安全確認のため一時停止しています。秋の収穫祭は予定どおり開催します。新規予約の受付再開については、改めてお知らせします》
 投稿して一分後、塚本から写真が送られてきた。
 商店街の入口に、手書きの看板が立っている。
 《ホームページは穴があいたので休みです。祭りはやります》
 未央は額を押さえた。
 すぐに電話をかける。
 「会長、表現を変えてください」
 『どこが悪い?』
 「穴があいた、だと実際に侵入されたように見えます」
 『セキュリティホールって、穴だろ?』
 「意味としては近いですけど、今は被害の有無を調べている段階です」
 『じゃあ、何て書く?』
 未央は考えた。
 正確に書こうとすると長くなる。
 簡単に書くと誤解される。
 『早くしてくれ。風で紙が飛びそうだ』
 「《安全確認中。祭りは開催》でお願いします」
 『それだけ?』
 「それだけです」
 十分後、新しい写真が届いた。
 《安全確認中。栗は安全》
 「栗の確認は頼んでない」
 誰もいない部屋で、未央は声に出してしまった。
 昼前、対象となった七サイトのうち、六件は問題なく更新を終えた。
 不審なログもない。
 残るのは収穫祭サイトだけだった。
 このサイトには、通常の案内ページに加え、予約フォーム、出店者用の管理画面、昨年の写真一覧がある。作りが少し古く、更新後に表示が崩れた。
 栗の写真が縦に伸び、焼き芋の画像が画面いっぱいに広がり、会場地図は左右が反転した。
 「セキュリティは直ったけど、町が裏返った…」
 未央は独り言をこぼした。
 会社のチャットへ進捗を書く。
 《侵入の形跡なし。更新後の表示崩れを修正中》
 社長から返信が来た。
 《昼ごはんは?》
 《栗が巨大化しています》
 《食べ物の報告ではないね》
 午後一時半、塚本から再び電話が来た。
 『若い人が、サイトを見られないなら祭りへ行けないって言ってるぞ』
 「場所は看板やSNSにも載せています」
 『サイトがないと、存在しないと思う人もいるんだな』
 その声は、朝より少しだけ落ち着いていた。
 未央はキーボードを打ちながら答える。
 「今は、検索して出なければ閉店したと思われることもあります」
 『店は開いてるのにな』
 「だから、早く戻します」
 『でも、危ないまま戻したら駄目なんだろ?』
 未央の手が一瞬止まった。
 朝から何度説明しても、塚本はサイトが見えないことばかり気にしていた。
 その彼が、初めて公開を急かさなかった。
 「そうです。確認してから戻します」
 『分かった。こっちはこっちで何とかする』
 電話の向こうで、誰かが塚本を呼んだ。
 『じゃあ切るぞ。焼き芋の煙で看板が見えん』
 「まだ祭りは明日ですよね?」
 『試し焼きだ』
 「何本です?」
 『五十本』
 「試す量じゃないですよ」
 電話が切れた。
 午後三時。
 空は早くも夕方の色になり始めていた。
 窓の外では、冷たい雨が細く降っている。未央は朝から一度も外へ出ていない。机の上の味噌汁は、とっくに冷えていた。
 最後の確認を終え、未央は収穫祭サイトを公開状態へ戻した。
 トップページが表示される。
 赤く色づいた山。
 木箱に積まれた栗。
 湯気の立つきのこ汁。
 会場地図も正しい向きだ。
 予約フォームを試すと、確認メールまで届いた。
 未央は商店会へ連絡した。
 《安全確認と更新が完了しました。公式サイトを再開しました》
 送信した直後、塚本から電話が来た。
 『見えた!』
 「早いですね」
 『朝から三分おきに見てたからな』
 「仕事してください」
 『仕事してる。焼き芋を焼きながら見てた』
 「試し焼き、まだ続いてるんですか?」
 『失敗したら困るだろ』
 遠くで、子どもたちの声が聞こえた。
 塚本が試し焼きと称して、近所へ配っているらしい。
 『ところで、穴は塞がったのか?』
 「塞がりました」
 『誰も入ってなかった?』
 「入った形跡はありません」
 『なら、見られなかっただけか』
 「その“見られなかっただけ”にするために、朝から閉じていました」
 塚本はしばらく黙ったあと、笑った。
 『店の戸締まりと同じだな。閉まってる時は不便だけど、開けっぱなしよりいい』
 「そういうことです」
 『明日、来られるか?』
 「収穫祭に?」
 『栗ごはんを取っておく。サイトを守った人間が、画面の栗しか見てないんじゃ気の毒だ』
 翌朝。
 未央は小春町の商店街へ向かった。
 空は晴れていたが、昨日の雨で路面はまだ濡れている。風は冷たく、コートのポケットへ手を入れたまま歩いた。
 商店街の入口には、例の看板が残っていた。
 《安全確認中。栗は安全》
 その下に、別の紙が貼り足されている。
 《ホームページも安全になりました》
 未央が看板を見ていると、塚本が焼き芋の袋を抱えて現れた。
 「消しましょうよ、この看板」
 「せっかく作ったんだ。今日までは出す」
 「サイト、もう見られます」
 「昨日見られなかったことも、本当だろ」
 塚本は温かい袋を一つ、未央へ渡した。
 中には小さな焼き芋が入っている。
 「栗ごはんじゃないんですか?」
 「それは昼だ。これは試し焼きの残り」
 「五十本も試したのに?」
 「念には念を入れた」
 未央は焼き芋を半分に割った。黄色い中身から、白い湯気が立つ。
 一口食べると、少し焦げていた。
 「これは失敗した方ですね」
 「安全性には問題ない」
 塚本が胸を張る。
 商店街の奥では、収穫祭の準備が始まっていた。栗を運ぶ人、机を並べる人、案内板を立てる人。公式サイトの地図をスマートフォンで確認しながら歩いてくる家族もいる。
 未央は焼き芋をもう一口食べた。
 昨日は、サイトが見られないという連絡ばかりだった。
 今日は、画面の向こうにいた人たちが、実際に町へやって来る。
 塚本が看板の裏側から、太いペンを取り出した。
 「来年も何かあった時のために、裏を空けてある」
 「何も起きないようにするのが私の仕事です」
 「それでも、看板はあった方がいい」
 塚本は裏面へ大きく書いた。
 《ただいま正常です》
 未央は文字を見て、首をかしげた。
 「正常な時に、それを出すと逆に不安になりません?」
 塚本はしばらく看板を見つめた。
 「確かにな」
 セキュリティホールは塞がった。
 けれど、新しい問題は、紙と油性ペンだけで簡単に作られていた。

目次

梨は、だいたい重い

(公開中) 梨は、だいたい重い

リスが階段を降りるころ

(公開中) リスが階段を降りるころ

気温十六度の夏じまい

(公開中) 気温十六度の夏じまい

秋台風、午前二時の声

(公開中) 秋台風、午前二時の声

シルバーウィーク、予定どおりには参りません

(公開中) シルバーウィーク、予定どおりには参りません

シルバーウィーク第二弾、休む予定が満員です

(公開中) シルバーウィーク第二弾、休む予定が満員です

台風の日の紅葉狩り

(公開中) 台風の日の紅葉狩り

秋晴れ、今週も欠品中

(公開中) 秋晴れ、今週も欠品中

体育の日、パンは風を読む

(公開中) 体育の日、パンは風を読む

暖房の鍵は、総務が持っている

(公開中) 暖房の鍵は、総務が持っている

秋祭り、提灯は順番を守らない

(公開中) 秋祭り、提灯は順番を守らない

秋旅行、予定表から三時間外れます

(公開中) 秋旅行、予定表から三時間外れます

秋のピクニック、全員が卵焼きを持ってきた

(公開中) 秋のピクニック、全員が卵焼きを持ってきた

秋祭りサイト、ただいま閉門中

(公開中) 秋祭りサイト、ただいま閉門中