シークレット管理とは何ですか?

大画面の横でスマートフォンを持つ人

シークレット管理の定義

シークレット管理とは、アプリケーション、サーバー、ワークロードなどのロボット・ユーザーの資格情報(証明書、キー、パスワード、トークンなど)を保護することです。

組織は、主要なビジネス・プロセスやワークフローを自動化するために、人間以外のアイデンティティーを使用することが増えています。これらのアイデンティティーには、サービス・アカウント、継続的インテグレーションと継続的デリバリー(CI/CD)パイプライン、コンテナ、マイクロサービス、オーケストレーションツールが含まれます。また、ロボティック・プロセス・オートメーション(RPA)—人間の行動を模倣するソフトウェア・ボット—最近ではAIエージェントが含まれていることがあります。

人間のユーザーと同様に、人間以外のエンティティーがシステムやサービスを認証し、組織のリソースにアクセスするためには、認証情報、つまり「シークレット」が必要であり、多くの場合、昇格された特権が必要です。例えば、自動バックアッププロセスによって機密ファイルが読み取られ、システム設定が変更される場合があります。

ハッカーにとって、こうした特権を持つ非人間アカウントは、非常に価値の高い標的となります。これらは脅威アクターがアクセス権を悪用してデータを盗み、重要なシステムを損傷させつつ、検知を回避することを可能にします。IBM X-Force脅威インテリジェンス・インデックスによると、有効なアカウントのハイジャックは2番目に多いサイバー攻撃ベクトルであり、X-Forceが昨年対応したすべてのインシデントの32%を占めています。

シークレット管理システムは、これらのサイバー脅威に対抗するのに役立ち、非人間アイデンティティーがITリソースにアクセスするために使用するシークレットを組織が作成、制御、保護できるようにします。シークレット管理ツールを使用すると、ITチームは人間以外の認証情報をライフサイクル全体にわたって保護し、自動化されたワークフローを合理化すると同時に、データ侵害、改ざん、盗難、その他の不正アクセスを防ぐことができます。

シークレットとは

シークレットとは、アプリケーションまたはサービス内に含まれるデジタル資格情報であり、非人間ユーザーがサービス、データベース、アプリケーション、またはその他のITリソースと通信したり、アクションを実行したりすることを可能にします。シークレットは、承認されたユーザーのみが機密データやシステムにアクセスできるようにすることで、組織のセキュリティー体制を強化するのに役立ちます。

シークレットの例には以下が含まれますが、これらに限定されません。

  • サービス・アカウントの資格情報:サービス・アカウントを使用すると、アプリや自動化されたワークフローがオペレーティング・システムと対話できるようになります。サービス・アカウントの認証情報には、パスワード、セキュリティー・トークン、Kerberosチケット、その他のシークレットが含まれます。

  • APIキー:APIキーを使用すると、ユーザー、アプリケーション、サービスがアプリケーション・プログラミング・インターフェース(API)に照らして自身を検証できます。

  • 暗号化キー:暗号化キーを使用すると、ユーザーはデータを暗号化および復号化できます。

  • 認証トークンと承認トークン:OAuthプロトコルで使用されるトークンなどは、ユーザーのIDを確認し、ユーザーがアクセスできる特定のリソースを決定できる情報です。

  • SSH(Secure Shell)キー:SSHキーは、SSHサーバーが公開キー暗号化を通じてユーザーまたはデバイスを識別するために使用されます。
  • PKI証明書と秘密キー(SSL/TLS/mTLS):認証局が発行した証明書とそれに関連する秘密キーはエンドポイントを認証し、暗号化されたSSL/TLS証明書と接続(相互TLS(mTLS)認証など)を確立します。
  • 任意のシークレット:アプリケーションまたはリソースへのアクセスに使用できるあらゆる種類の構造化または非構造化データを含む機密データ。
  • 接続文字列:コンピューター・プログラムがデータベース、ファイル、スプレッドシートなどのデータ・ソースに接続するために必要な命令を含む文字列。
  • その他の暗号鍵:これらには、ハッシュベースのメッセージ認証コード(HMAC)鍵、コード署名鍵、署名または検証に使用されるその他の秘密鍵が含まれます。

シークレット管理が重要な理由

シークレット管理は、組織が機密認証情報やパスワード、APIキー、トークンなどのその他のシークレットを安全に保存、制御、ローテーションできるようにする重要なセキュリティー・ソリューションです。

これは特権アクセス管理(PAM)の4つの中核機能の1つで、特権アカウントとユーザーの安全確保に重点を置くIDおよびアクセス管理(IAM)のサブセットです。

PAMの他の3つの機能は、次のとおりです。

  • 特権アカウントおよびセッション管理(PASM)は、特権アカウントのライフサイクル管理、パスワード管理、セッション監視を処理します。

  • 特権昇格および特権委譲管理(PEDM)は、特権アクセス要求を自動的に評価、承認、拒否します。

  • クラウドインフラストラクチャー権限管理(CIEM)は、クラウド・コンピューティング環境における権限と権利を管理するものです。

シークレット管理は、自動化された継続的なソフトウェア開発と配信を重視するDevOps方法論にとって重要です。

DevOpsチームは、デジタル・エコシステム、ワークフロー、エンドポイント全体を管理するために、複数の構成管理ツールやオーケストレーションツールを使用することが多いです。ツールでは多くの場合、開始するためにシークレットへのアクセスを必要とする自動化とスクリプトが使用されます。エンタープライズ・グレードのシークレット管理サービスがなければ、シークレットを無計画に使用するとシステムの脆弱性が増大する可能性があります。

多くの組織では、シークレット管理機能をCI/CDパイプラインに統合しています。これにより、開発者、ツール、自動化プロセスなど、すべての可動部分が、必要なときに必要な機密システムに安全にアクセスできるようになります。

シークレット管理は、DevOpsライフサイクル全体にわたってセキュリティーを継続的に統合および自動化するDevOps方法論の進化形であるDevSecOpsのコア・コンポーネントと見なされています。

シークレット管理の仕組み

シークレット管理プロセスは通常、シークレット管理ツールに依存します。これらのツールは、オンプレミスまたはクラウド・サービスとしてデプロイでき、シークレットの作成、使用、ローテーション、保護を一元化、自動化、合理化するのに役立ちます。

商用およびオープンソースのシークレット管理ソリューションが利用可能です。オープンソースの選択肢にはInfisicalがあり、商用オプションにはCyberArk Conjur(こちらもオープンソース版があります)やHashiCorp Vault(IBM傘下のHashiCorp社製)があります。

シークレット管理ツールの一般的な機能には次のようなものがあります。

  • 集中化および標準化されたシークレット管理
  • 動的なシークレットの作成と自動シークレット・ローテーション
  • アクセス制御
  • アクティビティーの監視と監査

集中化および標準化されたシークレット管理

エンタープライズ・グレードのシークレット管理サービスを使用すると、組織は複数の種類のシークレットを単一の画面で管理できます。

シークレット管理ソリューションでは、個々のユーザーに小さなサイロでシークレットを管理させるのではなく、「シークレット・ボールト」と呼ばれる安全な中央の場所にシークレットを保存できます。

承認されたユーザーが機密システムにアクセスする必要がある場合、ボールトから対応するシークレットを取得できます。シークレット管理ツールは、要求を自動的に検証および承認し、ワークフローの認証に必要なシークレットを公開できます。

標準化はシークレットの拡散を防ぐのに役立ちます。シークレットの無秩序な拡散とは、シークレットが組織全体のさまざまな場所に保存され、多くの場合、アプリケーションにハードコードされていたり、共有ドキュメント内のプレーンテキストとして保存されている状態です。シークレットが拡散されると、悪意のある行為者からシークレットを保護したり、シークレットがどのように使用されているかを追跡したりすることが難しくなります。

動的なシークレットの作成と自動シークレット・ローテーション

Secrets Managerで作成されるシークレットは、静的または動的のいずれかになります。静的シークレットは、通常は手動で変更されるか、事前に設定された有効期限に達するまで、長期間有効なままになるシークレットです。

対照的に、動的シークレットは、必要なときにSecrets Managerによってオンデマンドで作成されます。動的シークレットはかなり早く期限切れになります。使い捨ての場合もあります。

動的シークレットのユースケースは、データベースやAWSやMicrosoft Azureのようなクラウド環境など、機密性の高いリソースを保護することで、そのリソースが読み込まれたりアクセスされたりするたびにAPIキーを動的に生成することです。これにより、悪意のある人物がAPIキーを盗んで再利用できないことが保証されます。

多くのSecrets Managerは、シークレットのローテーション、つまりシークレットを定期的に変更する操作を自動化することもできます。シークレットのローテーションは、アプリケーションを再展開したり中断したりすることなく、スケジュールどおりに、またはオンデマンドで自動化できます。シークレットの作成時に、シークレットの有効期間(TTL)またはリース期間を定義して、シークレットが存在する時間を短縮することができます。

アクセス制御

アクセスを整理して制限するために、特定のエンティティまたはグループにのみシークレットを付与できます。シークレットへのアクセスは、多くの場合、最小権限の原則を使用して許可されます。つまり、各プロセスには、タスクを実行するために必要な最も制限された権限セットのみが付与されます。ユーザーは、承認されたタスクを実行するために必要なシークレットにのみアクセスできます。

決して信用せず、常に検証する」ゼロトラスト・アーキテクチャーは、多くの場合、秘密管理システムへのアクセスを管理します。これにより、たとえネットワーク内部から送信されたとしても、シークレットに対するすべてのリクエストが確実に認証および承認されます。

アクティビティーの監視と監査

多くのシークレットマネージャーは、ユーザーやアプリケーションがシークレットとどのようにやり取りして使用するかを追跡し、シークレットがライフサイクル全体を通じて適切に処理されていることを確認することができます。これにより、組織はシークレットマネージャーへの認証や認可を含む、シークレット・アクセス・イベントをほぼリアルタイムで監視できるようになります。

シークレットマネージャーは、シークレットを表示または使用する不正な試みを迅速に拒否し、必要に応じてアクセスを取り消すことができます。これにより、ハッカー内部脅威、その他の悪質な行為者が損害を与える前に、迅速な修復を行うことができます。

強力なシークレット・オートメーション・ツールは、ユーザー認証とシークレット・アクセス・イベントを追跡する詳細な監査ログを保持します。

組織が動的なシークレット自動化ツールを使用し始めると、多くの場合、シークレットの監視がはるかに簡単に実現できるようになります。これらの詳細な監査証跡は、承認されたシークレットの使用の検証や、潜在的な脅威の検知と追跡に役立ちます。

一般的なシークレット管理手法

多くの組織は、シークレット管理ソリューションを使用するだけでなく、シークレット管理プロセスにおいて共通のコアプラクティスに従っています。こうしたプラクティスには、次のようなものがあります。

  • シークレットは、適切な環境(例えば、別々の開発環境、テスト環境、本番環境)内で生成、保存、アクセスされます。組織によっては、環境ごとに異なるシークレット管理ツールを使用するものもあります。他の企業では、1つの中央ソリューションを使用し、各環境のシークレットを専用のセグメントに分離しています。シークレットは環境外に漏れることはなく、厳格なアクセス制御手段によって保護されます。

  • シークレットへのユーザー・アクセスは、ユーザーが責任を果たすために必要な最小限のレベルで許可されます。意図的かどうかに関わらず、過剰な権限付与はデータ侵害につながる可能性があります。

  • シークレットはシステム要件に従って定期的にローテーションされます。

  • ユーザーは、ソース・コード、構成ファイル、またはドキュメントにシークレットを保存しません。

  • すべての機密データの暗号化を要求することで、セキュリティー・ポリシーを強化できます。暗号化キーは、キー管理サービス(KMS)で保護できます。

  • 組織はシークレットを継続的に監視し、監査ログですべてのリクエスト(誰がシークレットを要求したか、どのシステムに対して、リクエストが成功したかどうか、いつ発行または取得されたか、いつ有効期限が切れ、シークレットが更新されたかどうかなど)を追跡します。その後、異常を迅速に調査する必要があります。

シークレット管理の課題

ITエコシステムが複雑になるにつれて、シークレット管理を効果的に制御することがますます困難になります。一般的なシークレット管理の課題には次のようなものがあります。

分散型シークレット管理

管理者、開発者、ユーザーがシークレットを個別に管理する分散型エコシステムでは、セキュリティー対策の不備やシークレットの使用が適切に監視または監査されないことがあり、リスクが生じる可能性があります。

一元化されたシークレット管理ソリューションにより、組織はシークレットをより詳細に把握し、制御できるようになります。

ハードコードされた認証情報

パスワードやその他のシークレットがソース・コードやスクリプトにプレーン・テキストとして埋め込まれている場合、攻撃者はそれを簡単に発見し、機密情報にアクセスすることができます。

ハードコードされたシークレットは、モノのインターネット(IoT)デバイス、Kubernetesなどのコンテナ・オーケストレーション・プラットフォーム、アプリケーション・サーバー、脆弱性スキャナー、ロボティック・プロセス・オートメーション(RPA)プラットフォームなど、さまざまな場所に表示される可能性があります。

頻度の低いローテーション

シークレットを定期的にローテーションすると盗難や悪用を防ぐのに役立ちますが、シークレット管理システムがなければローテーションに一貫性がなかったり、効果がなかったりする可能性があります。シークレットが長期間変更されないままになっていると、ハッカーが試行錯誤や総当たり攻撃によってそのシークレットを解読できる可能性があります。

パスワードの使用期間が長くなるほど、アクセスできるユーザーが増え、漏洩の可能性が高くなります。

シークレットのスプロール

ITシステムの拡大により、システムの多くのサイロ化された部分にシークレットが分散され、シークレットが無秩序に拡散する可能性があります。シークレット情報の拡散は、組織が複数のクラウド・プロバイダーによって提供されるパブリック環境とプライベートクラウド環境を混在させるハイブリッド・マルチクラウド・エコシステムでは特に懸念される可能性があります。

組織は、クラウドネイティブ・アプリケーション、コンテナ、マイクロサービス、その他のITリソース全体にわたって、数千、数百万ものシークレットを保有している可能性があります。この無秩序な拡大により、セキュリティー上の大きな負担が生じ、潜在的な攻撃対象領域が拡大します。

サービス全体で可視性が制限される可能性があり、手動で追跡したり、異なるシステムで追跡したりすると、シークレットの管理がすぐに扱いにくくなる可能性があります。一元化されたシークレット管理サービスがないと、適切なシークレット管理を実施することが困難または不可能になる可能性があります。

手動でのシークレットの共有

組織にシークレット管理システムがない場合、シークレットはEメールやテキストなどを通じて手動で共有される可能性があり、脅威アクターがそれを傍受する可能性があります。

共同執筆者

Jim Holdsworth

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Annie Badman

Staff Writer

IBM Think