3CX デスクトップ アプリ攻撃を使用してソフトウェアの署名と検証の重要性を説明する

全ての記事

2023 年 XNUMX 月下旬、セキュリティ研究者は脅威アクターの攻撃を暴露しました。 複雑なソフトウェアサプライチェーン攻撃 3CX のビジネス コミュニケーション ソフトウェア、主に同社の音声およびビデオ通話デスクトップ アプリに関するものです。研究者らは、このアプリは何らかの形でトロイの木馬化されており、これを使用すると組織が脅威アクターによる窃盗計画にさらされる可能性があると警告した。この攻撃は「スムーズ オペレーター」と名付けられ、数か月にわたって継続していたことを示す証拠がいくつかあります。 

では、正確に何が起こったのでしょうか。このトロイの木馬化されたバージョンを使用するとどのように危険にさらされるのでしょうか。また、ソフトウェアの署名と検証を使用することで、どのようにして危険を防ぐことができたのでしょうか? 

まず最初に: 3CX とは何ですか?

3CX は、従来のハードウェア PBX に代わるソフトウェア ベースのオープン スタンダード IP PBX (構内交換機) です。これは、企業がインターネット経由で音声通信を送信する VoIP (Voice over Internet Protocol) テクノロジーを使用して電話をかけたり受けたりできるように設計されています。 3CX には、ビデオ会議、プレゼンス、インスタント メッセージングなどの高度な機能も含まれており、オンプレミスまたはクラウドに展開できます。 Windows、macOS、Linux は、アプリを利用できる一般的なオペレーティング システムのほんの一部です。さらに、クライアントには Chrome 拡張機能のおかげでブラウザからアクセスでき、クライアントには PWA バージョンもあり、Android および iOS デバイスのモバイル アプリケーションとしても利用できます。

3CX Web サイトから、ソフトウェア サプライ チェーン攻撃の潜在的な影響についてある程度のアイデアを得ることができます。この Web サイトは、600,000 万社が自社のアプリを使用し、毎日 12 万人以上のユーザーが利用していることを誇っています。

攻撃をこっそり覗く: 知っておくべきこと

これは少し複雑なので、いくつかのステップに分けて説明します。

  1. ダウンロードすると、 トロイの木馬化されたバージョンのデスクトップ アプリを使用するか、すでにインストールされている場合は、トロイの木馬化されたバージョンで更新するだけです。
  2. 3CXDesktopApp.exe 実行可能ファイルは、ffmpeg.dll と呼ばれる悪意のあるダイナミック リンク ライブラリ (DLL) をロードします。
  3. ffmpeg.dll は、暗号化されたペイロードを d3dcompiler_47.dll から抽出して実行するために使用されます。
  4. 次に、マルウェアは、GitHub でホストされている、画像の末尾に追加された Base64 でエンコードされた文字列を含む、一見無害なアイコン ファイルをダウンロードします。
  5. 次に、そのエンコードされたデータはデコードされ、最終的なペイロードを取得するためにバックドアが接続する暗号化された C&C サーバーを含む別のステージをダウンロードするために使用されます。
  6. 最終フェーズでは、Chrome、Edge、Brave、Firefox ブラウザからのシステム データやブラウザ データの収集など、情報窃取機能が実践されます。これには、閲覧履歴と Places テーブルの情報のクエリ、および履歴テーブルのクエリが含まれる可能性があります。

当初は、 3CXはこの攻撃を軽視していたが、後にそれが本当の脅威であることを認め、同社が事件を解明して緩和するまでの間、アプリをアンインストールしてから特定の指示に従って再インストールすること、そして当面はPWAバージョンを使用することを提案した。

覚えておくべきもう 1 つの非常に重要な要素は、侵害には、トロイの木馬化されたバイナリの署名に使用されるコード署名証明書が含まれていることです。正確にはそうではありません。実際には、と呼ばれる既知の脆弱性が利用されています。 CVE-2013-3900 (元々は 2013 年に公開されましたが、2022 年に更新され、今週も更新されました) 現れる 合法的に署名されています。

デジャブ: これは以前にも起こった

もしこの物語が 3CX のトロイの木馬化バージョンに聞き覚えがあるのは、以前にも発生したことがあるからです。

この場合、それはあなたです同社が使用しているオープンソースのアップストリーム ライブラリが感染したのか、それとも実際の攻撃によって会社の開発環境が侵害されたのかは不明です。 

「Kingslayer」(2016 年)から「CCleaner」(2017 年)、「VestaCP」(2018 年)、「WIZVERA VeraPort」(2020 年)、そして「SolarWinds」(2020 年)に至るまでの他の有名な攻撃では、企業のサーバー、ビルド環境、または実際にダウンロード可能な実行可能ファイルのいずれかを侵害しようとする一般的な脅威アクターの行為。結局のところ、悪意のあるものや危険なものを信頼できるものとして偽装することは、人々に信頼してペイロードをダウンロードしてもらうための優れた方法です。

それは の定義の一部です ソフトウェアサプライチェーン攻撃 – 攻撃者はソフトウェア サプライ チェーンを侵害し、悪意のあるソフトウェアを多数の被害者に配布しました。これらの有名なケースではいずれも、攻撃者は正規のソフトウェア パッケージに悪意のあるコードを挿入することができ、それがユーザーに配布されました。攻撃者は多くの場合、ソフトウェア アップデート サーバーやコード署名証明書など、信頼できるソフトウェア ベンダーやプロバイダーを侵害することでこれを実行できました。

疑いを持たない顧客に正規のアプリケーションの修正バージョンをダウンロードさせることで、攻撃者は基本的に内部にほとんどすべてのものを隠すことができます。

そしてここに最大の問題があります – 「疑いを持たない」ことです。結局のところ、実行可能ファイル、バイナリ、またはイメージは作成会社から提供され、明らかに会社によって承認されており、署名済みの証明書も含まれています。顧客はこれ以上何ができるでしょうか?各アップデートを確認するために会社に電話する必要がありますか?バックドアの存在についてコード (利用可能な場合) をスキャンしますか?それはばかげていて非現実的です。しかし、そこに is 何かできること。  

証明書を超えて信頼の層を追加するにはどうすればよいでしょうか? 

信頼の層を示す画像

提案されたモデル これは非常に単純で、コード署名証明書と同じ考え方に基づいています。コード署名証明書は、ソフトウェアまたはコードにデジタル署名するために使用されるサードパーティによって発行されたデジタル証明書です。ソフトウェアがコード署名証明書で署名されている場合、ユーザーはソフトウェアをインストールまたは実行する前に、ソフトウェアの信頼性と整合性を検証できます。

署名証明書は信頼できるサードパーティによって発行されます 認証局(CA)、ソフトウェア発行者の身元とソフトウェア コードの完全性を検証します。認証局は暗号アルゴリズムを使用してソフトウェアのデジタル署名を作成し、署名付きコードにデジタル署名を含めます。ユーザーがソフトウェアをインストールまたは実行しようとすると、システムはデジタル署名をチェックして、認証局によって生成された署名と一致することを確認します。署名が一致する場合、ソフトウェアは本物であり、署名されてから改ざんされていないと見なされます。 

このシステムは、公開キー暗号化 (非対称暗号化とも呼ばれる) に基づいています。これは、公開キーと秘密キーという 2 つの異なるキーを使用してデータの暗号化と復号化を行う暗号化方法です。コード署名のコンテキストでは、ソフトウェアとコードに署名するために秘密鍵と公開鍵のペアが使用されます。

このプロセスでは、ソフトウェア発行者は秘密鍵と公開鍵のペアを生成します。秘密鍵は秘密にされ、公開鍵は他の人が利用できるようになります。次に、ソフトウェア発行者は秘密キーを使用して、署名したいソフトウェアまたはコードのデジタル署名を作成します。このデジタル署名は、数学的アルゴリズムを通じてソフトウェアまたはコードを実行し、結果のハッシュ値を発行者の秘密キーで暗号化することによって生成されるハッシュ値です。

ユーザーが署名付きソフトウェアまたはコードをダウンロードすると、ユーザーのシステムはソフトウェア発行者の公開キーを使用してデジタル署名を復号化し、それがダウンロードされたソフトウェアまたはコードのハッシュ値と一致することを確認します。デジタル署名が有効であれば、ユーザーは、ソフトウェア発行者によって署名されて以来、ソフトウェアまたはコードが改ざんされていないことを確信できます。

この単純な概念に基づいて提案される改善策は、すべての新しいリリース、バイナリ、イメージに会社のキーまたはビルド パイプライン キーを使用して直接署名し、ソフトウェアをダウンロードまたは更新するときにユーザーに署名を検証するよう求めるだけです。

もちろん、物事は必ずしもそれほど単純ではありません。悪意のある者がビルド サーバーに侵入した場合、そこでビルドに署名することはすでに無意味です。主要なインフラストラクチャが侵害されている場合、同様に演習全体が無意味になります。

しかし、ユーザーに署名の検証を求めることは、自動的に実行できる迅速かつ簡単なことであり、次のソフトウェア サプライ チェーン攻撃を防ぐために支払うべき小さな代償です。

しかし、ちょっと待ってください。汚染源が実際にアップストリームのオープンソース ライブラリだったらどうなるだろうか、と思われるかもしれません。このような場合、危険なコードが「組み込まれている」ため、ビルドに署名することは、やはり無意味です。

ここで、署名と署名の検証に基づいた信頼のエコシステムの検討を開始する必要があります。これらのオープンソース パッケージが署名されており、企業のコードに組み込まれるときに署名が検証されていれば、侵害の可能性が減る可能性があります。

スクライブの出番

筆記 と呼ばれるツールを実装しました ヴァリント それはあなたがすることができます 署名して確認する ファイル、フォルダー、画像。このツールは、複雑な PKI システムを維持する必要がなく、すでに確立されている検証済みの ID (Google、Microsoft、GitHub、AWS の ID など) を使用して目的のアーティファクトに署名するという新しいアプローチを実装します。後で同じツールを使用して、アーティファクトが署名されたことと、アーティファクトの署名に使用された ID を確認できます。

ビルド パイプラインが最終成果物としてコンテナ イメージを生成するとします。イメージが作成された直後に、イメージに署名し、その署名されたバージョンをクライアントがダウンロードできるリポジトリにアップロードする必要があります。署名すると、そのイメージは変更できなくなり、ロックされます。希望する人は誰でも、署名されていることと、署名 ID が会社が公開したものと一致していることの両方を確認できます。

このツールは、 Scribe SaaS ソリューション あなたの組織のために。ソフトウェア サプライ チェーンのセキュリティと全体的な透明性の両方を向上させることを目的として、Scribe が提供できるものをチェックする理由は十分にあります。 

バナー

このコンテンツは、エンドツーエンドのソフトウェア サプライ チェーン セキュリティ ソリューションの大手プロバイダーである Scribe Security によって提供されており、ソフトウェア サプライ チェーン全体のコード成果物とコード開発および配信プロセスに最先端のセキュリティを提供しています。 もっと詳しく知る。