ニュース 08-26-2021

ソフトウェアコードサイニング(署名)による国家のサイバーセキュリティの向上

Dean Coclin
Blog | DigiCert

「国家のサイバーセキュリティの向上」に関する2021年5月12日付のジョー・バイデン米大統領の大統領令では、国家の重要インフラへの攻撃を軽減するために、政府と企業の双方が取るべき複数の措置が示されています。そのステップの一つが、コードの完全性を保証するためにコードサイニング(署名)を使用し、マルウェアや国家の安全に対する脅威の無いコードを配信することです(Sec 4 (e) (iii))※1

コードサイニングは新しい概念ではありません。実際には、1990年代後半から存在しています。米国国立標準技術研究所(NIST)は、コードサイニングに関するホワイトペーパー※2 を作成し、この技術がどのように機能するかを詳細に説明しています。簡単に言えば、コードに署名することで、ソフトウェアを包み込み、改ざんを許さないようにするということです。署名されたコードに変更が加えられれば、それはすぐに明らかになります。また、コードに署名することで、誰がいつ署名したのかがわかるため、信頼性が高まります。これは、ソフトウェアがビルドサイクルの中を移動する際に、そのソフトウェアの出所を証明するのに役立ちます。

ハードウェア/ソフトウェアとファームウェアのバンドルで構成される複雑なサービス提供形態が増えている中で、システム内のサードパーティ製コードのセキュリティと信頼性を確保することは、ますます困難になっています。一つの解決策は、購入する商品ごとにソフトウェア部品表(SBOM)を要求することです。このリストは、改ざんを防ぐためにデジタル署名され、最終的なビルド(カスタム開発およびオープンソース)に含まれるすべてのコードのリストと、カスタムコード(または修正されたオープンソース)の履歴が含まれます。この履歴には、ビルドサイクル中に蓄積されたすべてのデジタル署名が表示され、侵入者によってコードが改ざんされていないことが保証されます。コードサイニングは、内部の人間が脅威をもたらすことを防ぐことはできませんが、脅威がもたらされた時点までさかのぼって追跡できるように出所を提供します。

従来のコードサイニングでは、開発者全員に秘密鍵を配り、それを使ってコードを署名していました。この方法の問題点は、複数の開発者のデスクトップに多数の秘密鍵が存在していると、攻撃者がマルウェアを使って秘密鍵を盗み出すことができる可能性があることでした。また、どの開発者がコードに署名したのかを判断することもできませんでした。

解決策としては、クラウド型のコードサイニングサービスを利用することで、アップロードされたコード(またはハッシュ)はサービス側で署名され、開発者に返却されるようにすることです。サービスを利用するメリットは数多くありますが、要約すると、サービスは鍵を集中的に保護し、誰が署名するコードをアップロードしたかを(二要素認証によって)追跡し、既存の開発者プラットフォームと統合し、固有の鍵でコードを署名することを可能にします。これらのメリットはすべて、開発者とコードサイニングを使用する組織にとって価値のあるものです。

最近、公共サービスで使用されているソフトウェアが攻撃されたことが話題になりましたが、米国の重要インフラ※3 で使用されているソフトウェアコードのセキュリティを確保することは、この政権の最重要目標です。幸いなことに、これを実現するためのツールは既にあり、多くのソースから市販されています。

読者の皆様には、同僚のマイク・ネルソンのSolar Winds(IT管理ソフトウェアなどを提供する米国企業)のソフトウェア侵害に関する記事をご覧になり、コードサイニングについてさらにご理解を深めていただきたいと思います。コードサイニングのベストプラクティスについての詳細は、www.digicert.com/campaigns/jp-devops-close-the-loopを参照してください。

※1 https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/
※2 「Security Considerations for Code Signing」 David Cooper, Andrew Regenscheid, Murugiah Souppaya, 米国商務省標準化技術研究所(NIST), Jan.26, 2018
※3 https://www.cisa.gov/critical-infrastructure-sectors

UP NEXT

特集記事

証明書ライフサイクル管理の自動化に向けた 3 つの鍵

03-06-2024

S/MIME の導入を阻むハードルを乗り越える

S/MIME ソリューションに求める 3 つの重要な要素、および S/MIME ソリューションが必要な理由

Entrust社の証明書誤発行問題から分かること