ピーター・ダンヒュー(セキュア・コード・ウォリアー CEO)
名状しがたい年でさえ混乱が続いたにもかかわらず、2021年は米国政府にとって、史上最悪のデータ侵害の一つという形で、耳をつんざくような衝撃で幕を開けました。SolarWindsインシデントは、国家による壊滅的で高度な攻撃であり、複数の政府機関や大規模組織をパニックに陥れ、エンドポイントのセキュリティ確保に奔走しました。SolarWindsソフトウェアのほぼすべてのエンドユーザーが侵害を受け、このインシデントは、ソフトウェアサプライチェーンにおけるサイバーセキュリティと防御の重要性を改めて浮き彫りにしました。
サイバーセキュリティが重要であることは明らかですが、サプライチェーンの観点でこれは何を意味するのでしょうか?
平均的な開発チームにおけるサイバーセキュリティの現状
膨大な量のソフトウェアが毎日生産されており、そのコード量は年間数十億行に上ります。そして、デジタル化が進むライフスタイルによって生み出される需要の増加に伴い、その量はますます増加しています。世界の開発者人口は2024年までに約2,900万人に達すると予想されていますが、現時点では、開発者の安全なコーディング能力を評価・認定する正式な認定制度は存在しません。すべての開発者が安全でないコードを作成または再利用しているわけではありませんが、私たちがデータを託すソフトウェアに基本的なセキュリティ上の脆弱性が持ち込まれるリスクが継続的に存在するのは間違いありません。
開発者は、機能を開発し、できるだけ早くコードをリリースする能力で評価されます。多くの組織では、セキュリティは開発者の成功のベンチマークとなっていません。しかし、ソフトウェア開発の初期段階で一般的なセキュリティバグを防ぐ可能性に気づく企業が増えるにつれ、その認識は変わりつつあります。しかし、実現と実装は別物であり、多くの高等教育機関の開発コースではセキュアコーディングの実践に関する説明が欠落しているため、その不足を補うのは開発者の職場に委ねられることが多いのです。スキル構築と知識共有が不足していたり、関連性が低かったりすると、効果は期待できません。そのため、スキル開発不足による脆弱性の再発という悪循環は、依然として続いています。
当然のことながら、世界のサイバーセキュリティ問題を解決するのは、平均的なソフトウェア開発者の責任ではありません。結局のところ、組織が高額なセキュリティ専門家を雇うのには理由があります。しかしながら、セキュリティの専門家は不足しており、開発者は負担を軽減する上で確かに役割を果たすことができます。
しかし、壊滅的なサイバー攻撃を防ぐという観点から、私たち、そして重要インフラや機密性の高い組織向けのソフトウェアを開発しているベンダーはどうなるのでしょうか?少なくとも、ソフトウェア調達の現状を変える必要があるでしょう。
安全なソフトウェアサプライチェーンの妨げとなる落とし穴

鎖の強さは最も弱い環の強さで決まるという、古臭い格言は、残念ながらソフトウェア供給においても全く同じです。たとえ企業がセキュリティのベストプラクティスを強化し、開発者のスキルアップに投資し、機能的なDevSecOps環境(つまり、ソフトウェアを可能な限り安全に開発するための責任を全員が共有する環境)への移行を進めていたとしても、セキュリティ上の問題を抱えるベンダーのソフトウェアを使用すれば、その問題を自社のエコシステムに引き継ぎ、その影響を被ることになります。
セキュリティチームは、テクノロジースタックへのサードパーティ製追加機能の安全性評価を支援するべきですが、ソリューションの選択肢が限られている状況下では、ビジネスニーズに基づいて意思決定が行われる可能性があります。この時点で、信頼関係が問われる可能性があります。ベンダーは、貴社と同じくらいセキュリティを重視しているでしょうか?そして、ベンダーは、貴社だけが理解できるリスクと、保護すべき資産を実際に評価できるでしょうか?
ベンダーによるソフトウェア追加機能のセキュリティ実現可能性を評価する上で、透明性は極めて重要な要素です。ベンダーは自社のセキュリティ対策を率直に公開していますか?データの安全性確保への取り組みに誇りを持ち、最優先事項として取り組むべきです。セキュリティ対策がどこにも公開されていない場合、あるいは情報が提供されていない場合、セキュリティはベンダーにとって最優先事項ではない可能性が高いです。ベンダーは技術的な質問に答えられる必要があります。ISO27001やSOC2といった独立した認証も役立ちます。また、社内デューデリジェンスやセキュリティ対策の一環として、内部の脆弱性を徹底的に調査してスキャンすることができないのであれば、導入は諦めるべきです。
需要がソフトウェアニーズの急速な導入を牽引する中、特にベンダーのコードを既存のシステムに組み込み、新しいコンテキストで動作させる場合、ベンダーと購入者の双方が最善を尽くす必要があります。また、双方とも開発者を現場に派遣し、一般的なセキュリティバグや欠陥を早期に発見して出荷につなげる必要があります。既存の技術ソリューションの蜘蛛の巣に新たな機能を追加すると、数百、あるいは数千もの依存関係が危険にさらされる可能性があり、小さな障害が壊滅的な破滅につながる可能性があります。
では、解決策は何でしょうか?すべてを社内でゼロからコーディングする?1998年なら、それも理にかなっているかもしれません。しかし、今では最寄りの洗車場を「Ask Jeeves」で探す必要がなくなったように、現代の状況でも機能する現実的な安全対策を講じる必要があります。
まだ特効薬はないが、解決策はある
[tc_unified_video コード=”ca2e9666-6aa6-3d97-890a-080e51692661″]
購入者にとって、ベンダーのソフトウェアと開発プラクティスのセキュリティ評価は、セキュリティプログラム全体とリスク軽減計画における優先事項であるべきです。ベンダーの認定資格、プラクティス、開発者のセキュリティに関する評判について質問しましょう。
ベンダー(そしてソフトウェアを開発するあらゆる企業)は、セキュリティを最優先事項として位置づけ、スキルアップに注力する姿勢を示す必要があります。セキュリティスキルを持つ開発者は需要が高く、適切なツールとサポートがあれば、既存のチームから育成し、一般的な脆弱性に起因する攻撃から防御する能力を身につけさせることができます。しかし、安易なトレーニングを押し付けるのはやめましょう。既存のワークフローを補完するセキュリティツールを活用し、彼らが成長していく時間を与えましょう。できる限り簡単にすれば、ビジネスを支えるコードから厄介なバグが減っていくのがわかるでしょう。
結局のところ、ソフトウェアのリスクはサプライチェーンの一部であれば即座に悪化し、脆弱なコンポーネントが利用されているすべてのユーザーとシステムに影響を及ぼします。ベンダーが、自社のソフトウェアを導入している企業ほどセキュリティに真剣に取り組んでいない場合(あるいはベンダーと組織の両方にセキュリティプログラムが不足している場合)、SolarWindsのような、より壊滅的で広範囲に及ぶサプライチェーン攻撃が必然的に常態化します。そして、これは誰にとっても重大な問題です。