第9話 誰が記録を残したのか
第9話 誰が記録を残したのか
Identity Correlation — Who Used the Account?
午前四時十五分。
セキュリティ監視室。
黒木は、認証基盤のログを表示していた。
これまでの調査では、BAI MIという外部IDが、社内AI基盤に登録された文書DOC-78421と関連付けられていた。
しかし、表示名だけでは本人を特定できない。
必要なのは、認証主体の同一性を確認することだった。
IDENTITY CORRELATION ANALYSIS
Identity Reference:BAI MI
Identity Provider:External
Application:Enterprise AI Platform
Authentication Protocol:OAuth 2.0
Client ID:Under Investigation
Token Issuer:Under Investigation
Subject Identifier:Under Investigation
「まず、表示名とSubject Identifierを分離してくれ」
黒木が指示した。
調査担当者が画面を操作する。
「確認しました。BAI MIは表示名です。認証基盤では、別の一意識別子が使用されています」
「その識別子は?」
「Subject Identifierが記録されています。ただし、発行元のIdentity Provider側で管理されている値です」
「表示名が同じでも、別の主体である可能性があるわけだ」
「はい。逆に、表示名が変更されても、同じSubject Identifierであれば、同一の認証主体として扱われる場合があります」
黒木はうなずいた。
「次に、トークンの発行履歴を確認する」
画面が切り替わった。
OAUTH TOKEN EVENT
Grant Type:Under Investigation
Client ID:Enterprise AI Integration
Token Issued:11:47:52
Token Used:11:48:09
Audience:Enterprise AI Platform
Scope:Document Registration
Result:SUCCESS
「このトークンは、どの認証フローで発行された?」
「現在確認中です。Authorization Code Flowなのか、Client Credentials Flowなのか、発行元の記録との照合が必要です」
「そこを確定してくれ。人間の利用者が操作したのか、サービス間通信だったのかで、意味が変わる」
「了解しました」
黒木は、登録APIの履歴を開いた。
API EXECUTION TRACE
Request ID:REG-78421
Timestamp:11:48:09
Endpoint:/document/register
Authentication:OAuth 2.0
Authorization:SUCCESS
Response:200 OK
登録処理は成功している。
しかし、登録処理が成功したことと、正当な人物が操作したことは同じではない。
黒木は、次の記録を確認した。
DOCUMENT METADATA UPDATE
Document ID:DOC-78421
Source Classification:HIGHLY CONFIDENTIAL
Vector Metadata Classification:INTERNAL
Update Result:SUCCESS
「この分類変更は、登録処理の一部なのか?」
「調べています。原本からメタデータを引き継ぐ処理と、Vector Databaseへの登録処理を分けて確認しています」
「変更された時刻を、秒単位で比較してくれ」
「了解しました」
午前四時四十分。
調査担当者から報告があった。
「メタデータの変更は、文書登録処理の中で発生しています。登録APIのリクエストと、Ingestion Pipelineの実行記録が一致しました」
「誰が変更した?」
「現時点では、登録処理を実行したサービスの権限で更新された記録になっています。人間が直接メタデータを書き換えた証拠はありません」
「つまり、登録APIの処理経路を調べる必要がある」
「はい」
黒木は、記録を保存した。
午前五時。
最上から連絡が入った。
「黒木、何か分かったか?」
「BAI MIの表示名だけでは、実際の利用者を特定できないことが分かりました。現在、外部Identity ProviderのSubject Identifierと、OAuthトークンの発行履歴を照合しています」
「本人が操作したかどうかは?」
「まだ確定できません」
「不正利用の形跡は?」
「明確な認証情報の窃取や、異常なログインを示す証拠は見つかっていません」
最上は少し考えた。
「それなら、本人が操作した可能性もあるわけだ」
「はい。ただし、本人の操作と判断するには、追加の証拠が必要です」
「バイ・ミーのアカウントが使われた。その事実だけで、本人を犯人にするな」
「承知しています」
通話が終わった。
黒木は、調査画面に戻った。
午前五時二十分。
認証基盤から追加のログが届いた。
TOKEN ISSUANCE DETAILS
Issuer:External Identity Provider
Subject:BAI MI
Client ID:Enterprise AI Integration
Grant Type:Client Credentials
Token Audience:Enterprise AI Platform
Scope:Document Registration
Issued At:11:47:52
黒木は、画面を見つめた。
「Client Credentials……?」
調査担当者が説明する。
「このフローでは、アプリケーション自身が認証主体になります。通常のAuthorization Code Flowのように、人間の利用者が直接ログインしたことを示すものではありません」
「つまり、BAI MIという人間がログインしたとは限らない」
「はい。Client IDに紐づいたアプリケーション認証として処理されています」
黒木は、さらに詳細を確認した。
「このClient IDは誰が管理している?」
「外部Identity Provider側の登録情報を照会する必要があります」
「登録時の所有者、発行権限、クライアントシークレットの管理履歴を確認してくれ」
「了解しました」
黒木は、もう一つのログを開いた。
APPLICATION REGISTRATION
Client Name:Enterprise AI Integration
Identity Reference:BAI MI
Grant Type:Client Credentials
Registration Status:ACTIVE
Last Credential Rotation:Unknown
最後の項目に、黒木の視線が止まった。
「Credential Rotationが不明?」
「はい。現在のログでは確認できません」
「シークレットの管理記録は?」
「別の認証管理システムにあります」
黒木は指示した。
「その記録を保全してくれ。秘密情報そのものをログに出す必要はない。発行、更新、失効の履歴を確認する」
「了解しました」
午前五時五十分。
黒木は、最上に再び報告した。
「副社長。新しい事実が分かりました」
「何だ?」
「BAI MIという表示名に関連付けられた認証は、現時点でClient Credentials Flowによるものと確認できました」
「それはどういう意味だ?」
「人間が直接ログインした記録とは限りません。アプリケーション自身が認証主体となる方式です」
「では、バイ・ミー本人が操作したとは言えない?」
「はい。少なくとも、この認証ログだけでは本人の操作を証明できません」
最上は黙っていた。
「つまり、誰かが彼女の名前を使った可能性もある」
「その可能性もあります。ただし、現段階では、アプリケーションの登録主体と管理者を確認する必要があります」
「分かった。引き続き調べてくれ」
午前六時。
黒木は、監視室の画面に表示された情報を整理した。
BAI MIという表示名。
外部Identity Provider。
Client Credentials Flow。
Enterprise AI Integration。
Document Registration。
そして、機密区分の不整合。
これらは一つの処理経路でつながっていた。
だが、誰がそのアプリケーションを作り、誰が管理していたのかは、まだ分からない。
黒木は、調査チームに最後の指示を出した。
「次はClient IDの登録履歴を追う。最初に作成した主体、管理権限の移譲、認証情報の更新履歴。全部確認してくれ」
「了解しました」
黒木は、端末に表示された最後の項目を見つめた。
Application Owner:BAI MI
その名前は、まだ消えていなかった。
しかし、名前が残っていることと、本人が操作したことは違う。
黒木は、その違いを誰よりも慎重に扱おうとしていた。




