コードへのハードコードされたシークレット
コードへのハードコードされたシークレット とは何ですか?
コードへのハードコードされたシークレット認証情報・API キー・トークン・暗号資産をソースコード・設定ファイル・コンテナイメージに直接埋め込むことで、容易に発見・悪用される状態。
ハードコードされたシークレットは、現代の開発で最も頻発し、被害も大きなミスの一つです。Git の履歴、コンテナのレイヤー、モバイルアプリ、CI のログ、公開リポジトリに残り、ボットによって数分以内に発見されることもあります。実例としては、GitHub にコミットされた AWS キー、クライアント側バンドルに混入した Slack トークン、Docker イメージに焼き込まれたデータベースパスワードなどがあります。対策は予防(開発者教育、pre-commit フック、IDE プラグイン、.gitignore のパターン)、検知(GitHub secret scanning、Gitleaks、TruffleHog などによるリポジトリと CI のスキャン)、集中管理(HashiCorp Vault、AWS Secrets Manager、Azure Key Vault、GCP Secret Manager、Kubernetes の External Secrets)を組み合わせます。漏洩を検出した際は履歴から削除するだけでは不十分で、シークレットを直ちにローテーションする必要があります。
● 例
- 01
公開 GitHub リポジトリにコミットされた AWS アクセスキーが数分以内に悪用された事例。
- 02
モバイルアプリのバイナリに埋め込まれた OAuth クライアントシークレット。
● よくある質問
コードへのハードコードされたシークレット とは何ですか?
認証情報・API キー・トークン・暗号資産をソースコード・設定ファイル・コンテナイメージに直接埋め込むことで、容易に発見・悪用される状態。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
コードへのハードコードされたシークレット とはどういう意味ですか?
認証情報・API キー・トークン・暗号資産をソースコード・設定ファイル・コンテナイメージに直接埋め込むことで、容易に発見・悪用される状態。
コードへのハードコードされたシークレット はどのように機能しますか?
ハードコードされたシークレットは、現代の開発で最も頻発し、被害も大きなミスの一つです。Git の履歴、コンテナのレイヤー、モバイルアプリ、CI のログ、公開リポジトリに残り、ボットによって数分以内に発見されることもあります。実例としては、GitHub にコミットされた AWS キー、クライアント側バンドルに混入した Slack トークン、Docker イメージに焼き込まれたデータベースパスワードなどがあります。対策は予防(開発者教育、pre-commit フック、IDE プラグイン、.gitignore のパターン)、検知(GitHub secret scanning、Gitleaks、TruffleHog などによるリポジトリと CI のスキャン)、集中管理(HashiCorp Vault、AWS Secrets Manager、Azure Key Vault、GCP Secret Manager、Kubernetes の External Secrets)を組み合わせます。漏洩を検出した際は履歴から削除するだけでは不十分で、シークレットを直ちにローテーションする必要があります。
コードへのハードコードされたシークレット からどのように防御しますか?
コードへのハードコードされたシークレット に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
コードへのハードコードされたシークレット の別名は何ですか?
一般的な別名: ハードコード認証情報, コード中のシークレット漏洩。
● 関連用語
- identity-access№ 233
クレデンシャルボールト
パスワード、API キー、証明書、SSH 鍵などの機密を安全に保管・ローテーション・仲介する、集中管理された監査可能なサービス。
- appsec№ 982
セキュアコーディング
防御的パターン・言語固有のルール・公認ガイドラインに従い、セキュリティ欠陥を最小化するようにソースコードを書く実践。
- appsec№ 166
CI/CD セキュリティ
継続的インテグレーションと継続的デリバリーのパイプラインを、侵害・コード注入・シークレット漏洩・不正デプロイから守るための一連の統制。
- appsec№ 1069
ソフトウェアサプライチェーンセキュリティ
ソースコード・依存関係・ビルド・署名・配布・デプロイに至るまで、ソフトウェア製造の各リンクを改ざん・悪意あるコード・完全性喪失から守る取り組み。
- appsec№ 444
GitOps セキュリティ
インフラとアプリケーションの宣言的な望ましい状態を Git に保存し、自動化されたコントローラーが本番環境と継続的にリコンサイルする GitOps ワークフローのセキュリティ実践。
- compliance№ 781
OWASP Top 10
OWASP が発行する啓発文書で、Web アプリケーションにとって最も重要なセキュリティリスクを実データに基づいて定期的に更新したもの。