SolarWindsおよびColonial Pipelineにおけるサプライチェーンのセキュリティ侵害は、ソフトウェアへのサプライチェーン攻撃を主流にした2つの(多くの)インシデントです。世界的に、病院および燃料輸送が最近の目標となっています。途中で監視する必要のあるエントリポイントが数千とは言わないまでも、数百はあることを考えると、サプライチェーンの防御は容易ではないということが、企業にとっての主な課題となっています。ただし、ベンダーとデータをやり取りまたは交換するための、十分に計画された戦略と組み合わせれば、サプライチェーン攻撃リスクを軽減するベストプラクティスとなります。
サプライチェーンの広い視野を持つ
サプライチェーンには幅広い関係が含まれます。一般に考えられる物理的な商品や構成要素をA地点からB地点に輸送することだけではありません。サプライチェーンには企業が持つ可能性のあるパートナーシップと事業関係も含まれているため、あらゆる企業は、そこに荷札がついていなくても、サプライチェーンを持っています。実際、企業独自の製品またはサービスを開発するために使用される任意の製品(ソフトウェアまたはハードウェア)およびサービスを、サプライチェーンと呼ぶ場合があります。パートナーのシステムと貴社のネットワークにアクセスするシステムが適切に保護されていることを確認して、侵害や停止のリスクを軽減する必要があります。
ソフトウェアをサプライチェーンの一部として考えると、それは貴社のシステムにコードを提出するサードパーティーと協力するソフトウェア開発チームを意味するかもしれません。また、コードベースに統合されているサードパーティーのソースからIT製品またはコードを購入することも意味します。
サプライチェーンの「全体像」を確認したら、ターゲットを絞ったサプライチェーンのセキュリティ目標を設定できます。購入して使用するソフトウェア、他者が開発したコード、使用するサービスなど、取り扱うすべての製品が安全で、優れたセキュリティ対策に従っているようにします。
コード管理
自社開発コードを使用する場合でも、社外で開発されたコードを使用する場合でも、コード管理プロセスが検証されていることが重要です。外部ソースと連携する場合は、信頼性を確保するために署名キーと証明書の安全性を保つことが特に重要です。
ソースコードとソフトウェア製品の管理についての3つの重要な質問があります(先に答えを教えておくと、3つはすべて「はい」でないといけません)。これらの回答を注意深く確認することで、展開後、ソースコードに脆弱性が発生するのを防ぐことができます。
- ソースコード管理システム(SCM)はありますか?適切なSCMがあれば、コードバージョンは適切に管理され、システムにログインするすべての人が適切な権限で認証されます。SCMは、コードにタイムスタンプを付けてその動きをログに記録するため、いかなる場合でも悪意ある第三者が検出されずに操作することはなくなります。SCMは、コードに信頼感をもたらすCoCを確立するために、適切に管理される必要があります。
- コードコミットとコードは適切に署名されていますか? 署名は、ソフトウェアドライバ、アプリケーション、インストールファイル、スクリプト、車両や産業用システムのファームウェアモジュールを含む、すべての種類のソフトウェアモジュールと実行可能ファイルを保護するために使用する必要があります。コード署名とコードコミット署名は、SCMシステムに必要な機能である必要があります。システムを導入したら、すべての開発者がコードコミットに署名するように適切に設定します。一例としてGithubでコミットに署名する方法に関する簡単なチュートリアルを参照してみてください。
- コンポーネントとその出所を特定するソフトウェアの「部品表」(SBOM)はありますか?
開発者が非常に忙しく、利用可能なオープンソースコードが非常に多い場合、コードの出所を知ることが重要です。すべてのオープンソースコードが同じように作成されているわけではなく、攻撃者は既知の脆弱性を利用します。オープンソースコードを使用する場合は、開示する必要があります。オープンソースのコンポーネントを特定することで、自社管理するコードでも、購入したソフトウェアでも、将来発生する可能性のある脆弱性に迅速に対応できるようになります。このような背景から、政府の新しいソフトウェア開発要件では、セキュリティリスクを軽減するために特にSBOMに注目しています。
米国は2022年の来たる規制に備えている
上記の質問のほとんどに詳細な回答ができるなら、米国政府にソフトウェアを提供する企業に向けたバイデン政権の大統領命令に応じて、新しいセキュアソフトウェアサプライチェーンガイドラインを満たす準備をすぐに開始できます。それは、あらゆる形式のコードを不正アクセスや改ざんから保護することを求めています。フィッシングに強いMFAとコードコミットへの署名は、サプライチェーンのセキュリティ体制を改善し、コンプライアンスの要求を満たすための重要なセキュリティ制御です。使用するコンポーネントとコードの安全な管理方法をより詳細に把握することで、全体的なセキュリティは向上し、ユーザーからの信頼が向上します。