APT&標的型攻撃
サイバー犯罪集団「OceanLotus」に繋がるMacOS向けのバックドア型マルウェアを確認
トレンドマイクロでは最近、サイバー犯罪集団「OceanLotus」に関連すると考えられる新しいバックドア型マルウェアを発見しました。今回新亜種に備わった追加機能の一部(トレンドマイクロでは「Backdoor.MacOS.OCEANLOTUS.F」として検出)には、新しい動作およびドメイン名が含まれています。本記事執筆時点では、本検体は他のマルウェア対策ソフトでは未検出となっています。
トレンドマイクロでは最近、サイバー犯罪集団「OceanLotus」に関連すると考えられる新しいバックドア型マルウェアを発見しました。今回新亜種に備わった追加機能の一部(トレンドマイクロでは「Backdoor.MacOS.OCEANLOTUS.F」として検出)には、新しい動作およびドメイン名が含まれています。本記事執筆時点では、本検体は他のマルウェア対策ソフトでは未検出となっています。
今回確認された検体は、動的な動作およびコードの類似性により、以前確認された検体の亜種であることが判明しました。
図1:以前確認されたOceanLotusの不正コード
図2:今回確認されたOceanLotus亜種の不正コード
OceanLotusは、MITRE ATT&CKでは主にAPT32と呼称している攻撃者であり、トレンドマイクロでもメディア、研究所、建設会社のような業界を標的とする2018年の攻撃に関連していたものと考えています。米国に拠点を置くセキュリティ会社「Volexity」のリサーチャによれば、最近このサイバー犯罪者集団が不正サイトを使用してマルウェアを拡散していることがわかりました。
後述の文書内で使用されている言語はベトナム語であり、以前確認された不正サイトでも同一の地域を標的にしていたため、今回の活動の背後にいる攻撃者もまたベトナムのユーザを狙っている疑いがあります。
■マルウェアの拡散
本検体は、Zipアーカイブにバンドルされたアプリとして拡散されます。Word文書ファイルのアイコンをなりすましに利用し、正規の文書ファイルを装います。
図3:検体のファイル名、アイコン、およびアプリバンドルの構造
また、本検体が使用する手法の一つに、アプリバンドル名に特殊文字を追加する検出回避が挙げられます。ユーザがmacOSに搭載されているFinderアプリまたはターミナルコマンドラインからdocファイルを装う偽フォルダを検索すると、「ALL tim nha Chi Ngoc Canada.doc」という名前のフォルダが表示されます(「tìm nhà Chị Ngọc」は「Ngocさんの家を探す」の意」)。ただし、フォルダを含む元のZipファイルを確認すると、「.」と「doc」の間に想定外の3バイトが存在します。
図4:zipアーカイブ内で表示される「.」および「doc」間の特殊文字
図4の3バイトにあたる「efb880」は、UTF-8でエンコードされています。表1のUTF-8のマッピングによれば、関連するUnicodeの文字コードは「U + FE00」となります。
コードポイント | 第1バイト | 第2バイト | 第3バイト | 第4バイト |
U+0000 to U+007F | 0xxxxxxx | |||
U+0080 to U+07FF | 110xxxxx | 10xxxxxx | ||
U+0800 to U+FFFF | 1110xxxx | 10xxxxxx | 10xxxxxx | |
U+10000 to U+10FFFF | 11110xxx | 10xxxxxx | 10xxxxxx | 10xxxxxx |
表1:UTF-8のマッピング
「U + FE00」は、名前バリエーションselector-1を備えた特別なUnicode制御文字で、CJK互換漢字の視覚的な外観を提供します。今回の場合、手前の文字は一般文字「.」であるため、異体字セレクタは外観を変更しません。
オペレーティングシステムは、アプリバンドルをサポートされていないディレクトリタイプと見なすため、既定の動作として、「open」コマンドを利用して不正アプリを実行します。それ以外の場合、接尾辞が特殊文字のない.docの場合、Microsoft Wordが呼び出され、アプリバンドルは文書ファイルとして開かれます。ただし、このアプリバンドルは有効な文書ではないため、Microsoft Wordはこのアプリバンドルを開くことができません。
以下の図5は、アプリバンドルの検体から確認されたコード署名情報を示しています。
図5:検体のコード署名情報
アプリバンドルには、以下の2つの特筆すべきファイルが含まれています。
- ALLtim nha Chi Ngoc Canada:メインの不正な動作を含むシェルスクリプト
- configureDefault.def:実行中に表示される文書ファイル
図6:ファイル「ALL tim nha Chi Ngoc Canada」の内容
図7:実行中に表示される文書ファイル
シェルスクリプトが実行されると、以下の動作を行います。
- 「* ALLtim nha Chi NgocCanada.?doc*」内のファイルのファイル検疫属性を削除する
- システム内のファイルのファイル検疫属性の削除を試みる
- 「ALLtim nha Chi Ngoc Canada.?doc/Contents/Resources/configureDefault.def(doc)」を「/tmp/ALL tim nha Chi Ngoc Canada.doc(doc)」にコピーする
- 「/tmp/ALL tim nha Chi Ngoc Canada.doc(doc)」を開く
- b64でエンコードされたファットバイナリを「ALL tim nha Chi Ngoc Canada.?doc/Contents/Resources/configureDefault.def(fat – binary)」に展開する。このファイルは、第2段階のペイロードに当たる
- 第2段階のペイロードのアクセス許可を変更して、このペイロードを起動する
- マルウェアのアプリバンドル「ALLtim nha Chi NgocCanada.?doc」を削除する
- 「/tmp/ALL tim nha Chi Ngoc Canada.doc(doc)」を「{実行ディレクトリ}/ALL tim nha Chi Ngoc Canada.doc」にコピーする
- 「/tmp/ALL tim nha Chi Ngoc Canada.doc」を削除する
■第二段階のペイロード
実行されると、第2段階のペイロード(ALL tim nha Chi Ngoc Canada.?doc/Contents/Resources/configureDefault.def)は、以下のマルウェアの動作を実行します。
- 第3段階のペイロードを「~/Library/User Photos/mount_devfs」内に作成する
- 「~/Library/LaunchAgents/com.apple.marcoagent.voiceinstallerd.plist」を作成して、検体の持続性を生成する
図8:Plistファイル「~/Library/LaunchAgents/com.apple.marcoagent.voiceinstallerd.plist」
- 「touch」コマンドを使用して、検体のタイムスタンプを変更する
図9:作成されたファイルのタイムスタンプ
- 自身を削除する
■第三段階のペイロード
第3段階のペイロード(~/Library/User Photos/mount_devfs)では、文字列はbase64でのエンコードとバイト操作を利用するカスタム暗号化で暗号化されます。
図10:暗号化された文字列
図11および12:複合化の動作
バックドア型マルウェアOceanLotusの以前のバージョンと同様、新しいバージョンには2つの主要な機能が含まれています。ひとつはオペレーティングシステムの情報を収集して不正なC&Cサーバに送信し、追加のC&C通信の情報を受信する機能です。もう一方はバックドア機能です。
この機能は、以下のコマンドを呼び出すことで、感染したコンピュータから対象の情報を収集します。
コマンド | 概要 |
system_profiler SPHardwareDataType 2>/dev/null | awk ‘/Processor / {split($0,line,\”:\”); printf(\”%s\”,line[2]);}’ | プロセッサ情報の取得 |
15f20 = system_profiler SPHardwareDataType 2>/dev/null | awk ‘/Memory/ {split($0,line, \”:\”); printf(\”%s\”, line[2]);}’ | メモリ情報の取得 |
ioreg -rd1 -c IOPlatformExpertDevice | awk ‘/IOPlatformSerialNumber/ { split($0, line, \”\\\”\”); printf(\”%s\”, line[4]); } | シリアル番号の取得 |
ifconfig -lifconfig <device> | awk ‘/ether /{print $2}’ 2>&1 | ネットワークインターフェースを識別するMACアドレスを取得 |
表2:OceanLotusのコマンドおよび概要
収集された情報は暗号化され、マルウェアのC&Cサーバに送信されます。
図13:C&Cサーバに情報を送信するマルウェアのTCPストリーム
また、同一のサーバからコマンドを受信します。
図14:C&Cサーバからコマンドを受信するマルウェアのTCPストリーム
マルウェアが使用するC&Cサーバは、以下の通りです。
- mihannevis[.]com
- mykessef[.]com
- idtpl[.]org
新しい亜種のバックドア機能は、以下の図15で詳述されているように、以前確認されたOceanLotusの検体が持つ機能と類似しています。
図15:以前確認されたOceanLotusの亜種
図16:新しい亜種
以下の表は、サポートされているコマンドと対応するコードを示しています(OceanLotusについて解説した過去の記事より引用)。
0x33 | ファイルサイズの取得 |
0xe8 | 終了 |
0xa2 | ファイルのダウンロードおよび実行 |
0xac | ターミナル上でコマンドを実行 |
0x48 | ファイルを削除 |
0x72 | ファイルをアップロード |
0x23 | ファイルをダウンロード |
0x3c | ファイルをダウンロード |
0x07 | 構成ファイルの情報を取得 |
0x55 | 空の応答、ハートビート・パケット |
表3:サポートされているコマンドと対応するコード
■C&Cのドメイン名についての詳細
GoogleとWhois上の履歴によれば、ドメイン「mihannevis[.]com」は、2020年8月末頃にC&Cサーバに変更される以前、過去に他のWebサイトをホストするために使用されていました。
図17:mihannevis[.]comのドメイン履歴、Whoisから
図18:mihannevis[.]comのドメイン履歴、Googleから
VirusTotal上では、関連するURLの一部が8月末に見られました。
図19:VirusTotal上で見られるmihannevis[.]comに関連するURL
このドメイン「mihannevis[.]com」は、以前上述のC&Cサーバで使用されていたものです。
図20:Whoisルックアップに基づくmykessef[.]comのドメイン履歴
以下のドメイン名「idtpl[.]org」は3年前に登録されたもので、更新された履歴はありません。 Whoisのルックアップによると、この登録は2020年3月末に期限切れになりました。
図21:Whoisのルックアップに基づくidtpl[.]orgの登録情報
しかし、2020年7月中旬以降、idtpl[.]orgのIPアドレスは185[.]117[.]88[.]91に変更されました。
図22:VirusTotalで見られるidtpl[.]orgのドメイン履歴
■被害に遭わないためには
OceanLotusのようなサイバー犯罪者集団は、検出を回避して持続性を向上させるために、マルウェアの亜種を積極的に更新しています。マルウェアの脅威を防御するには、以下のベストプラクティスを講じることを推奨します。
- 不審な送信元からのメールに記載されているリンクをクリックしたり、添付ファイルをダウンロードしたりしない
- ソフトウェアとアプリケーションに定期的にパッチを適用して更新する
- オペレーティングシステムに適したセキュリティソリューションを使用する
■トレンドマイクロの対策
macOSで動作するコンピュータを保護するには、マルウェアやその他のサイバー脅威に対する包括的でマルチデバイスな保護を提供する「ウイルスバスター for Mac」をご検討いただけます。
■侵入の痕跡(Indicators of Compromise 、IoCs)
侵入の痕跡(Indicators of Compromise、IoCs)は、こちらを参照してください。
参考記事:
- 「New MacOS Backdoor Connected to OceanLotus Surfaces」
By Luis Magisa, Steven Du
翻訳: 下舘 紗耶加(Core Technology Marketing, Trend Micro™ Research)