FixVibe
Covered by FixVibehigh

API キー漏洩: 最新の Web アプリのリスクと修復

フロントエンド コードまたはリポジトリ履歴にハードコーディングされたシークレットにより、攻撃者がサービスになりすましてプライベート データにアクセスし、コストが発生する可能性があります。この記事では、機密漏洩のリスクと、クリーンアップと防止に必要な手順について説明します。

CWE-798

影響

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 のライブ カバレッジは、出荷されたアセット、ブラウザ ストレージ、および現在のリポジトリ コンテンツに存在する秘密に焦点を当てています。