キヤノンMJ/サイバーセキュリティ情報局

3CX社へのサプライチェーン攻撃と北朝鮮のAPTグループ「Lazarus」の関連を示す証拠

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はキヤノンマーケティングジャパンが提供する「サイバーセキュリティ情報局」に掲載された「Linuxマルウェア解析から明らかになった、APTグループ「Lazarus」による3CX社へのサプライチェーン攻撃の関与」を再編集したものです。

 ESET社の研究者がLinuxマルウェアの解析から発見した、3CX社へのサプライチェーン攻撃と北朝鮮のAPTグループ「Lazarus」の関連を示す証拠について解説します。

 ESET社の研究者は、Linuxユーザーを標的としたLazarusによる新しい「DreamJob作戦」を発見しました。

 DreamJob作戦は、偽の求人広告を使用するソーシャルエンジニアリングの手法によって、標的を攻撃する一連のキャンペーンです。今回のキャンペーンを調査では、おとり文書として配信された偽の香港上海銀行(HSBC)の求人情報のZIPファイルから、最終的な攻撃用のペイロード(OpenDriveのクラウドストレージアカウントから配信され「SimplexTea」と命名されたLinuxバックドア)まで、このサプライチェーン攻撃の全容を解明できました。ESET社が知る限り、北朝鮮とつながりのあるこのサイバー攻撃グループが、これらの作戦でLinuxマルウェアを使用したことを明らかしたのは、今回が初めてです。

 さらに、今回の調査と発見により、Lazarusが最近の3CX社のサプライチェーン攻撃を主導していることに議論の余地がないことも決定的になりました。この北朝鮮のグループによる関与は、当初から疑われていましたが、その後、複数のセキュリティ研究者によって証明されています。本ブログでは、今回の調査結果について報告し、Lazarusと3CX社のサプライチェーン攻撃との関連性を示す詳細な証拠について解説します。

3CX社のサプライチェーン攻撃

 3CX社は、VoIPソフトウェアを開発し、世界各国の多くの組織にオフィス用電話システムを提供しています。3CX社のWebサイトによると、同社は航空宇宙、ヘルスケア、ホスピタリティなど多様な分野にわたる60万社の顧客と1,200万のユーザーを抱えています。3CX社はクライアントソフトウェアを提供しており、Webブラウザー、モバイルアプリ、デスクトップアプリケーションから同社のシステムを利用できるようにしています。2023年の3月下旬に、WindowsとmacOSの両方のデスクトップアプリケーションに悪意のあるコードが含まれていることが発見されました。このコードにより、攻撃者はアプリケーションがインストールされているすべてのマシンに任意のコードをダウンロードして実行できるようになります。その後、この悪意のあるコードは、3CX社が追加したものではなく、3CX社のシステムがサプライチェーン攻撃によって侵害されて追加されたことが判明しました。外部のサイバー攻撃者によって、特定の3CX社の顧客にマルウェアを配信するためのサプライチェーン攻撃で、3CX社のソフトウェアが悪用されたことが特定されています。

 このサイバーインシデントのニュースは、ここ数日多くのメディアで取り上げられています。最初は、2023年3月29日にCrowdStrike社のエンジニアが立てたRedditのスレッドでこのインシデントが報告されました。その後CrowdStrike社は、同社がLazarusに付けたコードネーム「LABIRINTH CHOLLIMA」が攻撃を主導しているという主張を公式に表明しました(ただし、この説を裏付ける証拠は公開していません)。このインシデントによる影響が重大であることから、ソフォス社Check Point社Broadcom社トレンドマイクロ社などのいくつものセキュリティ企業が、このインシデントの概要について報告するようになりました。

 さらに、macOSシステムに影響を及ぼす攻撃については、Patrick Wardle氏が公開しているTwitterのスレッドとブログで詳細に説明されています。

攻撃イベントのタイムライン

図1. CXアプリケーションをトロイの木馬化して悪用するための準備と配信に関連するイベントタイムライン

 このタイムラインから、今年3月の攻撃を実行する前の2022年12月の時点からサイバー攻撃者が計画を進めていたことがわかります。つまり、昨年末にはすでに3CX社のネットワークに攻撃の足掛かり築いていた可能性があります。

 トロイの木馬化されたmacOS向けの3CXアプリケーションは、1月下旬に署名されていますが、2023年2月14日までは、ESETのテレメトリ(監視データ)では悪意のあるアプリケーションとして確認されていません。2月14日以前に、macOS向けの悪意のあるアップデートが配信されていたかどうかは明らかではありません。

 ESETのテレメトリでは、2月の時点ですでにmacOS向けのセカンドステージペイロードの存在が確認されていますが、検体も、その悪意性を示唆するメタデータも取得していませんでした。この情報は、防衛側のシステムがどれぐらい前から侵害されていたかを判断するために役立つはずです。

 攻撃が公開される数日前に、謎めいたLinuxダウンローダーがVirusTotalに送信されています。このダウンローダーは、LinuxマシンにLazarusの新しい悪意のあるペイロードをダウンロードします。このブログの後半では、この攻撃とLazarusとの関係性について説明します。

3CX社サプライチェーン攻撃へのLAZARUSの関与

■公開されている情報

 Lazarusによる関与を推測する上で重要な役割を果たしたドメインが、journalide[.]orgです。このドメインは、上記でリンクしたベンダーレポートの一部に記載されているものの、このドメインの存在に関する説明は一切ありません。興味深いのは、SentinelOneObjectiveSeeの記事では、このドメインについての言及がないことです。Volexity社のブログも、このドメインについて触れていないだけではなく、「Volexity社は、現在公開されているアクティビティから関与したサイバー攻撃者を特定することはできない」と述べており、この攻撃の帰属に関する見解を示していません。Volexity社のアナリストは、この攻撃の詳細をいち早く調査しており、GitHubにある暗号化されたアイコンからC&Cサーバーリストを抽出するツールを作成しています。攻撃の中間段階でC&Cサーバーを直接埋め込むのではなく、GitHubをデッドドロップリゾルバとして使用していたために、このツールは優れた効果を発揮します。この中間段階では、WindowsとmacOS用のダウンローダーが使用されています。ESET社は、このダウンローダーをIconicLoaderと、また、Windows向けのペイロードとMac向けのペイロードをそれぞれIconicStealerおよびUpdateAgentと名付けました。

 3月30日に、Elastic Security社のセキュリティ研究者であるJoe Desimone氏は、Twitterのスレッドで、3CX社のセキュリティ侵害がLazarusと関連していることを示す重要な手がかりをいち早く提供しています。同氏は、d3dcompiler_47.dllのペイロードの前に追加されていたシェルコードスタブが、2021年4月にアメリカ合衆国サイバーセキュリティ・社会基盤安全保障庁(CISA)によってLazarusの関与が特定されたAppleJeusローダーのスタブに酷似していることを発見しました。

 3月31日に、3CX社がサプライチェーン攻撃に対するインシデント対応サービスをMandiant社に依頼したことが報じられました

 4月3日にKaspersky社は同社のテレメトリから、3CX社のサプライチェーンの被害者とGopuramと名付けられたバックドアの展開に直接的な関係があることを示し、どちらもguard64.dllという同じ名前のペイロードが関与していることを明らかにしました。Kaspersky社のデータから、GopuramはLazarusによる関与が明らかになっているマルウェアであるAppleJeusと一緒に被害者のマシンで見つかっていることから、GopuramにもLazarusが関係していることは明白です。GopuramとAppleJeusの両方ともに、暗号通貨会社に対する攻撃で観測されています。

 そして4月11日に、3CX社の最高情報セキュリティ責任者(CISO)がMandiant社による中間調査の結果の概要をブログで公開しました。この報告書によると、3CX社の侵害には、TAXHAULと呼ばれるシェルコードローダーとCOLDCATという複雑なダウンローダーの2つのWindowsマルウェアの検体が使用されています。ハッシュは提供されませんでしたが、TAXHAULと命名されたMandiant社のYARAルールは、VirusTotalに既に存在している他の検体も判別します。

・SHA-1:2ACC6F1D4656978F4D503929B8C804530D7E7CF6(ualapi.dll)
・SHA-1:DCEF83D8EE080B54DC54759C59F955E73D67AA65(wlbsctrl.dll)

 これらの検体のファイル名(MD5ではない)は、Kaspersky社のブログで言及されているファイル名と一致します。しかし、3CX社は、COLDCATはGopuramとは異なると述べています。

 次のセクションでは、Lazarusの新しい悪意のあるLinuxペイロードの技術面について分析した結果について解説し、その結果が3CX社のセキュリティ侵害へのLazarusの関与を裏付けるためにどのように役立ったかを説明します。

Linuxペイロードを使用したDreamJob作戦

 サイバー攻撃グループLazarusによるDreamJob作戦は、LinkedInを介して標的の人物に近づき、業界を代表する企業による偽の採用情報によって誘惑します。DreamJob(夢の仕事)という造語は、ClearSky社が2020年8月に発表したホワイトペーパーで使用したものです。このホワイトペーパーでは、航空宇宙・防衛産業の企業を標的としたLazarusによるサイバースパイキャンペーンについて説明しています。この活動は、少なくとも2019年9月から続いている一連のサイバースパイ攻撃であり、ESET社が「Operation In(ter)ception:イン(ター)セプション作戦」と命名した攻撃と一致しています。航空宇宙、軍事、防衛関連の企業を標的とし、当初はWindowsマシンのみを攻撃する悪意のあるツールを使用していました。2022年の7月から8月にかけて、ESET社はmacOSを標的としたイン(ター)セプション作戦を2件確認しています。1つのマルウェアの検体はブラジルからVirusTotalに提出されており、別の攻撃はアルゼンチンのESETユーザーを標的としていました。数週間前には、香港上海銀行(HSBC)に関連するPDFによって標的の関心を引こうととするLinuxネイティブのペイロードがVirusTotalで発見されました。これにより、Lazarusは、主要なデスクトップOSのすべて対象とするペイロードを完成させたことになります。

 3月20日、ジョージアのユーザーがVirusTotalにHSBC job offer.pdf.zipというZIPアーカイブを提出しました。Lazarusがこれまでに実施した他のDreamJob作戦から推測すると、このペイロードはおそらくスピアフィッシングやLinkedInのダイレクトメッセージを通じて配信されたと考えられます。このアーカイブには、Go言語で記述された64bitのネイティブIntel LinuxバイナリでありHSBC job offer․pdfという名前のファイルが1つ含まれています。

 注意が必要なのは、ファイルの拡張子が.pdfではないことです。ファイル名でドットのように見える文字は、U+2024ユニコード文字で表されるリーダー記号です。ファイル名にリーダー記号が使用されているのは、ファイルマネージャーを騙して、PDFではなく実行ファイルとして処理させるためだと考えられます。これによって、ファイルをダブルクリックすると、PDFビューアではファイルが開かず、そのまま実行されます。このファイルを実行すると、おとりのPDFがxdg-openコマンドを使用してユーザーに表示されます。このコマンドは、ユーザーがデフォルトに指定しているPDFビューアでPDFファイルを開きます(図3を参照)。このELFダウンローダーは、他のプラットフォームにおけるIconicLoaderと同じ役割があり、ペイロードがOpenDriveから取得されることから、OdicLoaderと命名することにしました。

 OdicLoaderは、おとりのPDF文書をドロップし、システムのデフォルトのPDFビューア(図3を参照)を使用して表示し、その後、OpenDriveクラウドサービスからセカンドステージのバックドアをダウンロードします。ダウンロードされたファイルは、~/.config/guiconfigdに保存されます。(SHA-1:0CA1723AFE261CD85B05C9EF424FC50290DCE7DF)。ESET社は、このセカンドステージのバックドアをSimplexTeaと命名しました。

 実行の最後のステップとして、OdicLoaderは、SimplexTeaがBashで起動され、その出力がミュートされるように、~/.bash_profileを変更します(~/.config/guiconfigd >/dev/null 2>&1)。

図2. 想定される攻撃チェーンの図

図3. Linuxマシンを標的とするDreamJobキャンペーンで使用された香港上海銀行と関連があるように偽装されたファイル

 SimplexTeaはC++で記述されたLinuxバックドアです。次の表1で強調表示しているように、クラス名は、ルーマニアからVirusTotalに提出されたsysnetdというファイル名の検体で見つかった関数名と酷似しています(SHA-1:F6760FB1F8B019AF2304EA6410001B63A1809F1D)。SimplexTeaとsysnetdのクラス名や関数名が類似していることから、SimplexTeaはCからC++で書き直されたアップデートバージョンであると考えられます。

表1. VirusTotalに投稿された2つのLinuxバックドアの元のシンボル名の比較

 sysnetdはLazarusとどのような関係があるのでしょうか。次のセクションでは、LazarusがWindowsバックドアとして使用しているBADCALLとの類似点について説明します。

■Linuxマシン向けのBADCALL

 ESET社は、以下に示す2つのファイルの類似性から、sysnetdの開発にLazarusが関与しており、sysnetdは、BADCALLと呼ばれるWindows向けのバックドアのLinux版であると考えています。

・P2P_DLL.dll(SHA-1:65122E5129FC74D6B5EBAFCC3376ABAE0145BC14)が偽のTLS接続の隠れ蓑として使用されるドメインの形式はsysnetdのコードと類似しています(図4を参照)。P2P_DLL.dllは、2017年12月にCISAによってLazarusとの関連が特定されています。CISAは、2019年9月から、このマルウェアの新しいバージョンをBADCALLと呼んでいます(SHA-1:D288766FA268BC2534F85FD06A5D52264E646C47)。

図4. BADCALLのWindowsとLinuxの亜種の類似点(偽のTLS接続の隠れ蓑として使用されるドメインのリスト)

・prtspool(SHA-1:58B0516D28BD7218B1908FB266B8FE7582E22A5F)は、sysnetdとコードが酷似しています(図5を参照)。prtspoolは、2021年2月にCISAによってLazarusとの関連が特定されています。なお、3CX社のインシデント対応で発見されたmacOSバックドア「SIMPLESEA」は、A5/1ストリーム暗号を実装しています。

図5. macOSを攻撃するAppleJeusとBADCALLのLinux版との類似点(A5/1ストリーム暗号の鍵)

 このBADCALLバックドアのLinux版であるsysnetdは、/tmp/vgauthsvclogという名前のファイルから設定をロードします。Lazarusのオペレーターは以前からペイロードを偽装していますが、VMware Guest Authenticationサービスによって使用されるファイル名が使用されていることは、標的のシステムがLinuxのVMware仮想マシンであることを示しています。このときに使用されるXORキーは、3CX社の調査で見つかったSIMPLESEAで使用されたキーと同じです。

図6. Linux向けのBADCALLによる設定ファイルの読み込み(図8との比較)

 独自に実装されたA5/1暗号キーである0xC2B45678、0x90ABCDEF、0xFE268455という3つの32bitの整数を見てみると(図5を参照)、同じアルゴリズムと同じキーが、2014年末に利用され、Lazarusが引き起こした最も重大なインシデントの1つであるSony Pictures Entertainmentへのサイバー攻撃に関連するWindowsマルウェアで使用されています(SHA-1:1C66E67A8531E3FF1C64AE57E6EDFDE7BEF2352D)。

図7. Linux向けのBADCALLと2014年から存在するWindows向けの標的型で破壊的なマルウェアの間で共有される復号ルーチン

■Lazarusの関与を裏付けるその他のデータ

 これまで説明してきた内容から、3CX社のサプライチェーン攻撃はLazarusグループが関与しているとESET社は確信しています。この裏付けの根拠は以下の通りです。

1. マルウェア(侵入セット)

1. IconicLoader(samcli.dll)は、SimplexTeaと同じタイプの強力な暗号化方式AES-GCMを使用しており、鍵と初期化の方法だけが異なっています。SimplexTeaは、Linux向けのBALLCALLとの類似性から、Lazarusが開発および展開していることは明らかです。

2. PE Richヘッダーから、IconicLoader(samcli.dll) とIconicStealer(sechost.dll)の両方は、Volexity社マイクロソフト社が報告しているLazarusによる暗号資産(仮想通貨)のハッキング攻撃で使用された実行可能ファイルiertutil.dll(SHA-1: 5B03294B72C0CAA5FB20E7817002C600645EB475)およびiertutil.dll(SHA-1:7491BD61ED15298CE5EE5FFD01C8C82A2CDB40EC)と同じサイズのプロジェクトであり、同じVisual Studio環境でコンパイルされています。現在のESETデータベースと最近VirusTotalに提供されたファイルをテストして作成したYARAルール(RichHeaders_Lazarus_NukeSped_IconicPayloads_3CX_Q12023)を本書の最後に追記します。このYARAルールは、関連性のない悪意のあるファイルや無害のファイルにはフラグを立てず、これらのすべての検体を特定します。

3. SimplexTeaのペイロードは、3CX社によるインシデント対応の結果として公開されたSIMPLESEAマルウェアと似た方法で設定をロードします。XORキーは異なりますが(0x5Eと0x7E)、設定名はapdl.cfと両方共に同じです(図8を参照)。

図8.Linux向けのSimplexTeaによる設定ファイルのロード( 図6との比較)

2. インフラストラクチャ

1. SimplexTeaは、C&Cとして公式の結果でも報告されており、ネットワークインフラを共有していることがわかります。

図9. Linux向けのSimplexTeaでハードコードされているURL

結論

 3CX社のセキュリティ侵害は、3月29日に公開されてから、セキュリティコミュニティで多くの注目を浴びています。侵害された3CX社のソフトウェアは、あらゆる種類のペイロードのダウンロードと実行を可能にするため非常に危険です。また、3CX社のソフトウェアは、各種のITインフラに展開されていることから、壊滅的な影響を受ける恐れもあります。残念ながら、3CX社だけではなく、あらゆるソフトウェアメーカーが、トロイの木馬に感染し、意図せずに不正なアプリケーションバージョンを配信する可能性があります。

 サプライチェーン攻撃は秘密裏に進行することから、攻撃者にとって、このような方法でマルウェアを配信することは非常に魅力的で効果的な手段となっています。Lazarusは過去にも同じ手法を取り入れており、2020年にはWIZVERA社のVeraPortソフトウェアを使用する韓国ユーザーを標的にしています。Lazarusが使用しているツールセットに含まれる既存のマルウェアと類似していることや、同グループの典型的な手法から、今回の3CX社の侵害にLazarusが関与していることに疑いの余地はありません。

 また、Lazarusは、Windows、macOS、Linuxの主なデスクトップOSを攻撃するマルウェアを開発して使用していることにも注意が必要です。3CX社のインシデントでは、WindowsとmacOSの両方のシステムが標的となり、両方のOSに対応する3CX社のVoIPソフトウェアがトロイの木馬化され、任意のペイロードを取得する悪意のあるコードが含まれていました。3CX社のケースでは、WindowsとmacOS向けの両方のセカンドステージマルウェアが存在します。本ブログでは、3CX社のインシデントで確認されているmacOS向けのマルウェアであるSIMPLESEAに相当するLinuxバックドアについて説明しました。ESET社は、このLinuxコンポーネントをSimplexTeaと命名しました。また、これが、求人情報によって警戒心の薄い被害者の関心を引き付けて、セキュリティを侵害する北朝鮮のサイバー攻撃グループ「Lazarus」による代表的なキャンペーンであるDreamJob作戦の一環であることを説明しました。

IOC(セキュリティ侵害の痕跡)

■ファイル

■ネットワーク

■MITRE ATT&CKの技術

手法 ID 名前 説明
偵察 T1593.001 オープンなWebサイト/ドメインの検索:ソーシャルメディア Lazarusの攻撃者は、標的にとって関心が高いと思われる香港上海銀行(HSBC)の偽の求人情報を悪用して近づいています。過去にはこのような活動は主にLinkedInで行われています。
リソース開発 T1583.001 インフラストラクチャの取得:ドメイン 過去のDreamJob作戦で使用される侵害された多くのC&Cとは異なり、Lazarusのオペレーターは、Linuxを使用する標的のために独自のドメインを登録しています。
T1587.001 能力の開発マルウェア 攻撃者が独自に開発したツールが使用されている可能性が高いです。
T1585.003 アカウントの確立:クラウドアカウント 攻撃者は攻撃で最終的に使用するペイロードをクラウドサービス「OpenDrive」上でホストしていました。
T1608.001 ステージングサーバーの能力マルウェアのアップロード 攻撃者は攻撃で最終的に使用するペイロードをクラウドサービス「OpenDrive」上でホストしていました。
実行 T1204.002 フィッシング:スピアフィッシングリンク 標的は、悪意のあるZIPアーカイブを含むサードパーティのリモートストレージへのリンクを受信した可能性があり、このアーカイブは後にVirusTotalに提出されています。
初期アクセス T1566.002 フィッシング:スピアフィッシングリンク 標的は、悪意のあるZIPアーカイブを含むサードパーティのリモートストレージへのリンクを受信した可能性があり、このアーカイブは後にVirusTotalに提出されています。
常駐化 T1546.004 イベントトリガーによる実行:Unixシェルの設定変更 OdicLoaderは、Bashが起動されるときに毎回SimplexTeaが起動され、その出力をミュートするように、被害者のBashプロファイルを変更します。
防衛機能の回避 T1134.002 アクセストークンの操作:トークンによるプロセスの作成 SimplexTeaは、C&Cサーバーからの命令に応じて、新しいプロセスを作成できます。
T1140 ファイルや情報の難読化解除と復号化 SimplexTeaは、暗号化されたapdl.cfに設定を保存します。
T1027.009 ファイルや情報の難読化:ペイロードの埋め込み すべての悪意のある攻撃チェーンで使用されるドロッパーには、次のステージで使用されるデータ配列が埋め込まれています。
T1562.003 防御策の妨害:コマンド履歴のログの妨害 OdicLoaderは、被害者のBashプロファイルを変更して、SimplexTeaの出力とエラーメッセージをミュートします。SimplexTeaは、同じ手法で新しいプロセスを実行します。
T1070.004 攻撃の痕跡の削除:ファイルの削除 SimplexTeaは、ファイルを安全に削除する機能を備えています。
T1497.003 仮想化/サンドボックスの回避:実行時間を遅延する回避手法 SimplexTeaは、スリープによって実行を遅延する独自の手法を実装しています。
検出 T1083 ファイルおよびディレクトリの検出 SimplexTeaはディレクトリに含まれるファイルを名前、サイズ、タイムスタンプと一緒に一覧表示できます(ls -laコマンドのような機能)
C&C(コマンド&コントロール) T1071.001 アプリケーションレイヤープロトコル:Webプロトコル SimplexTeaは、静的にリンクされたCurlライブラリを使用して、C&Cサーバーとの通信にHTTPとHTTPSを使用できます。
T1573.001 暗号化されたチャンネル:対称暗号方式 SimplexTeaは、AES-GCMアルゴリズムを用いてC&Cトラフィックを暗号化します。
T1132.001 データのエンコーディング:標準エンコーディング SimplexTeaは、C&Cトラフィックをbase64でエンコードします。
T1090 プロキシ SimplexTeaは、通信でプロキシを利用する場合があります。
情報の外部への送信 T1041 C&Cチャネルからの送信 SimplexTeaは、ZIPアーカイブとしてデータをC&Cサーバーに送信することができます。

■付録

 このYARAルールは、IconicLoaderとIconicStealerの両方を含むペイロードと、2022年12月から実行されている暗号資産(仮想通貨)のハッキング攻撃で展開されたペイロードにフラグを立てます。