SolarWinds襲ったサプライチェーン攻撃
2020年12月、ネットワーク管理製品の SolarWinds Orion プラットフォームを狙ったサプライチェーン攻撃が発覚しました(*1)。国内外で大きく報道されたこの攻撃では、多くの米国の政府機関や民間企業のネットワークが被害を受けたとされています。
2021年5月にニュースで話題となったメルカリのデータ流出に影響を与えたとされる、コードカバレッジツール「Codecov」への不正アクセスも、サプライチェーン攻撃の一種と言えます(*2)。
米CISAとNISTの資料
2021年4月26日、米国の政府機関であるCISAとNISTは、
ソフトウェアサプライチェーン攻撃の概要と対策をまとめた資料
「Defending Against Software Supply Chain Attacks」
(訳:ソフトウェアサプライチェーン攻撃に備える)
を、ウェブ上に公開しました。
この資料では、ソフトウェアサプライチェーンにおけるリスクの概要が説明されているほか、
ユーザーとベンダーがNISTのフレームワークである「C-SCRM」と「SSDF」を利用して、リスクを特定・評価・緩和する方法について紹介されています。
この記事でお伝えすること
本ブログ記事では、この米CISAとNISTの資料の要点をピックアップしながら、
□ ソフトウェアサプライチェーン攻撃とは何か?
□ ユーザーはどう対策すべきか?
□ ベンダーはどう対策すべきか?
を≪前編≫・≪中編≫・≪後編≫の3回に分けて考えていきます。
今回の記事は
≪前編≫として、
□ ソフトウェアサプライチェーン攻撃の定義
□ テクニック
□ 攻撃者像
□ 危険性の理由
□ 影響
について見ていきます。
(オリジナルの資料における1~6ページ目に相当する内容です。)
≪中編≫≪後編≫はこちら
≪中編≫【ユーザーの対策編】
≪後編≫【ベンダーの対策編】
注
*資料を引用・要約した部分における太字は、ブログ筆者の手によるものです。読みやすさを向上させる観点で太字としました。
攻撃の概要
ソフトウェアサプライチェーン攻撃とは?
まず、ソフトウェアサプライチェーン攻撃とはどんな攻撃でしょうか? 資料では以下のように定義されています。
ソフトウェアサプライチェーン攻撃は、サイバー脅威アクターがソフトウェアのベンダーのネットワークに侵入し、ベンダーによって顧客にソフトウェアが送信される前に、悪意のあるコードを使用してソフトウェアを侵害することで発生します。侵害されたソフトウェアはその後、顧客のデータやシステムを侵害します。新たに入手したソフトウェアが初めから侵害されているかもしれませんし、あるいはパッチやホットフィックスといった他の手段を介して侵害が発生する可能性もあります。このようなケースでも、パッチやホットフィックスが顧客のネットワークに入る前に侵害が発生します。こういったタイプの攻撃は侵害されたソフトウェアの全ユーザーに影響を与え、政府機関、重要インフラ、民間企業のソフトウェア利用者に広く影響を及ぼす可能性があります。(2ページ)
要点をまとめると、
ソフトウェアサプライチェーン攻撃では、
□ サイバー脅威アクターは、ソフトウェアのベンダーのネットワークに侵入する
□ 脅威アクターは、ソフトウェアが供給される前に悪意あるコードを使用し、ソフトウェアを害する
□ これ以外にも、パッチやホットフィックスといった他の手段を介してソフトウェアが侵害されることもある
ということになります。
「サプライチェーン攻撃」との違い
なお、単に「サプライチェーン攻撃」というと、上記の意味に加え、
「ターゲット企業のグループ会社、業務委託先、仕入れ先などを攻撃して、それを足掛かりにターゲット企業に侵入する」
(例:大企業のネットワークに侵入するために中小企業にサイバー攻撃を仕掛ける、など)
という意味でも用いられます(*3)。
今回紹介しているCISA/NISTの資料では、「ソフトウェアサプライチェーン攻撃」という表現が用いられています。
ソフトウェアサプライチェーン攻撃の事例
では、具体的にはどういった攻撃事例があったのでしょうか?
資料によると、ソフトウェアは、ICTサプライチェーンのライフサイクルの6段階(設計、開発・生産、流通、入手・配備、保守、破棄)のそれぞれにおいて、悪意または不注意による脆弱性の出現リスクに晒されます。
各段階ごとに、以下のような6つの実例が挙げられています。
設計
携帯機器のハイジャック(2016年)
ある海外企業が、米国の携帯電話メーカーによって利用されるソフトウェアを設計。同メーカーの携帯電話は、テキストメッセージや通話履歴、電話の詳細情報、連絡先情報の暗号化されたレコードを作成し、そのデータを72時間ごとに海外のサーバーに送信していた。
開発・生産
SolarWinds(2020年)
同ITマネジメント企業に、海外の脅威アクターが潜入。同アクターは同社ネットワーク内で数か月間存在を維持した。同アクターは同社のビルドサーバーを侵害した後、ようやくネットワークから離脱し、顧客のネットワークに潜入するために同社のアップデートプロセスを利用した。
流通
エンドユーザー機器のマルウェア(2012年)
偽造ソフトウェアを調査している米国の大手ソフトウェア企業の研究者が、テストした機器の20%にマルウェアが予めインストールされていたことを発見。このマルウェアは、新品のデスクトップコンピューターやノートパソコンが工場から流通業者や輸送業者、再販業者へと出荷された後に、機器にインストールされていた。
入手・配備
カスペルスキー社のアンチウイルスソフトウェア(2017年)
海外に拠点を置くアンチウイルスソフトウェアのベンダーが、外国の諜報機関によってスパイ活動に利用されていた。米国政府関連の顧客は同ベンダーの製品をネットワークから除去するよう指示され、このベンダーによる今後の製品の入手を禁じられた。
保守
定期的なメンテナンスアップデートにバックドアが埋め込まれる(2020年)
ある脅威アクターが悪意のあるバックドアを配信するために定期アップデートを利用した際に、何千もの公共および民間のネットワークが潜入を受けた。
破棄
慎重な取り扱いが必要なデータの流出(2019年)
研究者が中古のコンピューターとフラッシュドライブ、電話機、ハードドライブを購入したところ、適切にデータ消去がなされていたのは、調査した85台のうち2台のみだったことが発覚。また、社会保障番号やパスポート番号、クレジットカード番号を含む個人を識別できる情報(PII)が流出した何百件もの事例も発覚した。
SolarWindsの事例
上記のうち、とりわけSolarWindsの事例は2020年に発生してまだ記憶に新しく、今回の資料では「ニュースになったソフトウェアサプライチェーン攻撃」として、以下のような詳しい経緯説明がされており、資料作成者が重視していることがうかがえます。
ニュースになったソフトウェアサプライチェーン攻撃:SolarWinds Orion の事例
2020年12月、サイバーセキュリティ企業のFireEyeは、SolarWinds Orion プラットフォームにバックドア(後に「SUNBURST」と命名)を発見しました。後に研究者たちは、脅威アクターが「SUNSPOT」と呼ばれるインプラントを使用してビルドサーバーにアクセスし、上記のバックドアを挿入したということを突き止めました。この脅威アクターは、同バックドアを定期的なアップデートを通じて多くの顧客に配布し、その後、選ばれた被害者のネットワークを標的に、さらなるマルウェアを使用するなどの追加の行動を取りました。このソフトウェアサプライチェーン攻撃により、脅威アクターは、多数の政府や民間部門のネットワーク上にあるシステムやデータにアクセスできるようになりました。脅威アクターは、忍耐強く、徹底しており、攻撃の過程において極めて優れた作戦保全(operational security)を維持していたため、その存在を発見することは非常に困難でした。全体的に見ると、この脅威アクターはマルウェアの痕跡を少なく抑え、できる限り正規の認証情報とリモートアクセスを使用していました。SolarWinds Orion のプラットフォームの侵害によってほとんどの被害者にアクセス可能となった一方で、脅威アクターは限られた数の被害者へのアクセスを獲得するため、サプライチェーンによらない侵害の手法を利用していました。SolarWindsとその顧客に対して行われたソフトウェアサプライチェーン攻撃は、この攻撃がいかに効果的かを示す最新の例となっています。(6ページ)
3つの攻撃テクニック
資料で触れられているソフトウェアサプライチェーン攻撃の手法は次の3つです。
□ アップデートのハイジャック
□ コードサイニングの弱体化
□ オープンソースコードの侵害
これら3つの技術は併用されることが多いと指摘されています。
では、それぞれを詳しく見ていきましょう。
アップデートのハイジャック
脅威アクターは、ベンダーのネットワークに侵入し、配信されるアップデートにマルウェアを挿入するか、あるいはソフトウェアの通常機能に対する制御権を自身に与えるようアップデートを変更するかして、アップデートをハイジャックすることができます。
例えば、2017年に発生した「NotPetya」攻撃は、ウクライナを標的としたロシアのハッカーが、ウクライナで普及している税務会計ソフトを通じてマルウェアを拡散させたものです。同マルウェアは、のちに「NotPetya」マルウェアと呼ばれるようになり、ウクライナ以外にまで拡散され、国際輸送、金融サービス、医療などの重要な産業において、世界的に大きな混乱を引き起こしました。(4ページ)
コードサイニングの弱体化
コードサイニングは、コード作成者の身元とコードの完全性を検証するために使用されます。
攻撃者は、証明書に自己署名したり、署名システムを破壊したり、設定ミスのあるアカウントのアクセス制御を利用したりすることで、コードサイニングを弱体化させます。コードサイニングを弱体化させることで、脅威アクターは信頼されているベンダーになりましてアップデートに悪意あるコードを挿入し、ソフトウェアアップデートのハイジャックを成功させることができます。
例えば、中国を拠点とする脅威アクターである「APT 41」は、米国やその他の国に対して高度なソフトウェアサプライチェーン侵害を行う際、コードサイニングを弱体化させることが多いです。(4ページ)
オープンソースコードの侵害
脅威アクターが悪意あるコードを公開されたコードライブラリに挿入し、これを、疑いを持たない開発者(特定の機能の実行にあたり無料のコードブロックを探している開発者)が自身のサードパーティのコードに挿入することで発生します。
例えば2018年に、研究者は公式Python Package Index (PyPI)にアップロードされた12件の悪意あるPythonライブラリを発見しました。この攻撃者は、「diango」、「djago」、「dajngo」といったタイトルのライブラリを作成してタイポスクワッティング戦術を用い、人気の高い「django」というPythonライブラリを探している開発者を誘い出しました。これらの悪意あるライブラリにはオリジナルのものと同一のコードと機能が含まれていましたが、これに加えてブートの持続性を得るための機能やリモートワークステーションでリバースシェルを開く機能も備わっていました。
オープンソースコードの侵害はまた、非公開のソフトウェアにも影響を与える恐れがあります。これは、プロプライエタリコードの開発者が日常的にオープンソースコードのブロックを自らの製品に利用しているためです。(5ページ)
攻撃者像
資料では、「ソフトウェアサプライチェーン攻撃の犯人はどんな人物か」について触れられており、この攻撃を行う意図と能力を備えている可能性が高いのはAPTアクターだと指摘しています。資料6ページの “Software Supply Chain Attack Threat Profile”では以下のように述べられています。
□ ソフトウェアサプライチェーン攻撃を実行するのは、困難な場合が多い
(高い技術力と長期的な関与が必要なため)
□ ソフトウェアサプライチェーン攻撃は信頼関係攻撃とは異なる
(信頼関係攻撃とは、脅威アクターが安全性の低いサードパーティ組織に侵入し、そのサードパーティが標的組織との間に持つ既存の信頼関係にアクセスし、その関係を悪用するような攻撃のこと)
□ もちろん、信頼関係攻撃と難易度の低いタイプのソフトウェアサプライチェーン攻撃(オープンソースコードの修正やアプリストア攻撃など)の一部を成功させる脅威アクターはいる
□ しかし一般的には、APTアクターの方が、国家安全保障に悪影響を及ぼす可能性のある、高度な技術を用いた長期にわたるソフトウェアサプライチェーン攻撃キャンペーンを実施する意図と能力を備えている可能性が高い
なぜ危険? 2つのリスク
では、この攻撃はなぜ組織にとってリスクなのでしょうか? 資料では、各組織がソフトウェアサプライチェーンに対して脆弱である理由として、次の2つを挙げています。
□ サードパーティ製ソフトウェア製品の多くには、特権的アクセスが必要
□ サードパーティ製ソフトウェア製品には、頻繁な通信が必要なものが多い
以下で、5〜6ページにかけて書かれている内容を見ていきます。
特権的アクセスの必要性
□ 一般的なサードパーティ製ソフトウェア製品の多くは、効果的に動作するために高いシステム権限が必要
(例:ウイルス対策ソフトウェア、IT管理ソフトウェア、リモートアクセスソフトウェアなど)
□ 低い権限で効果的にネットワーク上で動作し得る製品であっても、さまざまな顧客ネットワークで製品が最大限に効果を発揮するよう、インストール時にはデフォルトで高い権限を要求していることが多い
(そして顧客は、デフォルト設定をよく調べずに受け入れ、新たなアクセス経路を許してしまっていることが多々ある)
□ この種の製品は、ネットワーク内のすべてのシステム(権威サーバーやドメイン管理サーバーを含む)に通常存在する
そのため、ネットワーク内の最重要システムへの特権的なアクセス権が、脆弱性やマルウェア感染により悪意のあるアクターに付与される可能性がある
頻繁な通信の必要性
□ サードパーティ製ソフトウェア製品には通常、ベンダーとの頻繁な通信が必要
(ソフトウェアの更新、既知の脆弱性の修正、新しいサイバーセキュリティ脅威への防御策を提供するため)
これにより、
□ 悪意のあるアクターがマルウェアを含んだ不正なソフトウェアアップデートを顧客に送信することが可能
また反対に、
□ 意図的に更新プログラムを顧客に届かないようにして、顧客が特定の種類のマルウェアに対して脆弱な状態を確保することも可能
攻撃の影響は?
ソフトウェアサプライチェーン攻撃の影響は深刻となる恐れがあると、資料では指摘されています。資料6ページには以下のようなことが書かれています。
□ 脅威アクターたちは侵害されたソフトウェアベンダーを利用し、被害者ネットワークへの、特権的かつ持続的なアクセス権を獲得する。ベンダーを侵害することで、脅威アクターは境界ルーターやファイアウォールなど水際のセキュリティ対策を回避し、初期アクセスを獲得する
□ 脅威アクターはネットワークへのアクセスを失っても、侵害されたソフトウェアのベンダーを使用してネットワークに再侵入することが可能。
□ 最初の持続的なアクセスの獲得は、比較的無差別的なものとなる可能性があるが、その次の行動のターゲットを選ぶ際に、脅威アクターはほとんどの場合さらに選り好みをする
□ ここでいう次の行動とは多くの場合、脅威アクターが選んだターゲットに、さらにカスタマイズされたマルウェアパッケージを送り込むことから始まる。また、脅威アクターの意志や能力次第では、この追加マルウェアによって、データや金銭の窃盗、組織や個人の監視、ネットワークやシステムの無効化、さらには物理的な被害や死者を出すことなど、さまざまな悪意のある活動を行うことが可能になる
まとめ
ここまで、ソフトウェアサプライチェーン攻撃の定義、テクニック、攻撃者像、危険性の理由、影響を見てきました。
続編では【ユーザーの対策】と【ベンダーの対策】を紹介しています。
≪中編≫【ユーザーの対策編】
≪後編≫【ベンダーの対策編】
また、参考までに以下、資料のリンクを掲載しました。
お時間のある方は、ぜひ英語原文もご参照ください。
引用・参考資料
CISA : Defending Against Software Supply Chain Attacks
(Publication: April 2021)
*掲載サイト: https://www.cisa.gov/publication/software-supply-chain-attacks
注
*1) 12月は、SolarWinds社がインシデントを公表した時期であり、後に同社が発表したところによると攻撃プロセス自体は2019年9月から始まっていたという(以下サイト参照)。
SolarWinds 公式サイト:New Findings From Our Investigation of SUNBURST (2021年1月11日付)
https://orangematter.solarwinds.com/2021/01/11/new-findings-from-our-investigation-of-sunburst/
*2)
・メルカリ公式サイト:「Codecov」への第三者からの不正アクセスによる当社への影響および一部顧客情報等の流出について
https://about.mercari.com/press/news/articles/20210521_incident_report/
・infosecurity : “Codecov Supply Chain Attack May Hit Thousands: Report”
(訳:「Codecov」のサプライチェーン攻撃 影響は数千のネットワークに及ぶ可能性)
https://www.infosecurity-magazine.com/news/codecov-supply-chain-attack-may/
*3) NECソリューションイノベータ:セキュリティ用語集>サプライチェーン攻撃
https://www.nec-solutioninnovators.co.jp/ss/insider/security-words/18.html