効果的なコード署名ポリシーを作成、実施するにはどうすればよいですか?
社内向けコード署名ポリシーガイドを作成する
成熟度レベルの高い署名要件が求められる中、組織や開発チームにはソフトウェアを保護する堅牢な署名ポリシーおよびプロセスを作成、運用することが求められています。正式なコード署名ポリシーを作成して文書化することで、開発者とエンジニアは開発したソフトウェアを保護するために必要なベストプラクティスに従って行動できるようになります。
コード署名ポリシーガイドには何を記載すればよいのですか?
効果的なコード署名ポリシーには、以下に示すようなコード署名鍵の発行と使用に関するガイドラインと手順が含まれます。
鍵の発行
管理プロトコルを定めるときは、誰が、いつ鍵を発行できるかについて管理策と手順を設定してください。チームメンバーは、各自の役割に従って、いつ署名を行うべきかを知っていなければなりません。発行する鍵の種類と、その鍵に関連付けられる属性を管理します。そうすることで、攻撃の餌食となる脆弱なアルゴリズムで新しい鍵を発行せずにすみます。
鍵管理
ユーザーロールごとに管理策と手順を設定します。誰が鍵を管理するのか。チーム内、組織内、製造段階内の役割に応じて、鍵管理をどのように分担するのか。これらの手順には、組織全体のすべての鍵についてのロケーション追跡が含まれる必要があります。
鍵の保管
鍵は保護されなければなりません。使用中および非使用時の鍵の保管について管理策と手順を設定します。これには HSM、トークン、USB、多要素認証を使用した鍵へのアクセスが含まれます。チームメンバーは、鍵を紛失したり、不適切に保管したりしないようにする方法を知っていなければなりません。
署名の権限
チームメンバーは、誰が署名の権限を持っているか、いつ署名を行うべきかを知っていなければなりません。また、どのような場合に署名の許可が得られないのかと、自身の役割に許可が含まれない場合に署名を要求する方法も知っていなければなりません。
鍵の使用方法
鍵をどのように使用するか(使用しないか)は、適切な署名手順の重要な要素です。鍵は、適切な人の手で適切なタイミングで使用されなければなりません。
鍵の共有の防止
鍵の共有は珍しいことではありませんが、最も危険な慣行でもあります。レポジトリ内、または内部サーバー、システム、ネットワーク内であったとしても、チームメンバーは決して鍵を共有してはなりません。鍵は、適切な個人によって、その役割に応じて一意に発行、管理、保管する必要があります。
継続的署名
コードおよびソフトウェア署名は、後から思いついたように付け加えたり、面倒なコンプライアンス手順として扱ったりしてはなりません。あらゆる CI/CD パイプラインに 継続的署名(Continuous Signing: CS)を含め、コードのセキュリティが適切に一貫性をもって守られるようにしてください。
社内向けコード署名ポリシーの書き方のすべてについては、こちらのガイドをお読みください。