表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
現実世界にゼロデイを見つけたので、こっそり修正しています  作者: せい | 健康優良不良プログラマ


この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

PR
13/25

第13話 読んでいないログ

規程を作った日の午後に、規程の出番が来た。


「触らないログに変化があります」


MICA が言った。


「空白行か」


「いいえ。中身が入り始めました」


俺は手を止めた。


触らないログ。読み取り対象から外し、要約対象からも外し、MICA にすら食わせない隔離フォルダ。そこに移した空白行たちは、今朝までただの空白だった。


画面に出された差分を見る。


空白だった行に、文字列が入っている。一行ではない。この一時間で、十四行。


「規程の判定は」


「観測は読み取り専用に限る——第一条の範囲内です。読むだけなら、許可経路です」


「拒否権の出番はなし、と」


「現時点では。ただし、内容によっては第三条の判定に移行します」


所有者不明の参照には接続しない。読むのが接続に当たるかどうか。新品の規程は、さっそく解釈問題を抱えた。


「画面に出すだけだ。向こうには触らない」


「同意します。表示します」


並んだ十四行は、一見、俺の観測ログに似ていた。


時刻。座標。残留値。形式は近い。だが、読み進めるうちに、肌が粟立ってきた。


これは、俺のフォーマットじゃない。


時刻の精度が違う。俺はミリ秒で揃えている。この行はマイクロ秒まで刻んで、しかも末尾が必ずゼロ二つで終わる。座標の丸め方も違う。俺は小数二桁。これは整数に切り捨て。それに、俺のログにあるはずの観測条件のフィールドが、ごっそりない。


「MICA。これ、俺たちのログか」


「いいえ。あなたの出力形式とも、私の整形形式とも一致しません」


「じゃあ、誰のだ」


「不明です。ただし、各行に共通する未知のフィールドが一つあります」


MICA が一列を強調表示した。


`issuer: qx41-08213-55960212`


`issuer: qx41-08214-55960512`


`issuer: qx41-08215-55960812`


イシュアー。発行者。


ログには、内容のほかに「誰が書いたか」が残る。アプリのログなら、プロセス名。データベースなら、接続ユーザー。署名のようなものだ。本人は意識しなくても、書いた手の癖は、必ずどこかに残る。


俺のログの発行者フィールドは `soma` だ。MICA の整形を通れば `mica` が付く。


`qx41` は、どちらでもない。


「……来たな」


声が少し掠れた。


知らない痕。第三の揺れ。知らない点。知らない参照。五日間、向こうはずっと「現象」だった。形と座標はあっても、名前のない何かだった。


今、初めて、名前が見えている。


「規程の判定を更新します。これは所有者不明の参照ではなく、所有者情報を含む混入データです。読解は第一条の範囲内」


「いい解釈だ」


「条文を書いたのはあなたです」


俺は椅子を引き寄せて、画面に向き直った。


読むだけじゃない。解析する。向こうが落としていった名刺だ。隅から隅まで読ませてもらう。


——


`qx41-08213-55960212`


三つの部品に見える。固定の `qx41`。五桁の数字。八桁の数字。


「MICA、十四行ぶんの issuer を全部並べろ。差分だけ見たい」


並んだ。


固定部は全行 `qx41`。


五桁部は、〇八二一三から〇八二二六まで。一行ごとに、きれいに一ずつ増えている。


八桁部は、行ごとに三〇〇ずつ増えている。


「五桁部、欠番は」


「ありません。完全な連番です」


「八桁部の増分は」


「全行で三〇〇。例外なし」


俺は背もたれから身を起こした。


連番。等間隔。


人間は、こんなログを残さない。


人間が手で何かをすれば、必ず揺れる。作業に詰まって五分空く。休憩で三十分飛ぶ。ミスして同じ番号を二度使う。深夜は止まって、朝に再開する。ログの間隔は、生活の形に歪む。


このログには、生活がない。


「八桁部が時刻系だとしたら」


「三〇〇を秒と仮定すると、五分間隔です。十四行の発行時刻は、本日十三時五十分から十五時に整列します」


五分に一回。正確に。休まず。


「五桁部は実行回数のカウンタ。八桁部はスケジュール時刻。`qx41` はジョブの識別子」


口に出しながら、確信が固まっていく。


これは名前じゃない。


バッチの実行 ID だ。


深夜バッチ。定期実行。cron。呼び方は何でもいい。決まった間隔で、決まった処理を、自動で回し続ける仕組み。八日前の夜、配送管理サービスで俺が直したのと同じ種類の、ありふれた仕掛け。


それが、現実の層で回っている。


「こいつは、自動化してる」


「人間の手作業では、この規則性は出ません」


「誰かが——現実を集めるスクリプトを、回してる」


言ってしまってから、部屋が一段静かになった気がした。


趣味の愉快犯が、面白半分に痕を残しているんじゃない。偶然の漏れが、たまたま俺の観測に混ざったんでもない。


設備を組んだやつがいる。


書いて、テストして、スケジュールに載せて、回しっぱなしにして、たぶん今はもう画面の前にすらいない。それくらいの、業務の匂いがする規則性だ。


五日間「何かがいる」と思っていた。


違った。「何かが動いている」だ。誰かが作って、放してある何かが。


「MICA。観測対象の中身は読めるか。こいつらが何を集めてるのか」


「混入しているのは記録の断片のみです。収集対象のフィールドは——」


MICA が一瞬止まった。処理の遅延ではない。確認の間だ。


「座標です。各行に観測対象の座標リストが含まれます」


「出せ」


座標が並ぶ。整数で切り捨てられた、そっけない数字の列。


その三行目で、目が止まった。


`(112, 37)`


知らない点の座標だ。anchor_a から x 方向に百十二ミリ、y 方向に三十七ミリ。三日前、俺が投影格子の上に見つけて、灰色の破線で囲った、あの点。


そして、続く行に、もっと嫌なものがあった。


`(0, 0), (210, 297)`


俺のアンカーだ。レシートの角と、クリップの先端。俺が自分で決めた、俺の観測の原点と対角。


「MICA」


「はい」


「こいつのログに、俺の観測点が載ってる」


「確認しました。あなたの投影アンカー二点、および隔離対象の座標が、収集対象リストに含まれています」


読んでいないログだと思っていた。


読まれていたのは、こっちだった。


——


夜になって、三枝さんからメッセージが届いた。


「検収前の最終テストで、また照度が揺れました。今回のはこれまでで一番はっきりしています。一昨日お話しした生データ、今回の分と合わせて送ります。継続調査の件、よろしくお願いします」


添付されたログを、俺は regulation どおり読み取り専用で開いた——規程どおり、だ。自分への言い訳の語彙まで英語になってきている。疲れている。だが、今夜はまだ寝られない。


照度の揺れは三回。時刻は、十三時五十分。十四時十五分。十四時五十五分。


俺は qx41 の発行時刻の列を隣に置いた。


十三時五十分。十四時十五分——いや、こちらは十四時十五分ちょうどに実行記録がある。十四時五十五分。


三回とも、五分間隔のスケジュールの上に、ぴったり載っている。


「一致します」MICA が先に言った。「三枝氏側の照度変動は、qx41 の実行時刻と整合します。さらに一点」


「まだあるのか」


「四日前の Enter 検証で記録した unmapped fluctuation の時刻も、この間隔系列に載ります」


対応する入力のない揺れ。俺のじゃない入力だとしたら、と一度だけ口にして、名前を付けずに棚へ入れた、あれ。


あれは、qx41 の定期実行だった。


俺が空中で Enter を押していた、その横を、五分間隔のバッチが通り過ぎていっただけだった。


俺は天井を見上げて、息を吐いた。


怖さの種類が、変わっていた。


幽霊は、いなかった。代わりにいたのは、もっと馴染み深くて、もっと嫌なものだ。


監視カメラでも、覗き屋でもない。在庫管理だ。定期巡回で、座標を集めて、リストを更新する。俺のアンカーも、知らない点も、たぶん莉央さんの端末も、同じ台帳の上に、番号付きで並んでいる。


読んでいないログが、こちらを読んでいる。


機械的に。定期的に。


——たぶん、俺が気づくずっと前から、ずっと。


■ 技術メモ


【ログの発行者】


ログには、内容のほかに「誰が(何が)書いたか」を示す情報が付くことがあります。


プロセス名、接続ユーザー、サービスの識別子など、形式はさまざまですが、書いた主体の癖や素性が残るという意味で、署名に似た役割を持ちます。


【バッチ処理と定期実行】


決まった処理を、決まった時刻や間隔で自動的に実行する仕組みです。


人間の手作業と違って、間隔が正確で、休みがなく、番号が飛びません。ログの規則性から「これは人間ではなく自動処理だ」と見分けられることがあります。


【識別子の命名規則】


連番、時刻、固定の接頭辞など、識別子には設計者が決めた構造が現れます。


中身が読めなくても、構造を解析するだけで「何回目の実行か」「どんな間隔か」「どの系統のジョブか」が推定できる場合があります。


【時刻の突き合わせ】


別々の場所で記録されたログでも、時刻を揃えて並べると、同じ出来事の別の面が見えてくることがあります。


作中では、未知の実行記録と、離れた場所のセンサーの揺れが、同じ五分間隔の上に載ることで関係が確認されています。


■ 作中の用語


【qx41】


透が混入ログの発行者フィールドで見つけた識別子の固定部です。


五桁の連番と八桁の時刻様の数値を伴うことから、透は「自動化されたバッチ処理の実行 ID」と解析しています。正体はまだ分かっていません。


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ