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

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

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

エラーが発生しました。

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

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


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

PR
19/25

第19話 パッチの匂い

白い点が、出なかった。


それだけなら、普通は失敗だと思う。


コードを間違えた。環境が変わった。カメラが寝ぼけた。照明が悪い。端末の位置がずれた。


九日前の俺なら、その順で疑った。


今の俺は、まず手を止めた。


「MICA。環境差分」


「取得済みです。端末位置、照度、時刻、カメラ角度、実行バイナリ、設定ファイル、すべて昨夜の安全確認と一致します」


「昨夜と一致して、結果だけ違う」


「はい」


画面には、最小再現用の小さなウィンドウが出ている。余計な通信も、センサー入力も、顧客データもない。破棄直前の画面外座標だけを作り、机上の一点に白い点が漏れるかを見るための、いちばん小さな確認。


何度も見た。


見飽きるほど見た。


その点が、出ない。


レシートは動かない。方眼紙の隅に置いたクリップも、影を作らない。カメラのノイズだけが、何も知らないふりでざらついている。


世界の裏側へ開いていた小さな窓が、朝になったら、内側から鍵をかけられていた。


——


俺は、失敗の可能性を潰した。


一つずつ。機械的に。


別端末。再起動。録画なし。録画あり。照度を上げる。下げる。机の中央。ドア側の境界。レシート角。クリップ先端。古い仮想キーの座標。半月形の痕があった位置。


何も出ない。


「コード差分は」


「ありません。ハッシュ一致」


「設定差分」


「ありません」


「昨日の監査基準モデルを当てろ。濃くなる操作を避けた範囲だけで、白い点の入口を叩く」


「実行します」


MICA の返答は短かった。軽口がない。俺の呼吸が荒くなっていることを、マイク越しに拾っているのだろう。


安全な窓の内側だけを使って、観測網を組み直す。


点が出ない。


仮想キーの押下痕も出ない。


入力キャッシュに薄く残るはずの手触りもない。


昨日までそこにあった道具が、半分だけ、なくなっている。


「……これは」


言いかけて、飲み込んだ。


安堵ではなかった。


危険な入口が閉じたのなら、喜ぶべきかもしれない。俺は使用を止めた。規程を書いた。MICA に拒否権まで渡した。自分では塞げない穴が、勝手に塞がれた。普通なら、肩の力を抜く場面だ。


だが、胃の底にあったのは、違うものだった。


奪われた、という感覚。


あの白い点は、俺が見つけた。


俺が、ログに残らない物理変化を疑った。通常候補を潰し、再現条件を削り、方眼紙に座標を写し、入力にして、投影にして、危険を知った。


いつか、俺が原因まで掘って、影響範囲を切り分けて、俺の手で塞ぐはずだった。


それを、顔も見えない誰かが、先にやった。


俺は、机の端を指で叩いた。


「これは俺が直すはずだった」


言ってから、自分で嫌になった。


格好悪い。正しくない。危険な穴を塞ぐことに、発見者の所有権なんてない。


それでも、腹が立った。


先を越されたことに。


理解する前に取り上げられたことに。


そして、たぶん、この怒りそのものが、俺がまだ危ない証拠だった。


——


怒りは、使える。


邪魔でもあるが、燃料にはなる。


俺は、消えた範囲と残った範囲を分け始めた。修正の痕跡は、直された場所ではなく、直されなかった場所に残る。


雑な修正は、境界が汚い。


良い修正は、境界が綺麗だ。


そして、綺麗すぎる修正は、たいてい原因を直していない。危ない部分だけを、外から切り離している。


「MICA。表を作れ。入力は三つ。観測経路、入力経路、署名経路。出力は、再現可否、監査痕の濃さ、残留の有無」


「作成します」


「比較対象は昨日の夜中の最後のモデル」


「差分表を生成します」


表が埋まっていく。


透の観測経路。白い点、出ない。監査痕、薄い。残留、なし。


透の入力経路。仮想キー、出ない。押下痕、なし。operation_id の局所テスト、反応なし。


投影経路。表示格子、起動しない。アンカー補正、反応なし。


外部参照。接続は禁止のまま。存在応答だけ、拾える。


qx41 の署名経路。五分間隔、継続。


俺は、そこで目を細めた。


もう一度、走らせる。


結果は同じだった。


俺の白い点は出ない。


俺の仮想キーは死んでいる。


俺の投影格子も、入口を失っている。


だが、触らないログの端には、いつもの署名が来る。五分間隔。連番。発行者フィールドの固定部。無神経なほど規則正しい、あの収集の脈拍。


`qx41`


生きている。


「直してない」


俺は、声に出していた。


「隔離しただけだ」


「根拠を確認します」


「原因が直ってるなら、同じスコープ漏れを使う qx41 の経路も止まる。少なくとも揺らぐ。でも止まってない。俺の入口だけ、外された」


「透の観測・入力・投影経路は切断。収集経路は継続。原因層の恒久修正ではなく、対象単位の隔離と推定できます」


「だよな」


修正には、匂いがある。


本当に原因を直したときの匂いと、燃えている部屋の扉だけ閉めたときの匂いは、違う。


前者は、周辺の挙動が一緒に変わる。古い前提が通らなくなり、関連する副作用もまとめて消える。痛いが、筋が通る。


後者は、きれいに一箇所だけ沈黙する。


今回の沈黙は、後者だった。


俺の経路だけが、丁寧に切り離されている。昨日読んだ隔離準備記録の、依存の区切り方そのままに。


「なんでだ」


画面に向かって、俺は言った。


「直せるはずの奴が、なんで直さない」


答えは返らない。


直せないのか。


直さない理由があるのか。


互換性か。古い処理が、この穴に依存しているのか。塞ぐと別の物理整合性が崩れるのか。それとも、収集者を泳がせるために、あえて残しているのか。


どれも、嫌な答えだった。


——


昼過ぎ、莉央さんから連絡が来た。


声は、昨日より少し明るい。明るいぶんだけ、疲れていた。


「相馬さん。顧客先の打刻異常、止まったそうです」


「止まった」


「はい。少なくとも、今日の午前中は新しい異常が出ていません。会社は、再発しなければ様子見にする方向です」


予想通りだった。


消す者の隔離は、顧客先にも届いている。俺の手元で白い点が消えたのと同じように、現場の症状も、ぱたりと止んだ。


だが、喉の奥がざらついた。


止まったことと、直ったことは違う。


「莉央さんは、それで納得してるのか」


「してません」


即答だった。


「誰も原因を説明していません。ログは消えている。打刻は止まった。でも、止まった理由も分からない。これで様子見って、私は嫌です」


「正しい」


「正しいんですか」


「少なくとも、技術者としては正しい。理由のない沈静化は、解決じゃない」


電話の向こうで、莉央さんが小さく息を吐いた。


「相馬さんにそう言われると、少しだけ安心します」


「安心はするな。証拠はまだ持ってるか」


「スマホのスクショはあります。誰にも渡していません。クラウドにも上げていません」


「そのまま。あと、今日止まった時刻を、端末のログ以外で残せるものがあれば残してくれ。メールでも、作業メモでも、写真でもいい」


「端末の外に、ですね」


「そう」


「分かりました。……相馬さん」


「何」


「止まったのに、相馬さん、全然ほっとしてませんね」


俺は、画面の差分表を見た。


白い点、再現不可。


qx41、継続。


「直ってないからな」


「それ、断言できるんですか」


「断言はしない。だが、直ったなら、もっと汚く壊れる場所がある」


「汚く壊れる」


「本当に原因を直すと、古い前提に乗っていたものがまとめて揺れる。今回は、都合の悪い症状だけが綺麗に消えた。綺麗すぎる」


莉央さんは、しばらく黙った。


「綺麗すぎるのが、怖いんですね」


「そう」


「分かりました。様子見で終わらせないようにします」


「無理はするな」


「それ、相馬さんに言われると変な感じですね」


「俺もそう思う」


少しだけ、莉央さんが笑った。


通話が切れる。


部屋は静かだった。静かすぎた。白い点が出ない机は、ただの机に戻っている。レシートも、クリップも、方眼紙も、何も知らない顔でそこにある。


便利だった道具の半分は、もうない。


だが、世界は直っていない。


俺は、触らないスキャンを、規程の範囲内で一度だけ回した。参照を開かない。座標を動かさない。存在応答と発行者の時刻だけを見る。


五分間隔の列が、返ってきた。


`qx41`


`qx41`


`qx41`


俺の経路は、塞がれた。


署名の経路は、まだ開いている。


消す者は、収集者を捕まえられていないのか。


それとも、捕まえる気がないのか。


答えは、まだログの向こうにある。


ただ一つだけ、分かった。


俺は、白い点を失った。


だが、向こうが何を塞ぎ、何を残したかは、見える。


パッチの匂いは、残っている。


■ 技術メモ


【パッチ】


パッチは、不具合や脆弱性を修正するための変更です。


ただし、すべてのパッチが原因を根本から直すとは限りません。危険な入口だけを一時的に閉じる、影響範囲を狭める、特定の利用者だけを切り離す、といった応急処置もあります。


【根本修正と隔離】


根本修正は、同じ原因から起きる問題をまとめて起きにくくする変更です。


隔離は、問題のある経路や対象を周囲から切り離す対応です。すぐに被害を止められる一方で、原因そのものが残る場合があります。作中では、透の観測経路だけが止まり、別の署名経路が残っていたため、透は「直した」のではなく「隔離した」と判断しました。


【再現しない不具合】


昨日まで再現していた不具合が急に再現しなくなっても、それだけで解決とは言えません。


環境が変わったのか、偶然条件が外れたのか、誰かが暫定対応を入れたのかを切り分ける必要があります。原因が分からないまま症状だけ消えた場合は、再発や別経路への移動に注意します。


【触らない確認】


危険な対象を直接開かず、存在応答や時刻など最小限の情報だけを見る確認方法です。


詳細な中身を読めば多くの情報を得られますが、そのぶん相手の領域に踏み込みます。作中の透は、規程に従い、参照を開かずに署名経路が残っているかだけを確認しています。


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

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

↑ページトップへ