影響
API キー、トークン、資格情報などの機密情報が漏洩すると、機密データへの不正アクセス、サービスのなりすまし、リソース乱用による重大な経済的損失 ([S1]) が発生する可能性があります。シークレットがパブリック リポジトリにコミットされるか、フロントエンド アプリケーションにバンドルされると、それは侵害された [S1] と見なされます。
根本原因
根本的な原因は、その後バージョン管理にコミットされるか、クライアント [S1] に提供されるソース コードまたは構成ファイルに機密の資格情報が直接含まれていることです。開発者は、開発中の便宜のためにキーをハードコードしたり、誤って .env ファイルをコミット [S1] に含めたりすることがよくあります。
具体的な修正
- 侵害されたシークレットのローテーション: シークレットが漏洩した場合は、直ちに取り消して置き換える必要があります。シークレットはバージョン管理履歴 [S1][S2] に残るため、現在のバージョンのコードからシークレットを削除するだけでは不十分です。
- 環境変数を使用する: シークレットをハードコーディングするのではなく、環境変数に保存します。誤ってコミットしてしまうことを防ぐために、
.envファイルが.gitignoreに追加されていることを確認してください。 - シークレット管理の実装: 専用のシークレット管理ツールまたはボールト サービスを使用して、実行時にアプリケーション環境に資格情報を挿入します ([S1])。
- リポジトリ履歴のパージ: シークレットが Git にコミットされている場合は、
git-filter-repoや BFG Repo-Cleaner などのツールを使用して、リポジトリ履歴 [S2] 内のすべてのブランチとタグから機密データを永久に削除します。
FixVibe がそれをテストする方法
FixVibe では、これがライブ スキャンに含まれるようになりました。パッシブ secrets.js-bundle-sweep は、同じオリジンの JavaScript バンドルをダウンロードし、既知の API キー、トークン、および資格情報のパターンをエントロピー ゲートおよびプレースホルダー ゲートと照合します。関連するライブ チェックでは、ブラウザー ストレージ、ソース マップ、認証および BaaS クライアント バンドル、および GitHub リポジトリ ソース パターンを検査します。 Git 履歴の書き換えは依然として修復ステップです。 FixVibe のライブ カバレッジは、出荷されたアセット、ブラウザ ストレージ、および現在のリポジトリ コンテンツに存在する秘密に焦点を当てています。
