オフィスビルのアクセスキーは誰が管理していますか?オフィスのすべての場所に、全員が同じキーでアクセスできますか、それともグループごとに独自のカードキーを持っていますか?もし、全員がすべての場所にアクセスできるカードキーのコピーを持っていて、一人がカードキーを紛失した場合、全員、そして組織全体が危険にさらされます。しかし、チームごとに役割に応じた独自のカードキーを持ち、活動やアクセスを制限すれば、組織のリスクを軽減することができます。オフィスのアクセスにカードキーが使われていることと、開発チームがコード署名に関して組織のリスクを軽減する方法は、少し似ています。
異なるDevOps(開発担当と運用担当の連携)チームで、別々のコード署名用の鍵を使用することは、
コード署名のベストプラクティスです。なぜなら、マルウェアや脆弱性を含んだままリリースされた顧客向けソフトウェアへの署名に、ある署名鍵が使用された場合、あなたの会社を風評リスクにさらし、修復や対策の必要となるのは、そのリリースへの署名に使用された署名鍵だけです。カードキーの例で言えば、あるチームにオフィスの特定の部屋にしか入れない権利を与え、泥棒がそのチームメンバーのカードキーを盗んでも、オフィスビルの他の部屋には入れないようにするようなものです。
DigiCert® Secure Software Managerは、主に3つの方法でリスクを軽減することができます。チームの細分化、署名鍵やコードサイニング証明書の使用・再利用方法の柔軟性、署名鍵のオフライン化などにより、企業は業界の要件に準拠しながら、リスクを軽減することができます。ここでは、Secure Software Managerを導入した大手ラボラトリーテクノロジー企業の事例をご紹介します。
ケーススタディ
ある大手ラボラトリーテクノロジー企業は、最近、自社のソフトウェアの大半に単一の証明書を使用するリスクに取り組んでいます。彼らのコード署名の業務は、手に負えないほど混沌としていました。同社は世界各地の約17の開発チームをサポートしていますが、単一の鍵ペアと証明書を共有する運用では、情報セキュリティの目標を達成できないと判断しました。
同社は、
コードサイニング証明書を、より強固なソリューションであるSecure Software Managerに置き換えることを決定しました。Secure Software Managerは、サービス内で署名鍵を安全に維持・保管し、そのプラットフォームから署名鍵や証明書を発行・管理することができます。また、アクセス権、役割、署名を包括的に可視化し、世界各地の開発チームに変化があっても、一元管理できるほか、署名鍵をオフラインで保存し、必要に応じて使用を許可する機能も備えています。
この企業では、コード署名業務の全体的なセキュリティが向上し、署名鍵や証明書の発行に対する規律が強化されたことを実感しています。
Secure Software Managerが実現する、コード署名用の鍵や証明書にまつわるリスクを軽減するための3つの方法と、コード署名活動がCA/Bフォーラムの要件や業界標準に準拠していることを保証していることをご紹介します。
チームの細分化
Secure Software Managerは、署名鍵をチームごとに分けて管理し、管理者はすべての操作と署名鍵の使用状況を可視化することができます。これにより、会社全体での不注意によるミスのリスクを減らすことができます。例えば、お客様がライブラリやテンプレートの適正かどうかの評価を行わずにライブラリを取り込んでしまうことがあります。また、脆弱性やマルウェアを含んだままリリースさてしまった、お客様向けのソフトウェアの署名に、ある署名鍵が使われた場合、そのチームのコードだけが危険にさらされることになります。他のチームは、その署名鍵を使用することはできないので、異なるオフィスの鍵を配布する場合と同じように、侵入された場合は、1つの部屋だけが開けられてしまうことになります。
これにより、取り消しの際の修復作業も軽減されます。仮に脆弱性が発見されたり悪用されたりしても、影響範囲が大幅に縮小され、修復型の活動が削減されるため、対応が容易となります。
鍵管理の柔軟性
また、Secure Software Managerは、管理者が署名鍵のローテーション、証明書の有効期間の短縮、鍵ペアの管理を行うことで、リスクを軽減します。管理者は、一定の日数または月ごとに、署名鍵をローテーションすることができます。これは、マイクロソフトのファイルにとって重要なことです。マイクロソフトは、より高いレベルの評価で、署名鍵をローテーションする発行者に報酬を与えます。マイクロソフトのオペレーティングシステムで使用するファイル(DLLファイル、EXEファイルなど)に署名する必要がある場合、マイクロソフトは、署名のために同じ証明書を何度も使用するのではなく、証明書をローテーションさせることを期待しています。また、証明書の有効期限を短く設定して、毎年期限切れにすることもできます。
管理者は、デジサートで保護された同じ鍵ペアに基づいて、新しい証明書を発行することができます。さらに、製品のリリースに合わせて新しい鍵ペアと証明書を作成し、一度だけ使用することができます。その後、署名鍵と証明書はサービスから削除され、証明書を失効させる措置を取らない限り、将来の署名に利用できなくなります。
署名鍵のオフライン化
Secure Software Managerで、署名鍵をオフラインモードに設定すると、事前に許可を得ずにリリースの署名に使用することができなくなります。開発者はもともとリリース計画を立てるのが得意なので、署名鍵の使用許可を得たり、指定した署名鍵で署名を許可する前にアクセスをスケジューリングしたりすることを、彼らのリリースプロセスに容易に組み込むことができます。これにより、必要のない署名鍵が使われることを防ぎ、どの署名鍵がいつ、どこで使われているかを確実に把握することができます。また、署名鍵をオフラインにすることで、署名者と承認者の責任を分離し、セキュリティを強化することができます。
Secure Software Managerについて
Secure Software Managerは、署名鍵や証明書にまつわるリスクを低減し、コード署名作業の可視性を維持し、業界のコンプライアンスを確保することができます。Secure Software Managerを使用することで、企業はスケーラブルなワークフローで、DevOpsや継続的インテグレーション/コンティニュアス・デリバリー(CI/CD)のオペレーションを確保することができます。さらに、取り消しが必要な場合には、Secure Software Managerの機能を使って修復を簡単に行うことができます。
DigiCertONE™に組み込まれているSecure Software Managerは、ポータブルで柔軟な展開モデルと安全な鍵管理により、CI/CDパイプライン全体で自動化されたセキュリティを実現し、コード署名を管理する最新の方法です。Secure Software Managerは、プライベート署名、オンデマンドキー、ローテーションキーのための署名ごとのユニークキーや証明書など、コード署名のベストプラクティスをサポートしています。Secure Software Managerは、Docker、Java、Authenticode、OpenSSL、Androidなどの一般的なプラットフォームやライブラリに対応しています。
Secure Software Managerの詳細については、https://www.digicert.com/jp/signing/secure-software-manager をご参照ください。