0

コードサイニング証明書を「正しく使う」ために

Created on Apr 14 2016, 5:14 AM by Quentin Liu

シマンテックの最近の調査レポートにより、中国に拠点を置く高度な脅威グループ、通称 Suckfly がコードサイニング証明書の秘密鍵を奪い、2年前からマルウェアを拡散していたことが明らかになりました。この発見で、サイバー攻撃者が正規のファイルやアプリケーションのように偽装してマルウェア拡散を実行する増加傾向がセキュリティ面で注意すべきポイントとしてひとつ増えたことになります。

サイバー攻撃者が、コードサイニング証明書の秘密鍵を狙うのはなぜでしょうか。問題は、その目的として相反する二つの面に起因しており、従来からのコードサイニング利用の管理方法にあります。

コードサイニング証明書の主な目的は、a)内容の完全性を検証し、それが改変されていない事を証明することと、b)ファイルまたはアプリケーション作成者の帰属を明らかにして使用環境による警告を防止することです。コードサイニング証明書があると、ファイルやアプリケーションの内容が改変されていないこと、そして内容と作成者の存在の関連付けが第三者機関によって検証されているため信頼度が上がります。ソフトウェアメーカーや業界グループの多くが、この理由からコードサイニング証明書の使用を義務付けています。

実際の使われ方を見ると、ユーザーが署名のないアプリケーションをダウンロードしようとした場合に、一部のブラウザは警告を表示することによってユーザーを保護します。また、リスクを低減するために、署名のないファイルやアプリケーションをダウンロードあるいは実行するのを防いで、不明または不正な発行者から送られたコードの実行を最小限に抑えるセキュリティアプリケーションもあります。このように、セキュリティ意識が高く、社内でソフトウェアまたはアプリケーションを多数開発している企業であれば、発行に関する観点からも、リスク低減の観点からもコードサイニング証明書を導入しているのが普通です。

従来のコードサイニングでは、署名に使われる秘密鍵を安全に保管する全責任は、発行を依頼した組織にあります。その組織の中では一般的に、秘密鍵のセキュリティと管理は開発グループに一任されます。ファイルやアプリケーションを発行するのが、たいていはアプリケーションまたはソフトウェアの開発者だからです。そのグループが基本的なセキュリティ対策(ベストプラクティス)について訓練を受けていない場合、あるいは鍵の紛失や盗難、悪用について説明責任を果たせなかった場合、マルウェアが自分たちの秘密鍵で署名されてしまうというリスクに、企業全体が直面することになります。

企業が鍵の盗難や悪用を防ぐうえで、以下のような業界の基本的なセキュリティ対策(ベストプラクティス)があります。

  • 秘密鍵の保護
    • HSM または専用のセキュリティ環境で保管する
  • 秘密鍵と署名履歴の追跡
    • 誰が、何に、いつ署名したかをわかりやすくする
  • 発行者の任命と失効の管理
    • 秘密鍵には権限のあるユーザーだけがアクセスできるようにする
  • 監査の準備
    • コードサイニング署名について責任の明確化と証跡の保全を推進する

基本的なセキュリティ対策(ベストプラクティス)だけでなく、秘密鍵をオンサイトで分散保管させず、確実な鍵管理のガバナンスとセキュリティを備えた一元的な場所に保管することで、セキュリティを強化すべき企業もあるでしょう。全世界のコードサイニング証明書の 65% を提供している*プロバイダとして、シマンテックは、従来のコードサイニング手法に存在するガバナンスの欠如などの問題のギャップに対処できる次世代のサービスを提供し、秘密鍵の盗難というリスクに対応しています。それが Symantec Secure App Service です。クラウドベースの総合的なコードサイニング管理ソリューションであり、鍵の管理とコードサイニング履歴の追跡、さらにユーザーの管理までが一元化されます。

サイバー犯罪者は今後も、企業のセキュリティを破って重要なデータを盗み出す手法を次々と生み出すでしょう。業界のベストプラクティスを厳重に守り、Symantec Secure App Service などのソリューションを活用すれば、そうした企みを防ぎ、コードサイニング本来の信頼を保証できます。

*出典: rsEdge による国際的な調査(2014 年)

【参考訳】

  • Products
  • DigiCert SSL TLS Certificates
  • Products and Solutions
  • Symantec Website Security