納品前に最も避けたい事故の1つが、成果物と一緒に秘密情報を渡してしまうことです。

APIキーやアクセストークンは、目立つファイルだけに入っているとは限りません。

APIキー・トークン

まず検索したいのは、

  • APIキー
  • アクセストークン
  • パスワード
  • 秘密鍵
  • 接続文字列

です。

GitHubのSecret Securityでは、APIキー・パスワード・トークンなどを「secrets」として扱います。Secret scanningはパターン照合や検証で露出した認証情報を検出しますが、検出範囲はシークレット種別や設定によって異なります。

コード納品では、ソース本体だけでなくGit履歴や設定ファイルにも注意が必要です。

.env と設定ファイル

.env、config.json、ローカル用設定などには、本番・検証環境の秘密情報が入りやすくなります。

納品にはテンプレートとして、

API_KEY=YOUR_API_KEY

のようなダミー値を入れ、実値は外します。

ログ

ログには、入力値、メール、URL、エラー時のトークン断片などが残ることがあります。

「ログだから安全」と考えず、中身を検索します。

一時ファイルとバックアップ

backup_old.zip、test-output/、tmp/ の中に、削除したつもりの情報が残ることがあります。

本番成果物だけを新しいフォルダーへコピーし直してからZIP化する方が安全です。

サンプルデータ

動作確認用のCSVやExcelに、実顧客データをそのまま使っていないか確認します。

名前だけ消していても、メールや住所、注文番号が残っている場合があります。

サンプルは最初から架空データで作る方が安全です。

画像・文書のメタデータ

画像やOffice文書には、作成者名、組織名、コメント、変更履歴などが入っている場合があります。

必要に応じて文書検査やメタデータ確認を行います。

ZIPにした後でもう一度見る

最後に、実際に送るZIPを再展開し、検索します。

検索対象の例:

  • key
  • token
  • secret
  • password
  • Authorization
  • Bearer
  • メールアドレス形式

自動スキャンだけで完全には防げませんが、典型パターンを機械で探し、最後に人が中身を見ると漏えい確率を下げられます。

参考

  • GitHub Docs: Secret scanning
    https://docs.github.com/en/code-security/concepts/secret-security/secret-scanning
おすすめの記事