近頃、より頻繁に目にするようになった「サイバーセキュリティ」というワード。
もはや、ソフトウェアはあらゆる産業に密接にかかわっており、サイバーセキュリティと無関係でいられるソフトウェアエンジニアなどほとんどいません。

このブログをお読みいただいている皆様にとっては、昨年のApache Log4jにおける脆弱性発見で奔走した方も多いのではないでしょうか。つい先日も「サイバー攻撃により工場全停止」なんてニュースがありました。
ソフトウェアの脆弱性を利用するサイバー攻撃は、まさに「今そこにある危機」のひとつなのです。

そこで今回は、どうやってソフトウェアのサイバーセキュリティを担保するのかについて、
6つのTIPS
というカタチでまとめてみました。
本記事をご参考にしていただきつつ、いま一度ご自身のサイバーセキュリティ対策を見直されてはいかがでしょうか。
潜在しているリスクをインシデントにしないうちに終わらせるために…。

本記事はCybellum社執筆のブログ記事を日本語訳したものです。
https://blog.cybellum.com/6-supply-chain-security-tips-following-bidens-cybersecurity-executive-order
万が一内容に相違がある場合は原文が優先されます。

 

はじめに

2021年5月、米国 国家のサイバーセキュリティ向上に関する大統領令 (EO 14028) が公表され、連邦政府やサプライヤーがサイバーセキュリティリスクを軽減し、国家安全保障の態勢を改善するための貴重なガイドラインが提示されました。この大統領令は世界的に深刻な影響を及ぼした数多くの情報漏洩事件を受けて発行されており、セキュリティに関する規格の強化や実行を目的としています。記憶に新しいSolarWinds社への攻撃Kaseya VSA社のランサムウェア攻撃などがその一端です。

こういった攻撃は特定の企業に直接的なダメージを与えるだけでなく、多くの組織が織りなすサプライチェーンの一端に危険を及ぼす事が懸念されています。つまり、攻撃を受けた企業の顧客にまでリスクが及ぶということであり、実際、SolarWindsのケースを例にあげると、フォーチュン500に挙げられた企業、米国の通信会社、米軍、国防総省がその対象となりました。

今回の大統領令ガイドラインの公表は、世界的なサプライチェーンセキュリティに好影響を与える事が期待されています。連邦政府のサプライヤーを啓蒙する事により、ひいてはサプライヤーの顧客を守り、下請けのさらに下請けにまで要求が及ぶこととなります。このドミノ効果によって単なる大統領令を越え、官民問わずグローバルスタンダードにまで拡大する事が期待されています。

これからご紹介するセキュリティに関する6つのベストプラクティスは、セキュリティのスペシャリストたちがサプライチェーンやSBOM(ソフトウェア部品表)を効率的に守る手法を提示しています。その前にまずはサプライチェーン攻撃とは何かを見ていきましょう。

 

サプライチェーン攻撃とは?

サプライチェーン攻撃とは、サプライチェーンの一端を担うサードパーティや外部のパートナー企業を介して、組織全体へ及ぶサイバーセキュリティ攻撃を指します。ソフトウェアや製品のサプライチェーンには、商用のソフトウェアパッケージや、オープンソースのソフトウェア、システム、プログラム、IoTコンポーネントなどが含まれます。こういったサードパーティ製のコンポーネントは、それを使用する製品やデバイスの脆弱性を突いた攻撃を受ける危険性があるため、バリューチェーンへのリスクと言えます。 組織内の他リソースへの不正アクセスを誘発する危険すらあります。

例えば2020年はじめに、ハッカーがマルウェアを使用しSolarWinds Orion Platformを攻撃した事例では、攻撃はSolarWindの顧客である連邦政府やフォーチュン500の掲載企業にまで影響を及ぼしました。この攻撃はSolarWind1社にとどまらず、サプライチェーンの一部としてSolarWind製品を使用していた企業すべてを危険にさらしたのです。

 

なぜサプライチェーンは危険なのか?

企業の大部分はサードパーティやベンダー、パートナー企業に製品のデザイン、開発、販売を委託しています。ソフトウェアのサプライチェーン攻撃は、こうした企業とサプライヤー間の信頼関係を利用し、デバイスやシステムへの侵入を図っています。このような攻撃は、気づかれぬうちに機密情報や機能に不正アクセスする事で企業に大きな混乱や破壊的状況を生む可能性があります。信頼されているソースを利用すれば脆弱なソフトウェア資産に直接アクセスできてしまうため、ハッカーはサプライチェーン攻撃の、いわば「周辺警備」をくぐりぬける事ができてしまうのです。

製品やシステムが攻撃を受けた場合、データの紛失や経済的損失、デバイスの無効化などといった重大な被害が発生するまで侵入されたことにまるで気づかなかったというケースが多々あります。

Amnesia:33はサプライチェーン攻撃につながる脆弱性の一例を示しています。その中では4種類のTCP/IPオープンソースライブラリに潜む計33個の脆弱性がリストアップされており、これらの脆弱性を持つソフトウェアは、市場に出回るスマートフォンやスキャナー、ゲーム機からセンサー、プリンタやルーター、医療機器や産業機器に至るまで、幅広い製品のサードパーティソフトウェアコンポーネントで使用されています。これらの脆弱性は対処しなければデバイス全体を危機にさらすだけでなく、最終的には消費者にも影響を及ぼします。

サプライチェーンへの攻撃は組織内のセキュリティ態勢において最大の弱点と言えるでしょう。

 

企業はサプライチェーンセキュリティをどう担保すればよいか?

サプライチェーンのリスクを軽減し、ソフトウェアサプライチェーンのセキュリティを確保するためには、企業は自社コードだけでなくベンダー供給のコードについてもセキュリティを検証する必要があります。これは「サイバー・サプライチェーンリスク管理(C-SCRM)」と呼ばれる手法です。企業はサプライチェーンの第三者のセキュリティポリシーに頼る事なく、ソフトウェアを常に監視する必要があり、これに対処しなければ、財務上、PR上、法律上において、甚大な被害を受ける可能性があります。

企業がソフトウェアセキュリティを確保するため、様々な規制要件において安全な製品の提供に必要な基準が定義されています。例を挙げれば、WP.29では自動運転車やコネクテッドカーのサイバーセキュリティ要件を定義し、IEC 62443では産業システムに関するサイバーセキュリティが規格化されています。またFDAでは「医療機器のサイバーセキュリティ管理のための市販前申請」を定めています。加えて、有償の製品やツールを使う事は、企業のリスク対策の一環として、サードパーティからのCVE(Common Vulnerabilities and Exposures ※共通脆弱性識別子)やゼロデイ攻撃を分析し、優先順位を付け、侵入を阻止するのに役立ちます。

 

サプライチェーンセキュリティを確保するための6つのベストプラクティス

「サイバーセキュリティに関する大統領令」ではソフトウェアサプライチェーンセキュリティ促進の必要性を重要と位置付け、以下の遂行を推奨しています。

  • – ソフトウェアのセキュリティ基準を設定する
  • – 開発者、外部向けにソフトウェアセキュリティの可視性を高める
  • – ソフトウェアが安全に開発されているかの判定基準(ラベル)を設定する
  • – ソフトウェア共有元からセキュリティ対策に取り組むよう市場全体に働きかける

これからご紹介する6つのガイドラインやTIPSを学べば、大統領令で示された推奨事項を実行し、C-SCRMを通じてサプライチェーンへの攻撃対象を減らすのに役立つでしょう。

1. シフトレフト・セキュリティ(開発プロセスの早期段階でセキュリティ対策を取り入れる)
開発ライフサイクルやCI/CDプロセスの中に、開発プロセスの早期のフェーズでセキュリティを組み込みます。製品や開発リソースに深刻な影響が起こる前にリスクを特定、軽減する事ができます。脆弱性の分析や管理を自動化する事で、効率的にリスク軽減し、製品の安全性が高まります。

2. SBOMを独自に検証
ベンダーを根拠もなく信頼せず、独自にSBOMを検証します。SBOM (ソフトウェア部品表)は全ての製品コンポーネント、バージョンやライセンスをリスト化したもので、追跡や製品の監視を可能にします。
まずSBOM内の全てのアプリケーション、ライセンス、バージョンを確認します。SBOMは常に更新し内容をわかりやすくしておきます。SBOMの作成は、OWASP CycloneDX standard、またはオープンソースSPDXの使用をお勧めします。
続いてリスト内の全てのアイテムをバイナリ解析にかけます。バイナリ解析はソフトウェアに使用される実際のコードからセキュリティ上のリスクを特定、発見します。バイナリ解析は実際に機能しているソフトウェアや製品を分析するため、ソースコード解析より安全性が高いと言えます。

3. OSS分析を軽視しない
昨今の開発は製品化までの時間短縮のためオープンソースに依存しており、それなしでは企業は市場の技術的な要求に応えられないでしょう。そのため自社の継続的なセキュリティ検証にオープンソースのコード解析を組み込む事が重要なのです。バイナリソフトウェア構成解析(SCA)はオープンソースコードの脆弱性を検出し、製品に影響を及ぼす前にリスク軽減する事ができます。

4. 脆弱性を管理
継続的なバイナリ解析により脆弱性を特定したら、次はリスク項目の優先順位付けをして解決策を検討します。開発チームやサプライヤーと協力し早期の解決を目指します。顧客からのプレッシャーやビジネスKPIの達成に駆られ、リスク対策が十分に成される前にコードデプロイせざるを得ない場合もあるでしょう。リスク要因に優先順位付けをしてリソースを効率的に管理する事により、セキュリティの課題によるビジネスへの悪影響を防ぐ事ができます。

5. トレンド分析
サプライチェーンの脆弱性を長期にわたりモニターする事で全体的な改善状況を把握し、繰り返し発生する問題を特定する事ができます。以下を確認しましょう。

  • – 何度も製品の脆弱性の要因として挙げられるベンダーやオープンソースライブラリはあるか?
  • – 繰り返し発生し解決に時間を要するセキュリティ上の問題はあるか?
  • – 開発規模の拡大に影響を及ぼすベンダーはあるか?
  • – 時間の経過とともにより簡単に応えられるようになった規制要件はあるか?

時間の経過による変化を捉える事で脆弱性の根本原因を軽減する事ができます。

6. 承認済みコンポーネントのリポジトリを維持する
開発者が安全なソフトウェアを実装、使用するには、承認されたコンポーネントやバージョン情報のリポジトリを維持するというのが一つの方法です。どのライブラリ、コードスニペット、システムが検証済みかを記録する事でエンジニアリングチームはより早く開発、リリースする事ができます。未知の脆弱性が出現する可能性もあるため、デプロイの前に定期的にコード解析をする事はもちろん重要ですが、リポジトリの維持によってより安全なデータベースを選択する事ができ、また開発スピードの向上やリスク軽減につながります。

 

次のステップは?

サイバーセキュリティ攻撃の急速な巧妙化と件数増加は、「企業が潜在的な脆弱性に対して最大限警戒すべき」というアラートであると言えます。バイデン大統領のサイバーセキュリティに関する大統領令は企業がサプライチェーンの安全確保や、セキュリティ態勢の強化を重要視するきっかけを作りました。これにより企業はサイバーセキュリティ攻撃やその影響への対処にかかる費用を何百万ドル単位でセーブできる可能性があります。 サプライチェーンセキュリティ対策を始めるなら、まずはSBOMの分析からスタートしましょう。Cybellumに関する無料相談は「デモのリクエスト」よりお申し込みください。