シークレットの散逸とは?

シークレットの散逸とは、APIキー、パスワード、暗号鍵などのシークレットが、組織内のインフラ、コードリポジトリ、メールやチャットなどのコミュニケーションツールに分散し、管理が行き届かなくなった状態を指します。本来はシークレット管理ソリューションで安全に一元管理されるべきシークレットが、ソースコードへのハードコードやメッセージングツールでの共有、エンドポイントへの保存によって各所に散在してしまいます。その結果、シークレットの全体像を把握できなくなり、セキュリティチームはシークレットの監視、ローテーション、無効化を適切に行えなくなります。組織の規模が拡大するにつれてシークレットの数も急増し、認証情報を狙った攻撃やサプライチェーン攻撃につながる脆弱性のリスクが高まります。

シークレットの散逸が起こる原因

シークレットの散逸は通常、機密性の高い認証情報が適切な管理体制や監視のないまま作成・共有されることで発生します。

認証情報の作成と増加

現代のIT環境では、人間のユーザーだけでなく、サービスアカウント、ボット、アプリケーションワークロードなどの非人間アイデンティティ (NHI) も広く利用されています。これらはAPIキーやトークンなどのシークレットを使用して認証を行います。組織でクラウドネイティブアーキテクチャの導入が進むにつれて、シークレットの数は急速に増加します。新しいシステム、ワークロード、連携が追加されるたびに認証が必要となり、攻撃対象領域が拡大するとともに、管理されていないシークレットが増える可能性も高まります。組織の規模が拡大し、非人間アイデンティティの活用が進むにつれて、シークレットの散逸のリスクが高まります。

シークレットの管理・共有方法のばらつき

セキュリティポリシーが整備されていても、開発者やチームによって認証情報の管理方法は異なります。ある開発者は認証情報をローカル環境に保存する一方で、別の開発者はソースコードに直接ハードコードしたり、メッセージングツールで共有したりすることがあります。安全な手順を踏むよりも認証情報をコピー&ペーストするほうが手軽な場合、多くのユーザーはセキュリティよりも作業効率を優先する傾向があります。複数のチームのユーザーが長期間にわたり何百ものサービスで同じような運用を続けると、このようなばらつきが積み重なり、シークレットの散逸が進んで管理が困難な状態に陥ります。

シークレットの一元管理の欠如

シークレットを一元管理する仕組みがなければ、組織はシークレットがどこに保存されているか、誰がアクセスできるか、どのように使用されているかを正確に把握できません。このような可視性の不足により、セキュリティインシデントや従業員の退職後に認証情報をローテーションしたり無効化したりすることが難しくなります。その結果、セキュリティチームはシークレットを計画的に管理するのではなく、問題が発生してから対応せざるを得なくなります。

ライフサイクル管理の不備

多くの場合、シークレットは一時的な用途のために作成されますが、プロジェクトの完了後も適切に管理または削除されないまま残されています。使用されていない認証情報や重複した認証情報が複数のシステムに残り続けることで、時間の経過とともにリスクが高まります。古いシークレットや使用されていないシークレットがローテーションまたは削除されない場合、コードベースやリポジトリ、長い間使われていない設定ファイルへのアクセスが期限なく許可された状態になる可能性があります。ライフサイクル管理に関するポリシーが定められていないと、アクセス可能でありながら管理されていない古いシークレットが組織内に蓄積され、システム全体でシークレットの散逸がさらに広がります。

シークレットの散逸がもたらすリスク

シークレットが適切に管理されないまま広く分散すると、その影響は組織全体に及ぶ可能性があります。シークレット管理の不備によって生じるリスクとして、主に次のようなものが挙げられます。

  • データ漏洩: シークレットが複数のシステムやツールに分散していると、データ漏洩によってシークレットが意図せず公開されるリスクが高まります。1つのシークレットが漏洩しただけでも、機密データや重要なシステムへの不正アクセスを許してしまう可能性があります。
  • システム侵害: シークレットの管理が不十分な場合、シークレットが不正に取得され、攻撃者がインフラ内でアクセス範囲を広げたり、権限を昇格させたりするために悪用される可能性があります。
  • チームの生産性の低下: セキュリティチームやDevOpsチームは、より優先度の高い業務に集中できず、シークレットの所在確認や分散した認証情報の管理に多くの時間を費やすことになります。
  • コンプライアンスや財務面への影響: シークレットの管理不備が原因で侵害が発生すると、規制当局による罰金、インシデント対応にかかる費用、法的責任が生じる可能性があります。PCI DSS、HIPAA、SOC 2の対象となる組織では、機密性の高い認証情報へのアクセスが適切に管理されていることを証明できない場合、侵害の有無にかかわらず、それ自体がコンプライアンス上の指摘事項となります。
  • 評判や信頼の低下: シークレットの不適切な管理によって発生したセキュリティ侵害は、組織の評判に回復が難しいほど深刻なダメージを与える可能性があります。特に顧客から機密データを預かる外部ベンダーでは、その影響はより深刻になります。顧客からの信頼や長年にわたる取引関係、好意的なメディア評価を失うことは、セキュリティインシデントの発生後も長期にわたって組織に影響を及ぼすおそれがあります。

シークレットの散逸の代表例

シークレットの散逸は、主に次のような形で発生します。

  • ソースコードにハードコードされたシークレット: 開発者がシークレットをソースコードに直接埋め込み、そのままリポジトリにコミットすることがあります。公開リポジトリでは、ローテーションしない限りシークレットが恒久的に公開された状態となります。非公開リポジトリでも、アクセス侵害時の影響範囲が拡大します。自動シークレットスキャンツールでこうした露出は検出できますが、検索エンジンや外部スキャンツールにすでにインデックス化されたシークレットは、削除後もリスクが残ります。
  • 複数の場所に保存されたAPIキー: チームがAPIキーを実行時に安全に注入する代わりに設定ファイルへコピーすると、同じシークレットが複数の場所に存在することになります。シークレット管理を行っていない場合、組織は各コピーの保存場所を把握できません。その結果、シークレットのローテーションやアクセス権の無効化が困難になります。
  • CI/CDパイプラインで露出したシークレット: シークレットを実行時に注入する代わりに設定ファイルへ埋め込むと、リポジトリへのアクセス権を持つユーザーに公開される可能性があります。ビルドログに表示されたシークレットや外部のCI連携に渡されたシークレットは、元のソースコードへのアクセス権がなくても、パイプラインの実行権限を持つユーザーであれば閲覧できる可能性があります。
  • 放置された認証情報: 古いプロジェクトや退職した従業員が使用していたシークレットは、本来の用途が終わった後も有効なまま残っていることがあります。こうしたシークレットは引き続きアクセス可能である一方、継続的な監視の対象から外れているため、被害につながるおそれがあります。
  • 複数のシステムに重複して存在するシークレット: 同じシークレットが複数のチームや環境に重複して存在すると、組織は一貫したアクセス制御を適用できなくなります。
  • 安全性に欠ける共有方法: メッセージングツールやメールでシークレットを共有すると、誰が閲覧したのか、誰に送信されたのか、また受信者によって安全でない方法で保管されていないかを、組織が確実に把握できなくなります。

シークレットの散逸リスクを軽減する方法

シークレットの散逸を抑えるには、シークレットの保存、アクセス、管理を一元化する必要があります。シークレットマネージャーを導入することで、組織は保有するシークレット全体の可視性を高め、より適切に管理できるようになります。

シークレットを安全なボルトで一元管理する

組織は認証情報をファイルやリポジトリに分散して保存するのではなく、すべてのシークレットを専用のシークレットマネージャーに保存する必要があります。一元化された安全なボルトを利用することで、組織は認証情報の保存、アクセス、共有を一元的に管理できるようになります。

最小権限アクセスを徹底する

すべてのユーザーがすべてのシークレットにアクセスする必要はありません。最小権限アクセスを徹底することで、シークレットを必要とするアクセス主体に対してのみ、必要な期間に限ってアクセスを許可できます。このような一時的かつ限定的なアクセスにより、認証情報が侵害された場合の影響を軽減できます。たとえシークレットが漏洩しても、攻撃者が利用できるアクセス権を制限できるためです。

リポジトリ内のシークレットをスキャンする

シークレットの一元化を効果的に進めるには、まず既存のシークレットの散逸に対処する必要があります。シークレットスキャンツールを使用すると、コードリポジトリ、設定ファイル、ビルド成果物にすでに埋め込まれている認証情報を特定できます。組織はシークレットが適切に管理されていると判断する前に初回スキャンを実施し、その後も継続的なスキャンを行って新たな露出を検知する必要があります。

認証情報のローテーションを自動化する

自動ローテーションを導入することで、手作業に頼ることなくシークレットを定期的に更新できます。これにより、シークレットがリスクにさらされる期間を短縮できるほか、何百もの認証情報のローテーションスケジュールを管理する運用上の負担も軽減できます。

可視性と監査を強化する

組織は、シークレットがどこに保存され、どのように利用されているかを含め、シークレットの一覧をリアルタイムで把握できるようにする必要があります。このような可視性を確保することで、チームは不審な動きを検知し、管理対象から外れたシークレットを特定するとともに、セキュリティインシデントにも迅速に対応できるようになります。

シークレットのライフサイクルポリシーを定め徹底する

シークレットをいつ作成し、ローテーションし、廃止するのかについて明確なポリシーを定める必要があります。可能な限り、これらのポリシーの適用を自動化しましょう。不要になったシークレットは放置するのではなく、無効化する必要があります。

Keeperが組織のシークレット管理の一元化と自動化をどのように実現するのか、ぜひご確認ください。

Cookie を無効にする弊社はお客様のプライバシーを大切にしています

当サイトでは、閲覧体験の最適化、弊社の製品や内容に関する個別広告の表示、ウェブサイトの利用状況の分析のためにクッキーを使用しています。詳しくは、プライバシーポリシーをご覧ください。

無料トライアルにサインアップ

今すぐ購入