はじめに
FFRIリサーチエンジニアの末吉です。
10 月 29、30 日に開催された情報セキュリティの国際会議 CODE BLUE 2019 に参加しました。
今年の CODE BLUE はサプライチェーン攻撃に関する発表が多くされました。 私が聴講した、これらの発表について書きたいと思います。
- アジア地域における最新のサプライチェーン攻撃概要
- ソフトウェアサプライチェーンの透明性:SBOM の実現
- 抵抗は無駄-防御できないサプライチェーン攻撃
本記事では、ソフトウェアサプライチェーンとサプライチェーン攻撃について簡単に説明した後、CODE BLUE 2019 で紹介されたサプライチェーン攻撃の実例と提唱された対策方法について紹介します。
ソフトウェアサプライチェーン
サプライチェーン(Supply chain)は、製造業の用語で、製品の原材料が生産されてから消費者に届くまでの一連の工程を指し示します。それをソフトウェアに適用したものをソフトウェアサプライチェーンと呼びます。また、その工程で製作に関わる組織や人物をサプライヤー(Supplier)といいます。
例えば、Windows アプリケーションを作るのであればほぼ必ず米マイクロソフト社のライブラリを使用するはずなので、マイクロソフト社はサプライヤーに当たります。また、サードパーティーのライブラリや OSS を使用するのであればその製作者もサプライヤーです。完全自作でもしない限り、ほぼ必ず自分以外のサプライヤーが関わっているといえます。
サプライチェーン攻撃
現在では、ほとんどのユーザーは、使用するライブラリやソフトウェアを信頼して活用します。しかし、その信頼するソフトウェアに何者かが恣意的に脆弱性やバックドアを埋め込んでいた場合、それを使用しているユーザーがその脅威に晒されることになります。
実際に、サプライヤーが攻撃者によって侵害され、サプライヤーの提供するソフトウェアを改ざんされ、それによってユーザーが攻撃を受けた実例が存在します。このような攻撃をサプライチェーン攻撃といいます。
サプライチェーン攻撃の実例
ここでは「アジア地域における最新のサプライチェーン攻撃概要」で説明されていた、大規模な影響を与えた事例を紹介します。
ShadowHammer
露カスペルスキー社が発見したサプライチェーン攻撃です。
台湾 ASUS 社の ASUS Live Update という自動更新するためのユーティリティソフトウェアで自動更新されるソフトウェアが侵害され、バックドアが埋め込まれました。これによって自動更新経由で端末にバックドアが設置される攻撃が 2018 年 6 月~11 月に亘って発生しました。影響を受けたユーザーは 100 万人以上であると言われています。
改ざんされたソフトウェアは ASUS 社の正当な証明書で署名され、さらに公式のアップデートサーバーでホスティングされていたことから発覚が遅れました。
詳細はカスペルスキー社による説明 Operation ShadowHammer にもありますので、そちらをご覧ください。
ShadowPad
これもカスペルスキー社が発見したサプライチェーン攻撃です。
韓 NetSarang Computer 社のサーバー管理ツールで使用される DLL、nssock2.dll が改ざんされ、マルウェア ShadowPad が埋め込まれた事件です。 2017 年 7 月中旬~8 月上旬に亘って配布され、影響はこちらも 100 万人以上に及んだと推測されています。
こちらも、改ざんされた nssock2.dll には NetSarang Computer 社の正規の署名がされ、公式のサーバーでホスティングされていました。
ある金融機関が不審な DNS クエリを検知し、カスペルスキー社に相談したことで発覚しました。
詳細はカスペルスキー社による説明 ShadowPad: How Attackers hide Backdoor in Software used by Hundreds of Large Companies around the World にもありますので、そちらをご覧ください。
CCleaner
英 Piriform 社(2017 年 7 月にチェコ Avast 社に買収)が提供しているクリーニングソフトウェア CCleaner に、マルウェア ShadowPad が埋め込まれているバージョンが配布されていたことが米 Cisco 社によって発見されました。
2017 年 8 月~2017 年 9 月に亘って配布され、これも非常に多くのユーザーに影響を与えたとされています。
この改ざんされた CCleaner にも、正規の署名がされ、公式のサーバーでホスティングされていました。
詳細は下記リンクにもありますので、そちらをご覧ください。
Avast 社によるアドバイザリ Recent findings from CCleaner APT investigation reveal that attackers entered the Piriform network via TeamViewer
Cisco 社による説明 CCleanup: A Vast Number of Machines at Risk
サプライチェーン攻撃の脅威
サプライチェーン攻撃を行う攻撃者は、目的達成のためにサプライヤーの侵害と、真の標的への侵入という二段階を踏むことになります。真の標的は重要資産を持つ大企業である場合が多いのですが、大企業は大抵堅牢なセキュリティを持ち、直接攻撃して侵入するのは難しいものです。 そこで一旦、セキュリティの手薄なサプライヤーに侵入し、サプライヤーの提供するソフトウェアを改ざんし、それを標的に配布することで、サプライヤーの信頼を逆手に取って標的の懐へ侵入します。 抜け道をこそこそ探して侵入するより、関係者を装って堂々と受付口を通って侵入するようなイメージです。
攻撃者は "知らないソフトウェア" ではなく、 "信頼するソフトウェア" として侵入するゆえサプライチェーン攻撃は隠密であり、改ざんされたソフトウェアのユーザー数によっては大規模な被害をもたらしうることがわかります。
上記の実例では、攻撃者はソフトウェアを改ざんするだけではなく、正規の証明書で署名し、正規のルートから配布することで本物のように見せかけていました。その結果多くのユーザーが感染したにもかかわらず、攻撃に気付くまで長い時間を要することになりました。
サプライチェーン攻撃の対策
発表で提唱されていた対策について紹介します。
SBOM によるサプライチェーン透明性の確保
SBOM は Software Bill Of Materials の略です。
Bill Of Materials は、元々は製造業が用いる部品表のことです。
「ソフトウェアサプライチェーンの透明性:SBOM の実現」では、ソフトウェアを構成する部品(コンポーネント)をまとめた部品表(SBOM)を作成することで、サプライチェーンの透明性を確保することが提唱されていました。
ソフトウェアにどのようなものが使用されているか把握し、サプライチェーンの透明性を確保することで、脆弱性やライセンス管理といったもの以外にも、サプライチェーン攻撃に遭ったとき自分たちが影響を受けているか速やかに確認できるようになります。
脅威ハンティングによる脅威の洗い出し
「抵抗は無駄-防御できないサプライチェーン攻撃」では、適切な脅威ハンティングによって脅威を洗い出し、インシデント発見までの時間を短縮することが提唱されていました。サプライチェーン攻撃を完全に防御することはできないので、侵入された後の攻撃者を脅威ハンティングで速やかに発見して排除するという考えです。
サプライヤーを信頼しない
サプライヤーを信頼せず、常に侵害されているものと考えることも対策であると提唱されました。アラートが発生したとき、発生源が有名なソフトウェアであっても、サプライチェーン攻撃を疑って対処する意識がサプライチェーン攻撃防止に繋がるという考えです。
感想
セキュリティ技術者のサプライチェーンに対する関心が高まっているように感じられました。
サプライチェーン攻撃は、成功すれば大規模な侵害を起こすことができ、また、標的に気付かれにくい(気付かれても誤検知と思われやすい)という特性を持ちます。この特性は攻撃者にとって非常に有益で、隠密に活動しやすく、さらに利益を得やすくなります。OSS の急速な普及で多くのサプライヤーが一つのソフトウェアに絡むようになっている現代で、サプライチェーンをどう防御し、またエンドユーザーはどのようにしてサプライチェーン攻撃から身を守るかというのは、今後の大きな課題です。
今回の発表では、侵入される前提で、いち早く攻撃者の存在を検知し、排除する脅威ハンティングが対策として提唱されていました。サプライチェーン攻撃は標的への侵入経路であって、サプライチェーン攻撃自体が攻撃者の目的ではありません。攻撃者は侵入後、必ず情報窃取や外部通信など何らかの動きを見せます。その怪しい挙動を察知することができれば、攻撃者に気付くことができます。ShadowPad の一件でも、怪しい外部通信に企業が気付いたことが発端となって発覚しました。侵入後に焦点を当てて攻撃者をあぶり出すことは重要な防御策でしょう。
また、サプライヤーを信頼しないということも提唱されていました。サプライチェーン攻撃は、そもそもユーザーがサプライヤーを信頼していることを悪用したものです。そのため、サプライヤーを信頼しなければ対策になります。しかしながら、サプライヤーを信頼しない場合は、ユーザーはサプライヤーの提供するモノに対して検証を行う必要が出てきます。企業で使っているソフトウェア 1 つ 1 つの精査などをすれば当然負担になり、業務に大きな支障を来してしまえば本末転倒です。そのあたりのバランスをどう保つかも課題です。
エンジニア募集
FFRIではサイバーセキュリティに関する研究開発を希望するエンジニアを募集しています。採用に関してはこちらをご覧ください。