
SentinelLabsのセキュリティ研究者は、macOSユーザー、特に暗号通貨およびWeb3関連のユーザーを標的としたマルウェア攻撃キャンペーンを発見しました。「NimDoor」と呼ばれるこのマルウェアは北朝鮮のハッカーと関連付けられており、AppleScript、C++、Nimベースのペイロードを組み合わせてシステムに侵入し、機密データを盗み出し、永続的に活動します。
北朝鮮のサイバー部隊はソーシャルエンジニアリング戦術やフィッシング詐欺に頼ることが多いが、NimDoor は従来の macOS の脅威とは異なる、非常に高度な手法を導入している。
SentinelLabsの研究者Phil Stokes氏とRaffaele Sabato氏は共同報告書の中で、「macOSマルウェアとしては異例なことに、脅威アクターはプロセスインジェクション技術と、WebSocketプロトコルのTLS暗号化バージョンであるwssを介したリモート通信を採用している」と述べています。この昔ながらのソーシャル戦術と希少なマルウェアツールの組み合わせが、NimDoorを従来のmacOSの脅威とは一線を画す特徴となっています。
攻撃の仕組み
攻撃の連鎖はソーシャルエンジニアリングから始まり、被害者はTelegram上で、知り合いを装った人物からアプローチを受けます。ハッカーは標的をCalendly経由で会議に参加するよう誘導し、最終的に偽の「Zoom SDKアップデートスクリプト」へのリンクが記載されたメールを送信します。
受信者がリンクをクリックすると、「zoom_sdk_support.scpt」というAppleScriptファイルがダウンロードされます。このファイルは、本来の目的を隠すために1万行もの空白が意図的に埋め込まれています。このファイルには、Zoomの実際のURLに見せかけた偽のドメイン(support.us05web-zoom[.]forum)にアクセスする悪意のあるコードが3行だけ隠されています。このドメインは、最終的に実際の攻撃を開始する第2段階のスクリプトをダウンロードします。
最初の接触後、マルウェアはシステムの一時ディレクトリに2つのファイルを保存します。1つは「a」というラベルの付いたMach-O実行ファイル、もう1つは「installer」というファイルです。各コンポーネントは協調的な攻撃シーケンスを開始します。
C++ で記述された Mach-O 実行可能ファイルである「a」バイナリは、netchk という名前のペイロードをドロップし、ブラウザ履歴、システム情報、Telegram メッセージ アーカイブなどのデータを収集する 2 つの Bash スクリプトを取得します。
2つ目のファイル「installer」はNimで記述されており、感染マシン上で永続性を確立するように設計されています。このファイルは、GoogIe LLC(小文字の「L」を模倣するために大文字の「i」を使用)とCoreKitAgentという2つのNimベースのバイナリを展開します。これらのバイナリは永続的なアクセスを処理し、最初の侵入後も長期間にわたってマシンからデータを吸い上げ続けることを保証します。
プロセスインジェクションとWSS接続:macOSでは稀
NimDoor が特に危険なのは、プロセス インジェクションと wss:// プロトコルを介した暗号化通信を使用している点です。どちらの手法も、macOS マルウェアではほとんど見られません。
「a」バイナリは、trojan1_arm64という埋め込みファイルを復号し、デコイプロセスに挿入します。挿入されたコードは、wss://firstfromsep[.]online/clientでホストされているコマンド&コントロールサーバーとの安全な接続を確立します。
マルウェアの通信システムは、RC4 や base64 などの多層暗号化を備えたカスタム JSON メッセージを使用するため、攻撃者はシステムの詳細の取得、ディレクトリの変更、シェル コマンドの実行などのコマンドを実行できます。
SentinelLabsは、「このマルウェアは、通信前にbase64エンコーディングと3つの異なるキーを組み合わせた複数レベルのRC4暗号化を使用している」と指摘している。
特に注目すべき発見の一つは、CoreKitAgent がどのように永続性を維持しているかです。このバイナリは、SIGINT や SIGTERM などの終了シグナルを監視します。これらのシグナルは通常、ユーザーがプロセスを強制終了しようとしたときに発生します。
マルウェアはこれらのシグナルに反応して停止するのではなく、自身を再インストールし、LaunchAgentsをセットアップし、コアペイロードを復元します。これにより、ユーザーが手動で停止しようとした場合でも、マルウェアは生き残ります。
なぜNim? ありふれた光景に隠れた言語
北朝鮮のハッカーはこれまでもGoやRustといったニッチなプログラミング言語を使用してきましたが、Nimは新たなステルス性をもたらします。コンパイル時に関数を実行し、ランタイムコードと混在させることができるため、アナリストが悪意のあるコードと通常の動作を区別することがより困難になります。
「コンパイル時に関数を実行するというNimのかなりユニークな機能により、攻撃者は制御フローがわかりにくいバイナリに複雑な動作を組み込むことができます」とSentinelLabsの研究者は書いています。
このキャンペーンでは、フィッシングなどの古い手口と、より安全であるとよく考えられている macOS 環境向けに特別に設計された新しい手法が混在しています。
SentinelLabs は、「他のアナリスト、研究者、検出エンジニアが、これらのあまり知られていない言語を理解し、最終的にどのように活用されるかを理解するために努力する」ことを奨励しています。
北朝鮮のハッカーがディープフェイクと偽のZoom通話を巧みに組み合わせて仮想通貨ウォレットを空にする方法を知りたいですか?この大胆なソーシャルエンジニアリング攻撃に関する当社の報道をご覧ください。