AI にコードを書かせていたら、生成されたコードのパス例に自分の Windows ユーザー名が入っていたことがあります。API キーなら gitleaks が止めてくれますが、「自分の本名」はどのスキャナも探してくれません。無いなら作るしかない、で作った Rust 製の個人情報 watchlist スキャナ doxguard v0.1.0 を、GitHub と npm で公開しました。
gitleaks や trufflehog が探すのは API キーやトークン、つまり「サービスの秘密」です。一方で、本名・家族の名前・勤務先・私用メール・自宅マシンの絶対パスといった「自分自身」はエントロピーがゼロで、汎用の正規表現になりません。AI コーディングの普及で、手元の環境情報が「それっぽい例」としてコードに紛れ込む事故は増えています。doxguard はこの層を pre-commit で堰き止めます。
「本名のリストと突き合わせる」設計は、そのリスト自体が最大の個人情報になります。doxguard の config に書くのは環境変数で展開されるパス参照だけで、監視語は 1 語もリポジトリに入りません。環境変数が無い CI や他人の環境ではリストは静かにスキップされ、構造パターン(個人の絶対パス・private IP・許可外メール)だけが走ります。
公開作業は、2 週間前のセキュリティ監査で残っていた HIGH 2 件を含む 15 件の指摘を全部片付けるところから始めました。Windows の CreateProcess がカレントディレクトリを先に探す仕様を突いた偽 git 起動の穴と、生成 hook スクリプトの quote 漏れ。仕上げのレビューでは、直したはずの正規表現の回帰まで見つかりました。セキュリティツールこそ、自分に一番厳しくあるべきだと思った一日でした。