


はじめに
最近のニュースで「SW(ソフトウェア)サプライチェーン攻撃」という言葉をよく耳にします。何か大きな問題が起きていることは分かりますが、一体「SWサプライチェーン」とは何であり、なぜこれほど多くの人が心配しているのでしょうか?この記事では、SWサプライチェーン攻撃について理解し、どのようにすればこのような脅威から私たちを安全に守ることができるのかについてお話しします。少し堅いテーマかもしれませんが、できる限り分かりやすく、興味を持っていただけるように紐解いていきます。
SWサプライチェーンとは?

SWサプライチェーン(Software Supply Chain)は、ソフトウェアが作成され、配布されるまでに経るすべての段階と、それに関連する多様な要素を含みます。簡単に言うと、ソフトウェアが私たちの手に届くまでのすべての旅路を指します。開発者、外部ライブラリ、パッケージ、そしてソフトウェアをエンドユーザーに届けるための配布ルートまで、これらすべてがSWサプライチェーンに含まれます。サプライチェーンの各要素は互いに接続されているため、どこか一つの部分に問題が発生すると、ソフトウェア全体が脅威にさらされる可能性があります。まるでドミノのようにです!
急増するソフトウェアサプライチェーン攻撃
近年、SWサプライチェーンを狙った攻撃が急激に増加しています。代表的な事例としては、2020年のSolarWinds事件が挙げられます。SolarWindsのネットワーク管理ソフトウェアであるOrionが攻撃者によってマルウェアに感染させられ、これを使用していた数多くの企業や政府機関が深刻なセキュリティ脅威にさらされました。まるで家の鍵を泥棒に渡してしまったかのような状況でした。
SolarWindsバックドア(2020.3)
MS Exchange脆弱性攻撃(2021.3)
CodeCov CI/CD改ざん(2021.4)
Kaseyaリモート管理ソリューションハッキング(2021.7)
Log4j脆弱性攻撃(2021.12)
PyTorch悪意あるパッケージ登録(2022.12)
3CXマルウェア挿入(2023.3)
Inisafeセキュリティ認証SW(2023.3)
JetBrainsサプライチェーン攻撃(2023.9)
Oktaサプライチェーン攻撃(2023.10)
もう一つの事例としては、2017年に発生したNotPetya攻撃があります。ウクライナの会計ソフトウェアのアップデートプロセスにマルウェアが密かに挿入され、世界中で大きな被害をもたらしました。このようにサプライチェーンを狙う攻撃は、その被害範囲が広範であり、一度破られると波及力が大きいです。
ソフトウェア(SW)サプライチェーン攻撃の予防・対応が難しい理由
SWサプライチェーン攻撃を予防、検知、そして対応することが難しい理由はいくつかあります。まず、ソフトウェア開発プロセスにおいて数多くの外部ライブラリやモジュールを使用するため、サプライチェーン全体を完全に統制することは容易ではありません。外部から取り込んだコードにマルウェアが潜んでいる場合、それを識別することも非常に困難です。

また、ソフトウェアアップデートが正常に行われているかを常に検証することも難しい作業です。何よりも攻撃者は非常に巧妙に動き、セキュリティチームが気づく前に長期間システムに潜伏することができるためです。結局、サプライチェーンの各段階でセキュリティにおける脆弱性が生じることは避けられず、このような複雑さと多段階性が攻撃者に機会を提供していることになります。
このように、従来の「境界防御」ではSWサプライチェーン攻撃への対応に限界があります。このような限界から、脅威を発見した際に素早く把握してパッチを適用するための「SBOM」(Software Bill of Materials:ソフトウェア部品表)や、境界防御とは対照的な「ゼロトラスト」(Zero Trust)という概念が登場することになりました。
しかし、SBOMにはいくつかの課題があります。数多くのソフトウェアのSBOMを管理・運用することは容易ではなく、VDRおよびVEXの信頼性検証と適用にも限界があります。また、ゼロデイ脆弱性への対応が難しく、誤った設定や構成に起因する攻撃には対応できないという問題点もあります。
ゼロトラストに関しては、実際の導入が非常に困難です。既存システムからゼロトラストへ移行するためには、各部分に対する識別と評価が必要であり、追加認証を適用するレベルについての最小限の基準を設定することも大きな挑戦です。このような点で、ゼロトラストの導入もまた容易ではない課題となっています。
攻撃者視点におけるセキュリティ対策の必要性
このような巧妙なサプライチェーン攻撃に効果的に対応するには、単に防御的なアプローチだけでは限界があります。時には攻撃者の視点で考えてみることが必要です。攻撃者がどのようにシステムに侵入し、悪用するかを理解することです。これにより、攻撃者がサプライチェーンのどの地点を狙う可能性が高いか、どのように潜り込むことができるかを事前に予測し、対応することができます。

今後、企業や組織のセキュリティのためには、攻撃者の観点から考え、彼らがシステムにどのように侵入し、悪用できるかを理解することが不可欠になると考えられます。このため、実際の攻撃者のように行動してみるアプローチが必要です。例えば、ペネトレーションテスト(疑似侵入テスト)を通じて、企業システムの脆弱性を直接見つけ出すことです。ペネトレーションテストは、攻撃者が取り得る様々な経路を模擬実験してみることで、企業のセキュリティ状態を現実的に評価することができます。
また、シナリオベースのサプライチェーン攻撃訓練も重要です。この訓練は、実際のサプライチェーン攻撃シナリオに基づいて、企業内部のセキュリティチームがどのように対応できるかを実習することを目標としています。このように訓練されたチームは、実際の攻撃状況において、より迅速かつ正確に対応することができます。まるで練習試合で事前に戦略を固めるサッカーチームのように、実戦に先立って十分に準備するのです。
メールAPT(Advanced Persistent Threat)訓練も欠かせません。APT攻撃は、非常に精巧に設計されたフィッシングメールから始まるケースが少なくありません。これに備え、内部の従業員がAPTメールを識別して対応する訓練を定期的に実施すれば、攻撃者がいかに巧妙にメールを偽装したとしても、彼らの最初の試みを無力化することができます。
ソフトウェアサプライチェーン攻撃は、単に一企業の問題ではありません。該当するソフトウェアを使用するすべての組織に大きな影響を及ぼしかねない深刻な脅威です。サプライチェーンは複雑で多段階にわたるため、完全に保護することは容易ではありませんが、攻撃者観点での思考と対応がその解決策になり得ます。攻撃者を理解し、彼らが狙いそうな地点をあらかじめ予測することで、より堅牢で実質的なセキュリティ体制を構築できるでしょう。
「The proof of the pudding is in the eating(プディングの真価は食べてみなければわからない)」という言葉があります。東洋圏では「百聞は一見に如かず(百聞不如一見)」とも言いますが、セキュリティにおいても同様です。直接経験し、実験してみることこそ、その真価を知る方法です。結局のところ、私たちはこの戦いにおいて、常に先手を打たなければなりません。攻撃者が現れたとき、私たちはすでに彼らを待ち構えていなければならないのですから。

人気の記事








