公開前プライバシー・秘密情報チェック
このチェックリストは、README、マニュアル、Issue、監査報告書、サンプルをGitHubやSNSへ公開する前に使います。
公開しない情報
- 勤務先、部署、職種、業務履歴を特定できる記述
- 顧客名、案件名、契約内容、担当者名
- 実在人物の氏名、メール、電話、住所、アカウントID
- APIキー、トークン、パスワード、秘密鍵、復旧コード
- 内部URL、IPアドレス、非公開リポジトリURL、クラウド資源名
- 利用者名を含む端末固有の絶対パス
- 実データ、画面キャプチャ、ログ、ファイル情報
- 未公開の脆弱性と悪用可能な詳細
公開用に置き換える
| 実情報 | 公開用 |
|---|---|
| 顧客名 | sample-customerまたは業種だけ |
| 人名 | Human Reviewer等の架空名 |
| メール | example.invalidドメイン |
| 端末パス | /path/to/project |
| リポジトリ | 公開サンプル |
| 実データ | 架空データ |
| 内部要件 | 一般化した要求IDと説明 |
ファイル確認
python3 scripts/audit_guard.py scan-artifacts /path/to/public-artifacts
追加で、公開予定のファイル群を目視検索します。
rg -n -i 'password|secret|token|api[_-]?key|private[_-]?key|/(Users|home)/|@' \
/path/to/public-artifacts
検索結果はすべて秘密情報という意味ではありません。テンプレート、説明文、架空値を含むため、人間が文脈を確認します。
文書内容の確認
- 作者の経歴や勤務先を根拠にしていない
- 特定業界の例が個人経験の告白に見えない
- 「実際に監査を受けた経験から」等の由来を記載していない
- 公開情報と公式標準だけを根拠にしている
- 顧客から許可されていない成果物を使用していない
- Git履歴、Issue、PR本文にも個人情報がない
GitHub公開面の確認
- リポジトリの説明
- Topics
- SNS共有画像
- READMEのバッジとリンク
- リリースノート
- Issue/PRテンプレート
- コミット作成者メールの公開設定
Gitの作成者メールを公開したくない場合は、GitHubのnoreplyメール設定を使用してください。既存履歴を書き換える場合は影響が大きいため、別途計画と確認が必要です。
AIへ渡す前の確認
- プロンプトへ秘密値を貼らない
- 生ログではなくマスキング済みログを使う
- 外部AIへ送信できるソースか確認する
- 守秘義務、契約、組織方針を確認する
- 不明なら送信せず未検証として記録する
公開直前の承認
- 公開対象ファイルの一覧を確認した
- 秘密情報スキャンが成功した
- 個人情報・顧客情報を目視確認した
- リンク切れと架空値を確認した
- サンプルであることを明記した
- 誇張した保証表現がない
- セキュリティ問題の連絡先を確認した